@@ -13,7 +13,7 @@ import { leetCodeManager } from "../leetCodeManager";
1313import { IProblem , IQuickItemEx , languages , ProblemState } from "../shared" ;
1414import { getNodeIdFromFile } from "../utils/problemUtils" ;
1515import { DialogOptions , DialogType , openSettingsEditor , promptForOpenOutputChannel , promptForSignIn , promptHintMessage } from "../utils/uiUtils" ;
16- import { selectWorkspaceFolder } from "../utils/workspaceUtils" ;
16+ import { getActiveFilePath , selectWorkspaceFolder } from "../utils/workspaceUtils" ;
1717import * as wsl from "../utils/wslUtils" ;
1818import { leetCodePreviewProvider } from "../webview/leetCodePreviewProvider" ;
1919import { leetCodeSolutionProvider } from "../webview/leetCodeSolutionProvider" ;
@@ -71,11 +71,15 @@ export async function searchProblem(): Promise<void> {
7171
7272export async function showSolution ( input :LeetCodeNode | vscode . Uri ) :Promise < void > {
7373let problemInput :string | undefined ;
74- if ( input instanceof LeetCodeNode ) {
74+ if ( input instanceof LeetCodeNode ) { // Triggerred from explorer
7575problemInput = input . id ;
76- } else if ( input instanceof vscode . Uri ) {
76+ } else if ( input instanceof vscode . Uri ) { // Triggerred from Code Lens/context menu
7777problemInput = `"${ input . fsPath } "` ;
78- } else {
78+ } else if ( ! input ) { // Triggerred from command
79+ problemInput = await getActiveFilePath ( ) ;
80+ }
81+
82+ if ( ! problemInput ) {
7983vscode . window . showErrorMessage ( "Invalid input to fetch the solution data." ) ;
8084return ;
8185}