@@ -17,7 +17,6 @@ import { Schemas } from 'vs/base/common/network';
17
17
import { distinct } from 'vs/base/common/arrays' ;
18
18
import { IEditorService } from 'vs/workbench/services/editor/common/editorService' ;
19
19
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService' ;
20
- import { optional } from 'vs/platform/instantiation/common/instantiation' ;
21
20
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey' ;
22
21
import { IWorkbenchContribution , IWorkbenchContributionsRegistry , Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions' ;
23
22
import { Disposable } from 'vs/base/common/lifecycle' ;
@@ -35,10 +34,14 @@ CommandsRegistry.registerCommand({
35
34
const configurationService = accessor . get ( IConfigurationService ) ;
36
35
const editorService = accessor . get ( IEditorService ) ;
37
36
const fileService = accessor . get ( IFileService ) ;
38
- const terminalService : IExternalTerminalService | undefined = accessor . get ( IExternalTerminalService , optional ) ;
39
37
const integratedTerminalService = accessor . get ( IIntegratedTerminalService ) ;
40
38
const remoteAgentService = accessor . get ( IRemoteAgentService ) ;
41
39
const terminalGroupService = accessor . get ( ITerminalGroupService ) ;
40
+ let externalTerminalService : IExternalTerminalService | undefined = undefined ;
41
+ try {
42
+ externalTerminalService = accessor . get ( IExternalTerminalService ) ;
43
+ } catch {
44
+ }
42
45
43
46
const resources = getMultiSelectedResources ( resource , accessor . get ( IListService ) , editorService , accessor . get ( IExplorerService ) ) ;
44
47
return fileService . resolveAll ( resources . map ( r => ( { resource : r } ) ) ) . then ( async stats => {
@@ -73,9 +76,9 @@ CommandsRegistry.registerCommand({
73
76
terminalGroupService . showPanel ( true ) ;
74
77
}
75
78
}
76
- } else {
79
+ } else if ( externalTerminalService ) {
77
80
distinct ( targets . map ( ( { stat } ) => stat ! . isDirectory ? stat ! . resource . fsPath : dirname ( stat ! . resource . fsPath ) ) ) . forEach ( cwd => {
78
- terminalService ! . openTerminal ( config . terminal . external , cwd ) ;
81
+ externalTerminalService ! . openTerminal ( config . terminal . external , cwd ) ;
79
82
} ) ;
80
83
}
81
84
} ) ;
0 commit comments