@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-xterm-common",
3
- "version": "26.2.2",
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": "26.2.2",
19
- "@codingame/monaco-vscode-xterm-addons-common": "26.2.2",
20
- "@xterm/xterm": "6.1.0-beta.147"
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
- 12010,
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(12011, "Relaunch Terminal")),
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
- 12012,
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(12013, "Show Environment Contributions")),
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(12014, "workspace"))})` : "";
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(12017, "Show Tabs"));
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(12018, "Select current working directory for new terminal"))
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(12019, "Open Help")));
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(12020, "Create New Terminal (In Active Workspace)")),
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(12021, "Create New Terminal in Editor Area")),
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(12021, "Create New Terminal in Editor Area")),
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(12022, "Create New Terminal in Editor Area to the Side")),
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(12023, "Focus Previous Terminal in Terminal Group")),
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(12024, "Focus Next Terminal in Terminal Group")),
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(12025, "Resize Terminal Left")),
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(12026, "Resize Terminal Right")),
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(12027, "Resize Terminal Up")),
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(12028, "Resize Terminal Down")),
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(12029, "Focus Terminal Tabs View")),
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(12030, "Focus Next Terminal Group")),
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(12031, "Focus Previous Terminal Group")),
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(12032, "Run Selected Text In Active Terminal")),
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(12033, "Run Active File In Active Terminal")),
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(12034, "Only files on disk can be run in the terminal")));
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(12035, "Scroll Down (Line)")),
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(12036, "Scroll Down (Page)")),
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(12037, "Scroll to Bottom")),
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(12038, "Scroll Up (Line)")),
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(12039, "Scroll Up (Page)")),
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(12040, "Scroll to Top")),
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(12041, "Clear Selection")),
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(12042, "Detach Session")),
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(12043, "Attach to Session")),
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(12044, "There are no unattached terminals to attach to")));
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(12045, "Select to Previous Command")),
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(12046, "Select to Next Command")),
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(12047, "Select to Previous Line")),
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(12048, "Select to Next Line")),
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(12049, "The directory to start the terminal at")),
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(12050, "The new name for the terminal")),
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(12051, "No name argument provided")));
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(12052, "Relaunch Active Terminal")),
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(12053, "Join Terminals")),
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(12054, "Join Terminals...")),
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(12055, "Insufficient terminals for the join action")));
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(12056, "All terminals are joined already")));
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(12057, "Split Terminal (In Active Workspace)")),
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(12058, "Select All")),
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(12059, "Create New Terminal")),
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(12060, "Kill the Active Terminal Instance")),
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(12061, "Kill All Terminals")),
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(12062, "Kill the Active Terminal in Editor Area")),
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(12063, "Clear")),
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(12064, "Select Default Profile")),
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(12065, "Configure Terminal Settings")),
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(12066, "Set Fixed Dimensions")),
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(12067, "Switch Terminal")),
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(12068, "Providing no name will reset it to the default value")),
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(12069, "Create New Terminal (With Profile)")),
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(12070, "The name of the profile to create")),
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(12071, "Where to create the terminal")),
1438
+ description: ( localize(13079, "Where to create the terminal")),
1439
1439
  type: "string",
1440
1440
  enum: ["view", "editor"],
1441
- enumDescriptions: [( localize(12072, "Create the terminal in the terminal view")), ( localize(12073, "Create the terminal in the editor"))]
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(12018, "Select current working directory for new terminal"))
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(12074, "(Overriden) {0}", labelService.getUriLabel(pair.cwd, {
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(12018, "Select current working directory for new terminal")),
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(12075, "Enter terminal name"))
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, toDisposable, DisposableStore, dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
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
- capabilityListeners.set(e.id, Event.any(
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
- this._register(e.capability.onCommandExecuted(async command => {
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(12093, "Terminal input"));
773
+ Terminal.strings.promptLabel = ( localize(13101, "Terminal input"));
769
774
  Terminal.strings.tooMuchOutput = keybinding ? ( localize(
770
- 12094,
775
+ 13102,
771
776
  "Use the accessible buffer {0} to manually review output",
772
777
  keybinding.getLabel()
773
778
  )) : ( localize(
774
- 12095,
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(12096, "Bell"))
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(12097, "Rich")) : ( instance.capabilities.has(TerminalCapability.CommandDetection)) ? ( localize(12098, "Basic")) : instance.usedShellIntegrationInjection ? ( localize(12099, "Injection failed to activate")) : ( localize(12100, "No")));
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(12101, "Shell integration"))}: ${cmdDetectionType}`,
930
- detailedTooltip: `${( localize(12101, "Shell integration"))}: ${cmdDetectionType}${detailedAdditionsString}`
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
- this._setTitle(this._shellLaunchConfig.executable, TitleEventSource.Process);
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(12102, "Lost connection to process"))
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(12103, "Cannot launch a terminal process in an untrusted workspace"))
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
- 12104,
1412
- "Cannot launch a terminal process in an untrusted workspace with cwd {0} and userHome {1}",
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(12105, "Disabling shell integration in user settings might help.")),
1590
+ tooltip: `${exitMessage} ` + ( localize(13113, "Disabling shell integration in user settings might help.")),
1582
1591
  hoverActions: [{
1583
1592
  commandId: TerminalCommandId.ShellIntegrationLearnMore,
1584
- label: ( localize(12106, "Learn more about shell integration")),
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(12107, "Open user settings")),
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(12108, "Creating a terminal process requires executing code"))
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
- await this._processManager.setDimensions(rawXterm.cols, rawXterm.rows);
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(12109, "Terminal {0}, {1}", terminalId, title)));
1849
+ labelParts.push(( localize(13117, "Terminal {0}, {1}", terminalId, title)));
1831
1850
  } else {
1832
- labelParts.push(( localize(12110, "Terminal {0}", terminalId)));
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
- 12111,
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
- 12112,
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(12113, "Set Fixed Dimensions: Column")),
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(12114, "Set Fixed Dimensions: Row")),
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
- 12115,
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(12116, "Select a color for the terminal"));
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
- this._title = this.computeLabel(
2392
- instance,
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
- 12117,
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(12118, "The terminal process failed to launch (exit code: {0}).", code));
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
- 12119,
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(12120, "The terminal process terminated with exit code: {0}.", code));
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(12121, "The terminal process failed to launch: {0}.", innerMessage));
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
- 12152,
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
- 12153,
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(12180, "Type terminal name. Press Enter to confirm or Escape to cancel.")),
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(12181, "Terminal tabs");
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
- 12182,
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(12183, "Terminal {0} {1}", instance.instanceId, instance.title));
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(12184, "Terminal"));
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(12185, "Hide Details")) : ( localize(12186, "Show Details")),
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(12187, "Process ID ({0}): {1}", "PID", instance.processId)) + "\n");
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(12188, "Command line: {0}", commandLine)));
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(12486, "Whether the chat view is focused."))));
48
- TerminalChatContextKeys.visible = ( new RawContextKey(TerminalChatContextKeyStrings.ChatVisible, false, ( localize(12487, "Whether the chat view is visible."))));
49
- TerminalChatContextKeys.requestActive = ( new RawContextKey(TerminalChatContextKeyStrings.ChatActiveRequest, false, ( localize(12488, "Whether there is an active chat request."))));
50
- TerminalChatContextKeys.inputHasText = ( new RawContextKey(TerminalChatContextKeyStrings.ChatInputHasText, false, ( localize(12489, "Whether the chat input has text."))));
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(12490, "Whether the chat response contains a code block."))
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(12491, "Whether the chat response contains multiple code blocks."))
59
+ ( localize(13502, "Whether the chat response contains multiple code blocks."))
60
60
  ));
61
- TerminalChatContextKeys.hasChatAgent = ( new RawContextKey(TerminalChatContextKeyStrings.ChatAgentRegistered, false, ( localize(12492, "Whether a chat agent is registered for the terminal location."))));
62
- TerminalChatContextKeys.hasChatTerminals = ( new RawContextKey(TerminalChatContextKeyStrings.ChatHasTerminals, false, ( localize(12493, "Whether there are any chat terminals."))));
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(12494, "Whether there are any hidden chat terminals."))
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
- 12806,
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
- 12807,
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(12808, "The border of the sticky scroll overlay in the terminal.")));
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(12809, "Navigate to Command"));
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(12810, "{0} ({1})", terminalStrings.scrollToPreviousCommand.value, label));
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(12810, "{0} ({1})", terminalStrings.scrollToNextCommand.value, label));
319
+ hoverTitle += "\n" + ( localize(13856, "{0} ({1})", terminalStrings.scrollToNextCommand.value, label));
320
320
  }
321
321
  }
322
322
  hoverOverlay.title = hoverTitle;