@@ -322,6 +322,8 @@ export function registerMessageListeners(
322322 break
323323 }
324324 case OPEN_FILE_DIALOG : {
325+ // openFileDialog is the event emitted from webView to open
326+ // file system
325327 const result = await languageClient . sendRequest < OpenFileDialogResult > (
326328 openFileDialogRequestType . method ,
327329 message . params
@@ -478,16 +480,21 @@ export function registerMessageListeners(
478480 } )
479481
480482 languageClient . onRequest ( ShowOpenDialogRequestType . method , async ( params : ShowOpenDialogParams ) => {
481- const uris = await vscode . window . showOpenDialog ( {
482- canSelectFiles : params . canSelectFiles ?? true ,
483- canSelectFolders : params . canSelectFolders ?? false ,
484- canSelectMany : params . canSelectMany ?? false ,
485- filters : params . filters ,
486- defaultUri : params . defaultUri ? vscode . Uri . parse ( params . defaultUri ) : undefined ,
487- title : params . title ,
488- } )
489- const urisString = uris ?. map ( ( uri ) => uri . fsPath )
490- return { uris : urisString || [ ] }
483+ try {
484+ const uris = await vscode . window . showOpenDialog ( {
485+ canSelectFiles : params . canSelectFiles ?? true ,
486+ canSelectFolders : params . canSelectFolders ?? false ,
487+ canSelectMany : params . canSelectMany ?? false ,
488+ filters : params . filters ,
489+ defaultUri : params . defaultUri ? vscode . Uri . parse ( params . defaultUri , false ) : undefined ,
490+ title : params . title ,
491+ } )
492+ const urisString = uris ?. map ( ( uri ) => uri . fsPath )
493+ return { uris : urisString || [ ] }
494+ } catch ( err ) {
495+ languageClient . error ( `[VSCode Client] Failed to open file dialog: ${ ( err as Error ) . message } ` )
496+ return { uris : [ ] }
497+ }
491498 } )
492499
493500 languageClient . onRequest < ShowDocumentParams , ShowDocumentResult > (
0 commit comments