From d250ec10e122ffcda4f11b13b7b7fee0bbabae93 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 7 Jan 2026 15:14:52 +0000 Subject: [PATCH] Address code review feedback: improve error handling and logging Co-authored-by: estruyf <2900833+estruyf@users.noreply.github.com> --- lite/assets/frontmatter-teal-128x128.png | Bin 0 -> 5486 bytes lite/src/DashboardProvider.ts | 22 +++++++++--- lite/src/extension.ts | 41 ++++++++++++----------- lite/src/utils.ts | 15 +++++++++ 4 files changed, 53 insertions(+), 25 deletions(-) create mode 100644 lite/assets/frontmatter-teal-128x128.png create mode 100644 lite/src/utils.ts diff --git a/lite/assets/frontmatter-teal-128x128.png b/lite/assets/frontmatter-teal-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d58d57c832a0db843da72f9f0e7480a1c726d9 GIT binary patch literal 5486 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 folder.uri.scheme !== 'file' - ); - - if (isVirtual) { - outputChannel.appendLine('Running in virtual workspace mode'); - vscode.window.showInformationMessage( - 'Front Matter Lite is running in virtual workspace mode. Some features may be limited.', - 'Learn More' - ).then(selection => { - if (selection === 'Learn More') { - vscode.env.openExternal( - vscode.Uri.parse('https://frontmatter.codes/docs/virtual-workspaces') - ); - } - }); - } + if (isVirtualWorkspace()) { + outputChannel.appendLine('Running in virtual workspace mode'); + vscode.window.showInformationMessage( + 'Front Matter Lite is running in virtual workspace mode. Some features may be limited.', + 'Learn More' + ).then(selection => { + if (selection === 'Learn More') { + vscode.env.openExternal( + vscode.Uri.parse('https://frontmatter.codes/docs/virtual-workspaces') + ); + } + }); } outputChannel.appendLine('Front Matter Lite: All commands registered'); diff --git a/lite/src/utils.ts b/lite/src/utils.ts new file mode 100644 index 00000000..fc857078 --- /dev/null +++ b/lite/src/utils.ts @@ -0,0 +1,15 @@ +import * as vscode from 'vscode'; + +/** + * Check if the current workspace is a virtual workspace + * Virtual workspaces use schemes other than 'file' (e.g., 'vscode-vfs', 'github') + */ +export function isVirtualWorkspace(): boolean { + if (!vscode.workspace.workspaceFolders) { + return false; + } + + return vscode.workspace.workspaceFolders.some( + folder => folder.uri.scheme !== 'file' + ); +}