@codingame/monaco-vscode-xterm-common 28.4.1 → 29.1.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": "28.4.1",
3
+ "version": "29.1.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,8 +15,8 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "28.4.1",
19
- "@codingame/monaco-vscode-xterm-addons-common": "28.4.1",
18
+ "@codingame/monaco-vscode-api": "29.1.0",
19
+ "@codingame/monaco-vscode-xterm-addons-common": "29.1.0",
20
20
  "@xterm/xterm": "6.1.0-beta.168"
21
21
  },
22
22
  "exports": {
@@ -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
- 13018,
27
+ 13267,
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(13019, "Relaunch Terminal")),
35
+ label: ( localize(13268, "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
- 13020,
62
+ 13269,
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(13021, "Show Environment Contributions")),
70
+ label: ( localize(13270, "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(13022, "workspace"))})` : "";
98
+ const workspaceSuffix = globalDescription ? ` (${( localize(13271, "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(13025, "Show Tabs"));
66
+ const switchTerminalShowTabsTitle = ( localize(13274, "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(13026, "Select current working directory for new terminal"))
89
+ placeHolder: ( localize(13275, "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(13027, "Open Help")));
107
+ super("workbench.action.terminal.launchHelp", ( localize(13276, "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(13028, "Create New Terminal (In Active Workspace)")),
208
+ title: ( localize2(13277, "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(13029, "Create New Terminal in Editor Area")),
225
+ title: ( localize2(13278, "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(13029, "Create New Terminal in Editor Area")),
241
+ title: ( localize2(13278, "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(13030, "Create New Terminal in Editor Area to the Side")),
255
+ title: ( localize2(13279, "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(13031, "Focus Previous Terminal in Terminal Group")),
316
+ title: ( localize2(13280, "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(13032, "Focus Next Terminal in Terminal Group")),
335
+ title: ( localize2(13281, "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(13033, "Resize Terminal Left")),
354
+ title: ( localize2(13282, "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(13034, "Resize Terminal Right")),
370
+ title: ( localize2(13283, "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(13035, "Resize Terminal Up")),
386
+ title: ( localize2(13284, "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(13036, "Resize Terminal Down")),
399
+ title: ( localize2(13285, "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(13037, "Focus Terminal Tabs View")),
436
+ title: ( localize2(13286, "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(13038, "Focus Next Terminal Group")),
447
+ title: ( localize2(13287, "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(13039, "Focus Previous Terminal Group")),
464
+ title: ( localize2(13288, "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(13040, "Run Selected Text In Active Terminal")),
481
+ title: ( localize2(13289, "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(13041, "Run Active File In Active Terminal")),
505
+ title: ( localize2(13290, "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(13042, "Only files on disk can be run in the terminal")));
521
+ notificationService.warn(( localize(13291, "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(13043, "Scroll Down (Line)")),
530
+ title: ( localize2(13292, "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(13044, "Scroll Down (Page)")),
544
+ title: ( localize2(13293, "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(13045, "Scroll to Bottom")),
558
+ title: ( localize2(13294, "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(13046, "Scroll Up (Line)")),
572
+ title: ( localize2(13295, "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(13047, "Scroll Up (Page)")),
586
+ title: ( localize2(13296, "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(13048, "Scroll to Top")),
601
+ title: ( localize2(13297, "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(13049, "Clear Selection")),
615
+ title: ( localize2(13298, "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(13050, "Detach Session")),
734
+ title: ( localize2(13299, "Detach Session")),
735
735
  run: activeInstance => activeInstance.detachProcessAndDispose(TerminalExitReason.User)
736
736
  });
737
737
  registerTerminalAction({
738
738
  id: TerminalCommandId.AttachToSession,
739
- title: ( localize2(13051, "Attach to Session")),
739
+ title: ( localize2(13300, "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(13052, "There are no unattached terminals to attach to")));
763
+ notificationService.info(( localize(13301, "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(13053, "Select to Previous Command")),
835
+ title: ( localize2(13302, "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(13054, "Select to Next Command")),
849
+ title: ( localize2(13303, "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(13055, "Select to Previous Line")),
863
+ title: ( localize2(13304, "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(13056, "Select to Next Line")),
872
+ title: ( localize2(13305, "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(13057, "The directory to start the terminal at")),
891
+ description: ( localize(13306, "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(13058, "The new name for the terminal")),
922
+ description: ( localize(13307, "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(13059, "No name argument provided")));
936
+ notificationService.warn(( localize(13308, "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(13060, "Relaunch Active Terminal")),
944
+ title: ( localize2(13309, "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(13061, "Join Terminals")),
1036
+ title: ( localize2(13310, "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(13062, "Join Terminals...")),
1047
+ title: ( localize2(13311, "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(13063, "Insufficient terminals for the join action")));
1055
+ notificationService.warn(( localize(13312, "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(13064, "All terminals are joined already")));
1081
+ notificationService.warn(( localize(13313, "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(13065, "Split Terminal (In Active Workspace)")),
1092
+ title: ( localize2(13314, "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(13066, "Select All")),
1106
+ title: ( localize2(13315, "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(13067, "Create New Terminal")),
1120
+ title: ( localize2(13316, "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(13068, "Kill the Active Terminal Instance")),
1187
+ title: ( localize2(13317, "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(13069, "Kill All Terminals")),
1201
+ title: ( localize2(13318, "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(13070, "Kill the Active Terminal in Editor Area")),
1214
+ title: ( localize2(13319, "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(13071, "Clear")),
1263
+ title: ( localize2(13320, "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(13072, "Select Default Profile")),
1277
+ title: ( localize2(13321, "Select Default Profile")),
1278
1278
  run: c => c.service.showProfileQuickPick("setDefault")
1279
1279
  });
1280
1280
  registerTerminalAction({
1281
1281
  id: TerminalCommandId.ConfigureTerminalSettings,
1282
- title: ( localize2(13073, "Configure Terminal Settings")),
1282
+ title: ( localize2(13322, "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(13074, "Set Fixed Dimensions")),
1291
+ title: ( localize2(13323, "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(13075, "Switch Terminal")),
1308
+ title: ( localize2(13324, "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(13076, "Providing no name will reset it to the default value")),
1391
+ content: ( localize(13325, "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(13077, "Create New Terminal (With Profile)")),
1417
+ title: ( localize2(13326, "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(13078, "The name of the profile to create")),
1432
+ description: ( localize(13327, "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(13079, "Where to create the terminal")),
1438
+ description: ( localize(13328, "Where to create the terminal")),
1439
1439
  type: "string",
1440
1440
  enum: ["view", "editor"],
1441
- enumDescriptions: [( localize(13080, "Create the terminal in the terminal view")), ( localize(13081, "Create the terminal in the editor"))]
1441
+ enumDescriptions: [( localize(13329, "Create the terminal in the terminal view")), ( localize(13330, "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(13026, "Select current working directory for new terminal"))
1503
+ placeHolder: ( localize(13275, "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(13082, "(Overridden) {0}", labelService.getUriLabel(pair.cwd, {
1549
+ const description = pair.isOverridden ? ( localize(13331, "(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(13026, "Select current working directory for new terminal")),
1562
+ placeHolder: ( localize(13275, "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(13083, "Enter terminal name"))
1629
+ prompt: ( localize(13332, "Enter terminal name"))
1630
1630
  });
1631
1631
  if (title) {
1632
1632
  instance.rename(title);
@@ -770,13 +770,13 @@ let TerminalInstance = class TerminalInstance extends Disposable {
770
770
  }
771
771
  xtermConstructor = Promises.withAsyncBody(async resolve => {
772
772
  const Terminal = (await import('@xterm/xterm')).Terminal;
773
- Terminal.strings.promptLabel = ( localize(13101, "Terminal input"));
773
+ Terminal.strings.promptLabel = ( localize(13350, "Terminal input"));
774
774
  Terminal.strings.tooMuchOutput = keybinding ? ( localize(
775
- 13102,
775
+ 13351,
776
776
  "Use the accessible buffer {0} to manually review output",
777
777
  keybinding.getLabel()
778
778
  )) : ( localize(
779
- 13103,
779
+ 13352,
780
780
  "Use the Terminal: Focus Accessible Buffer command to manually review output"
781
781
  ));
782
782
  resolve(Terminal);
@@ -829,7 +829,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
829
829
  id: TerminalStatus.Bell,
830
830
  severity: Severity.Warning,
831
831
  icon: Codicon.bell,
832
- tooltip: ( localize(13104, "Bell"))
832
+ tooltip: ( localize(13353, "Bell"))
833
833
  }, this._terminalConfigurationService.config.bellDuration);
834
834
  }
835
835
  this._accessibilitySignalService.playSignal(AccessibilitySignal.terminalBell);
@@ -858,6 +858,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
858
858
  lineDataEventAddon.setOperatingSystem(this._processManager.os);
859
859
  }
860
860
  xterm.raw.options.windowsPty = processTraits.windowsPty;
861
+ xterm.raw.options.reflowCursorLine = processTraits?.windowsPty?.backend === "conpty" && !!this._terminalConfigurationService.config.windowsUseConptyDll;
861
862
  }));
862
863
  this._register(
863
864
  this._processManager.onRestoreCommands(e => this.xterm?.shellIntegration.deserialize(e))
@@ -906,7 +907,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
906
907
  if (!instance.xterm) {
907
908
  return;
908
909
  }
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")));
910
+ const cmdDetectionType = (instance.capabilities.get(TerminalCapability.CommandDetection)?.hasRichCommandDetection ? ( localize(13354, "Rich")) : ( instance.capabilities.has(TerminalCapability.CommandDetection)) ? ( localize(13355, "Basic")) : instance.usedShellIntegrationInjection ? ( localize(13356, "Injection failed to activate")) : ( localize(13357, "No")));
910
911
  const detailedAdditions = [];
911
912
  if (instance.shellType) {
912
913
  detailedAdditions.push(`Shell type: \`${instance.shellType}\``);
@@ -931,8 +932,8 @@ let TerminalInstance = class TerminalInstance extends Disposable {
931
932
  instance.statusList.add({
932
933
  id: TerminalStatus.ShellIntegrationInfo,
933
934
  severity: Severity.Info,
934
- tooltip: `${( localize(13109, "Shell integration"))}: ${cmdDetectionType}`,
935
- detailedTooltip: `${( localize(13109, "Shell integration"))}: ${cmdDetectionType}${detailedAdditionsString}`
935
+ tooltip: `${( localize(13358, "Shell integration"))}: ${cmdDetectionType}`,
936
+ detailedTooltip: `${( localize(13358, "Shell integration"))}: ${cmdDetectionType}${detailedAdditionsString}`
936
937
  });
937
938
  }
938
939
  async runCommand(commandLine, shouldExecute, commandId) {
@@ -1043,7 +1044,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1043
1044
  event.preventDefault();
1044
1045
  return false;
1045
1046
  }
1046
- if (!this._terminalConfigurationService.config.sendKeybindingsToShell && resolveResult.kind === ResultKind.KbFound && resolveResult.commandId && ( this._skipTerminalCommands.some(k => k === resolveResult.commandId))) {
1047
+ if (!this._terminalConfigurationService.config.sendKeybindingsToShell && resolveResult.kind === ResultKind.KbFound && resolveResult.commandId && (event.metaKey || ( this._skipTerminalCommands.some(k => k === resolveResult.commandId)))) {
1047
1048
  event.preventDefault();
1048
1049
  return false;
1049
1050
  }
@@ -1394,7 +1395,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1394
1395
  id: TerminalStatus.Disconnected,
1395
1396
  severity: Severity.Error,
1396
1397
  icon: Codicon.debugDisconnect,
1397
- tooltip: ( localize(13110, "Lost connection to process"))
1398
+ tooltip: ( localize(13359, "Lost connection to process"))
1398
1399
  });
1399
1400
  }));
