@codingame/monaco-vscode-api 25.0.1 → 25.1.1
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/missing-services.js +10 -0
- package/package.json +8 -8
- package/services.d.ts +1 -0
- package/services.js +4 -3
- package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +1 -1
- package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +1 -1
- package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +1 -1
- package/vscode/src/vs/platform/product/common/product.js +3 -3
- package/vscode/src/vs/platform/quickinput/browser/quickInputService.js +1 -1
- package/vscode/src/vs/platform/terminal/common/terminal.d.ts +1 -0
- package/vscode/src/vs/platform/terminal/common/terminal.js +1 -0
- package/vscode/src/vs/platform/userDataSync/common/globalStateSync.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +4 -4
- package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +3 -3
- package/vscode/src/vs/workbench/api/common/extHostNotebook.js +1 -1
- package/vscode/src/vs/workbench/browser/actions/textInputActions.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.service.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.service.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +47 -47
- package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +32 -32
- package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +3 -3
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
- package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
- package/vscode/src/vs/workbench/services/accounts/common/defaultAccount.js +1 -1
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
- package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
- package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +9 -9
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
- package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
- package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
- package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +86 -86
- package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
- package/vscode/src/vs/workbench/services/language/common/languageService.js +28 -28
- package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
- package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
- package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
- package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
- package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
- package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
- package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +22 -22
- package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
- package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
- package/vscode/src/vs/workbench/services/views/browser/viewsService.js +9 -9
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +17 -17
- 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(
|
|
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(
|
|
38
|
+
description: ( localize(14332, 'The identifier of the themable color')),
|
|
39
39
|
pattern: colorIdPattern,
|
|
40
40
|
patternErrorMessage: ( localize(
|
|
41
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
202
|
-
( localize(
|
|
203
|
-
( localize(
|
|
204
|
-
( localize(
|
|
205
|
-
( localize(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
19
|
+
description: ( localize(14414, 'Contributes extension defined themable icons')),
|
|
20
20
|
type: 'object',
|
|
21
21
|
propertyNames: {
|
|
22
22
|
pattern: iconIdPattern,
|
|
23
|
-
description: ( localize(
|
|
23
|
+
description: ( localize(14415, 'The identifier of the themable icon')),
|
|
24
24
|
patternErrorMessage: ( localize(
|
|
25
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
22
|
-
const PROFILES_TITLE = ( localize2(
|
|
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(
|
|
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(
|
|
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(
|
|
12
|
-
case SyncResource.Keybindings: return localize(
|
|
13
|
-
case SyncResource.Snippets: return localize(
|
|
14
|
-
case SyncResource.Prompts: return localize(
|
|
15
|
-
case SyncResource.Tasks: return localize(
|
|
16
|
-
case SyncResource.Mcp: return localize(
|
|
17
|
-
case SyncResource.Extensions: return localize(
|
|
18
|
-
case SyncResource.GlobalState: return localize(
|
|
19
|
-
case SyncResource.Profiles: return localize(
|
|
20
|
-
case SyncResource.WorkspaceState: return localize(
|
|
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(
|
|
30
|
-
const SYNC_VIEW_ICON = registerIcon('settings-sync-view-icon', Codicon.sync, ( localize(
|
|
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(
|
|
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(
|
|
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(
|
|
340
|
+
return { value: ( localize(14617, "Show {0}", localizedTitle)), original: `Show ${originalTitle}` };
|
|
341
341
|
}
|
|
342
342
|
else {
|
|
343
|
-
return { value: ( localize(
|
|
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(
|
|
410
|
+
return { value: ( localize(14617, "Show {0}", localizedTitle)), original: `Show ${originalTitle}` };
|
|
411
411
|
}
|
|
412
412
|
else {
|
|
413
|
-
return { value: ( localize(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
546
|
-
primaryActions.push(toAction({ id: 'fileWorkingCopy.revert', label: ( localize(
|
|
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(
|
|
561
|
-
isWindows ? ( localize(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|