@codingame/monaco-vscode-api 1.82.6 → 1.83.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.js +5 -5
- package/assets/index-no-csp.html +2 -1
- package/assets/index.html +3 -2
- package/extensions.js +17 -14
- package/external/xterm/typings/xterm.d.ts +171 -109
- package/missing-services.js +33 -22
- package/monaco-editor-treemending.patch +1745 -1628
- package/monaco-treemending.js +2 -2
- package/monaco.js +2 -2
- package/package.json +2 -2
- package/service-override/extensions.js +10 -11
- package/services.d.ts +1 -1
- package/vscode/src/vs/base/browser/ui/menu/menubar.js +1 -1
- package/vscode/src/vs/base/common/event.d.ts +13 -17
- package/vscode/src/vs/base/common/keyCodes.d.ts +18 -18
- package/vscode/src/vs/base/common/lifecycle.d.ts +9 -0
- package/vscode/src/vs/base/common/observableInternal/base.d.ts +2 -0
- package/vscode/src/vs/base/common/product.d.ts +1 -0
- package/vscode/src/vs/base/parts/ipc/common/ipc.js +6 -2
- package/vscode/src/vs/base/parts/storage/common/storage.d.ts +1 -0
- package/vscode/src/vs/editor/common/config/editorOptions.d.ts +12 -3
- package/vscode/src/vs/editor/common/core/lineRange.d.ts +0 -5
- package/vscode/src/vs/editor/common/core/offsetRange.d.ts +9 -2
- package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +6 -20
- package/vscode/src/vs/editor/common/diff/legacyLinesDiffComputer.d.ts +2 -2
- package/vscode/src/vs/editor/common/diff/linesDiffComputer.d.ts +5 -55
- package/vscode/src/vs/editor/common/diff/rangeMapping.d.ts +55 -0
- package/vscode/src/vs/editor/common/languages.d.ts +7 -10
- package/vscode/src/vs/editor/common/model.d.ts +1 -1
- package/vscode/src/vs/platform/actions/common/actions.d.ts +1 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +5 -5
- package/vscode/src/vs/platform/files/common/fileService.js +46 -40
- package/vscode/src/vs/platform/files/common/files.d.ts +46 -1
- package/vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js +45 -0
- package/vscode/src/vs/platform/storage/common/storage.d.ts +5 -0
- package/vscode/src/vs/platform/storage/common/storage.js +4 -0
- package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +4 -1
- package/vscode/src/vs/platform/terminal/common/terminal.js +1 -3
- package/vscode/src/vs/platform/tunnel/common/tunnel.d.ts +1 -1
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.d.ts +1 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +11 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents.js +50 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSlashCommands.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +16 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +20 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +8 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +93 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +3 -166
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +3 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +18 -11
- package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +14 -9
- package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -1
- package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +11 -2
- package/vscode/src/vs/workbench/api/common/extHostChat.js +10 -1
- package/vscode/src/vs/workbench/api/common/extHostChatAgents.js +62 -0
- package/vscode/src/vs/workbench/api/common/extHostChatSlashCommand.js +13 -4
- package/vscode/src/vs/workbench/api/common/extHostCommands.js +4 -4
- package/vscode/src/vs/workbench/api/common/extHostComments.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +36 -4
- package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +6 -29
- package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +24 -12
- package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +0 -2
- package/vscode/src/vs/workbench/api/common/extHostRequireInterceptor.js +0 -63
- package/vscode/src/vs/workbench/api/common/extHostSCM.js +80 -0
- package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +24 -0
- package/vscode/src/vs/workbench/api/common/extHostTesting.js +14 -10
- package/vscode/src/vs/workbench/api/common/extHostTextEditor.js +4 -4
- package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +11 -7
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +34 -16
- package/vscode/src/vs/workbench/api/common/extHostTypes.js +31 -13
- package/vscode/src/vs/workbench/api/common/extHostWebview.js +14 -2
- package/vscode/src/vs/workbench/api/common/extHostWebviewPanels.js +11 -5
- package/vscode/src/vs/workbench/api/common/extensionHostMain.js +1 -1
- package/vscode/src/vs/workbench/browser/actions/layoutActions.js +32 -9
- package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +3 -1
- package/vscode/src/vs/workbench/browser/codeeditor.js +1 -1
- package/vscode/src/vs/workbench/browser/dnd.js +7 -6
- package/vscode/src/vs/workbench/browser/media/part.css.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +7 -10
- package/vscode/src/vs/workbench/browser/parts/editor/editor.js +7 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +9 -3
- package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +9 -2
- package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +44 -14
- package/vscode/src/vs/workbench/browser/parts/editor/media/editorplaceholder.css.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +3 -19
- package/vscode/src/vs/workbench/browser/parts/editor/textResourceEditor.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +9 -3
- package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.d.ts +1 -1
- package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +10 -9
- package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +2 -0
- package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +6 -5
- package/vscode/src/vs/workbench/browser/web.api.d.ts +0 -6
- package/vscode/src/vs/workbench/browser/workbench.contribution.js +34 -3
- package/vscode/src/vs/workbench/common/contextkeys.js +2 -1
- package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +4 -4
- package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +0 -1
- package/vscode/src/vs/workbench/common/editor/editorInput.js +2 -4
- package/vscode/src/vs/workbench/common/editor/editorModel.d.ts +0 -1
- package/vscode/src/vs/workbench/common/editor/editorModel.js +1 -3
- package/vscode/src/vs/workbench/common/editor.d.ts +2 -0
- package/vscode/src/vs/workbench/common/theme.js +21 -1
- package/vscode/src/vs/workbench/common/views.d.ts +1 -1
- package/vscode/src/vs/workbench/common/views.js +1 -2
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +12 -4
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +335 -0
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +81 -27
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +1 -1
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +22 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +136 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +14 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +78 -1
- package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -17
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +30 -26
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +23 -18
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +8 -8
- package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +55 -20
- package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +26 -10
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +7 -6
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +58 -9
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +9 -6
- package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +171 -0
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +204 -33
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +3 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +2 -2
- package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +21 -4
- package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +22 -0
- package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/debug/common/debugUtils.js +2 -1
- package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +7 -4
- package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -1
- package/vscode/src/vs/workbench/contrib/files/common/files.js +7 -5
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +2 -1
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +17 -17
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +4 -1
- package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +22 -19
- package/vscode/src/vs/workbench/contrib/output/browser/outputServices.js +2 -38
- package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +14 -1
- package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +3 -8
- package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +10 -12
- package/vscode/src/vs/workbench/contrib/snippets/browser/tabCompletion.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +0 -16
- package/vscode/src/vs/workbench/contrib/testing/common/observableValue.js +2 -1
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +8 -6
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +2 -4
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +2 -4
- package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +7 -3
- package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +2 -6
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +18 -20
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +9 -13
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -1
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +47 -15
- package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.d.ts +14 -4
- package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +22 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +1 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +15 -14
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostProtocol.d.ts +12 -7
- package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +10 -6
- package/vscode/src/vs/workbench/services/extensions/common/extensions.js +27 -11
- package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +2 -5
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +7 -11
- package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +20 -4
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +24 -16
- package/vscode/src/vs/workbench/services/output/common/output.js +1 -2
- package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +6 -6
- package/vscode/src/vs/workbench/services/preferences/common/preferences.js +4 -3
- package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.d.ts +0 -1
- package/vscode/src/vs/workbench/services/search/common/fileSearchManager.js +3 -1
- package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
- package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +1 -2
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +2 -2
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileService.js +3 -8
- package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +3 -4
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopySaveParticipant.js +1 -0
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupService.js +2 -1
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyService.js +4 -2
- package/vscode/src/vs/editor/browser/widget/diffEditorWidget2/diffEditorWidget2.contribution.js +0 -180
- package/vscode/src/vs/platform/credentials/common/credentials.d.ts +0 -13
- package/vscode/src/vs/platform/credentials/common/credentials.js +0 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadKeytar.js +0 -31
- package/vscode/src/vs/workbench/browser/iframe.js +0 -16
- package/vscode/src/vs/workbench/browser/parts/editor/accessibilityStatus.js +0 -90
- package/vscode/src/vs/workbench/browser/parts/editor/tabFocus.js +0 -77
- package/vscode/src/vs/workbench/contrib/output/browser/logViewer.js +0 -67
|
@@ -2,14 +2,13 @@ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.
|
|
|
2
2
|
import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
3
3
|
import { Disposable, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
4
4
|
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
5
|
-
import { generateUuid } from 'monaco-editor/esm/vs/base/common/uuid.js';
|
|
6
5
|
import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
|
|
7
6
|
import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
|
|
8
7
|
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
9
8
|
import { ICommentService } from '../../contrib/comments/browser/commentService.js';
|
|
10
9
|
import { CommentsPanel } from '../../contrib/comments/browser/commentsView.js';
|
|
11
10
|
import { ExtHostContext, MainContext } from '../common/extHost.protocol.js';
|
|
12
|
-
import { COMMENTS_VIEW_ID, COMMENTS_VIEW_TITLE, COMMENTS_VIEW_STORAGE_ID } from '../../contrib/comments/browser/commentsTreeViewer.js';
|
|
11
|
+
import { COMMENTS_VIEW_ID, COMMENTS_VIEW_TITLE, COMMENTS_VIEW_ORIGINAL_TITLE, COMMENTS_VIEW_STORAGE_ID } from '../../contrib/comments/browser/commentsTreeViewer.js';
|
|
13
12
|
import { Extensions, IViewsService, IViewDescriptorService } from '../../common/views.js';
|
|
14
13
|
import { SyncDescriptor } from 'monaco-editor/esm/vs/platform/instantiation/common/descriptors.js';
|
|
15
14
|
import { ViewPaneContainer } from '../../browser/parts/views/viewPaneContainer.js';
|
|
@@ -214,14 +213,16 @@ class MainThreadCommentController {
|
|
|
214
213
|
this._commentService.updateComments(this._uniqueId, {
|
|
215
214
|
added: [thread],
|
|
216
215
|
removed: [],
|
|
217
|
-
changed: []
|
|
216
|
+
changed: [],
|
|
217
|
+
pending: []
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
220
|
else {
|
|
221
221
|
this._commentService.updateNotebookComments(this._uniqueId, {
|
|
222
222
|
added: [thread],
|
|
223
223
|
removed: [],
|
|
224
|
-
changed: []
|
|
224
|
+
changed: [],
|
|
225
|
+
pending: []
|
|
225
226
|
});
|
|
226
227
|
}
|
|
227
228
|
return thread;
|
|
@@ -233,14 +234,16 @@ class MainThreadCommentController {
|
|
|
233
234
|
this._commentService.updateComments(this._uniqueId, {
|
|
234
235
|
added: [],
|
|
235
236
|
removed: [],
|
|
236
|
-
changed: [thread]
|
|
237
|
+
changed: [thread],
|
|
238
|
+
pending: []
|
|
237
239
|
});
|
|
238
240
|
}
|
|
239
241
|
else {
|
|
240
242
|
this._commentService.updateNotebookComments(this._uniqueId, {
|
|
241
243
|
added: [],
|
|
242
244
|
removed: [],
|
|
243
|
-
changed: [thread]
|
|
245
|
+
changed: [thread],
|
|
246
|
+
pending: []
|
|
244
247
|
});
|
|
245
248
|
}
|
|
246
249
|
}
|
|
@@ -252,14 +255,16 @@ class MainThreadCommentController {
|
|
|
252
255
|
this._commentService.updateComments(this._uniqueId, {
|
|
253
256
|
added: [],
|
|
254
257
|
removed: [thread],
|
|
255
|
-
changed: []
|
|
258
|
+
changed: [],
|
|
259
|
+
pending: []
|
|
256
260
|
});
|
|
257
261
|
}
|
|
258
262
|
else {
|
|
259
263
|
this._commentService.updateNotebookComments(this._uniqueId, {
|
|
260
264
|
added: [],
|
|
261
265
|
removed: [thread],
|
|
262
|
-
changed: []
|
|
266
|
+
changed: [],
|
|
267
|
+
pending: []
|
|
263
268
|
});
|
|
264
269
|
}
|
|
265
270
|
}
|
|
@@ -388,8 +393,8 @@ let MainThreadComments = class MainThreadComments extends Disposable {
|
|
|
388
393
|
controller.activeCommentThread = this._activeCommentThread;
|
|
389
394
|
}));
|
|
390
395
|
}
|
|
391
|
-
$registerCommentController(handle, id, label) {
|
|
392
|
-
const providerId =
|
|
396
|
+
$registerCommentController(handle, id, label, extensionId) {
|
|
397
|
+
const providerId = `${label}-${extensionId}`;
|
|
393
398
|
this._handlers.set(handle, providerId);
|
|
394
399
|
const provider = ( new MainThreadCommentController(this._proxy, this._commentService, handle, providerId, id, label, {}));
|
|
395
400
|
this._commentService.registerCommentController(providerId, provider);
|
|
@@ -451,7 +456,7 @@ let MainThreadComments = class MainThreadComments extends Disposable {
|
|
|
451
456
|
if (!commentsViewAlreadyRegistered) {
|
|
452
457
|
const VIEW_CONTAINER = ( Registry.as(Extensions.ViewContainersRegistry)).registerViewContainer({
|
|
453
458
|
id: COMMENTS_VIEW_ID,
|
|
454
|
-
title: COMMENTS_VIEW_TITLE,
|
|
459
|
+
title: { value: COMMENTS_VIEW_TITLE, original: COMMENTS_VIEW_ORIGINAL_TITLE },
|
|
455
460
|
ctorDescriptor: ( new SyncDescriptor(
|
|
456
461
|
ViewPaneContainer,
|
|
457
462
|
[COMMENTS_VIEW_ID, { mergeViewWithContainerWhenSingleView: true }]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import { DisposableStore, toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
2
|
+
import { DisposableStore, toDisposable, DisposableMap } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
3
3
|
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
4
4
|
import { IDebugService } from '../../contrib/debug/common/debug.js';
|
|
5
5
|
import { ExtHostContext, MainContext } from '../common/extHost.protocol.js';
|
|
@@ -14,18 +14,32 @@ let MainThreadDebugService = class MainThreadDebugService {
|
|
|
14
14
|
this._toDispose = ( new DisposableStore());
|
|
15
15
|
this._debugAdaptersHandleCounter = 1;
|
|
16
16
|
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostDebugService));
|
|
17
|
+
const sessionListeners = ( new DisposableMap());
|
|
18
|
+
this._toDispose.add(sessionListeners);
|
|
17
19
|
this._toDispose.add(debugService.onDidNewSession(session => {
|
|
18
20
|
this._proxy.$acceptDebugSessionStarted(this.getSessionDto(session));
|
|
19
|
-
|
|
21
|
+
const store = sessionListeners.get(session);
|
|
22
|
+
store.add(session.onDidChangeName(name => {
|
|
20
23
|
this._proxy.$acceptDebugSessionNameChanged(this.getSessionDto(session), name);
|
|
21
24
|
}));
|
|
22
25
|
}));
|
|
23
26
|
this._toDispose.add(debugService.onWillNewSession(session => {
|
|
24
|
-
|
|
27
|
+
let store = sessionListeners.get(session);
|
|
28
|
+
if (!store) {
|
|
29
|
+
store = ( new DisposableStore());
|
|
30
|
+
sessionListeners.set(session, store);
|
|
31
|
+
}
|
|
32
|
+
store.add(session.onDidCustomEvent(event => this._proxy.$acceptDebugSessionCustomEvent(this.getSessionDto(session), event)));
|
|
25
33
|
}));
|
|
26
34
|
this._toDispose.add(debugService.onDidEndSession(session => {
|
|
27
35
|
this._proxy.$acceptDebugSessionTerminated(this.getSessionDto(session));
|
|
28
36
|
this._sessions.delete(session.getId());
|
|
37
|
+
for (const [handle, value] of this._debugAdapters) {
|
|
38
|
+
if (value.session === session) {
|
|
39
|
+
this._debugAdapters.delete(handle);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
sessionListeners.deleteAndDispose(session);
|
|
29
43
|
}));
|
|
30
44
|
this._toDispose.add(debugService.getViewModel().onDidFocusSession(session => {
|
|
31
45
|
this._proxy.$acceptDebugSessionActiveChanged(this.getSessionDto(session));
|
|
@@ -344,12 +358,12 @@ MainThreadDebugService = __decorate([
|
|
|
344
358
|
( __param(1, IDebugService))
|
|
345
359
|
], MainThreadDebugService);
|
|
346
360
|
class ExtensionHostDebugAdapter extends AbstractDebugAdapter {
|
|
347
|
-
constructor(_ds, _handle, _proxy,
|
|
361
|
+
constructor(_ds, _handle, _proxy, session) {
|
|
348
362
|
super();
|
|
349
363
|
this._ds = _ds;
|
|
350
364
|
this._handle = _handle;
|
|
351
365
|
this._proxy = _proxy;
|
|
352
|
-
this.
|
|
366
|
+
this.session = session;
|
|
353
367
|
}
|
|
354
368
|
fireError(handle, err) {
|
|
355
369
|
this._onError.fire(err);
|
|
@@ -358,7 +372,7 @@ class ExtensionHostDebugAdapter extends AbstractDebugAdapter {
|
|
|
358
372
|
this._onExit.fire(code);
|
|
359
373
|
}
|
|
360
374
|
startSession() {
|
|
361
|
-
return Promise.resolve(this._proxy.$startDASession(this._handle, this._ds.getSessionDto(this.
|
|
375
|
+
return Promise.resolve(this._proxy.$startDASession(this._handle, this._ds.getSessionDto(this.session)));
|
|
362
376
|
}
|
|
363
377
|
sendMessage(message) {
|
|
364
378
|
this._proxy.$sendDAMessage(this._handle, convertToDAPaths(message, true));
|
|
@@ -41,8 +41,8 @@ class MainThreadTextEditorProperties {
|
|
|
41
41
|
let lineNumbers;
|
|
42
42
|
if (codeEditor) {
|
|
43
43
|
const options = codeEditor.getOptions();
|
|
44
|
-
const lineNumbersOpts = options.get(
|
|
45
|
-
cursorStyle = options.get(
|
|
44
|
+
const lineNumbersOpts = options.get(67 );
|
|
45
|
+
cursorStyle = options.get(28 );
|
|
46
46
|
lineNumbers = lineNumbersOpts.renderType;
|
|
47
47
|
}
|
|
48
48
|
else if (previousProperties) {
|
|
@@ -407,7 +407,7 @@ let MainThreadEditorTabs = class MainThreadEditorTabs {
|
|
|
407
407
|
if (viewColumn === SIDE_GROUP) {
|
|
408
408
|
direction = preferredSideBySideGroupDirection(this._configurationService);
|
|
409
409
|
}
|
|
410
|
-
targetGroup = this._editorGroupsService.addGroup(this._editorGroupsService.groups[this._editorGroupsService.groups.length - 1], direction
|
|
410
|
+
targetGroup = this._editorGroupsService.addGroup(this._editorGroupsService.groups[this._editorGroupsService.groups.length - 1], direction);
|
|
411
411
|
}
|
|
412
412
|
else {
|
|
413
413
|
targetGroup = this._editorGroupsService.getGroup(groupId);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { illegalArgument } from 'monaco-editor/esm/vs/base/common/errors.js';
|
|
3
3
|
import { DisposableStore, dispose } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
4
4
|
import { equals } from 'monaco-editor/esm/vs/base/common/objects.js';
|
|
5
5
|
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
@@ -121,7 +121,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
|
|
|
121
121
|
$trySetSelections(id, selections) {
|
|
122
122
|
const editor = this._editorLocator.getEditor(id);
|
|
123
123
|
if (!editor) {
|
|
124
|
-
return Promise.reject(
|
|
124
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
125
125
|
}
|
|
126
126
|
editor.setSelections(selections);
|
|
127
127
|
return Promise.resolve(undefined);
|
|
@@ -130,7 +130,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
|
|
|
130
130
|
key = `${this._instanceId}-${key}`;
|
|
131
131
|
const editor = this._editorLocator.getEditor(id);
|
|
132
132
|
if (!editor) {
|
|
133
|
-
return Promise.reject(
|
|
133
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
134
134
|
}
|
|
135
135
|
editor.setDecorations(key, ranges);
|
|
136
136
|
return Promise.resolve(undefined);
|
|
@@ -139,7 +139,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
|
|
|
139
139
|
key = `${this._instanceId}-${key}`;
|
|
140
140
|
const editor = this._editorLocator.getEditor(id);
|
|
141
141
|
if (!editor) {
|
|
142
|
-
return Promise.reject(
|
|
142
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
143
143
|
}
|
|
144
144
|
editor.setDecorationsFast(key, ranges);
|
|
145
145
|
return Promise.resolve(undefined);
|
|
@@ -147,7 +147,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
|
|
|
147
147
|
$tryRevealRange(id, range, revealType) {
|
|
148
148
|
const editor = this._editorLocator.getEditor(id);
|
|
149
149
|
if (!editor) {
|
|
150
|
-
return Promise.reject(
|
|
150
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
151
151
|
}
|
|
152
152
|
editor.revealRange(range, revealType);
|
|
153
153
|
return Promise.resolve();
|
|
@@ -155,7 +155,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
|
|
|
155
155
|
$trySetOptions(id, options) {
|
|
156
156
|
const editor = this._editorLocator.getEditor(id);
|
|
157
157
|
if (!editor) {
|
|
158
|
-
return Promise.reject(
|
|
158
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
159
159
|
}
|
|
160
160
|
editor.setConfiguration(options);
|
|
161
161
|
return Promise.resolve(undefined);
|
|
@@ -163,14 +163,14 @@ let MainThreadTextEditors = class MainThreadTextEditors {
|
|
|
163
163
|
$tryApplyEdits(id, modelVersionId, edits, opts) {
|
|
164
164
|
const editor = this._editorLocator.getEditor(id);
|
|
165
165
|
if (!editor) {
|
|
166
|
-
return Promise.reject(
|
|
166
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
167
167
|
}
|
|
168
168
|
return Promise.resolve(editor.applyEdits(modelVersionId, edits, opts));
|
|
169
169
|
}
|
|
170
170
|
$tryInsertSnippet(id, modelVersionId, template, ranges, opts) {
|
|
171
171
|
const editor = this._editorLocator.getEditor(id);
|
|
172
172
|
if (!editor) {
|
|
173
|
-
return Promise.reject(
|
|
173
|
+
return Promise.reject(illegalArgument(`TextEditor(${id})`));
|
|
174
174
|
}
|
|
175
175
|
return Promise.resolve(editor.insertSnippet(modelVersionId, template, ranges, opts));
|
|
176
176
|
}
|
|
@@ -168,9 +168,10 @@ let MainThreadExtensionService = class MainThreadExtensionService {
|
|
|
168
168
|
severity: Severity.Error,
|
|
169
169
|
message: ( localize(
|
|
170
170
|
'uninstalledDep',
|
|
171
|
-
"Cannot activate the '{0}' extension because it depends on the '{1}' extension, which is not installed. Would you like to install the extension and reload the window?",
|
|
171
|
+
"Cannot activate the '{0}' extension because it depends on the '{1}' extension from '{2}', which is not installed. Would you like to install the extension and reload the window?",
|
|
172
172
|
extName,
|
|
173
|
-
dependencyExtension.displayName
|
|
173
|
+
dependencyExtension.displayName,
|
|
174
|
+
dependencyExtension.publisherDisplayName
|
|
174
175
|
)),
|
|
175
176
|
actions: {
|
|
176
177
|
primary: [( new Action('install', ( localize('install missing dep', "Install and Reload")), '', true, () => this._extensionsWorkbenchService.install(dependencyExtension)
|
|
@@ -9,6 +9,21 @@ import { Sequence } from 'monaco-editor/esm/vs/base/common/sequence.js';
|
|
|
9
9
|
import { CancellationToken } from 'monaco-editor/esm/vs/base/common/cancellation.js';
|
|
10
10
|
import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
|
|
11
11
|
import { IQuickDiffService } from '../../contrib/scm/common/quickDiff.js';
|
|
12
|
+
function getSCMHistoryItemIcon(historyItem) {
|
|
13
|
+
if (!historyItem.icon) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
else if (URI.isUri(historyItem.icon)) {
|
|
17
|
+
return URI.revive(historyItem.icon);
|
|
18
|
+
}
|
|
19
|
+
else if (ThemeIcon.isThemeIcon(historyItem.icon)) {
|
|
20
|
+
return historyItem.icon;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const icon = historyItem.icon;
|
|
24
|
+
return { light: URI.revive(icon.light), dark: URI.revive(icon.dark) };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
12
27
|
class MainThreadSCMResourceGroup {
|
|
13
28
|
get hideWhenEmpty() { return !!this.features.hideWhenEmpty; }
|
|
14
29
|
constructor(sourceControlHandle, handle, provider, features, label, id) {
|
|
@@ -68,6 +83,45 @@ class MainThreadSCMResource {
|
|
|
68
83
|
};
|
|
69
84
|
}
|
|
70
85
|
}
|
|
86
|
+
class MainThreadSCMHistoryProvider {
|
|
87
|
+
get actionButton() { return this._actionButton; }
|
|
88
|
+
set actionButton(actionButton) {
|
|
89
|
+
this._actionButton = actionButton;
|
|
90
|
+
this._onDidChangeActionButton.fire();
|
|
91
|
+
}
|
|
92
|
+
get currentHistoryItemGroup() { return this._currentHistoryItemGroup; }
|
|
93
|
+
set currentHistoryItemGroup(historyItemGroup) {
|
|
94
|
+
this._currentHistoryItemGroup = historyItemGroup;
|
|
95
|
+
this._onDidChangeCurrentHistoryItemGroup.fire();
|
|
96
|
+
}
|
|
97
|
+
constructor(proxy, handle) {
|
|
98
|
+
this.proxy = proxy;
|
|
99
|
+
this.handle = handle;
|
|
100
|
+
this._onDidChangeActionButton = ( new Emitter());
|
|
101
|
+
this.onDidChangeActionButton = this._onDidChangeActionButton.event;
|
|
102
|
+
this._onDidChangeCurrentHistoryItemGroup = ( new Emitter());
|
|
103
|
+
this.onDidChangeCurrentHistoryItemGroup = this._onDidChangeCurrentHistoryItemGroup.event;
|
|
104
|
+
}
|
|
105
|
+
async resolveHistoryItemGroupBase(historyItemGroupId) {
|
|
106
|
+
return this.proxy.$resolveHistoryItemGroupBase(this.handle, historyItemGroupId, CancellationToken.None);
|
|
107
|
+
}
|
|
108
|
+
async resolveHistoryItemGroupCommonAncestor(historyItemGroupId1, historyItemGroupId2) {
|
|
109
|
+
return this.proxy.$resolveHistoryItemGroupCommonAncestor(this.handle, historyItemGroupId1, historyItemGroupId2, CancellationToken.None);
|
|
110
|
+
}
|
|
111
|
+
async provideHistoryItems(historyItemGroupId, options) {
|
|
112
|
+
const historyItems = await this.proxy.$provideHistoryItems(this.handle, historyItemGroupId, options, CancellationToken.None);
|
|
113
|
+
return historyItems?.map(historyItem => ({ ...historyItem, icon: getSCMHistoryItemIcon(historyItem), }));
|
|
114
|
+
}
|
|
115
|
+
async provideHistoryItemChanges(historyItemId) {
|
|
116
|
+
const changes = await this.proxy.$provideHistoryItemChanges(this.handle, historyItemId, CancellationToken.None);
|
|
117
|
+
return changes?.map(change => ({
|
|
118
|
+
uri: URI.revive(change.uri),
|
|
119
|
+
originalUri: change.originalUri && URI.revive(change.originalUri),
|
|
120
|
+
modifiedUri: change.modifiedUri && URI.revive(change.modifiedUri),
|
|
121
|
+
renameUri: change.renameUri && URI.revive(change.renameUri)
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
71
125
|
class MainThreadSCMProvider {
|
|
72
126
|
static { this.ID_HANDLE = 0; }
|
|
73
127
|
get id() { return this._id; }
|
|
@@ -77,6 +131,7 @@ class MainThreadSCMProvider {
|
|
|
77
131
|
get inputBoxDocumentUri() { return this._inputBoxDocumentUri; }
|
|
78
132
|
get contextValue() { return this._contextValue; }
|
|
79
133
|
get commitTemplate() { return this.features.commitTemplate || ''; }
|
|
134
|
+
get historyProvider() { return this._historyProvider; }
|
|
80
135
|
get acceptInputCommand() { return this.features.acceptInputCommand; }
|
|
81
136
|
get actionButton() { return this.features.actionButton ?? undefined; }
|
|
82
137
|
get statusBarCommands() { return this.features.statusBarCommands; }
|
|
@@ -99,6 +154,8 @@ class MainThreadSCMProvider {
|
|
|
99
154
|
this._onDidChangeCommitTemplate = ( new Emitter());
|
|
100
155
|
this.onDidChangeCommitTemplate = this._onDidChangeCommitTemplate.event;
|
|
101
156
|
this._onDidChangeStatusBarCommands = ( new Emitter());
|
|
157
|
+
this._onDidChangeHistoryProvider = ( new Emitter());
|
|
158
|
+
this.onDidChangeHistoryProvider = this._onDidChangeHistoryProvider.event;
|
|
102
159
|
this._onDidChange = ( new Emitter());
|
|
103
160
|
this.onDidChange = this._onDidChange.event;
|
|
104
161
|
this.isSCM = true;
|
|
@@ -124,6 +181,14 @@ class MainThreadSCMProvider {
|
|
|
124
181
|
this._quickDiff.dispose();
|
|
125
182
|
this._quickDiff = undefined;
|
|
126
183
|
}
|
|
184
|
+
if (features.hasHistoryProvider && !this._historyProvider) {
|
|
185
|
+
this._historyProvider = ( new MainThreadSCMHistoryProvider(this.proxy, this.handle));
|
|
186
|
+
this._onDidChangeHistoryProvider.fire();
|
|
187
|
+
}
|
|
188
|
+
else if (features.hasHistoryProvider === false && this._historyProvider) {
|
|
189
|
+
this._historyProvider = undefined;
|
|
190
|
+
this._onDidChangeHistoryProvider.fire();
|
|
191
|
+
}
|
|
127
192
|
}
|
|
128
193
|
$registerGroups(_groups) {
|
|
129
194
|
const groups = ( _groups.map(([handle, id, label, features]) => {
|
|
@@ -201,6 +266,18 @@ class MainThreadSCMProvider {
|
|
|
201
266
|
const result = await this.proxy.$provideOriginalResource(this.handle, uri, CancellationToken.None);
|
|
202
267
|
return result && URI.revive(result);
|
|
203
268
|
}
|
|
269
|
+
$onDidChangeHistoryProviderActionButton(actionButton) {
|
|
270
|
+
if (!this._historyProvider) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
this._historyProvider.actionButton = actionButton ?? undefined;
|
|
274
|
+
}
|
|
275
|
+
$onDidChangeHistoryProviderCurrentHistoryItemGroup(currentHistoryItemGroup) {
|
|
276
|
+
if (!this._historyProvider) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
this._historyProvider.currentHistoryItemGroup = currentHistoryItemGroup ?? undefined;
|
|
280
|
+
}
|
|
204
281
|
toJSON() {
|
|
205
282
|
return {
|
|
206
283
|
$mid: 5 ,
|
|
@@ -358,6 +435,22 @@ let MainThreadSCM = class MainThreadSCM {
|
|
|
358
435
|
repository.input.validateInput = async () => undefined;
|
|
359
436
|
}
|
|
360
437
|
}
|
|
438
|
+
$onDidChangeHistoryProviderActionButton(sourceControlHandle, actionButton) {
|
|
439
|
+
const repository = this._repositories.get(sourceControlHandle);
|
|
440
|
+
if (!repository) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
const provider = repository.provider;
|
|
444
|
+
provider.$onDidChangeHistoryProviderActionButton(actionButton);
|
|
445
|
+
}
|
|
446
|
+
$onDidChangeHistoryProviderCurrentHistoryItemGroup(sourceControlHandle, historyItemGroup) {
|
|
447
|
+
const repository = this._repositories.get(sourceControlHandle);
|
|
448
|
+
if (!repository) {
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
const provider = repository.provider;
|
|
452
|
+
provider.$onDidChangeHistoryProviderCurrentHistoryItemGroup(historyItemGroup);
|
|
453
|
+
}
|
|
361
454
|
};
|
|
362
455
|
MainThreadSCM = __decorate([
|
|
363
456
|
extHostNamedCustomer(MainContext.MainThreadSCM),
|
|
@@ -1,103 +1,18 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
3
3
|
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
4
|
-
import { ICredentialsService } from '../../../platform/credentials/common/credentials.js';
|
|
5
4
|
import { ExtHostContext, MainContext } from '../common/extHost.protocol.js';
|
|
6
5
|
import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
|
|
7
6
|
import { SequencerByKey } from 'monaco-editor/esm/vs/base/common/async.js';
|
|
8
7
|
import { ISecretStorageService } from '../../../platform/secrets/common/secrets.js';
|
|
9
8
|
import { IBrowserWorkbenchEnvironmentService } from '../../services/environment/browser/environmentService.js';
|
|
10
|
-
import { IEncryptionService } from '../../../platform/encryption/common/encryptionService.js';
|
|
11
|
-
class OldMainThreadSecretState extends Disposable {
|
|
12
|
-
constructor(_proxy, credentialsService, encryptionService, logService) {
|
|
13
|
-
super();
|
|
14
|
-
this._proxy = _proxy;
|
|
15
|
-
this.credentialsService = credentialsService;
|
|
16
|
-
this.encryptionService = encryptionService;
|
|
17
|
-
this.logService = logService;
|
|
18
|
-
this.secretStoragePrefix = this.credentialsService.getSecretStoragePrefix();
|
|
19
|
-
this._register(this.credentialsService.onDidChangePassword(async (e) => {
|
|
20
|
-
const extensionId = e.service?.substring((await this.secretStoragePrefix).length);
|
|
21
|
-
if (extensionId) {
|
|
22
|
-
this._proxy.$onDidChangePassword({ extensionId, key: e.account });
|
|
23
|
-
}
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
async getFullKey(extensionId) {
|
|
27
|
-
return `${await this.secretStoragePrefix}${extensionId}`;
|
|
28
|
-
}
|
|
29
|
-
async $getPassword(extensionId, key) {
|
|
30
|
-
this.logService.trace(`MainThreadSecretState#getPassword: Getting password for ${extensionId} extension: `, key);
|
|
31
|
-
const fullKey = await this.getFullKey(extensionId);
|
|
32
|
-
const password = await this.credentialsService.getPassword(fullKey, key);
|
|
33
|
-
if (!password) {
|
|
34
|
-
this.logService.trace('MainThreadSecretState#getPassword: No password found for: ', key);
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
let decrypted;
|
|
38
|
-
try {
|
|
39
|
-
this.logService.trace('MainThreadSecretState#getPassword: Decrypting password for: ', key);
|
|
40
|
-
decrypted = await this.encryptionService.decrypt(password);
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
this.logService.error(e);
|
|
44
|
-
this.logService.trace('MainThreadSecretState#getPassword: Trying migration for: ', key);
|
|
45
|
-
const encryptedForSet = await this.encryptionService.encrypt(password);
|
|
46
|
-
await this.credentialsService.setPassword(fullKey, key, encryptedForSet);
|
|
47
|
-
const passwordEncrypted = await this.credentialsService.getPassword(fullKey, key);
|
|
48
|
-
decrypted = passwordEncrypted && (await this.encryptionService.decrypt(passwordEncrypted));
|
|
49
|
-
}
|
|
50
|
-
if (decrypted) {
|
|
51
|
-
try {
|
|
52
|
-
const value = JSON.parse(decrypted);
|
|
53
|
-
if (value.extensionId === extensionId) {
|
|
54
|
-
this.logService.trace('MainThreadSecretState#getPassword: Password found for: ', key);
|
|
55
|
-
return value.content;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (parseError) {
|
|
59
|
-
this.logService.error(parseError);
|
|
60
|
-
throw new Error('Unable to parse decrypted password');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
this.logService.trace('MainThreadSecretState#getPassword: No password found for: ', key);
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
async $setPassword(extensionId, key, value) {
|
|
67
|
-
this.logService.trace(`MainThreadSecretState#setPassword: Setting password for ${extensionId} extension: `, key);
|
|
68
|
-
const fullKey = await this.getFullKey(extensionId);
|
|
69
|
-
const toEncrypt = JSON.stringify({
|
|
70
|
-
extensionId,
|
|
71
|
-
content: value
|
|
72
|
-
});
|
|
73
|
-
this.logService.trace('MainThreadSecretState#setPassword: Encrypting password for: ', key);
|
|
74
|
-
const encrypted = await this.encryptionService.encrypt(toEncrypt);
|
|
75
|
-
this.logService.trace('MainThreadSecretState#setPassword: Storing password for: ', key);
|
|
76
|
-
return await this.credentialsService.setPassword(fullKey, key, encrypted);
|
|
77
|
-
}
|
|
78
|
-
async $deletePassword(extensionId, key) {
|
|
79
|
-
try {
|
|
80
|
-
const fullKey = await this.getFullKey(extensionId);
|
|
81
|
-
await this.credentialsService.deletePassword(fullKey, key);
|
|
82
|
-
}
|
|
83
|
-
catch (_) {
|
|
84
|
-
throw new Error('Cannot delete password');
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
9
|
let MainThreadSecretState = class MainThreadSecretState extends Disposable {
|
|
89
|
-
constructor(extHostContext, secretStorageService, logService,
|
|
10
|
+
constructor(extHostContext, secretStorageService, logService, environmentService) {
|
|
90
11
|
super();
|
|
91
12
|
this.secretStorageService = secretStorageService;
|
|
92
13
|
this.logService = logService;
|
|
93
|
-
this.credentialsService = credentialsService;
|
|
94
|
-
this.encryptionService = encryptionService;
|
|
95
14
|
this._sequencer = ( new SequencerByKey());
|
|
96
|
-
this.secretStoragePrefix = this.credentialsService.getSecretStoragePrefix();
|
|
97
15
|
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostSecretState));
|
|
98
|
-
if (environmentService.options?.credentialsProvider && !environmentService.options?.secretStorageProvider) {
|
|
99
|
-
this._oldMainThreadSecretState = this._register(( new OldMainThreadSecretState(this._proxy, credentialsService, encryptionService, logService)));
|
|
100
|
-
}
|
|
101
16
|
this._register(this.secretStorageService.onDidChangeSecret((e) => {
|
|
102
17
|
try {
|
|
103
18
|
const { extensionId, key } = this.parseKey(e);
|
|
@@ -114,17 +29,9 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
|
|
|
114
29
|
return this._sequencer.queue(extensionId, () => this.doGetPassword(extensionId, key));
|
|
115
30
|
}
|
|
116
31
|
async doGetPassword(extensionId, key) {
|
|
117
|
-
if (this._oldMainThreadSecretState) {
|
|
118
|
-
return await this._oldMainThreadSecretState.$getPassword(extensionId, key);
|
|
119
|
-
}
|
|
120
32
|
const fullKey = this.getKey(extensionId, key);
|
|
121
33
|
const password = await this.secretStorageService.get(fullKey);
|
|
122
|
-
|
|
123
|
-
this.logService.trace('[mainThreadSecretState] No password found for: ', extensionId, key);
|
|
124
|
-
const password = await this.getAndDeleteOldPassword(extensionId, key);
|
|
125
|
-
return password;
|
|
126
|
-
}
|
|
127
|
-
this.logService.trace('[mainThreadSecretState] Password found for: ', extensionId, key);
|
|
34
|
+
this.logService.trace(`[mainThreadSecretState] ${password ? 'P' : 'No p'}assword found for: `, extensionId, key);
|
|
128
35
|
return password;
|
|
129
36
|
}
|
|
130
37
|
$setPassword(extensionId, key, value) {
|
|
@@ -132,9 +39,6 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
|
|
|
132
39
|
return this._sequencer.queue(extensionId, () => this.doSetPassword(extensionId, key, value));
|
|
133
40
|
}
|
|
134
41
|
async doSetPassword(extensionId, key, value) {
|
|
135
|
-
if (this._oldMainThreadSecretState) {
|
|
136
|
-
return await this._oldMainThreadSecretState.$setPassword(extensionId, key, value);
|
|
137
|
-
}
|
|
138
42
|
const fullKey = this.getKey(extensionId, key);
|
|
139
43
|
await this.secretStorageService.set(fullKey, value);
|
|
140
44
|
this.logService.trace('[mainThreadSecretState] Password set for: ', extensionId, key);
|
|
@@ -144,9 +48,6 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
|
|
|
144
48
|
return this._sequencer.queue(extensionId, () => this.doDeletePassword(extensionId, key));
|
|
145
49
|
}
|
|
146
50
|
async doDeletePassword(extensionId, key) {
|
|
147
|
-
if (this._oldMainThreadSecretState) {
|
|
148
|
-
return await this._oldMainThreadSecretState.$deletePassword(extensionId, key);
|
|
149
|
-
}
|
|
150
51
|
const fullKey = this.getKey(extensionId, key);
|
|
151
52
|
await this.secretStorageService.delete(fullKey);
|
|
152
53
|
this.logService.trace('[mainThreadSecretState] Password deleted for: ', extensionId, key);
|
|
@@ -157,75 +58,11 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
|
|
|
157
58
|
parseKey(key) {
|
|
158
59
|
return JSON.parse(key);
|
|
159
60
|
}
|
|
160
|
-
async getAndDeleteOldPassword(extensionId, key) {
|
|
161
|
-
const password = await this.getOldPassword(extensionId, key);
|
|
162
|
-
if (password) {
|
|
163
|
-
const fullKey = this.getKey(extensionId, key);
|
|
164
|
-
this.logService.trace('[mainThreadSecretState] Setting old password to new location for: ', extensionId, key);
|
|
165
|
-
await this.secretStorageService.set(fullKey, password);
|
|
166
|
-
this.logService.trace('[mainThreadSecretState] Old Password set to new location for: ', extensionId, key);
|
|
167
|
-
if (this.secretStorageService.type === 'persisted') {
|
|
168
|
-
this.logService.trace('[mainThreadSecretState] Deleting old password for since it was persisted in the new location: ', extensionId, key);
|
|
169
|
-
await this.deleteOldPassword(extensionId, key);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return password;
|
|
173
|
-
}
|
|
174
|
-
async getOldPassword(extensionId, key) {
|
|
175
|
-
this.logService.trace(`[mainThreadSecretState] Getting old password for ${extensionId} extension: `, key);
|
|
176
|
-
const fullKey = `${await this.secretStoragePrefix}${extensionId}`;
|
|
177
|
-
const password = await this.credentialsService.getPassword(fullKey, key);
|
|
178
|
-
if (!password) {
|
|
179
|
-
this.logService.trace('[mainThreadSecretState] No old password found for: ', extensionId, key);
|
|
180
|
-
return undefined;
|
|
181
|
-
}
|
|
182
|
-
let decrypted;
|
|
183
|
-
try {
|
|
184
|
-
this.logService.trace('[mainThreadSecretState] Decrypting old password for: ', extensionId, key);
|
|
185
|
-
decrypted = await this.encryptionService.decrypt(password);
|
|
186
|
-
}
|
|
187
|
-
catch (e) {
|
|
188
|
-
this.logService.error(e);
|
|
189
|
-
this.logService.trace('[mainThreadSecretState] Trying old migration for: ', extensionId, key);
|
|
190
|
-
const encryptedForSet = await this.encryptionService.encrypt(password);
|
|
191
|
-
await this.credentialsService.setPassword(fullKey, key, encryptedForSet);
|
|
192
|
-
const passwordEncrypted = await this.credentialsService.getPassword(fullKey, key);
|
|
193
|
-
decrypted = passwordEncrypted && (await this.encryptionService.decrypt(passwordEncrypted));
|
|
194
|
-
}
|
|
195
|
-
if (decrypted) {
|
|
196
|
-
try {
|
|
197
|
-
const value = JSON.parse(decrypted);
|
|
198
|
-
if (value.extensionId === extensionId) {
|
|
199
|
-
this.logService.trace('[mainThreadSecretState] Old password found for: ', extensionId, key);
|
|
200
|
-
return value.content;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch (parseError) {
|
|
204
|
-
this.logService.error(parseError);
|
|
205
|
-
return undefined;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
this.logService.trace('[mainThreadSecretState] No old password found for: ', extensionId, key);
|
|
209
|
-
return undefined;
|
|
210
|
-
}
|
|
211
|
-
async deleteOldPassword(extensionId, key) {
|
|
212
|
-
try {
|
|
213
|
-
const fullKey = `${await this.secretStoragePrefix}${extensionId}`;
|
|
214
|
-
this.logService.trace(`[mainThreadSecretState] Deleting old password for ${extensionId} extension: `, key);
|
|
215
|
-
await this.credentialsService.deletePassword(fullKey, key);
|
|
216
|
-
this.logService.trace('[mainThreadSecretState] Old password deleted for: ', extensionId, key);
|
|
217
|
-
}
|
|
218
|
-
catch (_) {
|
|
219
|
-
throw new Error('Cannot delete password');
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
61
|
};
|
|
223
62
|
MainThreadSecretState = __decorate([
|
|
224
63
|
extHostNamedCustomer(MainContext.MainThreadSecretState),
|
|
225
64
|
( __param(1, ISecretStorageService)),
|
|
226
65
|
( __param(2, ILogService)),
|
|
227
|
-
( __param(3,
|
|
228
|
-
( __param(4, IEncryptionService)),
|
|
229
|
-
( __param(5, IBrowserWorkbenchEnvironmentService))
|
|
66
|
+
( __param(3, IBrowserWorkbenchEnvironmentService))
|
|
230
67
|
], MainThreadSecretState);
|
|
231
68
|
export { MainThreadSecretState };
|
|
@@ -425,6 +425,9 @@ let MainThreadTask = class MainThreadTask {
|
|
|
425
425
|
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostTask));
|
|
426
426
|
this._providers = ( new Map());
|
|
427
427
|
this._taskService.onDidStateChange(async (event) => {
|
|
428
|
+
if (event.kind === "changed" ) {
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
428
431
|
const task = event.__task;
|
|
429
432
|
if (event.kind === "start" ) {
|
|
430
433
|
const execution = TaskExecutionDTO.from(task.getTaskExecution());
|