Skip to content

Commit 5154033

Browse files
committed
split it out
1 parent 871d0be commit 5154033

File tree

3 files changed

+41
-26
lines changed

3 files changed

+41
-26
lines changed

src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import { TerminalProfileService } from './terminalProfileService.js';
4646
import { TerminalService } from './terminalService.js';
4747
import { TerminalTelemetryContribution } from './terminalTelemetry.js';
4848
import { TerminalViewPane } from './terminalView.js';
49+
import { registerTerminalVoiceActions } from './terminalVoiceActions.js';
4950

5051
// Register services
5152
registerSingleton(ITerminalLogService, TerminalLogService, InstantiationType.Delayed);
@@ -130,6 +131,8 @@ Registry.as<IViewsRegistry>(ViewContainerExtensions.ViewsRegistry).registerViews
130131

131132
registerTerminalActions();
132133

134+
registerTerminalVoiceActions();
135+
133136
setupTerminalCommands();
134137

135138
setupTerminalMenus();

src/vs/workbench/contrib/terminal/browser/terminalActions.ts

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { ICommandService } from '../../../../platform/commands/common/commands.j
2929
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
3030
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
3131
import { FileKind } from '../../../../platform/files/common/files.js';
32-
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
32+
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
3333
import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
3434
import { ILabelService } from '../../../../platform/label/common/label.js';
3535
import { IListService } from '../../../../platform/list/browser/listService.js';
@@ -52,7 +52,6 @@ import { IWorkbenchEnvironmentService } from '../../../services/environment/comm
5252
import { IPreferencesService } from '../../../services/preferences/common/preferences.js';
5353
import { IRemoteAgentService } from '../../../services/remote/common/remoteAgentService.js';
5454
import { accessibleViewCurrentProviderId, accessibleViewIsShown, accessibleViewOnLastLine } from '../../accessibility/browser/accessibilityConfiguration.js';
55-
import { HasSpeechProvider } from '../../speech/common/speechService.js';
5655
import { IRemoteTerminalAttachTarget, ITerminalProfileResolverService, ITerminalProfileService, TERMINAL_VIEW_ID, TerminalCommandId } from '../common/terminal.js';
5756
import { TerminalContextKeys } from '../common/terminalContextKey.js';
5857
import { terminalStrings } from '../common/terminalStrings.js';
@@ -62,7 +61,6 @@ import { getColorClass, getIconId, getUriClasses } from './terminalIcon.js';
6261
import { killTerminalIcon, newTerminalIcon } from './terminalIcons.js';
6362
import { ITerminalQuickPickItem } from './terminalProfileQuickpick.js';
6463
import { TerminalTabList } from './terminalTabsList.js';
65-
import { TerminalVoiceSession } from './terminalVoice.js';
6664

6765
export const switchTerminalActionViewItemSeparator = '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500';
6866
export const switchTerminalShowTabsTitle = localize('showTerminalTabs', "Show Tabs");
@@ -71,7 +69,7 @@ const category = terminalStrings.actionCategory;
7169

7270
// Some terminal context keys get complicated. Since normalizing and/or context keys can be
7371
// expensive this is done once per context key and shared.
74-
const sharedWhenClause = (() => {
72+
export const sharedWhenClause = (() => {
7573
const terminalAvailable = ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated);
7674
return {
7775
terminalAvailable,
@@ -1395,28 +1393,6 @@ export function registerTerminalActions() {
13951393
}
13961394
}
13971395
});
1398-
1399-
registerActiveInstanceAction({
1400-
id: TerminalCommandId.StartVoice,
1401-
title: localize2('workbench.action.terminal.startDictation', "Start Dictation in Terminal"),
1402-
precondition: ContextKeyExpr.and(HasSpeechProvider, sharedWhenClause.terminalAvailable),
1403-
f1: true,
1404-
run: (activeInstance, c, accessor) => {
1405-
const instantiationService = accessor.get(IInstantiationService);
1406-
TerminalVoiceSession.getInstance(instantiationService).start();
1407-
}
1408-
});
1409-
1410-
registerActiveInstanceAction({
1411-
id: TerminalCommandId.StopVoice,
1412-
title: localize2('workbench.action.terminal.stopDictation', "Stop Dictation in Terminal"),
1413-
precondition: ContextKeyExpr.and(HasSpeechProvider, sharedWhenClause.terminalAvailable),
1414-
f1: true,
1415-
run: (activeInstance, c, accessor) => {
1416-
const instantiationService = accessor.get(IInstantiationService);
1417-
TerminalVoiceSession.getInstance(instantiationService).stop(true);
1418-
}
1419-
});
14201396
}
14211397

14221398
interface IRemoteTerminalPick extends IQuickPickItem {
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { localize2 } from '../../../../nls.js';
7+
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
8+
import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
9+
import { HasSpeechProvider } from '../../speech/common/speechService.js';
10+
import { TerminalCommandId } from '../common/terminal.js';
11+
import { registerActiveInstanceAction, sharedWhenClause } from './terminalActions.js';
12+
import { TerminalVoiceSession } from './terminalVoice.js';
13+
14+
export function registerTerminalVoiceActions() {
15+
registerActiveInstanceAction({
16+
id: TerminalCommandId.StartVoice,
17+
title: localize2('workbench.action.terminal.startDictation', "Start Dictation in Terminal"),
18+
precondition: ContextKeyExpr.and(HasSpeechProvider, sharedWhenClause.terminalAvailable),
19+
f1: true,
20+
run: (activeInstance, c, accessor) => {
21+
const instantiationService = accessor.get(IInstantiationService);
22+
TerminalVoiceSession.getInstance(instantiationService).start();
23+
}
24+
});
25+
26+
registerActiveInstanceAction({
27+
id: TerminalCommandId.StopVoice,
28+
title: localize2('workbench.action.terminal.stopDictation', "Stop Dictation in Terminal"),
29+
precondition: ContextKeyExpr.and(HasSpeechProvider, sharedWhenClause.terminalAvailable),
30+
f1: true,
31+
run: (activeInstance, c, accessor) => {
32+
const instantiationService = accessor.get(IInstantiationService);
33+
TerminalVoiceSession.getInstance(instantiationService).stop(true);
34+
}
35+
});
36+
}

0 commit comments

Comments
 (0)