@codingame/monaco-vscode-api 25.0.1 → 25.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.
Files changed (75) hide show
  1. package/package.json +8 -8
  2. package/services.js +3 -3
  3. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  4. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js +1 -1
  5. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +1 -1
  6. package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  7. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +1 -1
  8. package/vscode/src/vs/platform/product/common/product.js +3 -3
  9. package/vscode/src/vs/platform/quickinput/browser/quickInputService.js +1 -1
  10. package/vscode/src/vs/platform/terminal/common/terminal.d.ts +1 -0
  11. package/vscode/src/vs/platform/terminal/common/terminal.js +1 -0
  12. package/vscode/src/vs/platform/userDataSync/common/globalStateSync.js +1 -1
  13. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +4 -4
  14. package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +1 -1
  15. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +3 -3
  16. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +1 -1
  17. package/vscode/src/vs/workbench/browser/actions/textInputActions.js +1 -1
  18. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +1 -1
  19. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +1 -1
  20. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +7 -0
  21. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
  26. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
  27. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
  29. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +47 -47
  30. package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
  31. package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
  32. package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -1
  33. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +2 -2
  34. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +32 -32
  35. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +7 -7
  36. package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
  38. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +3 -3
  39. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
  40. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
  41. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
  42. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
  43. package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
  44. package/vscode/src/vs/workbench/services/accounts/common/defaultAccount.js +1 -1
  45. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
  46. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
  47. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +9 -9
  48. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
  49. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
  50. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  51. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
  52. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
  53. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
  54. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
  55. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +86 -86
  56. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
  57. package/vscode/src/vs/workbench/services/language/common/languageService.js +28 -28
  58. package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
  59. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
  60. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
  61. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
  62. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
  63. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
  64. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
  65. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
  66. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
  67. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +22 -22
  68. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
  69. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
  70. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
  71. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  72. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
  73. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +9 -9
  74. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +17 -17
  75. package/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts +10 -0
@@ -28,30 +28,30 @@ const colorIdPattern = '^\\w+[.\\w+]*$';
28
28
  const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
29
29
  extensionPoint: 'colors',
