From 1c227c547fdd2545445527257d659024d05c8ec1 Mon Sep 17 00:00:00 2001 From: Elio Date: Thu, 9 Sep 2021 18:34:18 +0200 Subject: [PATCH] Always show unregister folder action, due to new pageFolders setting --- package.json | 2 +- src/commands/Folders.ts | 32 +++++++++++++------------------- src/constants/context.ts | 3 +-- src/extension.ts | 3 --- src/helpers/Extension.ts | 2 +- 5 files changed, 16 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index ca25a2ec..23307c6d 100644 --- a/package.json +++ b/package.json @@ -335,7 +335,7 @@ }, { "command": "frontMatter.unregisterFolder", - "when": "explorerResourceIsFolder && resourcePath in frontMatter.registeredFolders", + "when": "explorerResourceIsFolder", "group": "Front Matter@3" } ], diff --git a/src/commands/Folders.ts b/src/commands/Folders.ts index cbab4457..a8f3a235 100644 --- a/src/commands/Folders.ts +++ b/src/commands/Folders.ts @@ -80,8 +80,6 @@ export class Folders { Notifications.info(`Folder registered`); } - - Folders.updateVsCodeCtx(); } /** @@ -94,20 +92,6 @@ export class Folders { folders = folders.filter(f => f.path !== folder.fsPath); await Folders.update(folders); } - - Folders.updateVsCodeCtx(); - } - - /** - * Update the registered folders context - */ - public static updateVsCodeCtx() { - const folders = Folders.get(); - let allFolders: string[] = []; - for (const folder of folders) { - allFolders = [...allFolders, folder.path] - } - commands.executeCommand('setContext', CONTEXT.registeredFolders, allFolders); } /** @@ -214,11 +198,11 @@ export class Folders { */ public static get(): ContentFolder[] { const config = SettingsHelper.getConfig(); - const wsPath = Folders.getWorkspaceFolder(); + const wsFolder = Folders.getWorkspaceFolder(); const folders: ContentFolder[] = config.get(SETTINGS_CONTENT_PAGE_FOLDERS) as ContentFolder[]; return folders.map(folder => ({ title: folder.title, - path: folder.path.replace(WORKSPACE_PLACEHOLDER, wsPath?.fsPath || "") + path: Folders.absWsFolder(folder, wsFolder) })); } @@ -229,6 +213,16 @@ export class Folders { private static async update(folders: ContentFolder[]) { const config = SettingsHelper.getConfig(); const wsFolder = Folders.getWorkspaceFolder(); - await config.update(SETTINGS_CONTENT_PAGE_FOLDERS, folders.map(folder => ({ title: folder.title, path: folder.path.replace(wsFolder?.fsPath || "", WORKSPACE_PLACEHOLDER) }))); + await config.update(SETTINGS_CONTENT_PAGE_FOLDERS, folders.map(folder => ({ title: folder.title, path: Folders.absWsFolder(folder, wsFolder) }))); + } + + /** + * Generate the absolute URL for the workspace + * @param folder + * @param wsFolder + * @returns + */ + private static absWsFolder(folder: ContentFolder, wsFolder?: Uri) { + return folder.path.replace(wsFolder?.fsPath || "", WORKSPACE_PLACEHOLDER) } } \ No newline at end of file diff --git a/src/constants/context.ts b/src/constants/context.ts index dd3eeefe..1cac06a8 100644 --- a/src/constants/context.ts +++ b/src/constants/context.ts @@ -1,6 +1,5 @@ export const CONTEXT = { canInit: "frontMatterCanInit", canOpenPreview: "frontMatterCanOpenPreview", - canOpenDashboard: "frontMatterCanOpenDashboard", - registeredFolders: 'frontMatter.registeredFolders' + canOpenDashboard: "frontMatterCanOpenDashboard" }; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 7d256475..750118c2 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -107,8 +107,6 @@ export async function activate(context: vscode.ExtensionContext) { const createContent = vscode.commands.registerCommand(COMMAND_NAME.createContent, Folders.create); - Folders.updateVsCodeCtx(); - // Initialize command Template.init(); const projectInit = vscode.commands.registerCommand(COMMAND_NAME.init, async (cb: Function) => { @@ -128,7 +126,6 @@ export async function activate(context: vscode.ExtensionContext) { vscode.workspace.onDidChangeConfiguration(() => { Template.init(); Preview.init(); - Folders.updateVsCodeCtx(); const exView = ExplorerView.getInstance(); exView.getSettings(); diff --git a/src/helpers/Extension.ts b/src/helpers/Extension.ts index 30e09e97..2501aad6 100644 --- a/src/helpers/Extension.ts +++ b/src/helpers/Extension.ts @@ -68,7 +68,7 @@ export class Extension { const paths = folders.map((folder: any) => ({ title: folder.title, - path: `${WORKSPACE_PLACEHOLDER}${folder.fsPath.split(projectFolder).slice(1).join('')}` + path: `${WORKSPACE_PLACEHOLDER}${folder.fsPath.split(projectFolder).slice(1).join('')}`.split('\\').join('/') })); await config.update(`${SETTINGS_CONTENT_PAGE_FOLDERS}`, paths);