@codingame/monaco-vscode-chat-service-override 15.0.0 → 15.0.2
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 +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/chatAttachPromptAction.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +46 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +29 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/errors.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/usePromptCommand.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +8 -8
|
@@ -14,14 +14,14 @@ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/c
|
|
|
14
14
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
15
15
|
|
|
16
16
|
const defaultFileName = 'chat.json';
|
|
17
|
-
const filters = [{ name: ( localize(
|
|
17
|
+
const filters = [{ name: ( localize(4374, "Chat Session")), extensions: ['json'] }];
|
|
18
18
|
function registerChatExportActions() {
|
|
19
19
|
registerAction2(class ExportChatAction extends Action2 {
|
|
20
20
|
constructor() {
|
|
21
21
|
super({
|
|
22
22
|
id: 'workbench.action.chat.export',
|
|
23
23
|
category: CHAT_CATEGORY,
|
|
24
|
-
title: ( localize2(
|
|
24
|
+
title: ( localize2(4375, "Export Chat...")),
|
|
25
25
|
precondition: ChatContextKeys.enabled,
|
|
26
26
|
f1: true,
|
|
27
27
|
});
|
|
@@ -55,7 +55,7 @@ function registerChatExportActions() {
|
|
|
55
55
|
constructor() {
|
|
56
56
|
super({
|
|
57
57
|
id: 'workbench.action.chat.import',
|
|
58
|
-
title: ( localize2(
|
|
58
|
+
title: ( localize2(4376, "Import Chat...")),
|
|
59
59
|
category: CHAT_CATEGORY,
|
|
60
60
|
precondition: ChatContextKeys.enabled,
|
|
61
61
|
f1: true,
|
|
@@ -26,7 +26,7 @@ function registerMoveActions() {
|
|
|
26
26
|
constructor() {
|
|
27
27
|
super({
|
|
28
28
|
id: `workbench.action.chat.openInEditor`,
|
|
29
|
-
title: ( localize2(
|
|
29
|
+
title: ( localize2(4377, "Open Chat in Editor")),
|
|
30
30
|
category: CHAT_CATEGORY,
|
|
31
31
|
precondition: ChatContextKeys.enabled,
|
|
32
32
|
f1: true,
|
|
@@ -47,7 +47,7 @@ function registerMoveActions() {
|
|
|
47
47
|
constructor() {
|
|
48
48
|
super({
|
|
49
49
|
id: `workbench.action.chat.openInNewWindow`,
|
|
50
|
-
title: ( localize2(
|
|
50
|
+
title: ( localize2(4378, "Open Chat in New Window")),
|
|
51
51
|
category: CHAT_CATEGORY,
|
|
52
52
|
precondition: ChatContextKeys.enabled,
|
|
53
53
|
f1: true,
|
|
@@ -68,7 +68,7 @@ function registerMoveActions() {
|
|
|
68
68
|
constructor() {
|
|
69
69
|
super({
|
|
70
70
|
id: `workbench.action.chat.openInSidebar`,
|
|
71
|
-
title: ( localize2(
|
|
71
|
+
title: ( localize2(4379, "Open Chat in Side Bar")),
|
|
72
72
|
category: CHAT_CATEGORY,
|
|
73
73
|
precondition: ChatContextKeys.enabled,
|
|
74
74
|
f1: true,
|
|
@@ -18,7 +18,7 @@ function registerQuickChatActions() {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super({
|
|
20
20
|
id: 'workbench.action.quickchat.openInChatView',
|
|
21
|
-
title: ( localize2(
|
|
21
|
+
title: ( localize2(4380, "Open in Chat View")),
|
|
22
22
|
f1: false,
|
|
23
23
|
category: CHAT_CATEGORY,
|
|
24
24
|
icon: Codicon.commentDiscussion,
|
|
@@ -38,7 +38,7 @@ function registerQuickChatActions() {
|
|
|
38
38
|
constructor() {
|
|
39
39
|
super({
|
|
40
40
|
id: 'workbench.action.quickchat.close',
|
|
41
|
-
title: ( localize2(
|
|
41
|
+
title: ( localize2(4381, "Close Quick Chat")),
|
|
42
42
|
f1: false,
|
|
43
43
|
category: CHAT_CATEGORY,
|
|
44
44
|
icon: Codicon.close,
|
|
@@ -59,7 +59,7 @@ class QuickChatGlobalAction extends Action2 {
|
|
|
59
59
|
constructor() {
|
|
60
60
|
super({
|
|
61
61
|
id: ASK_QUICK_QUESTION_ACTION_ID,
|
|
62
|
-
title: ( localize2(
|
|
62
|
+
title: ( localize2(4382, 'Quick Chat')),
|
|
63
63
|
precondition: ChatContextKeys.enabled,
|
|
64
64
|
icon: Codicon.commentDiscussion,
|
|
65
65
|
f1: false,
|
|
@@ -74,7 +74,7 @@ class QuickChatGlobalAction extends Action2 {
|
|
|
74
74
|
order: 4
|
|
75
75
|
},
|
|
76
76
|
metadata: {
|
|
77
|
-
description: ( localize(
|
|
77
|
+
description: ( localize(4383, 'Toggle the quick chat')),
|
|
78
78
|
args: [{
|
|
79
79
|
name: 'args',
|
|
80
80
|
schema: {
|
|
@@ -84,18 +84,18 @@ class QuickChatGlobalAction extends Action2 {
|
|
|
84
84
|
required: ['query'],
|
|
85
85
|
properties: {
|
|
86
86
|
query: {
|
|
87
|
-
description: ( localize(
|
|
87
|
+
description: ( localize(4384, "The query to open the quick chat with")),
|
|
88
88
|
type: 'string'
|
|
89
89
|
},
|
|
90
90
|
isPartialQuery: {
|
|
91
|
-
description: ( localize(
|
|
91
|
+
description: ( localize(4385, "Whether the query is partial; it will wait for more user input")),
|
|
92
92
|
type: 'boolean'
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
type: 'string',
|
|
98
|
-
description: ( localize(
|
|
98
|
+
description: ( localize(4384, "The query to open the quick chat with"))
|
|
99
99
|
}
|
|
100
100
|
]
|
|
101
101
|
}
|
|
@@ -125,7 +125,7 @@ class AskQuickChatAction extends Action2 {
|
|
|
125
125
|
super({
|
|
126
126
|
id: `workbench.action.openQuickChat`,
|
|
127
127
|
category: CHAT_CATEGORY,
|
|
128
|
-
title: ( localize2(
|
|
128
|
+
title: ( localize2(4386, "Open Quick Chat")),
|
|
129
129
|
f1: true
|
|
130
130
|
});
|
|
131
131
|
}
|
|
@@ -54,7 +54,7 @@ let InsertCodeBlockOperation = class InsertCodeBlockOperation {
|
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
56
|
this.notify(( localize(
|
|
57
|
-
|
|
57
|
+
4404,
|
|
58
58
|
"To insert the code block, open a code editor or notebook editor and set the cursor at the location where to insert the code block."
|
|
59
59
|
)));
|
|
60
60
|
}
|
|
@@ -67,7 +67,7 @@ let InsertCodeBlockOperation = class InsertCodeBlockOperation {
|
|
|
67
67
|
}
|
|
68
68
|
async handleNotebookEditor(notebookEditor, codeBlockContext) {
|
|
69
69
|
if (notebookEditor.isReadOnly) {
|
|
70
|
-
this.notify(( localize(
|
|
70
|
+
this.notify(( localize(4405, "Cannot insert the code block to read-only notebook editor.")));
|
|
71
71
|
return false;
|
|
72
72
|
}
|
|
73
73
|
const focusRange = notebookEditor.getFocus();
|
|
@@ -78,7 +78,7 @@ let InsertCodeBlockOperation = class InsertCodeBlockOperation {
|
|
|
78
78
|
async handleTextEditor(codeEditor, codeBlockContext) {
|
|
79
79
|
const activeModel = codeEditor.getModel();
|
|
80
80
|
if (isReadOnly(activeModel, this.textFileService)) {
|
|
81
|
-
this.notify(( localize(
|
|
81
|
+
this.notify(( localize(4406, "Cannot insert the code block to read-only code editor.")));
|
|
82
82
|
return false;
|
|
83
83
|
}
|
|
84
84
|
const range = codeEditor.getSelection() ?? ( new Range(activeModel.getLineCount(), 1, activeModel.getLineCount(), 1));
|
|
@@ -131,7 +131,7 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
131
131
|
activeEditorControl = codeEditor;
|
|
132
132
|
}
|
|
133
133
|
else {
|
|
134
|
-
this.notify(( localize(
|
|
134
|
+
this.notify(( localize(4407, "Failed to open {0} in a code editor.", (codemapperUri.toString()))));
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -150,7 +150,7 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
150
150
|
result = await this.handleNotebookEditor(activeNotebookEditor, context.code);
|
|
151
151
|
}
|
|
152
152
|
else {
|
|
153
|
-
this.notify(( localize(
|
|
153
|
+
this.notify(( localize(4408, "To apply this code block, open a code or notebook editor.")));
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
notifyUserAction(this.chatService, context, {
|
|
@@ -166,15 +166,15 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
166
166
|
return resource;
|
|
167
167
|
}
|
|
168
168
|
const activeEditorOption = activeEditorControl?.getModel().uri ? { label: ( localize(
|
|
169
|
-
|
|
169
|
+
4409,
|
|
170
170
|
"Active editor '{0}'",
|
|
171
171
|
this.labelService.getUriLabel(activeEditorControl.getModel().uri, { relative: true })
|
|
172
172
|
)), id: 'activeEditor' } : undefined;
|
|
173
|
-
const untitledEditorOption = { label: ( localize(
|
|
173
|
+
const untitledEditorOption = { label: ( localize(4410, "New untitled editor")), id: 'newUntitledFile' };
|
|
174
174
|
const options = [];
|
|
175
175
|
if (resource) {
|
|
176
176
|
options.push({ label: ( localize(
|
|
177
|
-
|
|
177
|
+
4411,
|
|
178
178
|
"New file '{0}'",
|
|
179
179
|
this.labelService.getUriLabel(resource, { relative: true })
|
|
180
180
|
)), id: 'createFile' });
|
|
@@ -189,7 +189,7 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
189
189
|
}
|
|
190
190
|
options.push(untitledEditorOption);
|
|
191
191
|
}
|
|
192
|
-
const selected = options.length > 1 ? await this.quickInputService.pick(options, { placeHolder: ( localize(
|
|
192
|
+
const selected = options.length > 1 ? await this.quickInputService.pick(options, { placeHolder: ( localize(4412, "Select where to apply the code block")) }) : options[0];
|
|
193
193
|
if (selected) {
|
|
194
194
|
switch (selected.id) {
|
|
195
195
|
case 'createFile':
|
|
@@ -198,7 +198,7 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
198
198
|
await this.fileService.writeFile(resource, VSBuffer.fromString(''));
|
|
199
199
|
}
|
|
200
200
|
catch (error) {
|
|
201
|
-
this.notify(( localize(
|
|
201
|
+
this.notify(( localize(4413, "Failed to create file: {0}", error.message)));
|
|
202
202
|
return ( URI.from({ scheme: 'untitled', path: resource.path }));
|
|
203
203
|
}
|
|
204
204
|
}
|
|
@@ -213,7 +213,7 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
213
213
|
}
|
|
214
214
|
async handleNotebookEditor(notebookEditor, code) {
|
|
215
215
|
if (notebookEditor.isReadOnly) {
|
|
216
|
-
this.notify(( localize(
|
|
216
|
+
this.notify(( localize(4414, "Cannot apply code block to read-only notebook editor.")));
|
|
217
217
|
return undefined;
|
|
218
218
|
}
|
|
219
219
|
const focusRange = notebookEditor.getFocus();
|
|
@@ -224,20 +224,20 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
224
224
|
async handleTextEditor(codeEditor, code) {
|
|
225
225
|
const activeModel = codeEditor.getModel();
|
|
226
226
|
if (isReadOnly(activeModel, this.textFileService)) {
|
|
227
|
-
this.notify(( localize(
|
|
227
|
+
this.notify(( localize(4415, "Cannot apply code block to read-only file.")));
|
|
228
228
|
return undefined;
|
|
229
229
|
}
|
|
230
230
|
const codeBlock = { code, resource: activeModel.uri, markdownBeforeBlock: undefined };
|
|
231
231
|
const codeMapper = this.codeMapperService.providers[0]?.displayName;
|
|
232
232
|
if (!codeMapper) {
|
|
233
|
-
this.notify(( localize(
|
|
233
|
+
this.notify(( localize(4416, "No code mapper available.")));
|
|
234
234
|
return undefined;
|
|
235
235
|
}
|
|
236
236
|
let editsProposed = false;
|
|
237
237
|
const cancellationTokenSource = ( new CancellationTokenSource());
|
|
238
238
|
try {
|
|
239
239
|
const iterable = await this.progressService.withProgress({ location: ProgressLocation.Notification, delay: 500, sticky: true, cancellable: true }, async (progress) => {
|
|
240
|
-
progress.report({ message: ( localize(
|
|
240
|
+
progress.report({ message: ( localize(4417, "Applying code block using {0}...", codeMapper)) });
|
|
241
241
|
const editsIterable = this.getEdits(codeBlock, cancellationTokenSource.token);
|
|
242
242
|
return await this.waitForFirstElement(editsIterable);
|
|
243
243
|
}, () => cancellationTokenSource.cancel());
|
|
@@ -245,7 +245,7 @@ let ApplyCodeBlockOperation = class ApplyCodeBlockOperation {
|
|
|
245
245
|
}
|
|
246
246
|
catch (e) {
|
|
247
247
|
if (!isCancellationError(e)) {
|
|
248
|
-
this.notify(( localize(
|
|
248
|
+
this.notify(( localize(4418, "Failed to apply code block: {0}", e.message)));
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
finally {
|
|
@@ -95,34 +95,34 @@ import { ChatEditingNotebookFileSystemProviderContrib } from '@codingame/monaco-
|
|
|
95
95
|
const configurationRegistry = ( Registry.as(Extensions.Configuration));
|
|
96
96
|
configurationRegistry.registerConfiguration({
|
|
97
97
|
id: 'chatSidebar',
|
|
98
|
-
title: ( localize(
|
|
98
|
+
title: ( localize(4430, "Chat")),
|
|
99
99
|
type: 'object',
|
|
100
100
|
properties: {
|
|
101
101
|
'chat.editor.fontSize': {
|
|
102
102
|
type: 'number',
|
|
103
|
-
description: ( localize(
|
|
103
|
+
description: ( localize(4431, "Controls the font size in pixels in chat codeblocks.")),
|
|
104
104
|
default: isMacintosh ? 12 : 14,
|
|
105
105
|
},
|
|
106
106
|
'chat.editor.fontFamily': {
|
|
107
107
|
type: 'string',
|
|
108
|
-
description: ( localize(
|
|
108
|
+
description: ( localize(4432, "Controls the font family in chat codeblocks.")),
|
|
109
109
|
default: 'default'
|
|
110
110
|
},
|
|
111
111
|
'chat.editor.fontWeight': {
|
|
112
112
|
type: 'string',
|
|
113
|
-
description: ( localize(
|
|
113
|
+
description: ( localize(4433, "Controls the font weight in chat codeblocks.")),
|
|
114
114
|
default: 'default'
|
|
115
115
|
},
|
|
116
116
|
'chat.editor.wordWrap': {
|
|
117
117
|
type: 'string',
|
|
118
|
-
description: ( localize(
|
|
118
|
+
description: ( localize(4434, "Controls whether lines should wrap in chat codeblocks.")),
|
|
119
119
|
default: 'off',
|
|
120
120
|
enum: ['on', 'off']
|
|
121
121
|
},
|
|
122
122
|
'chat.editor.lineHeight': {
|
|
123
123
|
type: 'number',
|
|
124
124
|
description: ( localize(
|
|
125
|
-
|
|
125
|
+
4435,
|
|
126
126
|
"Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."
|
|
127
127
|
)),
|
|
128
128
|
default: 0
|
|
@@ -130,7 +130,7 @@ configurationRegistry.registerConfiguration({
|
|
|
130
130
|
'chat.commandCenter.enabled': {
|
|
131
131
|
type: 'boolean',
|
|
132
132
|
markdownDescription: ( localize(
|
|
133
|
-
|
|
133
|
+
4436,
|
|
134
134
|
"Controls whether the command center shows a menu for actions to control Copilot (requires {0}).",
|
|
135
135
|
'`#window.commandCenter#`'
|
|
136
136
|
)),
|
|
@@ -140,17 +140,17 @@ configurationRegistry.registerConfiguration({
|
|
|
140
140
|
type: 'object',
|
|
141
141
|
tags: ['experimental'],
|
|
142
142
|
description: ( localize(
|
|
143
|
-
|
|
143
|
+
4437,
|
|
144
144
|
"Enables automatically using the active editor as chat context for specified chat locations."
|
|
145
145
|
)),
|
|
146
146
|
additionalProperties: {
|
|
147
147
|
type: 'string',
|
|
148
148
|
enum: ['never', 'first', 'always'],
|
|
149
|
-
description: ( localize(
|
|
149
|
+
description: ( localize(4438, "The value for the implicit context.")),
|
|
150
150
|
enumDescriptions: [
|
|
151
|
-
( localize(
|
|
152
|
-
( localize(
|
|
153
|
-
( localize(
|
|
151
|
+
( localize(4439, "Implicit context is never enabled.")),
|
|
152
|
+
( localize(4440, "Implicit context is enabled for the first interaction.")),
|
|
153
|
+
( localize(4441, "Implicit context is always enabled."))
|
|
154
154
|
]
|
|
155
155
|
},
|
|
156
156
|
default: {
|
|
@@ -161,7 +161,7 @@ configurationRegistry.registerConfiguration({
|
|
|
161
161
|
'chat.editing.autoAcceptDelay': {
|
|
162
162
|
type: 'number',
|
|
163
163
|
markdownDescription: ( localize(
|
|
164
|
-
|
|
164
|
+
4442,
|
|
165
165
|
"Delay after which changes made by chat are automatically accepted. Values are in seconds, `0` means disabled and `100` seconds is the maximum."
|
|
166
166
|
)),
|
|
167
167
|
default: 0,
|
|
@@ -172,7 +172,7 @@ configurationRegistry.registerConfiguration({
|
|
|
172
172
|
type: 'boolean',
|
|
173
173
|
scope: ConfigurationScope.APPLICATION,
|
|
174
174
|
markdownDescription: ( localize(
|
|
175
|
-
|
|
175
|
+
4443,
|
|
176
176
|
"Whether to show a confirmation before removing a request and its associated edits."
|
|
177
177
|
)),
|
|
178
178
|
default: true,
|
|
@@ -181,7 +181,7 @@ configurationRegistry.registerConfiguration({
|
|
|
181
181
|
type: 'boolean',
|
|
182
182
|
scope: ConfigurationScope.APPLICATION,
|
|
183
183
|
markdownDescription: ( localize(
|
|
184
|
-
|
|
184
|
+
4444,
|
|
185
185
|
"Whether to show a confirmation before retrying a request and its associated edits."
|
|
186
186
|
)),
|
|
187
187
|
default: true,
|
|
@@ -189,21 +189,21 @@ configurationRegistry.registerConfiguration({
|
|
|
189
189
|
'chat.experimental.detectParticipant.enabled': {
|
|
190
190
|
type: 'boolean',
|
|
191
191
|
deprecationMessage: ( localize(
|
|
192
|
-
|
|
192
|
+
4445,
|
|
193
193
|
"This setting is deprecated. Please use `chat.detectParticipant.enabled` instead."
|
|
194
194
|
)),
|
|
195
|
-
description: ( localize(
|
|
195
|
+
description: ( localize(4446, "Enables chat participant autodetection for panel chat.")),
|
|
196
196
|
default: null
|
|
197
197
|
},
|
|
198
198
|
'chat.detectParticipant.enabled': {
|
|
199
199
|
type: 'boolean',
|
|
200
|
-
description: ( localize(
|
|
200
|
+
description: ( localize(4447, "Enables chat participant autodetection for panel chat.")),
|
|
201
201
|
default: true
|
|
202
202
|
},
|
|
203
203
|
'chat.renderRelatedFiles': {
|
|
204
204
|
type: 'boolean',
|
|
205
205
|
description: ( localize(
|
|
206
|
-
|
|
206
|
+
4448,
|
|
207
207
|
"Controls whether related files should be rendered in the chat input."
|
|
208
208
|
)),
|
|
209
209
|
default: false
|
|
@@ -211,7 +211,7 @@ configurationRegistry.registerConfiguration({
|
|
|
211
211
|
'chat.experimental.statusIndicator.enabled': {
|
|
212
212
|
type: 'boolean',
|
|
213
213
|
description: ( localize(
|
|
214
|
-
|
|
214
|
+
4449,
|
|
215
215
|
"Controls whether a Copilot related status indicator appears in the lower right corner."
|
|
216
216
|
)),
|
|
217
217
|
default: product.quality !== 'stable',
|
|
@@ -219,9 +219,9 @@ configurationRegistry.registerConfiguration({
|
|
|
219
219
|
},
|
|
220
220
|
[PromptsConfig.CONFIG_KEY]: {
|
|
221
221
|
type: 'boolean',
|
|
222
|
-
title: ( localize(
|
|
222
|
+
title: ( localize(4450, "Prompt Files")),
|
|
223
223
|
markdownDescription: ( localize(
|
|
224
|
-
|
|
224
|
+
4451,
|
|
225
225
|
"Enable reusable prompt files (`*{0}`) in Chat, Edits, and Inline Chat sessions. [Learn More]({1}).",
|
|
226
226
|
PROMPT_FILE_EXTENSION,
|
|
227
227
|
DOCUMENTATION_URL
|
|
@@ -233,9 +233,9 @@ configurationRegistry.registerConfiguration({
|
|
|
233
233
|
},
|
|
234
234
|
[PromptsConfig.LOCATIONS_CONFIG_KEY]: {
|
|
235
235
|
type: 'object',
|
|
236
|
-
title: ( localize(
|
|
236
|
+
title: ( localize(4452, "Prompt File Locations")),
|
|
237
237
|
markdownDescription: ( localize(
|
|
238
|
-
|
|
238
|
+
4453,
|
|
239
239
|
"Specify location(s) of reusable prompt files (`*{0}`) that can be attached in Chat, Edits, and Inline Chat sessions. [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
|
|
240
240
|
PROMPT_FILE_EXTENSION,
|
|
241
241
|
DOCUMENTATION_URL
|
|
@@ -261,7 +261,7 @@ configurationRegistry.registerConfiguration({
|
|
|
261
261
|
},
|
|
262
262
|
}
|
|
263
263
|
});
|
|
264
|
-
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(
|
|
264
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(4454, "Chat"))), [
|
|
265
265
|
( new SyncDescriptor(ChatEditorInput))
|
|
266
266
|
]);
|
|
267
267
|
( Registry.as(Extensions$1.ConfigurationMigration)).registerConfigurationMigrations([
|
|
@@ -279,7 +279,7 @@ let ChatResolverContribution = class ChatResolverContribution extends Disposable
|
|
|
279
279
|
super();
|
|
280
280
|
this._register(editorResolverService.registerEditor(`${Schemas.vscodeChatSesssion}:**/**`, {
|
|
281
281
|
id: ChatEditorInput.EditorID,
|
|
282
|
-
label: ( localize(
|
|
282
|
+
label: ( localize(4454, "Chat")),
|
|
283
283
|
priority: RegisteredEditorPriority.builtin
|
|
284
284
|
}, {
|
|
285
285
|
singlePerResource: true,
|
|
@@ -320,13 +320,13 @@ let ChatAgentSettingContribution = class ChatAgentSettingContribution {
|
|
|
320
320
|
}
|
|
321
321
|
this.registeredNode = {
|
|
322
322
|
id: 'chatAgent',
|
|
323
|
-
title: ( localize(
|
|
323
|
+
title: ( localize(4430, "Chat")),
|
|
324
324
|
type: 'object',
|
|
325
325
|
properties: {
|
|
326
326
|
'chat.agent.enabled': {
|
|
327
327
|
type: 'boolean',
|
|
328
328
|
description: ( localize(
|
|
329
|
-
|
|
329
|
+
4455,
|
|
330
330
|
"Enable agent mode for {0}. When this is enabled, a dropdown appears in the {0} view to toggle agent mode.",
|
|
331
331
|
'Copilot Edits'
|
|
332
332
|
)),
|
|
@@ -360,7 +360,7 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
|
|
|
360
360
|
super();
|
|
361
361
|
this._store.add(slashCommandService.registerSlashCommand({
|
|
362
362
|
command: 'clear',
|
|
363
|
-
detail: ( localize(
|
|
363
|
+
detail: ( localize(4456, "Start a new chat")),
|
|
364
364
|
sortText: 'z2_clear',
|
|
365
365
|
executeImmediately: true,
|
|
366
366
|
locations: [ChatAgentLocation.Panel]
|
|
@@ -408,7 +408,7 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
|
|
|
408
408
|
progress.report({ content: ( new MarkdownString(defaultAgent.metadata.helpTextVariablesPrefix)), kind: 'markdownContent' });
|
|
409
409
|
}
|
|
410
410
|
const variables = [
|
|
411
|
-
{ name: 'file', description: ( localize(
|
|
411
|
+
{ name: 'file', description: ( localize(4457, "Choose a file in the workspace")) }
|
|
412
412
|
];
|
|
413
413
|
const variableText = ( variables
|
|
414
414
|
.map(v => `* \`${chatVariableLeader}${v.name}\` - ${v.description}`))
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js
CHANGED
|
@@ -72,10 +72,10 @@ let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
|
72
72
|
const { changeCount, activeIdx } = that._navigationBearings.read(r);
|
|
73
73
|
if (changeCount > 0) {
|
|
74
74
|
const n = activeIdx === -1 ? '1' : `${activeIdx + 1}`;
|
|
75
|
-
this.label.innerText = ( localize(
|
|
75
|
+
this.label.innerText = ( localize(4578, "{0} of {1}", n, changeCount));
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
|
-
this.label.innerText = ( localize(
|
|
78
|
+
this.label.innerText = ( localize(4579, "0 of 0"));
|
|
79
79
|
}
|
|
80
80
|
this.updateTooltip();
|
|
81
81
|
}));
|
|
@@ -86,16 +86,16 @@ let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
|
86
86
|
return undefined;
|
|
87
87
|
}
|
|
88
88
|
else if (changeCount === 1 && entriesCount === 1) {
|
|
89
|
-
return localize(
|
|
89
|
+
return localize(4580, "1 change in 1 file");
|
|
90
90
|
}
|
|
91
91
|
else if (changeCount === 1) {
|
|
92
|
-
return localize(
|
|
92
|
+
return localize(4581, "1 change in {0} files", entriesCount);
|
|
93
93
|
}
|
|
94
94
|
else if (entriesCount === 1) {
|
|
95
|
-
return localize(
|
|
95
|
+
return localize(4582, "{0} changes in 1 file", changeCount);
|
|
96
96
|
}
|
|
97
97
|
else {
|
|
98
|
-
return localize(
|
|
98
|
+
return localize(4583, "{0} changes in {1} files", changeCount, entriesCount);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
});
|
|
@@ -151,14 +151,14 @@ let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
|
151
151
|
const response = that._entry.read(r)?.isCurrentlyBeingModifiedBy.read(r);
|
|
152
152
|
if (response) {
|
|
153
153
|
if (response?.isPaused.read(r)) {
|
|
154
|
-
return { message: ( localize(
|
|
154
|
+
return { message: ( localize(4584, "Edits Paused")), paused: true };
|
|
155
155
|
}
|
|
156
156
|
const entry = that._entry.read(r);
|
|
157
157
|
if (entry) {
|
|
158
158
|
const progress = entry?.rewriteRatio.read(r);
|
|
159
159
|
const message = progress === 0
|
|
160
|
-
? ( localize(
|
|
161
|
-
: ( localize(
|
|
160
|
+
? ( localize(4585, "Generating Edits"))
|
|
161
|
+
: ( localize(4586, "{0}% Applying Edits", Math.round(progress * 100)));
|
|
162
162
|
return { message };
|
|
163
163
|
}
|
|
164
164
|
}
|
|
@@ -97,7 +97,7 @@ let ChatEditingService = class ChatEditingService extends Disposable {
|
|
|
97
97
|
}
|
|
98
98
|
e.join(storageTask, {
|
|
99
99
|
id: 'join.chatEditingSession',
|
|
100
|
-
label: ( localize(
|
|
100
|
+
label: ( localize(4594, "Saving chat edits history"))
|
|
101
101
|
});
|
|
102
102
|
}));
|
|
103
103
|
const rawSessionsToRestore = storageService.get(STORAGE_KEY_EDITING_SESSION, StorageScope.WORKSPACE);
|
|
@@ -330,7 +330,7 @@ let ChatDecorationsProvider = class ChatDecorationsProvider extends Disposable {
|
|
|
330
330
|
super();
|
|
331
331
|
this._sessions = _sessions;
|
|
332
332
|
this._chatAgentService = _chatAgentService;
|
|
333
|
-
this.label = ( localize(
|
|
333
|
+
this.label = ( localize(4595, "Chat Editing"));
|
|
334
334
|
this._currentEntries = derived(this, (r) => {
|
|
335
335
|
const sessions = this._sessions.read(r);
|
|
336
336
|
if (!sessions) {
|
|
@@ -370,7 +370,7 @@ let ChatDecorationsProvider = class ChatDecorationsProvider extends Disposable {
|
|
|
370
370
|
return {
|
|
371
371
|
weight: 1000,
|
|
372
372
|
letter: Codicon.diffModified,
|
|
373
|
-
tooltip: defaultAgentName ? ( localize(
|
|
373
|
+
tooltip: defaultAgentName ? ( localize(4596, "Pending changes from {0}", defaultAgentName)) : ( localize(4597, "Pending changes from chat")),
|
|
374
374
|
bubble: true
|
|
375
375
|
};
|
|
376
376
|
}
|