@codingame/monaco-vscode-xterm-common 26.2.2 → 28.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalActions.js +61 -61
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalInstance.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalInstance.js +61 -46
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTabsList.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTooltip.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollColorRegistry.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollOverlay.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-xterm-common",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - common package depending on xterm",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
19
|
-
"@codingame/monaco-vscode-xterm-addons-common": "
|
|
20
|
-
"@xterm/xterm": "6.1.0-beta.
|
|
18
|
+
"@codingame/monaco-vscode-api": "28.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-xterm-addons-common": "28.0.0",
|
|
20
|
+
"@xterm/xterm": "6.1.0-beta.168"
|
|
21
21
|
},
|
|
22
22
|
"exports": {
|
|
23
23
|
".": {
|
|
@@ -24,7 +24,7 @@ let EnvironmentVariableInfoStale = class EnvironmentVariableInfoStale {
|
|
|
24
24
|
addExtensionIdentifiers(extSet, ( this._diff.removed.values()));
|
|
25
25
|
addExtensionIdentifiers(extSet, ( this._diff.changed.values()));
|
|
26
26
|
let message = ( localize(
|
|
27
|
-
|
|
27
|
+
13018,
|
|
28
28
|
"The following extensions want to relaunch the terminal to contribute to its environment:"
|
|
29
29
|
));
|
|
30
30
|
message += getMergedDescription(this._collection, scope, this._extensionService, extSet);
|
|
@@ -32,7 +32,7 @@ let EnvironmentVariableInfoStale = class EnvironmentVariableInfoStale {
|
|
|
32
32
|
}
|
|
33
33
|
_getActions() {
|
|
34
34
|
return [{
|
|
35
|
-
label: ( localize(
|
|
35
|
+
label: ( localize(13019, "Relaunch Terminal")),
|
|
36
36
|
run: () => this._terminalService.getInstanceFromId(this._terminalId)?.relaunch(),
|
|
37
37
|
commandId: TerminalCommandId.Relaunch
|
|
38
38
|
}];
|
|
@@ -59,7 +59,7 @@ let EnvironmentVariableInfoChangesActive = class EnvironmentVariableInfoChangesA
|
|
|
59
59
|
const extSet = ( new Set());
|
|
60
60
|
addExtensionIdentifiers(extSet, ( this._collection.getVariableMap(scope).values()));
|
|
61
61
|
let message = ( localize(
|
|
62
|
-
|
|
62
|
+
13020,
|
|
63
63
|
"The following extensions have contributed to this terminal's environment:"
|
|
64
64
|
));
|
|
65
65
|
message += getMergedDescription(this._collection, scope, this._extensionService, extSet);
|
|
@@ -67,7 +67,7 @@ let EnvironmentVariableInfoChangesActive = class EnvironmentVariableInfoChangesA
|
|
|
67
67
|
}
|
|
68
68
|
_getActions(scope) {
|
|
69
69
|
return [{
|
|
70
|
-
label: ( localize(
|
|
70
|
+
label: ( localize(13021, "Show Environment Contributions")),
|
|
71
71
|
run: () => this._commandService.executeCommand(TerminalCommandId.ShowEnvironmentContributions, scope),
|
|
72
72
|
commandId: TerminalCommandId.ShowEnvironmentContributions
|
|
73
73
|
}];
|
|
@@ -95,7 +95,7 @@ function getMergedDescription(collection, scope, extensionService, extSet) {
|
|
|
95
95
|
}
|
|
96
96
|
const workspaceDescription = workspaceDescriptions.get(ext);
|
|
97
97
|
if (workspaceDescription) {
|
|
98
|
-
const workspaceSuffix = globalDescription ? ` (${( localize(
|
|
98
|
+
const workspaceSuffix = globalDescription ? ` (${( localize(13022, "workspace"))})` : "";
|
|
99
99
|
message.push(`\n- \`${getExtensionName(ext, extensionService)}${workspaceSuffix}\``);
|
|
100
100
|
message.push(`: ${workspaceDescription}`);
|
|
101
101
|
}
|
|
@@ -63,7 +63,7 @@ import { ResourceContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workb
|
|
|
63
63
|
import { SeparatorSelectOption } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/selectBox/selectBox';
|
|
64
64
|
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
65
65
|
|
|
66
|
-
const switchTerminalShowTabsTitle = ( localize(
|
|
66
|
+
const switchTerminalShowTabsTitle = ( localize(13025, "Show Tabs"));
|
|
67
67
|
const category = terminalStrings.actionCategory;
|
|
68
68
|
const sharedWhenClause = (() => {
|
|
69
69
|
const terminalAvailable = ( ContextKeyExpr.or(
|
|
@@ -86,7 +86,7 @@ async function getCwdForSplit(instance, folders, commandService, configService)
|
|
|
86
86
|
return folders[0].uri;
|
|
87
87
|
} else if (folders.length > 1) {
|
|
88
88
|
const options = {
|
|
89
|
-
placeHolder: ( localize(
|
|
89
|
+
placeHolder: ( localize(13026, "Select current working directory for new terminal"))
|
|
90
90
|
};
|
|
91
91
|
const workspace = await commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND_ID, [options]);
|
|
92
92
|
if (!workspace) {
|
|
@@ -104,7 +104,7 @@ async function getCwdForSplit(instance, folders, commandService, configService)
|
|
|
104
104
|
}
|
|
105
105
|
let TerminalLaunchHelpAction = class TerminalLaunchHelpAction extends Action {
|
|
106
106
|
constructor(_openerService) {
|
|
107
|
-
super("workbench.action.terminal.launchHelp", ( localize(
|
|
107
|
+
super("workbench.action.terminal.launchHelp", ( localize(13027, "Open Help")));
|
|
108
108
|
this._openerService = _openerService;
|
|
109
109
|
}
|
|
110
110
|
async run() {
|
|
@@ -205,7 +205,7 @@ function getTerminalServices(accessor) {
|
|
|
205
205
|
function registerTerminalActions() {
|
|
206
206
|
registerTerminalAction({
|
|
207
207
|
id: TerminalCommandId.NewInActiveWorkspace,
|
|
208
|
-
title: ( localize2(
|
|
208
|
+
title: ( localize2(13028, "Create New Terminal (In Active Workspace)")),
|
|
209
209
|
run: async c => {
|
|
210
210
|
if (c.service.isProcessSupportRegistered) {
|
|
211
211
|
const instance = await c.service.createTerminal({
|
|
@@ -222,7 +222,7 @@ function registerTerminalActions() {
|
|
|
222
222
|
refreshTerminalActions([]);
|
|
223
223
|
registerTerminalAction({
|
|
224
224
|
id: TerminalCommandId.CreateTerminalEditor,
|
|
225
|
-
title: ( localize2(
|
|
225
|
+
title: ( localize2(13029, "Create New Terminal in Editor Area")),
|
|
226
226
|
run: async (c, _, args) => {
|
|
227
227
|
function isCreateTerminalOptions(obj) {
|
|
228
228
|
return isObject(obj) && "location" in obj;
|
|
@@ -238,7 +238,7 @@ function registerTerminalActions() {
|
|
|
238
238
|
});
|
|
239
239
|
registerTerminalAction({
|
|
240
240
|
id: TerminalCommandId.CreateTerminalEditorSameGroup,
|
|
241
|
-
title: ( localize2(
|
|
241
|
+
title: ( localize2(13029, "Create New Terminal in Editor Area")),
|
|
242
242
|
f1: false,
|
|
243
243
|
run: async (c, accessor, args) => {
|
|
244
244
|
const editorGroupsService = accessor.get(IEditorGroupsService);
|
|
@@ -252,7 +252,7 @@ function registerTerminalActions() {
|
|
|
252
252
|
});
|
|
253
253
|
registerTerminalAction({
|
|
254
254
|
id: TerminalCommandId.CreateTerminalEditorSide,
|
|
255
|
-
title: ( localize2(
|
|
255
|
+
title: ( localize2(13030, "Create New Terminal in Editor Area to the Side")),
|
|
256
256
|
run: async c => {
|
|
257
257
|
const instance = await c.service.createTerminal({
|
|
258
258
|
location: {
|
|
@@ -313,7 +313,7 @@ function registerTerminalActions() {
|
|
|
313
313
|
});
|
|
314
314
|
registerTerminalAction({
|
|
315
315
|
id: TerminalCommandId.FocusPreviousPane,
|
|
316
|
-
title: ( localize2(
|
|
316
|
+
title: ( localize2(13031, "Focus Previous Terminal in Terminal Group")),
|
|
317
317
|
keybinding: {
|
|
318
318
|
primary: KeyMod.Alt | KeyCode.LeftArrow,
|
|
319
319
|
secondary: [KeyMod.Alt | KeyCode.UpArrow],
|
|
@@ -332,7 +332,7 @@ function registerTerminalActions() {
|
|
|
332
332
|
});
|
|
333
333
|
registerTerminalAction({
|
|
334
334
|
id: TerminalCommandId.FocusNextPane,
|
|
335
|
-
title: ( localize2(
|
|
335
|
+
title: ( localize2(13032, "Focus Next Terminal in Terminal Group")),
|
|
336
336
|
keybinding: {
|
|
337
337
|
primary: KeyMod.Alt | KeyCode.RightArrow,
|
|
338
338
|
secondary: [KeyMod.Alt | KeyCode.DownArrow],
|
|
@@ -351,7 +351,7 @@ function registerTerminalActions() {
|
|
|
351
351
|
});
|
|
352
352
|
registerTerminalAction({
|
|
353
353
|
id: TerminalCommandId.ResizePaneLeft,
|
|
354
|
-
title: ( localize2(
|
|
354
|
+
title: ( localize2(13033, "Resize Terminal Left")),
|
|
355
355
|
keybinding: {
|
|
356
356
|
linux: {
|
|
357
357
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.LeftArrow
|
|
@@ -367,7 +367,7 @@ function registerTerminalActions() {
|
|
|
367
367
|
});
|
|
368
368
|
registerTerminalAction({
|
|
369
369
|
id: TerminalCommandId.ResizePaneRight,
|
|
370
|
-
title: ( localize2(
|
|
370
|
+
title: ( localize2(13034, "Resize Terminal Right")),
|
|
371
371
|
keybinding: {
|
|
372
372
|
linux: {
|
|
373
373
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.RightArrow
|
|
@@ -383,7 +383,7 @@ function registerTerminalActions() {
|
|
|
383
383
|
});
|
|
384
384
|
registerTerminalAction({
|
|
385
385
|
id: TerminalCommandId.ResizePaneUp,
|
|
386
|
-
title: ( localize2(
|
|
386
|
+
title: ( localize2(13035, "Resize Terminal Up")),
|
|
387
387
|
keybinding: {
|
|
388
388
|
mac: {
|
|
389
389
|
primary: KeyMod.CtrlCmd | KeyMod.WinCtrl | KeyCode.UpArrow
|
|
@@ -396,7 +396,7 @@ function registerTerminalActions() {
|
|
|
396
396
|
});
|
|
397
397
|
registerTerminalAction({
|
|
398
398
|
id: TerminalCommandId.ResizePaneDown,
|
|
399
|
-
title: ( localize2(
|
|
399
|
+
title: ( localize2(13036, "Resize Terminal Down")),
|
|
400
400
|
keybinding: {
|
|
401
401
|
mac: {
|
|
402
402
|
primary: KeyMod.CtrlCmd | KeyMod.WinCtrl | KeyCode.DownArrow
|
|
@@ -433,7 +433,7 @@ function registerTerminalActions() {
|
|
|
433
433
|
});
|
|
434
434
|
registerTerminalAction({
|
|
435
435
|
id: TerminalCommandId.FocusTabs,
|
|
436
|
-
title: ( localize2(
|
|
436
|
+
title: ( localize2(13037, "Focus Terminal Tabs View")),
|
|
437
437
|
keybinding: {
|
|
438
438
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Backslash,
|
|
439
439
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -444,7 +444,7 @@ function registerTerminalActions() {
|
|
|
444
444
|
});
|
|
445
445
|
registerTerminalAction({
|
|
446
446
|
id: TerminalCommandId.FocusNext,
|
|
447
|
-
title: ( localize2(
|
|
447
|
+
title: ( localize2(13038, "Focus Next Terminal Group")),
|
|
448
448
|
precondition: sharedWhenClause.terminalAvailable,
|
|
449
449
|
keybinding: {
|
|
450
450
|
primary: KeyMod.CtrlCmd | KeyCode.PageDown,
|
|
@@ -461,7 +461,7 @@ function registerTerminalActions() {
|
|
|
461
461
|
});
|
|
462
462
|
registerTerminalAction({
|
|
463
463
|
id: TerminalCommandId.FocusPrevious,
|
|
464
|
-
title: ( localize2(
|
|
464
|
+
title: ( localize2(13039, "Focus Previous Terminal Group")),
|
|
465
465
|
precondition: sharedWhenClause.terminalAvailable,
|
|
466
466
|
keybinding: {
|
|
467
467
|
primary: KeyMod.CtrlCmd | KeyCode.PageUp,
|
|
@@ -478,7 +478,7 @@ function registerTerminalActions() {
|
|
|
478
478
|
});
|
|
479
479
|
registerTerminalAction({
|
|
480
480
|
id: TerminalCommandId.RunSelectedText,
|
|
481
|
-
title: ( localize2(
|
|
481
|
+
title: ( localize2(13040, "Run Selected Text In Active Terminal")),
|
|
482
482
|
run: async (c, accessor) => {
|
|
483
483
|
const codeEditorService = accessor.get(ICodeEditorService);
|
|
484
484
|
const editor = codeEditorService.getActiveCodeEditor();
|
|
@@ -502,7 +502,7 @@ function registerTerminalActions() {
|
|
|
502
502
|
});
|
|
503
503
|
registerTerminalAction({
|
|
504
504
|
id: TerminalCommandId.RunActiveFile,
|
|
505
|
-
title: ( localize2(
|
|
505
|
+
title: ( localize2(13041, "Run Active File In Active Terminal")),
|
|
506
506
|
precondition: sharedWhenClause.terminalAvailable,
|
|
507
507
|
run: async (c, accessor) => {
|
|
508
508
|
const codeEditorService = accessor.get(ICodeEditorService);
|
|
@@ -518,7 +518,7 @@ function registerTerminalActions() {
|
|
|
518
518
|
const isRemote = instance ? instance.hasRemoteAuthority : (workbenchEnvironmentService.remoteAuthority ? true : false);
|
|
519
519
|
const uri = editor.getModel().uri;
|
|
520
520
|
if ((!isRemote && uri.scheme !== Schemas.file && uri.scheme !== Schemas.vscodeUserData) || (isRemote && uri.scheme !== Schemas.vscodeRemote)) {
|
|
521
|
-
notificationService.warn(( localize(
|
|
521
|
+
notificationService.warn(( localize(13042, "Only files on disk can be run in the terminal")));
|
|
522
522
|
return;
|
|
523
523
|
}
|
|
524
524
|
await instance.sendPath(uri, true);
|
|
@@ -527,7 +527,7 @@ function registerTerminalActions() {
|
|
|
527
527
|
});
|
|
528
528
|
registerActiveXtermAction({
|
|
529
529
|
id: TerminalCommandId.ScrollDownLine,
|
|
530
|
-
title: ( localize2(
|
|
530
|
+
title: ( localize2(13043, "Scroll Down (Line)")),
|
|
531
531
|
keybinding: {
|
|
532
532
|
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageDown,
|
|
533
533
|
linux: {
|
|
@@ -541,7 +541,7 @@ function registerTerminalActions() {
|
|
|
541
541
|
});
|
|
542
542
|
registerActiveXtermAction({
|
|
543
543
|
id: TerminalCommandId.ScrollDownPage,
|
|
544
|
-
title: ( localize2(
|
|
544
|
+
title: ( localize2(13044, "Scroll Down (Page)")),
|
|
545
545
|
keybinding: {
|
|
546
546
|
primary: KeyMod.Shift | KeyCode.PageDown,
|
|
547
547
|
mac: {
|
|
@@ -555,7 +555,7 @@ function registerTerminalActions() {
|
|
|
555
555
|
});
|
|
556
556
|
registerActiveXtermAction({
|
|
557
557
|
id: TerminalCommandId.ScrollToBottom,
|
|
558
|
-
title: ( localize2(
|
|
558
|
+
title: ( localize2(13045, "Scroll to Bottom")),
|
|
559
559
|
keybinding: {
|
|
560
560
|
primary: KeyMod.CtrlCmd | KeyCode.End,
|
|
561
561
|
linux: {
|
|
@@ -569,7 +569,7 @@ function registerTerminalActions() {
|
|
|
569
569
|
});
|
|
570
570
|
registerActiveXtermAction({
|
|
571
571
|
id: TerminalCommandId.ScrollUpLine,
|
|
572
|
-
title: ( localize2(
|
|
572
|
+
title: ( localize2(13046, "Scroll Up (Line)")),
|
|
573
573
|
keybinding: {
|
|
574
574
|
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageUp,
|
|
575
575
|
linux: {
|
|
@@ -583,7 +583,7 @@ function registerTerminalActions() {
|
|
|
583
583
|
});
|
|
584
584
|
registerActiveXtermAction({
|
|
585
585
|
id: TerminalCommandId.ScrollUpPage,
|
|
586
|
-
title: ( localize2(
|
|
586
|
+
title: ( localize2(13047, "Scroll Up (Page)")),
|
|
587
587
|
f1: true,
|
|
588
588
|
keybinding: {
|
|
589
589
|
primary: KeyMod.Shift | KeyCode.PageUp,
|
|
@@ -598,7 +598,7 @@ function registerTerminalActions() {
|
|
|
598
598
|
});
|
|
599
599
|
registerActiveXtermAction({
|
|
600
600
|
id: TerminalCommandId.ScrollToTop,
|
|
601
|
-
title: ( localize2(
|
|
601
|
+
title: ( localize2(13048, "Scroll to Top")),
|
|
602
602
|
keybinding: {
|
|
603
603
|
primary: KeyMod.CtrlCmd | KeyCode.Home,
|
|
604
604
|
linux: {
|
|
@@ -612,7 +612,7 @@ function registerTerminalActions() {
|
|
|
612
612
|
});
|
|
613
613
|
registerActiveXtermAction({
|
|
614
614
|
id: TerminalCommandId.ClearSelection,
|
|
615
|
-
title: ( localize2(
|
|
615
|
+
title: ( localize2(13049, "Clear Selection")),
|
|
616
616
|
keybinding: {
|
|
617
617
|
primary: KeyCode.Escape,
|
|
618
618
|
when: ( ContextKeyExpr.and(
|
|
@@ -731,12 +731,12 @@ function registerTerminalActions() {
|
|
|
731
731
|
});
|
|
732
732
|
registerActiveInstanceAction({
|
|
733
733
|
id: TerminalCommandId.DetachSession,
|
|
734
|
-
title: ( localize2(
|
|
734
|
+
title: ( localize2(13050, "Detach Session")),
|
|
735
735
|
run: activeInstance => activeInstance.detachProcessAndDispose(TerminalExitReason.User)
|
|
736
736
|
});
|
|
737
737
|
registerTerminalAction({
|
|
738
738
|
id: TerminalCommandId.AttachToSession,
|
|
739
|
-
title: ( localize2(
|
|
739
|
+
title: ( localize2(13051, "Attach to Session")),
|
|
740
740
|
run: async (c, accessor) => {
|
|
741
741
|
const quickInputService = accessor.get(IQuickInputService);
|
|
742
742
|
const labelService = accessor.get(ILabelService);
|
|
@@ -760,7 +760,7 @@ function registerTerminalActions() {
|
|
|
760
760
|
};
|
|
761
761
|
}));
|
|
762
762
|
if (items.length === 0) {
|
|
763
|
-
notificationService.info(( localize(
|
|
763
|
+
notificationService.info(( localize(13052, "There are no unattached terminals to attach to")));
|
|
764
764
|
return;
|
|
765
765
|
}
|
|
766
766
|
const selected = await quickInputService.pick(items, {
|
|
@@ -832,7 +832,7 @@ function registerTerminalActions() {
|
|
|
832
832
|
});
|
|
833
833
|
registerActiveInstanceAction({
|
|
834
834
|
id: TerminalCommandId.SelectToPreviousCommand,
|
|
835
|
-
title: ( localize2(
|
|
835
|
+
title: ( localize2(13053, "Select to Previous Command")),
|
|
836
836
|
keybinding: {
|
|
837
837
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.UpArrow,
|
|
838
838
|
when: TerminalContextKeys.focus,
|
|
@@ -846,7 +846,7 @@ function registerTerminalActions() {
|
|
|
846
846
|
});
|
|
847
847
|
registerActiveInstanceAction({
|
|
848
848
|
id: TerminalCommandId.SelectToNextCommand,
|
|
849
|
-
title: ( localize2(
|
|
849
|
+
title: ( localize2(13054, "Select to Next Command")),
|
|
850
850
|
keybinding: {
|
|
851
851
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.DownArrow,
|
|
852
852
|
when: TerminalContextKeys.focus,
|
|
@@ -860,7 +860,7 @@ function registerTerminalActions() {
|
|
|
860
860
|
});
|
|
861
861
|
registerActiveXtermAction({
|
|
862
862
|
id: TerminalCommandId.SelectToPreviousLine,
|
|
863
|
-
title: ( localize2(
|
|
863
|
+
title: ( localize2(13055, "Select to Previous Line")),
|
|
864
864
|
precondition: sharedWhenClause.terminalAvailable,
|
|
865
865
|
run: async (xterm, _, instance) => {
|
|
866
866
|
xterm.markTracker.selectToPreviousLine();
|
|
@@ -869,7 +869,7 @@ function registerTerminalActions() {
|
|
|
869
869
|
});
|
|
870
870
|
registerActiveXtermAction({
|
|
871
871
|
id: TerminalCommandId.SelectToNextLine,
|
|
872
|
-
title: ( localize2(
|
|
872
|
+
title: ( localize2(13056, "Select to Next Line")),
|
|
873
873
|
precondition: sharedWhenClause.terminalAvailable,
|
|
874
874
|
run: async (xterm, _, instance) => {
|
|
875
875
|
xterm.markTracker.selectToNextLine();
|
|
@@ -888,7 +888,7 @@ function registerTerminalActions() {
|
|
|
888
888
|
required: ["cwd"],
|
|
889
889
|
properties: {
|
|
890
890
|
cwd: {
|
|
891
|
-
description: ( localize(
|
|
891
|
+
description: ( localize(13057, "The directory to start the terminal at")),
|
|
892
892
|
type: "string"
|
|
893
893
|
}
|
|
894
894
|
}
|
|
@@ -919,7 +919,7 @@ function registerTerminalActions() {
|
|
|
919
919
|
required: ["name"],
|
|
920
920
|
properties: {
|
|
921
921
|
name: {
|
|
922
|
-
description: ( localize(
|
|
922
|
+
description: ( localize(13058, "The new name for the terminal")),
|
|
923
923
|
type: "string",
|
|
924
924
|
minLength: 1
|
|
925
925
|
}
|
|
@@ -933,7 +933,7 @@ function registerTerminalActions() {
|
|
|
933
933
|
const notificationService = accessor.get(INotificationService);
|
|
934
934
|
const name = args ? toOptionalString(args.name) : undefined;
|
|
935
935
|
if (!name) {
|
|
936
|
-
notificationService.warn(( localize(
|
|
936
|
+
notificationService.warn(( localize(13059, "No name argument provided")));
|
|
937
937
|
return;
|
|
938
938
|
}
|
|
939
939
|
activeInstance.rename(name);
|
|
@@ -941,7 +941,7 @@ function registerTerminalActions() {
|
|
|
941
941
|
});
|
|
942
942
|
registerActiveInstanceAction({
|
|
943
943
|
id: TerminalCommandId.Relaunch,
|
|
944
|
-
title: ( localize2(
|
|
944
|
+
title: ( localize2(13060, "Relaunch Active Terminal")),
|
|
945
945
|
run: activeInstance => activeInstance.relaunch()
|
|
946
946
|
});
|
|
947
947
|
registerTerminalAction({
|
|
@@ -1033,7 +1033,7 @@ function registerTerminalActions() {
|
|
|
1033
1033
|
});
|
|
1034
1034
|
registerTerminalAction({
|
|
1035
1035
|
id: TerminalCommandId.JoinActiveTab,
|
|
1036
|
-
title: ( localize2(
|
|
1036
|
+
title: ( localize2(13061, "Join Terminals")),
|
|
1037
1037
|
precondition: ( ContextKeyExpr.and(sharedWhenClause.terminalAvailable, ( TerminalContextKeys.tabsSingularSelection.toNegated()))),
|
|
1038
1038
|
run: async (c, accessor) => {
|
|
1039
1039
|
const instances = getSelectedViewInstances(accessor);
|
|
@@ -1044,7 +1044,7 @@ function registerTerminalActions() {
|
|
|
1044
1044
|
});
|
|
1045
1045
|
registerTerminalAction({
|
|
1046
1046
|
id: TerminalCommandId.Join,
|
|
1047
|
-
title: ( localize2(
|
|
1047
|
+
title: ( localize2(13062, "Join Terminals...")),
|
|
1048
1048
|
precondition: sharedWhenClause.terminalAvailable,
|
|
1049
1049
|
run: async (c, accessor) => {
|
|
1050
1050
|
const themeService = accessor.get(IThemeService);
|
|
@@ -1052,7 +1052,7 @@ function registerTerminalActions() {
|
|
|
1052
1052
|
const quickInputService = accessor.get(IQuickInputService);
|
|
1053
1053
|
const picks = [];
|
|
1054
1054
|
if (c.groupService.instances.length <= 1) {
|
|
1055
|
-
notificationService.warn(( localize(
|
|
1055
|
+
notificationService.warn(( localize(13063, "Insufficient terminals for the join action")));
|
|
1056
1056
|
return;
|
|
1057
1057
|
}
|
|
1058
1058
|
const otherInstances = c.groupService.instances.filter(i => i.instanceId !== c.groupService.activeInstance?.instanceId);
|
|
@@ -1078,7 +1078,7 @@ function registerTerminalActions() {
|
|
|
1078
1078
|
}
|
|
1079
1079
|
}
|
|
1080
1080
|
if (picks.length === 0) {
|
|
1081
|
-
notificationService.warn(( localize(
|
|
1081
|
+
notificationService.warn(( localize(13064, "All terminals are joined already")));
|
|
1082
1082
|
return;
|
|
1083
1083
|
}
|
|
1084
1084
|
const result = await quickInputService.pick(picks, {});
|
|
@@ -1089,7 +1089,7 @@ function registerTerminalActions() {
|
|
|
1089
1089
|
});
|
|
1090
1090
|
registerActiveInstanceAction({
|
|
1091
1091
|
id: TerminalCommandId.SplitInActiveWorkspace,
|
|
1092
|
-
title: ( localize2(
|
|
1092
|
+
title: ( localize2(13065, "Split Terminal (In Active Workspace)")),
|
|
1093
1093
|
run: async (instance, c) => {
|
|
1094
1094
|
const newInstance = await c.service.createTerminal({
|
|
1095
1095
|
location: {
|
|
@@ -1103,7 +1103,7 @@ function registerTerminalActions() {
|
|
|
1103
1103
|
});
|
|
1104
1104
|
registerActiveXtermAction({
|
|
1105
1105
|
id: TerminalCommandId.SelectAll,
|
|
1106
|
-
title: ( localize2(
|
|
1106
|
+
title: ( localize2(13066, "Select All")),
|
|
1107
1107
|
precondition: sharedWhenClause.terminalAvailable,
|
|
1108
1108
|
keybinding: [{
|
|
1109
1109
|
primary: 0,
|
|
@@ -1117,7 +1117,7 @@ function registerTerminalActions() {
|
|
|
1117
1117
|
});
|
|
1118
1118
|
registerTerminalAction({
|
|
1119
1119
|
id: TerminalCommandId.New,
|
|
1120
|
-
title: ( localize2(
|
|
1120
|
+
title: ( localize2(13067, "Create New Terminal")),
|
|
1121
1121
|
precondition: ( ContextKeyExpr.or(
|
|
1122
1122
|
TerminalContextKeys.processSupported,
|
|
1123
1123
|
TerminalContextKeys.webExtensionContributedProfile
|
|
@@ -1184,7 +1184,7 @@ function registerTerminalActions() {
|
|
|
1184
1184
|
}
|
|
1185
1185
|
registerTerminalAction({
|
|
1186
1186
|
id: TerminalCommandId.Kill,
|
|
1187
|
-
title: ( localize2(
|
|
1187
|
+
title: ( localize2(13068, "Kill the Active Terminal Instance")),
|
|
1188
1188
|
precondition: ( ContextKeyExpr.or(sharedWhenClause.terminalAvailable, TerminalContextKeys.isOpen)),
|
|
1189
1189
|
icon: killTerminalIcon,
|
|
1190
1190
|
run: async c => killInstance(c, c.groupService.activeInstance)
|
|
@@ -1198,7 +1198,7 @@ function registerTerminalActions() {
|
|
|
1198
1198
|
});
|
|
1199
1199
|
registerTerminalAction({
|
|
1200
1200
|
id: TerminalCommandId.KillAll,
|
|
1201
|
-
title: ( localize2(
|
|
1201
|
+
title: ( localize2(13069, "Kill All Terminals")),
|
|
1202
1202
|
precondition: ( ContextKeyExpr.or(sharedWhenClause.terminalAvailable, TerminalContextKeys.isOpen)),
|
|
1203
1203
|
icon: Codicon.trash,
|
|
1204
1204
|
run: async c => {
|
|
@@ -1211,7 +1211,7 @@ function registerTerminalActions() {
|
|
|
1211
1211
|
});
|
|
1212
1212
|
registerTerminalAction({
|
|
1213
1213
|
id: TerminalCommandId.KillEditor,
|
|
1214
|
-
title: ( localize2(
|
|
1214
|
+
title: ( localize2(13070, "Kill the Active Terminal in Editor Area")),
|
|
1215
1215
|
precondition: sharedWhenClause.terminalAvailable,
|
|
1216
1216
|
keybinding: {
|
|
1217
1217
|
primary: KeyMod.CtrlCmd | KeyCode.KeyW,
|
|
@@ -1260,7 +1260,7 @@ function registerTerminalActions() {
|
|
|
1260
1260
|
});
|
|
1261
1261
|
registerActiveInstanceAction({
|
|
1262
1262
|
id: TerminalCommandId.Clear,
|
|
1263
|
-
title: ( localize2(
|
|
1263
|
+
title: ( localize2(13071, "Clear")),
|
|
1264
1264
|
precondition: sharedWhenClause.terminalAvailable,
|
|
1265
1265
|
keybinding: [{
|
|
1266
1266
|
primary: 0,
|
|
@@ -1274,12 +1274,12 @@ function registerTerminalActions() {
|
|
|
1274
1274
|
});
|
|
1275
1275
|
registerTerminalAction({
|
|
1276
1276
|
id: TerminalCommandId.SelectDefaultProfile,
|
|
1277
|
-
title: ( localize2(
|
|
1277
|
+
title: ( localize2(13072, "Select Default Profile")),
|
|
1278
1278
|
run: c => c.service.showProfileQuickPick("setDefault")
|
|
1279
1279
|
});
|
|
1280
1280
|
registerTerminalAction({
|
|
1281
1281
|
id: TerminalCommandId.ConfigureTerminalSettings,
|
|
1282
|
-
title: ( localize2(
|
|
1282
|
+
title: ( localize2(13073, "Configure Terminal Settings")),
|
|
1283
1283
|
precondition: sharedWhenClause.terminalAvailable,
|
|
1284
1284
|
run: (c, accessor) => accessor.get(IPreferencesService).openSettings({
|
|
1285
1285
|
jsonEditor: false,
|
|
@@ -1288,7 +1288,7 @@ function registerTerminalActions() {
|
|
|
1288
1288
|
});
|
|
1289
1289
|
registerActiveInstanceAction({
|
|
1290
1290
|
id: TerminalCommandId.SetDimensions,
|
|
1291
|
-
title: ( localize2(
|
|
1291
|
+
title: ( localize2(13074, "Set Fixed Dimensions")),
|
|
1292
1292
|
precondition: sharedWhenClause.terminalAvailable_and_opened,
|
|
1293
1293
|
run: activeInstance => activeInstance.setFixedDimensions()
|
|
1294
1294
|
});
|
|
@@ -1305,7 +1305,7 @@ function registerTerminalActions() {
|
|
|
1305
1305
|
});
|
|
1306
1306
|
registerTerminalAction({
|
|
1307
1307
|
id: TerminalCommandId.SwitchTerminal,
|
|
1308
|
-
title: ( localize2(
|
|
1308
|
+
title: ( localize2(13075, "Switch Terminal")),
|
|
1309
1309
|
precondition: sharedWhenClause.terminalAvailable,
|
|
1310
1310
|
run: async (c, accessor, args) => {
|
|
1311
1311
|
const item = toOptionalString(args);
|
|
@@ -1388,7 +1388,7 @@ function getSelectedViewInstances(accessor, args, args2) {
|
|
|
1388
1388
|
function validateTerminalName(name) {
|
|
1389
1389
|
if (!name || name.trim().length === 0) {
|
|
1390
1390
|
return {
|
|
1391
|
-
content: ( localize(
|
|
1391
|
+
content: ( localize(13076, "Providing no name will reset it to the default value")),
|
|
1392
1392
|
severity: Severity.Info
|
|
1393
1393
|
};
|
|
1394
1394
|
}
|
|
@@ -1414,7 +1414,7 @@ function refreshTerminalActions(detectedProfiles) {
|
|
|
1414
1414
|
constructor() {
|
|
1415
1415
|
super({
|
|
1416
1416
|
id: TerminalCommandId.NewWithProfile,
|
|
1417
|
-
title: ( localize2(
|
|
1417
|
+
title: ( localize2(13077, "Create New Terminal (With Profile)")),
|
|
1418
1418
|
f1: true,
|
|
1419
1419
|
precondition: ( ContextKeyExpr.or(
|
|
1420
1420
|
TerminalContextKeys.processSupported,
|
|
@@ -1429,16 +1429,16 @@ function refreshTerminalActions(detectedProfiles) {
|
|
|
1429
1429
|
required: ["profileName"],
|
|
1430
1430
|
properties: {
|
|
1431
1431
|
profileName: {
|
|
1432
|
-
description: ( localize(
|
|
1432
|
+
description: ( localize(13078, "The name of the profile to create")),
|
|
1433
1433
|
type: "string",
|
|
1434
1434
|
enum: profileEnum.values,
|
|
1435
1435
|
markdownEnumDescriptions: profileEnum.markdownDescriptions
|
|
1436
1436
|
},
|
|
1437
1437
|
location: {
|
|
1438
|
-
description: ( localize(
|
|
1438
|
+
description: ( localize(13079, "Where to create the terminal")),
|
|
1439
1439
|
type: "string",
|
|
1440
1440
|
enum: ["view", "editor"],
|
|
1441
|
-
enumDescriptions: [( localize(
|
|
1441
|
+
enumDescriptions: [( localize(13080, "Create the terminal in the terminal view")), ( localize(13081, "Create the terminal in the editor"))]
|
|
1442
1442
|
}
|
|
1443
1443
|
}
|
|
1444
1444
|
}
|
|
@@ -1500,7 +1500,7 @@ function refreshTerminalActions(detectedProfiles) {
|
|
|
1500
1500
|
const folders = workspaceContextService.getWorkspace().folders;
|
|
1501
1501
|
if (folders.length > 1) {
|
|
1502
1502
|
const options = {
|
|
1503
|
-
placeHolder: ( localize(
|
|
1503
|
+
placeHolder: ( localize(13026, "Select current working directory for new terminal"))
|
|
1504
1504
|
};
|
|
1505
1505
|
const workspace = await commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND_ID, [options]);
|
|
1506
1506
|
if (!workspace) {
|
|
@@ -1546,7 +1546,7 @@ async function pickTerminalCwd(accessor, cancel) {
|
|
|
1546
1546
|
}
|
|
1547
1547
|
const folderPicks = ( shrinkedPairs.map(pair => {
|
|
1548
1548
|
const label = pair.folder.name;
|
|
1549
|
-
const description = pair.isOverridden ? ( localize(
|
|
1549
|
+
const description = pair.isOverridden ? ( localize(13082, "(Overridden) {0}", labelService.getUriLabel(pair.cwd, {
|
|
1550
1550
|
relative: !pair.isAbsolute
|
|
1551
1551
|
}))) : labelService.getUriLabel(dirname(pair.cwd), {
|
|
1552
1552
|
relative: true
|
|
@@ -1559,7 +1559,7 @@ async function pickTerminalCwd(accessor, cancel) {
|
|
|
1559
1559
|
};
|
|
1560
1560
|
}));
|
|
1561
1561
|
const options = {
|
|
1562
|
-
placeHolder: ( localize(
|
|
1562
|
+
placeHolder: ( localize(13026, "Select current working directory for new terminal")),
|
|
1563
1563
|
matchOnDescription: true,
|
|
1564
1564
|
canPickMany: false
|
|
1565
1565
|
};
|
|
@@ -1626,7 +1626,7 @@ async function renameWithQuickPick(c, accessor, resource) {
|
|
|
1626
1626
|
if (instance) {
|
|
1627
1627
|
const title = await accessor.get(IQuickInputService).input({
|
|
1628
1628
|
value: instance.title,
|
|
1629
|
-
prompt: ( localize(
|
|
1629
|
+
prompt: ( localize(13083, "Enter terminal name"))
|
|
1630
1630
|
});
|
|
1631
1631
|
if (title) {
|
|
1632
1632
|
instance.rename(title);
|
|
@@ -92,7 +92,6 @@ export declare class TerminalInstance extends Disposable implements ITerminalIns
|
|
|
92
92
|
private _latestXtermParseData;
|
|
93
93
|
private _isExiting;
|
|
94
94
|
private _hadFocusOnExit;
|
|
95
|
-
private _isVisible;
|
|
96
95
|
private _exitCode;
|
|
97
96
|
private _exitReason;
|
|
98
97
|
private _skipTerminalCommands;
|
|
@@ -150,6 +149,8 @@ export declare class TerminalInstance extends Disposable implements ITerminalIns
|
|
|
150
149
|
disableLayout: boolean;
|
|
151
150
|
get waitOnExit(): ITerminalInstance["waitOnExit"];
|
|
152
151
|
set waitOnExit(value: ITerminalInstance["waitOnExit"]);
|
|
152
|
+
private _isVisible;
|
|
153
|
+
get isVisible(): boolean;
|
|
153
154
|
private _targetRef;
|
|
154
155
|
get targetRef(): IReference<TerminalLocation | undefined>;
|
|
155
156
|
get target(): TerminalLocation | undefined;
|
|
@@ -13,8 +13,8 @@ import { debounce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/dec
|
|
|
13
13
|
import { onUnexpectedError, BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
14
14
|
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
15
15
|
import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
16
|
-
import { template } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
|
|
17
|
-
import { Disposable, MutableDisposable, ImmortalReference, DisposableMap,
|
|
16
|
+
import { normalizeDriveLetter, template } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
|
|
17
|
+
import { Disposable, MutableDisposable, ImmortalReference, DisposableMap, DisposableStore, toDisposable, dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
18
18
|
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
19
19
|
import { win32, basename, resolve } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
20
20
|
import { OS, isMacintosh, isWindows, OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
@@ -150,6 +150,9 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
150
150
|
set waitOnExit(value) {
|
|
151
151
|
this._shellLaunchConfig.waitOnExit = value;
|
|
152
152
|
}
|
|
153
|
+
get isVisible() {
|
|
154
|
+
return this._isVisible;
|
|
155
|
+
}
|
|
153
156
|
get targetRef() {
|
|
154
157
|
return this._targetRef;
|
|
155
158
|
}
|
|
@@ -520,18 +523,20 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
520
523
|
case TerminalCapability.CommandDetection:
|
|
521
524
|
{
|
|
522
525
|
e.capability.promptInputModel.setShellType(this.shellType);
|
|
523
|
-
|
|
526
|
+
const store = ( new DisposableStore());
|
|
527
|
+
store.add(Event.any(
|
|
524
528
|
e.capability.promptInputModel.onDidStartInput,
|
|
525
529
|
e.capability.promptInputModel.onDidChangeInput,
|
|
526
530
|
e.capability.promptInputModel.onDidFinishInput
|
|
527
531
|
)(refreshInfo));
|
|
528
|
-
|
|
532
|
+
store.add(e.capability.onCommandExecuted(async command => {
|
|
529
533
|
if (!command.id && command.command) {
|
|
530
534
|
const commandId = generateUuid();
|
|
531
535
|
this.xterm?.shellIntegration.setNextCommandId(command.command, commandId);
|
|
532
536
|
await this._processManager.setNextCommandId(command.command, commandId);
|
|
533
537
|
}
|
|
534
538
|
}));
|
|
539
|
+
capabilityListeners.set(e.id, store);
|
|
535
540
|
break;
|
|
536
541
|
}
|
|
537
542
|
case TerminalCapability.PromptTypeDetection:
|
|
@@ -551,7 +556,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
551
556
|
this._terminalProfileResolverService.resolveIcon(this._shellLaunchConfig, OS);
|
|
552
557
|
}
|
|
553
558
|
this._icon = _shellLaunchConfig.attachPersistentProcess?.icon || _shellLaunchConfig.icon;
|
|
554
|
-
if (this.shellLaunchConfig.customPtyImplementation) {
|
|
559
|
+
if (this.shellLaunchConfig.customPtyImplementation && !this._shellLaunchConfig.titleTemplate) {
|
|
555
560
|
this._setTitle(this._shellLaunchConfig.name, TitleEventSource.Api);
|
|
556
561
|
}
|
|
557
562
|
this.statusList = this._register(this._scopedInstantiationService.createInstance(TerminalStatusList));
|
|
@@ -765,13 +770,13 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
765
770
|
}
|
|
766
771
|
xtermConstructor = Promises.withAsyncBody(async resolve => {
|
|
767
772
|
const Terminal = (await import('@xterm/xterm')).Terminal;
|
|
768
|
-
Terminal.strings.promptLabel = ( localize(
|
|
773
|
+
Terminal.strings.promptLabel = ( localize(13101, "Terminal input"));
|
|
769
774
|
Terminal.strings.tooMuchOutput = keybinding ? ( localize(
|
|
770
|
-
|
|
775
|
+
13102,
|
|
771
776
|
"Use the accessible buffer {0} to manually review output",
|
|
772
777
|
keybinding.getLabel()
|
|
773
778
|
)) : ( localize(
|
|
774
|
-
|
|
779
|
+
13103,
|
|
775
780
|
"Use the Terminal: Focus Accessible Buffer command to manually review output"
|
|
776
781
|
));
|
|
777
782
|
resolve(Terminal);
|
|
@@ -824,7 +829,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
824
829
|
id: TerminalStatus.Bell,
|
|
825
830
|
severity: Severity.Warning,
|
|
826
831
|
icon: Codicon.bell,
|
|
827
|
-
tooltip: ( localize(
|
|
832
|
+
tooltip: ( localize(13104, "Bell"))
|
|
828
833
|
}, this._terminalConfigurationService.config.bellDuration);
|
|
829
834
|
}
|
|
830
835
|
this._accessibilitySignalService.playSignal(AccessibilitySignal.terminalBell);
|
|
@@ -901,7 +906,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
901
906
|
if (!instance.xterm) {
|
|
902
907
|
return;
|
|
903
908
|
}
|
|
904
|
-
const cmdDetectionType = (instance.capabilities.get(TerminalCapability.CommandDetection)?.hasRichCommandDetection ? ( localize(
|
|
909
|
+
const cmdDetectionType = (instance.capabilities.get(TerminalCapability.CommandDetection)?.hasRichCommandDetection ? ( localize(13105, "Rich")) : ( instance.capabilities.has(TerminalCapability.CommandDetection)) ? ( localize(13106, "Basic")) : instance.usedShellIntegrationInjection ? ( localize(13107, "Injection failed to activate")) : ( localize(13108, "No")));
|
|
905
910
|
const detailedAdditions = [];
|
|
906
911
|
if (instance.shellType) {
|
|
907
912
|
detailedAdditions.push(`Shell type: \`${instance.shellType}\``);
|
|
@@ -926,8 +931,8 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
926
931
|
instance.statusList.add({
|
|
927
932
|
id: TerminalStatus.ShellIntegrationInfo,
|
|
928
933
|
severity: Severity.Info,
|
|
929
|
-
tooltip: `${( localize(
|
|
930
|
-
detailedTooltip: `${( localize(
|
|
934
|
+
tooltip: `${( localize(13109, "Shell integration"))}: ${cmdDetectionType}`,
|
|
935
|
+
detailedTooltip: `${( localize(13109, "Shell integration"))}: ${cmdDetectionType}${detailedAdditionsString}`
|
|
931
936
|
});
|
|
932
937
|
}
|
|
933
938
|
async runCommand(commandLine, shouldExecute, commandId) {
|
|
@@ -1312,7 +1317,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1312
1317
|
}
|
|
1313
1318
|
}));
|
|
1314
1319
|
}
|
|
1315
|
-
if (this._shellLaunchConfig.name) {
|
|
1320
|
+
if (this._shellLaunchConfig.name && !this._shellLaunchConfig.titleTemplate) {
|
|
1316
1321
|
this._setTitle(this._shellLaunchConfig.name, TitleEventSource.Api);
|
|
1317
1322
|
} else {
|
|
1318
1323
|
setTimeout(() => {
|
|
@@ -1322,7 +1327,11 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1322
1327
|
}
|
|
1323
1328
|
});
|
|
1324
1329
|
});
|
|
1325
|
-
|
|
1330
|
+
if (this._shellLaunchConfig.titleTemplate && this._shellLaunchConfig.name) {
|
|
1331
|
+
this._setTitle(this._shellLaunchConfig.name, TitleEventSource.Process);
|
|
1332
|
+
} else {
|
|
1333
|
+
this._setTitle(this._shellLaunchConfig.executable, TitleEventSource.Process);
|
|
1334
|
+
}
|
|
1326
1335
|
}
|
|
1327
1336
|
}));
|
|
1328
1337
|
this._register(processManager.onProcessExit(exitCode => this._onProcessExit(exitCode)));
|
|
@@ -1385,7 +1394,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1385
1394
|
id: TerminalStatus.Disconnected,
|
|
1386
1395
|
severity: Severity.Error,
|
|
1387
1396
|
icon: Codicon.debugDisconnect,
|
|
1388
|
-
tooltip: ( localize(
|
|
1397
|
+
tooltip: ( localize(13110, "Lost connection to process"))
|
|
1389
1398
|
});
|
|
1390
1399
|
}));
|
|
1391
1400
|
this._register(processManager.onPtyReconnect(() => {
|
|
@@ -1403,13 +1412,13 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1403
1412
|
const trusted = await this._trust();
|
|
1404
1413
|
if (!trusted && !this.remoteAuthority && !this._workbenchEnvironmentService.remoteAuthority) {
|
|
1405
1414
|
this._onProcessExit({
|
|
1406
|
-
message: ( localize(
|
|
1415
|
+
message: ( localize(13111, "Cannot launch a terminal process in an untrusted workspace"))
|
|
1407
1416
|
});
|
|
1408
|
-
} else if (this._workspaceContextService.getWorkspace().folders.length === 0 && this._cwd && this._userHome && this._cwd !== this._userHome) {
|
|
1417
|
+
} else if (this._workspaceContextService.getWorkspace().folders.length === 0 && this._cwd && this._userHome && normalizeDriveLetter(this._cwd) !== normalizeDriveLetter(this._userHome)) {
|
|
1409
1418
|
this._onProcessExit({
|
|
1410
1419
|
message: ( localize(
|
|
1411
|
-
|
|
1412
|
-
"Cannot launch a terminal process in an
|
|
1420
|
+
13112,
|
|
1421
|
+
"Cannot launch a terminal process in an empty workspace with cwd {0} different from userHome {1}",
|
|
1413
1422
|
this._cwd,
|
|
1414
1423
|
this._userHome
|
|
1415
1424
|
))
|
|
@@ -1578,10 +1587,10 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1578
1587
|
id: TerminalStatus.ShellIntegrationAttentionNeeded,
|
|
1579
1588
|
severity: Severity.Warning,
|
|
1580
1589
|
icon: Codicon.warning,
|
|
1581
|
-
tooltip: `${exitMessage} ` + ( localize(
|
|
1590
|
+
tooltip: `${exitMessage} ` + ( localize(13113, "Disabling shell integration in user settings might help.")),
|
|
1582
1591
|
hoverActions: [{
|
|
1583
1592
|
commandId: TerminalCommandId.ShellIntegrationLearnMore,
|
|
1584
|
-
label: ( localize(
|
|
1593
|
+
label: ( localize(13114, "Learn more about shell integration")),
|
|
1585
1594
|
run: () => {
|
|
1586
1595
|
this._openerService.open(
|
|
1587
1596
|
"https://code.visualstudio.com/docs/editor/integrated-terminal#_shell-integration"
|
|
@@ -1589,7 +1598,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1589
1598
|
}
|
|
1590
1599
|
}, {
|
|
1591
1600
|
commandId: "workbench.action.openSettings",
|
|
1592
|
-
label: ( localize(
|
|
1601
|
+
label: ( localize(13115, "Open user settings")),
|
|
1593
1602
|
run: () => {
|
|
1594
1603
|
this._commandService.executeCommand(
|
|
1595
1604
|
"workbench.action.openSettings",
|
|
@@ -1706,7 +1715,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1706
1715
|
return true;
|
|
1707
1716
|
}
|
|
1708
1717
|
const trustRequest = await this._workspaceTrustRequestService.requestWorkspaceTrust({
|
|
1709
|
-
message: ( localize(
|
|
1718
|
+
message: ( localize(13116, "Creating a terminal process requires executing code"))
|
|
1710
1719
|
});
|
|
1711
1720
|
return trustRequest === true;
|
|
1712
1721
|
}
|
|
@@ -1809,7 +1818,17 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1809
1818
|
this._resizeDebouncer.resize(cols, rows, immediate ?? false);
|
|
1810
1819
|
}
|
|
1811
1820
|
async _updatePtyDimensions(rawXterm) {
|
|
1812
|
-
|
|
1821
|
+
const pixelWidth = rawXterm.dimensions?.css.canvas.width;
|
|
1822
|
+
const pixelHeight = rawXterm.dimensions?.css.canvas.height;
|
|
1823
|
+
const roundedPixelWidth = pixelWidth ? Math.round(pixelWidth) : undefined;
|
|
1824
|
+
const roundedPixelHeight = pixelHeight ? Math.round(pixelHeight) : undefined;
|
|
1825
|
+
await this._processManager.setDimensions(
|
|
1826
|
+
rawXterm.cols,
|
|
1827
|
+
rawXterm.rows,
|
|
1828
|
+
undefined,
|
|
1829
|
+
roundedPixelWidth,
|
|
1830
|
+
roundedPixelHeight
|
|
1831
|
+
);
|
|
1813
1832
|
}
|
|
1814
1833
|
setShellType(shellType) {
|
|
1815
1834
|
if (this._shellType === shellType) {
|
|
@@ -1827,21 +1846,21 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1827
1846
|
const labelParts = [];
|
|
1828
1847
|
if (xterm && xterm.textarea) {
|
|
1829
1848
|
if (title && title.length > 0) {
|
|
1830
|
-
labelParts.push(( localize(
|
|
1849
|
+
labelParts.push(( localize(13117, "Terminal {0}, {1}", terminalId, title)));
|
|
1831
1850
|
} else {
|
|
1832
|
-
labelParts.push(( localize(
|
|
1851
|
+
labelParts.push(( localize(13118, "Terminal {0}", terminalId)));
|
|
1833
1852
|
}
|
|
1834
1853
|
const screenReaderOptimized = this._accessibilityService.isScreenReaderOptimized();
|
|
1835
1854
|
if (!screenReaderOptimized) {
|
|
1836
1855
|
labelParts.push(( localize(
|
|
1837
|
-
|
|
1856
|
+
13119,
|
|
1838
1857
|
"Run the command: Toggle Screen Reader Accessibility Mode for an optimized screen reader experience"
|
|
1839
1858
|
)));
|
|
1840
1859
|
}
|
|
1841
1860
|
const accessibilityHelpKeybinding = this._keybindingService.lookupKeybinding(AccessibilityCommandId.OpenAccessibilityHelp)?.getLabel();
|
|
1842
1861
|
if (this._configurationService.getValue(AccessibilityVerbositySettingId.Terminal) && accessibilityHelpKeybinding) {
|
|
1843
1862
|
labelParts.push(( localize(
|
|
1844
|
-
|
|
1863
|
+
13120,
|
|
1845
1864
|
"Use {0} for terminal accessibility help",
|
|
1846
1865
|
accessibilityHelpKeybinding
|
|
1847
1866
|
)));
|
|
@@ -1895,7 +1914,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1895
1914
|
}
|
|
1896
1915
|
async setFixedDimensions() {
|
|
1897
1916
|
const cols = await this._quickInputService.input({
|
|
1898
|
-
title: ( localize(
|
|
1917
|
+
title: ( localize(13121, "Set Fixed Dimensions: Column")),
|
|
1899
1918
|
placeHolder: "Enter a number of columns or leave empty for automatic width",
|
|
1900
1919
|
validateInput: async text => text.length > 0 && !text.match(/^\d+$/) ? {
|
|
1901
1920
|
content: "Enter a number or leave empty size automatically",
|
|
@@ -1909,7 +1928,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
1909
1928
|
this._labelComputer?.refreshLabel(this);
|
|
1910
1929
|
this._terminalHasFixedWidth.set(!!this._fixedCols);
|
|
1911
1930
|
const rows = await this._quickInputService.input({
|
|
1912
|
-
title: ( localize(
|
|
1931
|
+
title: ( localize(13122, "Set Fixed Dimensions: Row")),
|
|
1913
1932
|
placeHolder: "Enter a number of rows or leave empty for automatic height",
|
|
1914
1933
|
validateInput: async text => text.length > 0 && !text.match(/^\d+$/) ? {
|
|
1915
1934
|
content: "Enter a number or leave empty size automatically",
|
|
@@ -2019,7 +2038,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
2019
2038
|
_onEnvironmentVariableInfoChanged(info) {
|
|
2020
2039
|
if (info.requiresAction) {
|
|
2021
2040
|
this.xterm?.raw.textarea?.setAttribute("aria-label", ( localize(
|
|
2022
|
-
|
|
2041
|
+
13123,
|
|
2023
2042
|
"Terminal {0} environment is stale, run the 'Show Environment Information' command for more information",
|
|
2024
2043
|
this._instanceId
|
|
2025
2044
|
)));
|
|
@@ -2175,7 +2194,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
|
|
|
2175
2194
|
disposables.push(quickPick);
|
|
2176
2195
|
quickPick.items = items;
|
|
2177
2196
|
quickPick.matchOnDescription = true;
|
|
2178
|
-
quickPick.placeholder = ( localize(
|
|
2197
|
+
quickPick.placeholder = ( localize(13124, "Select a color for the terminal"));
|
|
2179
2198
|
quickPick.show();
|
|
2180
2199
|
const result = await ( new Promise(r => {
|
|
2181
2200
|
disposables.push(quickPick.onDidHide(() => r(undefined)));
|
|
@@ -2388,12 +2407,8 @@ let TerminalLabelComputer = class TerminalLabelComputer extends Disposable {
|
|
|
2388
2407
|
this.onDidChangeLabel = this._onDidChangeLabel.event;
|
|
2389
2408
|
}
|
|
2390
2409
|
refreshLabel(instance, reset) {
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
this._terminalConfigurationService.config.tabs.title,
|
|
2394
|
-
TerminalLabelType.Title,
|
|
2395
|
-
reset
|
|
2396
|
-
);
|
|
2410
|
+
const titleTemplate = instance.shellLaunchConfig.titleTemplate ?? this._terminalConfigurationService.config.tabs.title;
|
|
2411
|
+
this._title = this.computeLabel(instance, titleTemplate, TerminalLabelType.Title, reset);
|
|
2397
2412
|
this._description = this.computeLabel(
|
|
2398
2413
|
instance,
|
|
2399
2414
|
this._terminalConfigurationService.config.tabs.description,
|
|
@@ -2507,24 +2522,24 @@ function parseExitResult(exitCodeOrError, shellLaunchConfig, processState, initi
|
|
|
2507
2522
|
if (processState === ProcessState.KilledDuringLaunch) {
|
|
2508
2523
|
if (commandLine) {
|
|
2509
2524
|
message = ( localize(
|
|
2510
|
-
|
|
2525
|
+
13125,
|
|
2511
2526
|
"The terminal process \"{0}\" failed to launch (exit code: {1}).",
|
|
2512
2527
|
commandLine,
|
|
2513
2528
|
code
|
|
2514
2529
|
));
|
|
2515
2530
|
} else {
|
|
2516
|
-
message = ( localize(
|
|
2531
|
+
message = ( localize(13126, "The terminal process failed to launch (exit code: {0}).", code));
|
|
2517
2532
|
}
|
|
2518
2533
|
} else {
|
|
2519
2534
|
if (commandLine) {
|
|
2520
2535
|
message = ( localize(
|
|
2521
|
-
|
|
2536
|
+
13127,
|
|
2522
2537
|
"The terminal process \"{0}\" terminated with exit code: {1}.",
|
|
2523
2538
|
commandLine,
|
|
2524
2539
|
code
|
|
2525
2540
|
));
|
|
2526
2541
|
} else {
|
|
2527
|
-
message = ( localize(
|
|
2542
|
+
message = ( localize(13128, "The terminal process terminated with exit code: {0}.", code));
|
|
2528
2543
|
}
|
|
2529
2544
|
}
|
|
2530
2545
|
break;
|
|
@@ -2550,7 +2565,7 @@ function parseExitResult(exitCodeOrError, shellLaunchConfig, processState, initi
|
|
|
2550
2565
|
break;
|
|
2551
2566
|
}
|
|
2552
2567
|
}
|
|
2553
|
-
message = ( localize(
|
|
2568
|
+
message = ( localize(13129, "The terminal process failed to launch: {0}.", innerMessage));
|
|
2554
2569
|
break;
|
|
2555
2570
|
}
|
|
2556
2571
|
}
|
|
@@ -2565,13 +2580,13 @@ let TerminalInstanceColorProvider = class TerminalInstanceColorProvider {
|
|
|
2565
2580
|
this._viewDescriptorService = _viewDescriptorService;
|
|
2566
2581
|
}
|
|
2567
2582
|
getBackgroundColor(theme) {
|
|
2583
|
+
if (this._target.object === TerminalLocation.Editor) {
|
|
2584
|
+
return theme.getColor(editorBackground);
|
|
2585
|
+
}
|
|
2568
2586
|
const terminalBackground = theme.getColor(TERMINAL_BACKGROUND_COLOR);
|
|
2569
2587
|
if (terminalBackground) {
|
|
2570
2588
|
return terminalBackground;
|
|
2571
2589
|
}
|
|
2572
|
-
if (this._target.object === TerminalLocation.Editor) {
|
|
2573
|
-
return theme.getColor(editorBackground);
|
|
2574
|
-
}
|
|
2575
2590
|
const location = this._viewDescriptorService.getViewLocationById(TERMINAL_VIEW_ID);
|
|
2576
2591
|
if (location === ViewContainerLocation.Panel) {
|
|
2577
2592
|
return theme.getColor(PANEL_BACKGROUND);
|
|
@@ -123,9 +123,9 @@ export declare class TerminalProcessManager extends Disposable implements ITermi
|
|
|
123
123
|
private _launchLocalProcess;
|
|
124
124
|
private _setupPtyHostListeners;
|
|
125
125
|
getBackendOS(): Promise<OperatingSystem>;
|
|
126
|
-
setDimensions(cols: number, rows: number): Promise<void>;
|
|
127
|
-
setDimensions(cols: number, rows: number, sync: false): Promise<void>;
|
|
128
|
-
setDimensions(cols: number, rows: number, sync: true): void;
|
|
126
|
+
setDimensions(cols: number, rows: number, sync?: undefined, pixelWidth?: number, pixelHeight?: number): Promise<void>;
|
|
127
|
+
setDimensions(cols: number, rows: number, sync: false, pixelWidth?: number, pixelHeight?: number): Promise<void>;
|
|
128
|
+
setDimensions(cols: number, rows: number, sync: true, pixelWidth?: number, pixelHeight?: number): void;
|
|
129
129
|
setUnicodeVersion(version: "6" | "11"): Promise<void>;
|
|
130
130
|
setNextCommandId(commandLine: string, commandId: string): Promise<void>;
|
|
131
131
|
private _resize;
|
|
@@ -202,7 +202,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
202
202
|
} catch (e) {
|
|
203
203
|
this._notificationService.notify({
|
|
204
204
|
message: ( localize(
|
|
205
|
-
|
|
205
|
+
13160,
|
|
206
206
|
"Could not kill process listening on port {0}, command exited with error {1}",
|
|
207
207
|
port,
|
|
208
208
|
e
|
|
@@ -352,6 +352,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
352
352
|
dispose(this._processListeners);
|
|
353
353
|
}
|
|
354
354
|
this._processListeners = [newProcess.onProcessReady(e => {
|
|
355
|
+
this._logService.debug("onProcessReady", e);
|
|
355
356
|
this._processTraits = e;
|
|
356
357
|
this.shellProcessId = e.pid;
|
|
357
358
|
this._initialCwd = e.cwd;
|
|
@@ -362,6 +363,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
362
363
|
});
|
|
363
364
|
this._onProcessReady.fire(e);
|
|
364
365
|
if (this._preLaunchInputQueue.length > 0 && this._process) {
|
|
366
|
+
this._logService.debug("sending prelaunch input queue", this._preLaunchInputQueue);
|
|
365
367
|
newProcess.input(this._preLaunchInputQueue.join(""));
|
|
366
368
|
this._preLaunchInputQueue.length = 0;
|
|
367
369
|
}
|
|
@@ -526,7 +528,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
526
528
|
this._onExit(-1);
|
|
527
529
|
} else {
|
|
528
530
|
const message = ( localize(
|
|
529
|
-
|
|
531
|
+
13161,
|
|
530
532
|
"Restarting the terminal because the connection to the shell process was lost..."
|
|
531
533
|
));
|
|
532
534
|
this._onProcessData.fire({
|
|
@@ -561,12 +563,12 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
561
563
|
}
|
|
562
564
|
return os;
|
|
563
565
|
}
|
|
564
|
-
setDimensions(cols, rows, sync) {
|
|
566
|
+
setDimensions(cols, rows, sync, pixelWidth, pixelHeight) {
|
|
565
567
|
if (sync) {
|
|
566
|
-
this._resize(cols, rows);
|
|
568
|
+
this._resize(cols, rows, pixelWidth, pixelHeight);
|
|
567
569
|
return;
|
|
568
570
|
}
|
|
569
|
-
return this.ptyProcessReady.then(() => this._resize(cols, rows));
|
|
571
|
+
return this.ptyProcessReady.then(() => this._resize(cols, rows, pixelWidth, pixelHeight));
|
|
570
572
|
}
|
|
571
573
|
async setUnicodeVersion(version) {
|
|
572
574
|
return this._process?.setUnicodeVersion(version);
|
|
@@ -579,12 +581,12 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
579
581
|
}
|
|
580
582
|
await this._terminalService.setNextCommandId(process.id, commandLine, commandId);
|
|
581
583
|
}
|
|
582
|
-
_resize(cols, rows) {
|
|
584
|
+
_resize(cols, rows, pixelWidth, pixelHeight) {
|
|
583
585
|
if (!this._process) {
|
|
584
586
|
return;
|
|
585
587
|
}
|
|
586
588
|
try {
|
|
587
|
-
this._process.resize(cols, rows);
|
|
589
|
+
this._process.resize(cols, rows, pixelWidth, pixelHeight);
|
|
588
590
|
} catch (error) {
|
|
589
591
|
if (error.code !== "EPIPE" && error.code !== "ERR_IPC_CHANNEL_CLOSED") {
|
|
590
592
|
throw error;
|
|
@@ -602,6 +604,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
|
|
|
602
604
|
this._process.input(data);
|
|
603
605
|
}
|
|
604
606
|
} else {
|
|
607
|
+
this._logService.debug("queueing data in prelaunch input queue", data);
|
|
605
608
|
this._preLaunchInputQueue.push(data);
|
|
606
609
|
}
|
|
607
610
|
}
|
|
@@ -435,7 +435,7 @@ let TerminalTabsRenderer = class TerminalTabsRenderer {
|
|
|
435
435
|
};
|
|
436
436
|
}
|
|
437
437
|
},
|
|
438
|
-
ariaLabel: ( localize(
|
|
438
|
+
ariaLabel: ( localize(13188, "Type terminal name. Press Enter to confirm or Escape to cancel.")),
|
|
439
439
|
inputBoxStyles: defaultInputBoxStyles
|
|
440
440
|
}));
|
|
441
441
|
inputBox.element.style.height = "22px";
|
|
@@ -566,7 +566,7 @@ let TerminalTabsAccessibilityProvider = class TerminalTabsAccessibilityProvider
|
|
|
566
566
|
this._terminalGroupService = _terminalGroupService;
|
|
567
567
|
}
|
|
568
568
|
getWidgetAriaLabel() {
|
|
569
|
-
return localize(
|
|
569
|
+
return localize(13189, "Terminal tabs");
|
|
570
570
|
}
|
|
571
571
|
getAriaLabel(instance) {
|
|
572
572
|
let ariaLabel = "";
|
|
@@ -574,7 +574,7 @@ let TerminalTabsAccessibilityProvider = class TerminalTabsAccessibilityProvider
|
|
|
574
574
|
if (tab && tab.terminalInstances?.length > 1) {
|
|
575
575
|
const terminalIndex = tab.terminalInstances.indexOf(instance);
|
|
576
576
|
ariaLabel = ( localize(
|
|
577
|
-
|
|
577
|
+
13190,
|
|
578
578
|
"Terminal {0} {1}, split {2} of {3}",
|
|
579
579
|
instance.instanceId,
|
|
580
580
|
instance.title,
|
|
@@ -582,7 +582,7 @@ let TerminalTabsAccessibilityProvider = class TerminalTabsAccessibilityProvider
|
|
|
582
582
|
tab.terminalInstances.length
|
|
583
583
|
));
|
|
584
584
|
} else {
|
|
585
|
-
ariaLabel = ( localize(
|
|
585
|
+
ariaLabel = ( localize(13191, "Terminal {0} {1}", instance.instanceId, instance.title));
|
|
586
586
|
}
|
|
587
587
|
return ariaLabel;
|
|
588
588
|
}
|
|
@@ -770,7 +770,7 @@ let TabDecorationsProvider = class TabDecorationsProvider extends Disposable {
|
|
|
770
770
|
constructor(_terminalService) {
|
|
771
771
|
super();
|
|
772
772
|
this._terminalService = _terminalService;
|
|
773
|
-
this.label = ( localize(
|
|
773
|
+
this.label = ( localize(13192, "Terminal"));
|
|
774
774
|
this._onDidChange = this._register(( new Emitter()));
|
|
775
775
|
this.onDidChange = this._onDidChange.event;
|
|
776
776
|
this._register(
|
|
@@ -29,7 +29,7 @@ function getInstanceHoverInfo(instance, storageService) {
|
|
|
29
29
|
}
|
|
30
30
|
actions.push({
|
|
31
31
|
commandId: "toggleDetailedInfo",
|
|
32
|
-
label: showDetailed ? ( localize(
|
|
32
|
+
label: showDetailed ? ( localize(13193, "Hide Details")) : ( localize(13194, "Show Details")),
|
|
33
33
|
run() {
|
|
34
34
|
storageService.store(
|
|
35
35
|
TerminalStorageKeys.TabsShowDetailed,
|
|
@@ -51,7 +51,7 @@ function getInstanceHoverInfo(instance, storageService) {
|
|
|
51
51
|
function getShellProcessTooltip(instance, showDetailed) {
|
|
52
52
|
const lines = [];
|
|
53
53
|
if (instance.processId && instance.processId > 0) {
|
|
54
|
-
lines.push(( localize(
|
|
54
|
+
lines.push(( localize(13195, "Process ID ({0}): {1}", "PID", instance.processId)) + "\n");
|
|
55
55
|
}
|
|
56
56
|
if (instance.shellLaunchConfig.executable) {
|
|
57
57
|
let commandLine = "";
|
|
@@ -67,7 +67,7 @@ function getShellProcessTooltip(instance, showDetailed) {
|
|
|
67
67
|
if (args) {
|
|
68
68
|
commandLine += ` ${args}`;
|
|
69
69
|
}
|
|
70
|
-
lines.push(( localize(
|
|
70
|
+
lines.push(( localize(13196, "Command line: {0}", commandLine)));
|
|
71
71
|
}
|
|
72
72
|
return lines.length ? `\n\n---\n\n${lines.join("\n")}` : "";
|
|
73
73
|
}
|
|
@@ -44,26 +44,26 @@ var TerminalChatContextKeyStrings;
|
|
|
44
44
|
})(TerminalChatContextKeyStrings || (TerminalChatContextKeyStrings = {}));
|
|
45
45
|
var TerminalChatContextKeys;
|
|
46
46
|
(function(TerminalChatContextKeys) {
|
|
47
|
-
TerminalChatContextKeys.focused = ( new RawContextKey(TerminalChatContextKeyStrings.ChatFocus, false, ( localize(
|
|
48
|
-
TerminalChatContextKeys.visible = ( new RawContextKey(TerminalChatContextKeyStrings.ChatVisible, false, ( localize(
|
|
49
|
-
TerminalChatContextKeys.requestActive = ( new RawContextKey(TerminalChatContextKeyStrings.ChatActiveRequest, false, ( localize(
|
|
50
|
-
TerminalChatContextKeys.inputHasText = ( new RawContextKey(TerminalChatContextKeyStrings.ChatInputHasText, false, ( localize(
|
|
47
|
+
TerminalChatContextKeys.focused = ( new RawContextKey(TerminalChatContextKeyStrings.ChatFocus, false, ( localize(13497, "Whether the chat view is focused."))));
|
|
48
|
+
TerminalChatContextKeys.visible = ( new RawContextKey(TerminalChatContextKeyStrings.ChatVisible, false, ( localize(13498, "Whether the chat view is visible."))));
|
|
49
|
+
TerminalChatContextKeys.requestActive = ( new RawContextKey(TerminalChatContextKeyStrings.ChatActiveRequest, false, ( localize(13499, "Whether there is an active chat request."))));
|
|
50
|
+
TerminalChatContextKeys.inputHasText = ( new RawContextKey(TerminalChatContextKeyStrings.ChatInputHasText, false, ( localize(13500, "Whether the chat input has text."))));
|
|
51
51
|
TerminalChatContextKeys.responseContainsCodeBlock = ( new RawContextKey(
|
|
52
52
|
TerminalChatContextKeyStrings.ChatResponseContainsCodeBlock,
|
|
53
53
|
false,
|
|
54
|
-
( localize(
|
|
54
|
+
( localize(13501, "Whether the chat response contains a code block."))
|
|
55
55
|
));
|
|
56
56
|
TerminalChatContextKeys.responseContainsMultipleCodeBlocks = ( new RawContextKey(
|
|
57
57
|
TerminalChatContextKeyStrings.ChatResponseContainsMultipleCodeBlocks,
|
|
58
58
|
false,
|
|
59
|
-
( localize(
|
|
59
|
+
( localize(13502, "Whether the chat response contains multiple code blocks."))
|
|
60
60
|
));
|
|
61
|
-
TerminalChatContextKeys.hasChatAgent = ( new RawContextKey(TerminalChatContextKeyStrings.ChatAgentRegistered, false, ( localize(
|
|
62
|
-
TerminalChatContextKeys.hasChatTerminals = ( new RawContextKey(TerminalChatContextKeyStrings.ChatHasTerminals, false, ( localize(
|
|
61
|
+
TerminalChatContextKeys.hasChatAgent = ( new RawContextKey(TerminalChatContextKeyStrings.ChatAgentRegistered, false, ( localize(13503, "Whether a chat agent is registered for the terminal location."))));
|
|
62
|
+
TerminalChatContextKeys.hasChatTerminals = ( new RawContextKey(TerminalChatContextKeyStrings.ChatHasTerminals, false, ( localize(13504, "Whether there are any chat terminals."))));
|
|
63
63
|
TerminalChatContextKeys.hasHiddenChatTerminals = ( new RawContextKey(
|
|
64
64
|
TerminalChatContextKeyStrings.ChatHasHiddenTerminals,
|
|
65
65
|
false,
|
|
66
|
-
( localize(
|
|
66
|
+
( localize(13505, "Whether there are any hidden chat terminals."))
|
|
67
67
|
));
|
|
68
68
|
})(TerminalChatContextKeys || (TerminalChatContextKeys = {}));
|
|
69
69
|
|
|
@@ -3,7 +3,7 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
|
3
3
|
import { registerColor } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
|
|
4
4
|
|
|
5
5
|
const terminalStickyScrollBackground = registerColor("terminalStickyScroll.background", null, ( localize(
|
|
6
|
-
|
|
6
|
+
13852,
|
|
7
7
|
"The background color of the sticky scroll overlay in the terminal."
|
|
8
8
|
)));
|
|
9
9
|
const terminalStickyScrollHoverBackground = registerColor("terminalStickyScrollHover.background", {
|
|
@@ -12,7 +12,7 @@ const terminalStickyScrollHoverBackground = registerColor("terminalStickyScrollH
|
|
|
12
12
|
hcDark: "#E48B39",
|
|
13
13
|
hcLight: "#0f4a85"
|
|
14
14
|
}, ( localize(
|
|
15
|
-
|
|
15
|
+
13853,
|
|
16
16
|
"The background color of the sticky scroll overlay in the terminal when hovered."
|
|
17
17
|
)));
|
|
18
18
|
registerColor("terminalStickyScroll.border", {
|
|
@@ -20,6 +20,6 @@ registerColor("terminalStickyScroll.border", {
|
|
|
20
20
|
light: null,
|
|
21
21
|
hcDark: "#6fc3df",
|
|
22
22
|
hcLight: "#0f4a85"
|
|
23
|
-
}, ( localize(
|
|
23
|
+
}, ( localize(13854, "The border of the sticky scroll overlay in the terminal.")));
|
|
24
24
|
|
|
25
25
|
export { terminalStickyScrollBackground, terminalStickyScrollHoverBackground };
|
|
@@ -304,19 +304,19 @@ let TerminalStickyScrollOverlay = class TerminalStickyScrollOverlay extends Disp
|
|
|
304
304
|
this._element = $(".terminal-sticky-scroll", undefined, hoverOverlay);
|
|
305
305
|
this._xterm.raw.element.parentElement.append(this._element);
|
|
306
306
|
this._register(toDisposable(() => this._element?.remove()));
|
|
307
|
-
let hoverTitle = ( localize(
|
|
307
|
+
let hoverTitle = ( localize(13855, "Navigate to Command"));
|
|
308
308
|
const scrollToPreviousCommandKeybinding = this._keybindingService.lookupKeybinding(TerminalCommandId.ScrollToPreviousCommand);
|
|
309
309
|
if (scrollToPreviousCommandKeybinding) {
|
|
310
310
|
const label = scrollToPreviousCommandKeybinding.getLabel();
|
|
311
311
|
if (label) {
|
|
312
|
-
hoverTitle += "\n" + ( localize(
|
|
312
|
+
hoverTitle += "\n" + ( localize(13856, "{0} ({1})", terminalStrings.scrollToPreviousCommand.value, label));
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
315
|
const scrollToNextCommandKeybinding = this._keybindingService.lookupKeybinding(TerminalCommandId.ScrollToNextCommand);
|
|
316
316
|
if (scrollToNextCommandKeybinding) {
|
|
317
317
|
const label = scrollToNextCommandKeybinding.getLabel();
|
|
318
318
|
if (label) {
|
|
319
|
-
hoverTitle += "\n" + ( localize(
|
|
319
|
+
hoverTitle += "\n" + ( localize(13856, "{0} ({1})", terminalStrings.scrollToNextCommand.value, label));
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
hoverOverlay.title = hoverTitle;
|