1400
1401
  this._register(processManager.onPtyReconnect(() => {
@@ -1412,12 +1413,12 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1412
1413
  const trusted = await this._trust();
1413
1414
  if (!trusted && !this.remoteAuthority && !this._workbenchEnvironmentService.remoteAuthority) {
1414
1415
  this._onProcessExit({
1415
- message: ( localize(13111, "Cannot launch a terminal process in an untrusted workspace"))
1416
+ message: ( localize(13360, "Cannot launch a terminal process in an untrusted workspace"))
1416
1417
  });
1417
1418
  } else if (this._workspaceContextService.getWorkspace().folders.length === 0 && this._cwd && this._userHome && normalizeDriveLetter(this._cwd) !== normalizeDriveLetter(this._userHome)) {
1418
1419
  this._onProcessExit({
1419
1420
  message: ( localize(
1420
- 13112,
1421
+ 13361,
1421
1422
  "Cannot launch a terminal process in an empty workspace with cwd {0} different from userHome {1}",
1422
1423
  this._cwd,
1423
1424
  this._userHome
@@ -1587,10 +1588,10 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1587
1588
  id: TerminalStatus.ShellIntegrationAttentionNeeded,
1588
1589
  severity: Severity.Warning,
1589
1590
  icon: Codicon.warning,
1590
- tooltip: `${exitMessage} ` + ( localize(13113, "Disabling shell integration in user settings might help.")),
1591
+ tooltip: `${exitMessage} ` + ( localize(13362, "Disabling shell integration in user settings might help.")),
1591
1592
  hoverActions: [{
1592
1593
  commandId: TerminalCommandId.ShellIntegrationLearnMore,
1593
- label: ( localize(13114, "Learn more about shell integration")),
1594
+ label: ( localize(13363, "Learn more about shell integration")),
1594
1595
  run: () => {
1595
1596
  this._openerService.open(
1596
1597
  "https://code.visualstudio.com/docs/editor/integrated-terminal#_shell-integration"
@@ -1598,7 +1599,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1598
1599
  }
1599
1600
  }, {
1600
1601
  commandId: "workbench.action.openSettings",
1601
- label: ( localize(13115, "Open user settings")),
1602
+ label: ( localize(13364, "Open user settings")),
1602
1603
  run: () => {
1603
1604
  this._commandService.executeCommand(
1604
1605
  "workbench.action.openSettings",
@@ -1715,7 +1716,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1715
1716
  return true;
1716
1717
  }
1717
1718
  const trustRequest = await this._workspaceTrustRequestService.requestWorkspaceTrust({
1718
- message: ( localize(13116, "Creating a terminal process requires executing code"))
1719
+ message: ( localize(13365, "Creating a terminal process requires executing code"))
1719
1720
  });
1720
1721
  return trustRequest === true;
1721
1722
  }
@@ -1846,21 +1847,21 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1846
1847
  const labelParts = [];
1847
1848
  if (xterm && xterm.textarea) {
1848
1849
  if (title && title.length > 0) {
1849
- labelParts.push(( localize(13117, "Terminal {0}, {1}", terminalId, title)));
1850
+ labelParts.push(( localize(13366, "Terminal {0}, {1}", terminalId, title)));
1850
1851
  } else {
1851
- labelParts.push(( localize(13118, "Terminal {0}", terminalId)));
1852
+ labelParts.push(( localize(13367, "Terminal {0}", terminalId)));
1852
1853
  }
1853
1854
  const screenReaderOptimized = this._accessibilityService.isScreenReaderOptimized();
1854
1855
  if (!screenReaderOptimized) {
1855
1856
  labelParts.push(( localize(
1856
- 13119,
1857
+ 13368,
1857
1858
  "Run the command: Toggle Screen Reader Accessibility Mode for an optimized screen reader experience"
1858
1859
  )));
1859
1860
  }
1860
1861
  const accessibilityHelpKeybinding = this._keybindingService.lookupKeybinding(AccessibilityCommandId.OpenAccessibilityHelp)?.getLabel();
1861
1862
  if (this._configurationService.getValue(AccessibilityVerbositySettingId.Terminal) && accessibilityHelpKeybinding) {
1862
1863
  labelParts.push(( localize(
1863
- 13120,
1864
+ 13369,
1864
1865
  "Use {0} for terminal accessibility help",
1865
1866
  accessibilityHelpKeybinding
1866
1867
  )));
@@ -1914,7 +1915,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1914
1915
  }
1915
1916
  async setFixedDimensions() {
1916
1917
  const cols = await this._quickInputService.input({
1917
- title: ( localize(13121, "Set Fixed Dimensions: Column")),
1918
+ title: ( localize(13370, "Set Fixed Dimensions: Column")),
1918
1919
  placeHolder: "Enter a number of columns or leave empty for automatic width",
1919
1920
  validateInput: async text => text.length > 0 && !text.match(/^\d+$/) ? {
1920
1921
  content: "Enter a number or leave empty size automatically",
@@ -1928,7 +1929,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
1928
1929
  this._labelComputer?.refreshLabel(this);
1929
1930
  this._terminalHasFixedWidth.set(!!this._fixedCols);
1930
1931
  const rows = await this._quickInputService.input({
1931
- title: ( localize(13122, "Set Fixed Dimensions: Row")),
1932
+ title: ( localize(13371, "Set Fixed Dimensions: Row")),
1932
1933
  placeHolder: "Enter a number of rows or leave empty for automatic height",
1933
1934
  validateInput: async text => text.length > 0 && !text.match(/^\d+$/) ? {
1934
1935
  content: "Enter a number or leave empty size automatically",
@@ -2038,7 +2039,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
2038
2039
  _onEnvironmentVariableInfoChanged(info) {
2039
2040
  if (info.requiresAction) {
2040
2041
  this.xterm?.raw.textarea?.setAttribute("aria-label", ( localize(
2041
- 13123,
2042
+ 13372,
2042
2043
  "Terminal {0} environment is stale, run the 'Show Environment Information' command for more information",
2043
2044
  this._instanceId
2044
2045
  )));
@@ -2194,7 +2195,7 @@ let TerminalInstance = class TerminalInstance extends Disposable {
2194
2195
  disposables.push(quickPick);
2195
2196
  quickPick.items = items;
2196
2197
  quickPick.matchOnDescription = true;
2197
- quickPick.placeholder = ( localize(13124, "Select a color for the terminal"));
2198
+ quickPick.placeholder = ( localize(13373, "Select a color for the terminal"));
2198
2199
  quickPick.show();
2199
2200
  const result = await ( new Promise(r => {
2200
2201
  disposables.push(quickPick.onDidHide(() => r(undefined)));
@@ -2522,24 +2523,24 @@ function parseExitResult(exitCodeOrError, shellLaunchConfig, processState, initi
2522
2523
  if (processState === ProcessState.KilledDuringLaunch) {
2523
2524
  if (commandLine) {
2524
2525
  message = ( localize(
2525
- 13125,
2526
+ 13374,
2526
2527
  "The terminal process \"{0}\" failed to launch (exit code: {1}).",
2527
2528
  commandLine,
2528
2529
  code
2529
2530
  ));
2530
2531
  } else {
2531
- message = ( localize(13126, "The terminal process failed to launch (exit code: {0}).", code));
2532
+ message = ( localize(13375, "The terminal process failed to launch (exit code: {0}).", code));
2532
2533
  }
2533
2534
  } else {
2534
2535
  if (commandLine) {
2535
2536
  message = ( localize(
2536
- 13127,
2537
+ 13376,
2537
2538
  "The terminal process \"{0}\" terminated with exit code: {1}.",
2538
2539
  commandLine,
2539
2540
  code
2540
2541
  ));
2541
2542
  } else {
2542
- message = ( localize(13128, "The terminal process terminated with exit code: {0}.", code));
2543
+ message = ( localize(13377, "The terminal process terminated with exit code: {0}.", code));
2543
2544
  }
2544
2545
  }
2545
2546
  break;
@@ -2565,7 +2566,7 @@ function parseExitResult(exitCodeOrError, shellLaunchConfig, processState, initi
2565
2566
  break;
2566
2567
  }
2567
2568
  }
2568
- message = ( localize(13129, "The terminal process failed to launch: {0}.", innerMessage));
2569
+ message = ( localize(13378, "The terminal process failed to launch: {0}.", innerMessage));
2569
2570
  break;
2570
2571
  }
2571
2572
  }
@@ -25,7 +25,7 @@ import { MergedEnvironmentVariableCollection } from '../../../../platform/termin
25
25
  import { serializeEnvironmentVariableCollections } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/environmentVariableShared';
26
26
  import { ProcessState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/common/terminal';
27
27
  import { ITerminalProfileResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/common/terminal.service';
28
- import { getWorkspaceForTerminal, createVariableResolver, createTerminalEnvironment, getCwd } from '../common/terminalEnvironment.js';
28
+ import { getWorkspaceForTerminal, mergeEnvironments, createVariableResolver, createTerminalEnvironment, getCwd } from '../common/terminalEnvironment.js';
29
29
  import { IConfigurationResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/configurationResolver/common/configurationResolver.service';
30
30
  import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
31
31
  import { IHistoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/history/common/history.service';
@@ -202,7 +202,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
202
202
  } catch (e) {
203
203
  this._notificationService.notify({
204
204
  message: ( localize(
205
- 13160,
205
+ 13409,
206
206
  "Could not kill process listening on port {0}, command exited with error {1}",
207
207
  port,
208
208
  e
@@ -254,9 +254,13 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
254
254
  ));
255
255
  }
256
256
  this.backend = backend;
257
+ const envForResolver = {
258
+ ...(await this._terminalProfileResolverService.getEnvironment(this.remoteAuthority))
259
+ };
260
+ mergeEnvironments(envForResolver, await backend.getShellEnvironment());
257
261
  const variableResolver = createVariableResolver(
258
262
  this._cwdWorkspaceFolder,
259
- await this._terminalProfileResolverService.getEnvironment(this.remoteAuthority),
263
+ envForResolver,
260
264
  this._configurationResolverService
261
265
  );
262
266
  this.userHome = this._pathService.resolvedUserHome?.fsPath;
@@ -426,15 +430,20 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
426
430
  const workspaceFolder = getWorkspaceForTerminal(shellLaunchConfig.cwd, this._workspaceContextService, this._historyService);
427
431
  const platformKey = isWindows ? "windows" : (isMacintosh ? "osx" : "linux");
428
432
  const envFromConfigValue = this._configurationService.getValue(`terminal.integrated.env.${platformKey}`);
433
+ this._logService.debug(
434
+ `Resolving environment (useShellEnvironment=${shellLaunchConfig.useShellEnvironment}, platformKey=${platformKey}, envFromConfig=${envFromConfigValue ? ( Object.keys(envFromConfigValue)).join(",") : "none"})`
435
+ );
429
436
  let baseEnv;
430
437
  if (shellLaunchConfig.useShellEnvironment) {
431
438
  const shellEnv = await backend.getShellEnvironment();
432
439
  if (!shellEnv) {
433
440
  throw ( new BugIndicatingError("Cannot fetch shell environment to use"));
434
441
  }
442
+ this._logService.debug(`Shell environment resolved with ${( Object.keys(shellEnv)).length} variables: ${( Object.keys(shellEnv)).sort().join(", ")}`);
435
443
  baseEnv = shellEnv;
436
444
  } else {
437
445
  baseEnv = await this._terminalProfileResolverService.getEnvironment(this.remoteAuthority);
446
+ this._logService.debug(`Profile environment resolved with ${( Object.keys(baseEnv)).length} variables`);
438
447
  }
439
448
  const env = await createTerminalEnvironment(
440
449
  shellLaunchConfig,
@@ -444,6 +453,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
444
453
  this._terminalConfigurationService.config.detectLocale,
445
454
  baseEnv
446
455
  );
456
+ this._logService.debug(`Terminal environment created with ${( Object.keys(env)).length} variables: ${( Object.keys(env)).sort().join(", ")}`);
447
457
  if (!this._isDisposed && shouldUseEnvironmentVariableCollection(shellLaunchConfig)) {
448
458
  this._extEnvironmentVariableCollection = this._environmentVariableService.mergedCollection;
449
459
  this._register(this._environmentVariableService.onDidChangeCollections(
@@ -528,7 +538,7 @@ let TerminalProcessManager = class TerminalProcessManager extends Disposable {
528
538
  this._onExit(-1);
529
539
  } else {
530
540
  const message = ( localize(
531
- 13161,
541
+ 13410,
532
542
  "Restarting the terminal because the connection to the shell process was lost..."
533
543
  ));
534
544
  this._onProcessData.fire({
@@ -435,7 +435,7 @@ let TerminalTabsRenderer = class TerminalTabsRenderer {
435
435
  };
436
436
  }
437
437
  },
438
- ariaLabel: ( localize(13188, "Type terminal name. Press Enter to confirm or Escape to cancel.")),
438
+ ariaLabel: ( localize(13437, "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(13189, "Terminal tabs");
569
+ return localize(13438, "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
- 13190,
577
+ 13439,
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(13191, "Terminal {0} {1}", instance.instanceId, instance.title));
585
+ ariaLabel = ( localize(13440, "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(13192, "Terminal"));
773
+ this.label = ( localize(13441, "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(13193, "Hide Details")) : ( localize(13194, "Show Details")),
32
+ label: showDetailed ? ( localize(13442, "Hide Details")) : ( localize(13443, "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(13195, "Process ID ({0}): {1}", "PID", instance.processId)) + "\n");
54
+ lines.push(( localize(13444, "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(13196, "Command line: {0}", commandLine)));
70
+ lines.push(( localize(13445, "Command line: {0}", commandLine)));
71
71
  }
72
72
  return lines.length ? `\n\n---\n\n${lines.join("\n")}` : "";
73
73
  }
@@ -304,6 +304,8 @@ function getShellIntegrationTimeout(configurationService, siInjectionEnabled, is
304
304
  let timeoutMs;
305
305
  if (!isNumber(timeoutValue) || timeoutValue < 0) {
306
306
  timeoutMs = siInjectionEnabled ? 5000 : (isRemote ? 3000 : 2000);
307
+ } else if (timeoutValue === 0) {
308
+ timeoutMs = 0;
307
309
  } else {
308
310
  timeoutMs = Math.max(timeoutValue, 500);
309
311
  }
@@ -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(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."))));
47
+ TerminalChatContextKeys.focused = ( new RawContextKey(TerminalChatContextKeyStrings.ChatFocus, false, ( localize(13746, "Whether the chat view is focused."))));
48
+ TerminalChatContextKeys.visible = ( new RawContextKey(TerminalChatContextKeyStrings.ChatVisible, false, ( localize(13747, "Whether the chat view is visible."))));
49
+ TerminalChatContextKeys.requestActive = ( new RawContextKey(TerminalChatContextKeyStrings.ChatActiveRequest, false, ( localize(13748, "Whether there is an active chat request."))));
50
+ TerminalChatContextKeys.inputHasText = ( new RawContextKey(TerminalChatContextKeyStrings.ChatInputHasText, false, ( localize(13749, "Whether the chat input has text."))));
51
51
  TerminalChatContextKeys.responseContainsCodeBlock = ( new RawContextKey(
52
52
  TerminalChatContextKeyStrings.ChatResponseContainsCodeBlock,
53
53
  false,
54
- ( localize(13501, "Whether the chat response contains a code block."))
54
+ ( localize(13750, "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(13502, "Whether the chat response contains multiple code blocks."))
59
+ ( localize(13751, "Whether the chat response contains multiple code blocks."))
60
60
  ));
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."))));
61
+ TerminalChatContextKeys.hasChatAgent = ( new RawContextKey(TerminalChatContextKeyStrings.ChatAgentRegistered, false, ( localize(13752, "Whether a chat agent is registered for the terminal location."))));
62
+ TerminalChatContextKeys.hasChatTerminals = ( new RawContextKey(TerminalChatContextKeyStrings.ChatHasTerminals, false, ( localize(13753, "Whether there are any chat terminals."))));
63
63
  TerminalChatContextKeys.hasHiddenChatTerminals = ( new RawContextKey(
64
64
  TerminalChatContextKeyStrings.ChatHasHiddenTerminals,
65
65
  false,
66
- ( localize(13505, "Whether there are any hidden chat terminals."))
66
+ ( localize(13754, "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
- 13852,
6
+ 14114,
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
- 13853,
15
+ 14115,
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(13854, "The border of the sticky scroll overlay in the terminal.")));
23
+ }, ( localize(14116, "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(13855, "Navigate to Command"));
307
+ let hoverTitle = ( localize(14117, "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(13856, "{0} ({1})", terminalStrings.scrollToPreviousCommand.value, label));
312
+ hoverTitle += "\n" + ( localize(14118, "{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(13856, "{0} ({1})", terminalStrings.scrollToNextCommand.value, label));
319
+ hoverTitle += "\n" + ( localize(14118, "{0} ({1})", terminalStrings.scrollToNextCommand.value, label));
320
320
  }
321
321
  }
322
322
  hoverOverlay.title = hoverTitle;