#190 - First implementation of the diagnostic output

This commit is contained in:
Elio Struyf
2021-11-25 11:00:47 +01:00
parent dea5eb1053
commit 7a7b31c2ae
5 changed files with 49 additions and 0 deletions
+5
View File
@@ -819,6 +819,11 @@
"command": "frontMatter.setLastModifiedDate",
"title": "Set lastmod date",
"category": "Front matter"
},
{
"command": "frontMatter.diagnostics",
"title": "Diagnostic logging",
"category": "Front matter"
}
],
"menus": {
+38
View File
@@ -0,0 +1,38 @@
import { Folders } from "./Folders";
import { window } from "vscode";
import ContentProvider from "../providers/ContentProvider";
import { join } from "path";
export class Diagnostics {
public static show() {
const folders = Folders.get();
const projectName = Folders.getProjectFolderName();
const wsFolder = Folders.getWorkspaceFolder();
const logging = `# Project name
${projectName}
# Folders
${folders.map(f => `- ${f.title}: "${f.path}"`).join("\n")}
# Workspace folder
${wsFolder ? wsFolder.fsPath : "No workspace folder"}
# Folders to search files
${folders.map(folder => {
let projectStart = folder.path.split(projectName).pop();
projectStart = projectStart?.replace(/\\/g, '/');
projectStart = projectStart?.startsWith('/') ? projectStart.substr(1) : projectStart;
return `- ${join(projectStart || "", folder.excludeSubdir ? '/' : '**/', '*.md')}`;
}).join("\n")}
`;
ContentProvider.show(logging, `${projectName} diagnostics`, "markdown");
}
}
+1
View File
@@ -207,6 +207,7 @@ export class Folders {
try {
const projectName = Folders.getProjectFolderName();
let projectStart = folder.path.split(projectName).pop();
if (projectStart) {
projectStart = projectStart.replace(/\\/g, '/');
projectStart = projectStart.startsWith('/') ? projectStart.substr(1) : projectStart;
+1
View File
@@ -32,4 +32,5 @@ export const COMMAND_NAME = {
promote: getCommandName("promoteSettings"),
insertImage: getCommandName("insertImage"),
createFolder: getCommandName("createFolder"),
diagnostics: getCommandName("diagnostics"),
};
+4
View File
@@ -16,6 +16,7 @@ import { DashboardData } from './models/DashboardData';
import { Settings as SettingsHelper } from './helpers';
import { Content } from './commands/Content';
import ContentProvider from './providers/ContentProvider';
import { Diagnostics } from './commands/Diagnostics';
let frontMatterStatusBar: vscode.StatusBarItem;
let statusDebouncer: { (fnc: any, time: number): void; };
@@ -183,6 +184,9 @@ export async function activate(context: vscode.ExtensionContext) {
// Create the editor experience for bulk scripts
subscriptions.push(vscode.workspace.registerTextDocumentContentProvider(ContentProvider.scheme, new ContentProvider()));
// Diagnostics
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.diagnostics, Diagnostics.show));
// Subscribe all commands
subscriptions.push(
insertTags,