30
30
  jsonSchema: {
31
- description: ( localize(14330, 'Contributes extension defined themable colors')),
31
+ description: ( localize(14331, 'Contributes extension defined themable colors')),
32
32
  type: 'array',
33
33
  items: {
34
34
  type: 'object',
35
35
  properties: {
36
36
  id: {
37
37
  type: 'string',
38
- description: ( localize(14331, 'The identifier of the themable color')),
38
+ description: ( localize(14332, 'The identifier of the themable color')),
39
39
  pattern: colorIdPattern,
40
40
  patternErrorMessage: ( localize(
41
- 14332,
41
+ 14333,
42
42
  'Identifiers must only contain letters, digits and dots and can not start with a dot'
43
43
  )),
44
44
  },
45
45
  description: {
46
46
  type: 'string',
47
- description: ( localize(14333, 'The description of the themable color')),
47
+ description: ( localize(14334, 'The description of the themable color')),
48
48
  },
49
49
  defaults: {
50
50
  type: 'object',
51
51
  properties: {
52
52
  light: {
53
53
  description: ( localize(
54
- 14334,
54
+ 14335,
55
55
  'The default color for light themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default.'
56
56
  )),
57
57
  type: 'string',
@@ -62,7 +62,7 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
62
62
  },
63
63
  dark: {
64
64
  description: ( localize(
65
- 14335,
65
+ 14336,
66
66
  'The default color for dark themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default.'
67
67
  )),
68
68
  type: 'string',
@@ -73,7 +73,7 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
73
73
  },
74
74
  highContrast: {
75
75
  description: ( localize(
76
- 14336,
76
+ 14337,
77
77
  'The default color for high contrast dark themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default. If not provided, the `dark` color is used as default for high contrast dark themes.'
78
78
  )),
79
79
  type: 'string',
@@ -84,7 +84,7 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
84
84
  },
85
85
  highContrastLight: {
86
86
  description: ( localize(
87
- 14337,
87
+ 14338,
88
88
  'The default color for high contrast light themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default. If not provided, the `light` color is used as default for high contrast light themes.'
89
89
  )),
90
90
  type: 'string',
@@ -107,7 +107,7 @@ class ColorExtensionPoint {
107
107
  const extensionValue = extension.value;
108
108
  const collector = extension.collector;
109
109
  if (!extensionValue || !Array.isArray(extensionValue)) {
110
- collector.error(( localize(14338, "'configuration.colors' must be a array")));
110
+ collector.error(( localize(14339, "'configuration.colors' must be a array")));
111
111
  return;
112
112
  }
113
113
  const parseColorValue = (s, name) => {
@@ -120,7 +120,7 @@ class ColorExtensionPoint {
120
120
  }
121
121
  }
122
122
  collector.error(( localize(
123
- 14339,
123
+ 14340,
124
124
  "{0} must be either a color value in hex (#RRGGBB[AA] or #RGB[A]) or the identifier of a themable color which provides the default.",
125
125
  name
126
126
  )));
@@ -128,19 +128,19 @@ class ColorExtensionPoint {
128
128
  };
129
129
  for (const colorContribution of extensionValue) {
130
130
  if (typeof colorContribution.id !== 'string' || colorContribution.id.length === 0) {
131
- collector.error(( localize(14340, "'configuration.colors.id' must be defined and can not be empty")));
131
+ collector.error(( localize(14341, "'configuration.colors.id' must be defined and can not be empty")));
132
132
  return;
133
133
  }
134
134
  if (!colorContribution.id.match(colorIdPattern)) {
135
135
  collector.error(( localize(
136
- 14341,
136
+ 14342,
137
137
  "'configuration.colors.id' must only contain letters, digits and dots and can not start with a dot"
138
138
  )));
139
139
  return;
140
140
  }
141
141
  if (typeof colorContribution.description !== 'string' || colorContribution.id.length === 0) {
142
142
  collector.error(( localize(
143
- 14342,
143
+ 14343,
144
144
  "'configuration.colors.description' must be defined and can not be empty"
145
145
  )));
146
146
  return;
@@ -148,21 +148,21 @@ class ColorExtensionPoint {
148
148
  const defaults = colorContribution.defaults;
149
149
  if (!defaults || typeof defaults !== 'object' || typeof defaults.light !== 'string' || typeof defaults.dark !== 'string') {
150
150
  collector.error(( localize(
151
- 14343,
151
+ 14344,
152
152
  "'configuration.colors.defaults' must be defined and must contain 'light' and 'dark'"
153
153
  )));
154
154
  return;
155
155
  }
156
156
  if (defaults.highContrast && typeof defaults.highContrast !== 'string') {
157
157
  collector.error(( localize(
158
- 14344,
158
+ 14345,
159
159
  "If defined, 'configuration.colors.defaults.highContrast' must be a string."
160
160
  )));
161
161
  return;
162
162
  }
163
163
  if (defaults.highContrastLight && typeof defaults.highContrastLight !== 'string') {
164
164
  collector.error(( localize(
165
- 14345,
165
+ 14346,
166
166
  "If defined, 'configuration.colors.defaults.highContrastLight' must be a string."
167
167
  )));
168
168
  return;
@@ -198,11 +198,11 @@ class ColorDataRenderer extends Disposable {
198
198
  return { data: { headers: [], rows: [] }, dispose: () => { } };
199
199
  }
200
200
  const headers = [
201
- ( localize(14346, "ID")),
202
- ( localize(14347, "Description")),
203
- ( localize(14348, "Dark Default")),
204
- ( localize(14349, "Light Default")),
205
- ( localize(14350, "High Contrast Default")),
201
+ ( localize(14347, "ID")),
202
+ ( localize(14348, "Description")),
203
+ ( localize(14349, "Dark Default")),
204
+ ( localize(14350, "Light Default")),
205
+ ( localize(14351, "High Contrast Default")),
206
206
  ];
207
207
  const toColor = (colorReference) => colorReference[0] === '#' ? ( Color.fromHex(colorReference)) : undefined;
208
208
  const rows = ( colors.sort((a, b) => a.id.localeCompare(b.id))
@@ -226,7 +226,7 @@ class ColorDataRenderer extends Disposable {
226
226
  }
227
227
  ( Registry.as(Extensions$1.ExtensionFeaturesRegistry)).registerExtensionFeature({
228
228
  id: 'colors',
229
- label: ( localize(14351, "Colors")),
229
+ label: ( localize(14352, "Colors")),
230
230
  access: {
231
231
  canToggle: false
232
232
  },
@@ -636,13 +636,13 @@ async function _loadColorTheme(extensionResourceLoaderService, themeLocation, re
636
636
  const contentValue = parse(content, errors);
637
637
  if (errors.length > 0) {
638
638
  return Promise.reject(( new Error(( localize(
639
- 14352,
639
+ 14353,
640
640
  "Problems parsing JSON theme file: {0}",
641
641
  ( errors.map(e => getParseErrorMessage(e.error))).join(', ')
642
642
  )))));
643
643
  }
644
644
  else if (getNodeType(contentValue) !== 'object') {
645
- return Promise.reject(( new Error(( localize(14353, "Invalid format for JSON theme file: Object expected.")))));
645
+ return Promise.reject(( new Error(( localize(14354, "Invalid format for JSON theme file: Object expected.")))));
646
646
  }
647
647
  if (contentValue.include) {
648
648
  await _loadColorTheme(extensionResourceLoaderService, joinPath(dirname(themeLocation), contentValue.include), result);
@@ -656,7 +656,7 @@ async function _loadColorTheme(extensionResourceLoaderService, themeLocation, re
656
656
  if (colors) {
657
657
  if (typeof colors !== 'object') {
658
658
  return Promise.reject(( new Error(( localize(
659
- 14354,
659
+ 14355,
660
660
  "Problem parsing color theme file: {0}. Property 'colors' is not of type 'object'.",
661
661
  (themeLocation.toString())
662
662
  )))));
@@ -681,7 +681,7 @@ async function _loadColorTheme(extensionResourceLoaderService, themeLocation, re
681
681
  }
682
682
  else {
683
683
  return Promise.reject(( new Error(( localize(
684
- 14355,
684
+ 14356,
685
685
  "Problem parsing color theme file: {0}. Property 'tokenColors' should be either an array specifying colors or a path to a TextMate theme file",
686
686
  (themeLocation.toString())
687
687
  )))));
@@ -698,7 +698,7 @@ async function _loadColorTheme(extensionResourceLoaderService, themeLocation, re
698
698
  }
699
699
  catch (e) {
700
700
  return Promise.reject(( new Error(( localize(
701
- 14356,
701
+ 14357,
702
702
  "Problem parsing color theme file: {0}. Property 'semanticTokenColors' contains a invalid selector",
703
703
  (themeLocation.toString())
704
704
  )))));
@@ -716,17 +716,17 @@ function _loadSyntaxTokens(extensionResourceLoaderService, themeLocation, result
716
716
  const contentValue = parse$1(content);
717
717
  const settings = contentValue.settings;
718
718
  if (!Array.isArray(settings)) {
719
- return Promise.reject(( new Error(( localize(14357, "Problem parsing tmTheme file: {0}. 'settings' is not array.")))));
719
+ return Promise.reject(( new Error(( localize(14358, "Problem parsing tmTheme file: {0}. 'settings' is not array.")))));
720
720
  }
721
721
  convertSettings(settings, result);
722
722
  return Promise.resolve(null);
723
723
  }
724
724
  catch (e) {
725
- return Promise.reject(( new Error(( localize(14358, "Problems parsing tmTheme file: {0}", e.message)))));
725
+ return Promise.reject(( new Error(( localize(14359, "Problems parsing tmTheme file: {0}", e.message)))));
726
726
  }
727
727
  }, error => {
728
728
  return Promise.reject(( new Error(( localize(
729
- 14359,
729
+ 14360,
730
730
  "Problems loading tmTheme file {0}: {1}",
731
731
  (themeLocation.toString()),
732
732
  error.message
@@ -16,13 +16,13 @@ const iconIdPattern = `^${ThemeIcon.iconNameSegment}(-${ThemeIcon.iconNameSegmen
16
16
  const iconConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
17
17
  extensionPoint: 'icons',
18
18
  jsonSchema: {
19
- description: ( localize(14413, 'Contributes extension defined themable icons')),
19
+ description: ( localize(14414, 'Contributes extension defined themable icons')),
20
20
  type: 'object',
21
21
  propertyNames: {
22
22
  pattern: iconIdPattern,
23
- description: ( localize(14414, 'The identifier of the themable icon')),
23
+ description: ( localize(14415, 'The identifier of the themable icon')),
24
24
  patternErrorMessage: ( localize(
25
- 14415,
25
+ 14416,
26
26
  'Identifiers can only contain letters, digits and minuses and need to consist of at least two segments in the form `component-iconname`.'
27
27
  )),
28
28
  },
@@ -31,7 +31,7 @@ const iconConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
31
31
  properties: {
32
32
  description: {
33
33
  type: 'string',
34
- description: ( localize(14416, 'The description of the themable icon')),
34
+ description: ( localize(14417, 'The description of the themable icon')),
35
35
  },
36
36
  default: {
37
37
  anyOf: [
@@ -40,11 +40,11 @@ const iconConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
40
40
  type: 'object',
41
41
  properties: {
42
42
  fontPath: {
43
- description: ( localize(14417, 'The path of the icon font that defines the icon.')),
43
+ description: ( localize(14418, 'The path of the icon font that defines the icon.')),
44
44
  type: 'string'
45
45
  },
46
46
  fontCharacter: {
47
- description: ( localize(14418, 'The character for the icon in the icon font.')),
47
+ description: ( localize(14419, 'The character for the icon in the icon font.')),
48
48
  type: 'string'
49
49
  }
50
50
  },
@@ -53,7 +53,7 @@ const iconConfigurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
53
53
  }
54
54
  ],
55
55
  description: ( localize(
56
- 14419,
56
+ 14420,
57
57
  'The default of the icon. Either a reference to an existing ThemeIcon or an icon in an icon font.'
58
58
  )),
59
59
  }
@@ -72,7 +72,7 @@ class IconExtensionPoint {
72
72
  const collector = extension.collector;
73
73
  if (!extensionValue || typeof extensionValue !== 'object') {
74
74
  collector.error(( localize(
75
- 14420,
75
+ 14421,
76
76
  "'configuration.icons' must be an object with the icon names as properties."
77
77
  )));
78
78
  return;
@@ -80,7 +80,7 @@ class IconExtensionPoint {
80
80
  for (const id in extensionValue) {
81
81
  if (!id.match(iconIdPattern)) {
82
82
  collector.error(( localize(
83
- 14421,
83
+ 14422,
84
84
  "'configuration.icons' keys represent the icon id and can only contain letter, digits and minuses. They need to consist of at least two segments in the form `component-iconname`."
85
85
  )));
86
86
  return;
@@ -88,7 +88,7 @@ class IconExtensionPoint {
88
88
  const iconContribution = extensionValue[id];
89
89
  if (typeof iconContribution.description !== 'string' || iconContribution.description.length === 0) {
90
90
  collector.error(( localize(
91
- 14422,
91
+ 14423,
92
92
  "'configuration.icons.description' must be defined and can not be empty"
93
93
  )));
94
94
  return;
@@ -102,7 +102,7 @@ class IconExtensionPoint {
102
102
  const format = formatMap[fileExt];
103
103
  if (!format) {
104
104
  collector.warn(( localize(
105
- 14423,
105
+ 14424,
106
106
  "Expected `contributes.icons.default.fontPath` to have file extension 'woff', woff2' or 'ttf', is '{0}'.",
107
107
  fileExt
108
108
  )));
@@ -114,7 +114,7 @@ class IconExtensionPoint {
114
114
  const definition = iconRegistry.registerIconFont(fontId, { src: [{ location: iconFontLocation, format }] });
115
115
  if (!isEqualOrParent(iconFontLocation, extensionLocation)) {
116
116
  collector.warn(( localize(
117
- 14424,
117
+ 14425,
118
118
  "Expected `contributes.icons.default.fontPath` ({0}) to be included inside extension's folder ({0}).",
119
119
  iconFontLocation.path,
120
120
  extensionLocation.path
@@ -131,7 +131,7 @@ class IconExtensionPoint {
131
131
  }
132
132
  else {
133
133
  collector.error(( localize(
134
- 14425,
134
+ 14426,
135
135
  "'configuration.icons.default' must be either a reference to the id of an other theme icon (string) or a icon definition (object) with properties `fontPath` and `fontCharacter`."
136
136
  )));
137
137
  }
@@ -18,11 +18,11 @@ const PROFILE_URL_AUTHORITY_PREFIX = 'profile-';
18
18
  function isProfileURL(uri) {
19
19
  return uri.authority === PROFILE_URL_AUTHORITY || ( new RegExp(`^${PROFILE_URL_AUTHORITY_PREFIX}`)).test(uri.authority);
20
20
  }
21
- const defaultUserDataProfileIcon = registerIcon('defaultProfile-icon', Codicon.settings, ( localize(14564, 'Icon for Default Profile.')));
22
- const PROFILES_TITLE = ( localize2(14565, 'Profiles'));
21
+ const defaultUserDataProfileIcon = registerIcon('defaultProfile-icon', Codicon.settings, ( localize(14565, 'Icon for Default Profile.')));
22
+ const PROFILES_TITLE = ( localize2(14566, 'Profiles'));
23
23
  const PROFILES_CATEGORY = { ...PROFILES_TITLE };
24
24
  const PROFILE_EXTENSION = 'code-profile';
25
- const PROFILE_FILTER = [{ name: ( localize(14566, "Profile")), extensions: [PROFILE_EXTENSION] }];
25
+ const PROFILE_FILTER = [{ name: ( localize(14567, "Profile")), extensions: [PROFILE_EXTENSION] }];
26
26
  const CURRENT_PROFILE_CONTEXT = ( new RawContextKey('currentProfile', ''));
27
27
  const IS_CURRENT_PROFILE_TRANSIENT_CONTEXT = ( new RawContextKey('isCurrentProfileTransient', false));
28
28
  const HAS_PROFILES_CONTEXT = ( new RawContextKey('hasProfiles', false));
@@ -3,7 +3,7 @@ import { Codicon } from '../../../../base/common/codicons.js';
3
3
  import { localize } from '../../../../nls.js';
4
4
  import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
5
5
 
6
- const DEFAULT_ICON = registerIcon('settings-view-bar-icon', Codicon.settingsGear, ( localize(14567, "Settings icon in the view bar.")));
6
+ const DEFAULT_ICON = registerIcon('settings-view-bar-icon', Codicon.settingsGear, ( localize(14568, "Settings icon in the view bar.")));
7
7
  const ICONS = [
8
8
  DEFAULT_ICON,
9
9
  Codicon.vm,
@@ -8,16 +8,16 @@ import { Categories } from '../../../../platform/action/common/actionCommonCateg
8
8
 
9
9
  function getSyncAreaLabel(source) {
10
10
  switch (source) {
11
- case SyncResource.Settings: return localize(14597, "Settings");
12
- case SyncResource.Keybindings: return localize(14598, "Keyboard Shortcuts");
13
- case SyncResource.Snippets: return localize(14599, "Snippets");
14
- case SyncResource.Prompts: return localize(14600, "Prompts and Instructions");
15
- case SyncResource.Tasks: return localize(14601, "Tasks");
16
- case SyncResource.Mcp: return localize(14602, "MCP Servers");
17
- case SyncResource.Extensions: return localize(14603, "Extensions");
18
- case SyncResource.GlobalState: return localize(14604, "UI State");
19
- case SyncResource.Profiles: return localize(14605, "Profiles");
20
- case SyncResource.WorkspaceState: return localize(14606, "Workspace State");
11
+ case SyncResource.Settings: return localize(14598, "Settings");
12
+ case SyncResource.Keybindings: return localize(14599, "Keyboard Shortcuts");
13
+ case SyncResource.Snippets: return localize(14600, "Snippets");
14
+ case SyncResource.Prompts: return localize(14601, "Prompts and Instructions");
15
+ case SyncResource.Tasks: return localize(14602, "Tasks");
16
+ case SyncResource.Mcp: return localize(14603, "MCP Servers");
17
+ case SyncResource.Extensions: return localize(14604, "Extensions");
18
+ case SyncResource.GlobalState: return localize(14605, "UI State");
19
+ case SyncResource.Profiles: return localize(14606, "Profiles");
20
+ case SyncResource.WorkspaceState: return localize(14607, "Workspace State");
21
21
  }
22
22
  }
23
23
  var AccountStatus;
@@ -26,8 +26,8 @@ var AccountStatus;
26
26
  AccountStatus["Unavailable"] = "unavailable";
27
27
  AccountStatus["Available"] = "available";
28
28
  })(AccountStatus || (AccountStatus = {}));
29
- const SYNC_TITLE = ( localize2(14607, "Settings Sync"));
30
- const SYNC_VIEW_ICON = registerIcon('settings-sync-view-icon', Codicon.sync, ( localize(14608, 'View icon of the Settings Sync view.')));
29
+ const SYNC_TITLE = ( localize2(14608, "Settings Sync"));
30
+ const SYNC_VIEW_ICON = registerIcon('settings-sync-view-icon', Codicon.sync, ( localize(14609, 'View icon of the Settings Sync view.')));
31
31
  const CONTEXT_SYNC_STATE = ( new RawContextKey('syncStatus', SyncStatus.Uninitialized));
32
32
  const CONTEXT_SYNC_ENABLEMENT = ( new RawContextKey('syncEnabled', false));
33
33
  const CONTEXT_ACCOUNT_STATE = ( new RawContextKey('userDataSyncAccountStatus', AccountStatus.Uninitialized));
@@ -40,7 +40,7 @@ const SYNC_VIEW_CONTAINER_ID = 'workbench.view.sync';
40
40
  const SYNC_CONFLICTS_VIEW_ID = 'workbench.views.sync.conflicts';
41
41
  const DOWNLOAD_ACTIVITY_ACTION_DESCRIPTOR = {
42
42
  id: 'workbench.userDataSync.actions.downloadSyncActivity',
43
- title: ( localize2(14609, "Download Settings Sync Activity")),
43
+ title: ( localize2(14610, "Download Settings Sync Activity")),
44
44
  category: Categories.Developer,
45
45
  f1: true,
46
46
  precondition: ( ContextKeyExpr.and(( CONTEXT_ACCOUNT_STATE.isEqualTo(AccountStatus.Available)), ( CONTEXT_SYNC_STATE.notEqualsTo(SyncStatus.Uninitialized))))
@@ -236,7 +236,7 @@ let ViewsService = class ViewsService extends Disposable {
236
236
  return this.viewDescriptorService.getViewDescriptorById(( viewId.toString()));
237
237
  }
238
238
  getFocusedViewName() {
239
- const textEditorFocused = this.editorService.activeTextEditorControl?.hasTextFocus() ? ( localize(14615, "Text Editor")) : undefined;
239
+ const textEditorFocused = this.editorService.activeTextEditorControl?.hasTextFocus() ? ( localize(14616, "Text Editor")) : undefined;
240
240
  return this.getFocusedView()?.name?.value ?? textEditorFocused ?? '';
241
241
  }
242
242
  async openView(id, focus) {
@@ -337,10 +337,10 @@ let ViewsService = class ViewsService extends Disposable {
337
337
  const localizedTitle = typeof title === 'string' ? title : title.value;
338
338
  const originalTitle = typeof title === 'string' ? title : title.original;
339
339
  if (viewContainerLocation === ViewContainerLocation.Sidebar) {
340
- return { value: ( localize(14616, "Show {0}", localizedTitle)), original: `Show ${originalTitle}` };
340
+ return { value: ( localize(14617, "Show {0}", localizedTitle)), original: `Show ${originalTitle}` };
341
341
  }
342
342
  else {
343
- return { value: ( localize(14617, "Toggle {0}", localizedTitle)), original: `Toggle ${originalTitle}` };
343
+ return { value: ( localize(14618, "Toggle {0}", localizedTitle)), original: `Toggle ${originalTitle}` };
344
344
  }
345
345
  },
346
346
  category: Categories.View,
@@ -407,10 +407,10 @@ let ViewsService = class ViewsService extends Disposable {
407
407
  const localizedTitle = typeof title === 'string' ? title : title.value;
408
408
  const originalTitle = typeof title === 'string' ? title : title.original;
409
409
  if (viewContainerLocation === ViewContainerLocation.Sidebar) {
410
- return { value: ( localize(14616, "Show {0}", localizedTitle)), original: `Show ${originalTitle}` };
410
+ return { value: ( localize(14617, "Show {0}", localizedTitle)), original: `Show ${originalTitle}` };
411
411
  }
412
412
  else {
413
- return { value: ( localize(14617, "Toggle {0}", localizedTitle)), original: `Toggle ${originalTitle}` };
413
+ return { value: ( localize(14618, "Toggle {0}", localizedTitle)), original: `Toggle ${originalTitle}` };
414
414
  }
415
415
  },
416
416
  category: Categories.View,
@@ -418,7 +418,7 @@ let ViewsService = class ViewsService extends Disposable {
418
418
  keybinding: viewDescriptor.openCommandActionDescriptor?.keybindings ? { ...viewDescriptor.openCommandActionDescriptor.keybindings, weight: KeybindingWeight.WorkbenchContrib } : undefined,
419
419
  f1: viewDescriptor.openCommandActionDescriptor ? true : undefined,
420
420
  metadata: {
421
- description: ( localize(14618, "Opens view {0}", viewDescriptor.name.value)),
421
+ description: ( localize(14619, "Opens view {0}", viewDescriptor.name.value)),
422
422
  args: [
423
423
  {
424
424
  name: 'options',
@@ -428,7 +428,7 @@ let ViewsService = class ViewsService extends Disposable {
428
428
  'preserveFocus': {
429
429
  type: 'boolean',
430
430
  default: false,
431
- description: ( localize(14619, "Whether to preserve the existing focus when opening the view."))
431
+ description: ( localize(14620, "Whether to preserve the existing focus when opening the view."))
432
432
  }
433
433
  },
434
434
  }
@@ -478,7 +478,7 @@ let ViewsService = class ViewsService extends Disposable {
478
478
  registerFocusViewAction(viewDescriptor, category) {
479
479
  return registerAction2(class FocusViewAction extends Action2 {
480
480
  constructor() {
481
- const title = ( localize2(14620, "Focus on {0} View", viewDescriptor.name.value));
481
+ const title = ( localize2(14621, "Focus on {0} View", viewDescriptor.name.value));
482
482
  super({
483
483
  id: viewDescriptor.focusCommand ? viewDescriptor.focusCommand.id : `${viewDescriptor.id}.focus`,
484
484
  title,
@@ -526,7 +526,7 @@ let ViewsService = class ViewsService extends Disposable {
526
526
  constructor() {
527
527
  super({
528
528
  id: `${viewDescriptor.id}.resetViewLocation`,
529
- title: ( localize2(14621, "Reset Location")),
529
+ title: ( localize2(14622, "Reset Location")),
530
530
  menu: [{
531
531
  id: MenuId.ViewTitleContext,
532
532
  when: ( ContextKeyExpr.or(( ContextKeyExpr.and(( ContextKeyExpr.equals('view', viewDescriptor.id)), ( ContextKeyExpr.equals(`${viewDescriptor.id}.defaultViewLocation`, false)))))),
@@ -409,7 +409,7 @@ let StoredFileWorkingCopy = class StoredFileWorkingCopy extends ResourceWorkingC
409
409
  }
410
410
  const saveCancellation = ( new CancellationTokenSource());
411
411
  return this.progressService.withProgress({
412
- title: ( localize(14634, "Saving '{0}'", this.name)),
412
+ title: ( localize(14635, "Saving '{0}'", this.name)),
413
413
  location: ProgressLocation.Window,
414
414
  cancellable: true,
415
415
  delay: this.isDirty() ? 3000 : 5000
@@ -461,7 +461,7 @@ let StoredFileWorkingCopy = class StoredFileWorkingCopy extends ResourceWorkingC
461
461
  }
462
462
  versionId = this.versionId;
463
463
  this.inErrorMode = false;
464
- progress.report({ message: ( localize(14635, "Writing into file...")) });
464
+ progress.report({ message: ( localize(14636, "Writing into file...")) });
465
465
  this.trace(`doSave(${versionId}) - before write()`);
466
466
  const lastResolvedFileStat = assertReturnsDefined(this.lastResolvedFileStat);
467
467
  const resolvedFileWorkingCopy = this;
@@ -538,12 +538,12 @@ let StoredFileWorkingCopy = class StoredFileWorkingCopy extends ResourceWorkingC
538
538
  let message;
539
539
  if (fileOperationError.fileOperationResult === FileOperationResult.FILE_MODIFIED_SINCE) {
540
540
  message = ( localize(
541
- 14636,
541
+ 14637,
542
542
  "Failed to save '{0}': The content of the file is newer. Do you want to overwrite the file with your changes?",
543
543
  this.name
544
544
  ));
545
- primaryActions.push(toAction({ id: 'fileWorkingCopy.overwrite', label: ( localize(14637, "Overwrite")), run: () => this.save({ ...options, ignoreModifiedSince: true, reason: SaveReason.EXPLICIT }) }));
546
- primaryActions.push(toAction({ id: 'fileWorkingCopy.revert', label: ( localize(14638, "Revert")), run: () => this.revert() }));
545
+ primaryActions.push(toAction({ id: 'fileWorkingCopy.overwrite', label: ( localize(14638, "Overwrite")), run: () => this.save({ ...options, ignoreModifiedSince: true, reason: SaveReason.EXPLICIT }) }));
546
+ primaryActions.push(toAction({ id: 'fileWorkingCopy.revert', label: ( localize(14639, "Revert")), run: () => this.revert() }));
547
547
  }
548
548
  else {
549
549
  const isWriteLocked = fileOperationError.fileOperationResult === FileOperationResult.FILE_WRITE_LOCKED;
@@ -557,22 +557,22 @@ let StoredFileWorkingCopy = class StoredFileWorkingCopy extends ResourceWorkingC
557
557
  primaryActions.push(toAction({
558
558
  id: 'fileWorkingCopy.saveElevated',
559
559
  label: triedToUnlock ?
560
- isWindows ? ( localize(14639, "Overwrite as Admin...")) : ( localize(14640, "Overwrite as Sudo...")) :
561
- isWindows ? ( localize(14641, "Retry as Admin...")) : ( localize(14642, "Retry as Sudo...")),
560
+ isWindows ? ( localize(14640, "Overwrite as Admin...")) : ( localize(14641, "Overwrite as Sudo...")) :
561
+ isWindows ? ( localize(14642, "Retry as Admin...")) : ( localize(14643, "Retry as Sudo...")),
562
562
  run: () => {
563
563
  this.save({ ...options, writeElevated: true, writeUnlock: triedToUnlock, reason: SaveReason.EXPLICIT });
564
564
  }
565
565
  }));
566
566
  }
567
567
  else if (isWriteLocked) {
568
- primaryActions.push(toAction({ id: 'fileWorkingCopy.unlock', label: ( localize(14637, "Overwrite")), run: () => this.save({ ...options, writeUnlock: true, reason: SaveReason.EXPLICIT }) }));
568
+ primaryActions.push(toAction({ id: 'fileWorkingCopy.unlock', label: ( localize(14638, "Overwrite")), run: () => this.save({ ...options, writeUnlock: true, reason: SaveReason.EXPLICIT }) }));
569
569
  }
570
570
  else {
571
- primaryActions.push(toAction({ id: 'fileWorkingCopy.retry', label: ( localize(14643, "Retry")), run: () => this.save({ ...options, reason: SaveReason.EXPLICIT }) }));
571
+ primaryActions.push(toAction({ id: 'fileWorkingCopy.retry', label: ( localize(14644, "Retry")), run: () => this.save({ ...options, reason: SaveReason.EXPLICIT }) }));
572
572
  }
573
573
  primaryActions.push(toAction({
574
574
  id: 'fileWorkingCopy.saveAs',
575
- label: ( localize(14644, "Save As...")),
575
+ label: ( localize(14645, "Save As...")),
576
576
  run: async () => {
577
577
  const editor = this.workingCopyEditorService.findEditor(this);
578
578
  if (editor) {
@@ -583,24 +583,24 @@ let StoredFileWorkingCopy = class StoredFileWorkingCopy extends ResourceWorkingC
583
583
  }
584
584
  }
585
585
  }));
586
- primaryActions.push(toAction({ id: 'fileWorkingCopy.revert', label: ( localize(14638, "Revert")), run: () => this.revert() }));
586
+ primaryActions.push(toAction({ id: 'fileWorkingCopy.revert', label: ( localize(14639, "Revert")), run: () => this.revert() }));
587
587
  if (isWriteLocked) {
588
588
  if (triedToUnlock && canSaveElevated) {
589
589
  message = isWindows ?
590
590
  ( localize(
591
- 14645,
591
+ 14646,
592
592
  "Failed to save '{0}': File is read-only. Select 'Overwrite as Admin' to retry as administrator.",
593
593
  this.name
594
594
  )) :
595
595
  ( localize(
596
- 14646,
596
+ 14647,
597
597
  "Failed to save '{0}': File is read-only. Select 'Overwrite as Sudo' to retry as superuser.",
598
598
  this.name
599
599
  ));
600
600
  }
601
601
  else {
602
602
  message = ( localize(
603
- 14647,
603
+ 14648,
604
604
  "Failed to save '{0}': File is read-only. Select 'Overwrite' to attempt to make it writeable.",
605
605
  this.name
606
606
  ));
@@ -609,19 +609,19 @@ let StoredFileWorkingCopy = class StoredFileWorkingCopy extends ResourceWorkingC
609
609
  else if (canSaveElevated && isPermissionDenied) {
610
610
  message = isWindows ?
611
611
  ( localize(
612
- 14648,
612
+ 14649,
613
613
  "Failed to save '{0}': Insufficient permissions. Select 'Retry as Admin' to retry as administrator.",
614
614
  this.name
615
615
  )) :
616
616
  ( localize(
617
- 14649,
617
+ 14650,
618
618
  "Failed to save '{0}': Insufficient permissions. Select 'Retry as Sudo' to retry as superuser.",
619
619
  this.name
620
620
  ));
621
621
  }
622
622
  else {
623
623
  message = ( localize(
624
- 14650,
624
+ 14651,
625
625
  "Failed to save '{0}': {1}",
626
626
  this.name,
627
627
  toErrorMessage(error, false)
@@ -362,6 +362,16 @@ declare module 'vscode' {
362
362
  * The selectable items within this option group.
363
363
  */
364
364
  readonly items: ChatSessionProviderOptionItem[];
365
+
366
+ /**
367
+ * A context key expression that controls when this option group picker is visible.
368
+ * When specified, the picker is only shown when the expression evaluates to true.
369
+ * The expression can reference other option group values via `chatSessionOption.<groupId>`.
370
+ *
371
+ * Example: `"chatSessionOption.models == 'gpt-4'"` - only show this picker when
372
+ * the 'models' option group has 'gpt-4' selected.
373
+ */
374
+ readonly when?: string;
365
375
  }
366
376
 
367
377
  export interface ChatSessionProviderOptions {