@@ -13,7 +13,7 @@ import { leetCodeManager } from "../leetCodeManager";
13
13
import { IProblem , IQuickItemEx , languages , ProblemState } from "../shared" ;
14
14
import { getNodeIdFromFile } from "../utils/problemUtils" ;
15
15
import { DialogOptions , DialogType , openSettingsEditor , promptForOpenOutputChannel , promptForSignIn , promptHintMessage } from "../utils/uiUtils" ;
16
- import { selectWorkspaceFolder } from "../utils/workspaceUtils" ;
16
+ import { getActiveFilePath , selectWorkspaceFolder } from "../utils/workspaceUtils" ;
17
17
import * as wsl from "../utils/wslUtils" ;
18
18
import { leetCodePreviewProvider } from "../webview/leetCodePreviewProvider" ;
19
19
import { leetCodeSolutionProvider } from "../webview/leetCodeSolutionProvider" ;
@@ -71,11 +71,15 @@ export async function searchProblem(): Promise<void> {
71
71
72
72
export async function showSolution ( input :LeetCodeNode | vscode . Uri ) :Promise < void > {
73
73
let problemInput :string | undefined ;
74
- if ( input instanceof LeetCodeNode ) {
74
+ if ( input instanceof LeetCodeNode ) { // Triggerred from explorer
75
75
problemInput = input . id ;
76
- } else if ( input instanceof vscode . Uri ) {
76
+ } else if ( input instanceof vscode . Uri ) { // Triggerred from Code Lens/context menu
77
77
problemInput = `"${ input . fsPath } "` ;
78
- } else {
78
+ } else if ( ! input ) { // Triggerred from command
79
+ problemInput = await getActiveFilePath ( ) ;
80
+ }
81
+
82
+ if ( ! problemInput ) {
79
83
vscode . window . showErrorMessage ( "Invalid input to fetch the solution data." ) ;
80
84
return ;
81
85
}