@codingame/monaco-vscode-api 6.0.2 → 7.0.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/README.md +93 -73
- package/api.js +1 -1
- package/debugProtocol.d.ts +10 -1
- package/extensions.d.ts +2 -0
- package/missing-services.js +21 -2
- package/monaco.d.ts +1 -1
- package/monaco.js +1 -1
- package/package.json +9 -9
- package/service-override/extensions.d.ts +1 -2
- package/services.js +4 -2
- package/vscode/src/vs/base/browser/dnd.js +1 -1
- package/vscode/src/vs/base/browser/dom.js +116 -5
- package/vscode/src/vs/base/browser/domObservable.js +16 -0
- package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
- package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
- package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
- package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
- package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
- package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
- package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
- package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
- package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
- package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
- package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
- package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
- package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
- package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
- package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
- package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
- package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
- package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
- package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
- package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
- package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
- package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
- package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
- package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
- package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
- package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
- package/vscode/src/vs/base/common/assert.js +1 -1
- package/vscode/src/vs/base/common/collections.js +49 -1
- package/vscode/src/vs/base/common/equals.js +55 -5
- package/vscode/src/vs/base/common/errors.js +14 -1
- package/vscode/src/vs/base/common/event.js +2 -1
- package/vscode/src/vs/base/common/history.js +7 -4
- package/vscode/src/vs/base/common/iterator.js +9 -1
- package/vscode/src/vs/base/common/map.d.ts +41 -0
- package/vscode/src/vs/base/common/numbers.js +18 -1
- package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
- package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
- package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
- package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
- package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
- package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
- package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
- package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
- package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
- package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
- package/vscode/src/vs/base/common/product.d.ts +1 -0
- package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
- package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
- package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
- package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
- package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
- package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
- package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
- package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
- package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
- package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
- package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
- package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
- package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
- package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
- package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
- package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
- package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
- package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
- package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
- package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
- package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
- package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
- package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
- package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
- package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
- package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
- package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
- package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
- package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
- package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
- package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
- package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
- package/vscode/src/vs/editor/common/languages.d.ts +20 -3
- package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
- package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
- package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
- package/vscode/src/vs/editor/common/model/textModel.js +6 -2
- package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
- package/vscode/src/vs/editor/common/model.d.ts +4 -0
- package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
- package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
- package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
- package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
- package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
- package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
- package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
- package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
- package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
- package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
- package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
- package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
- package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
- package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
- package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
- package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
- package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
- package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
- package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
- package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
- package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
- package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
- package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
- package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
- package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
- package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
- package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
- package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
- package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
- package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
- package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
- package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
- package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
- package/vscode/src/vs/editor/editor.api.d.ts +31 -5
- package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
- package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
- package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
- package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
- package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
- package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
- package/vscode/src/vs/platform/actions/common/actions.js +3 -0
- package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
- package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
- package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
- package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
- package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
- package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
- package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
- package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
- package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
- package/vscode/src/vs/platform/files/common/watcher.js +21 -24
- package/vscode/src/vs/platform/list/browser/listService.js +2 -1
- package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
- package/vscode/src/vs/platform/opener/browser/link.js +1 -1
- package/vscode/src/vs/platform/product/common/product.js +1 -1
- package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
- package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
- package/vscode/src/vs/platform/request/common/request.js +18 -8
- package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
- package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
- package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
- package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
- package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
- package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
- package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
- package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
- package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
- package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
- package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
- package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
- package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
- package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
- package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
- package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
- package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
- package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
- package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
- package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
- package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
- package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
- package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
- package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
- package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
- package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
- package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
- package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
- package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
- package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
- package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
- package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
- package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
- package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
- package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
- package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
- package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
- package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
- package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
- package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
- package/vscode/src/vs/workbench/browser/web.api.js +8 -0
- package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
- package/vscode/src/vs/workbench/common/configuration.js +1 -1
- package/vscode/src/vs/workbench/common/contributions.js +8 -1
- package/vscode/src/vs/workbench/common/editor.js +5 -1
- package/vscode/src/vs/workbench/common/theme.js +79 -454
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
- package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
- package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
- package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
- package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
- package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
- package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
- package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
- package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
- package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
- package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
- package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
- package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
- package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
- package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
- package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
- package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
- package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
- package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
- package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
- package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
- package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
- package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
- package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
- package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
- package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
- package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
- package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
- package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
- package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
- package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
- package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
- package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
- package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
- package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
- package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
- package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
- package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
- package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
- package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
- package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
- package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
- package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
- package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
- package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isFalsyOrEmpty,
|
|
1
|
+
import { isFalsyOrEmpty, coalesce, isNonEmptyArray, asArray } from '../../../base/common/arrays.js';
|
|
2
2
|
import { raceCancellationError } from '../../../base/common/async.js';
|
|
3
3
|
import { CancellationToken } from '../../../base/common/cancellation.js';
|
|
4
4
|
import { isCancellationError, NotImplementedError } from '../../../base/common/errors.js';
|
|
@@ -9,15 +9,15 @@ import { StopWatch } from '../../../base/common/stopwatch.js';
|
|
|
9
9
|
import { regExpLeadsToEndlessLoop } from '../../../base/common/strings.js';
|
|
10
10
|
import { assertType, isObject } from '../../../base/common/types.js';
|
|
11
11
|
import { URI } from '../../../base/common/uri.js';
|
|
12
|
-
import { Range as Range$
|
|
12
|
+
import { Range as Range$1 } from '../../../editor/common/core/range.js';
|
|
13
13
|
import { Selection } from '../../../editor/common/core/selection.js';
|
|
14
14
|
import { NewSymbolNameTriggerKind, CompletionItemInsertTextRule, InlineEditTriggerKind, InlineCompletionTriggerKind } from '../../../editor/common/languages.js';
|
|
15
15
|
import { encodeSemanticTokensDto } from '../../../editor/common/services/semanticTokensDto.js';
|
|
16
16
|
import { localizeWithPath } from '../../../nls.js';
|
|
17
17
|
import { ExtensionIdentifier } from '../../../platform/extensions/common/extensions.js';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { isProposedApiEnabled } from '../../services/extensions/common/extensions.js';
|
|
18
|
+
import { DocumentSelector, DocumentSymbol as DocumentSymbol$1, SymbolKind, SymbolTag, Range, Position, Hover, EvaluatableExpression, InlineValueContext, InlineValue, DocumentHighlight, MultiDocumentHighlight, location, Selection as Selection$1, CodeActionTriggerKind, Diagnostic, WorkspaceEdit, DataTransfer, TextEdit, WorkspaceSymbol, CompletionContext, CompletionItemKind, CompletionItemTag, MarkdownString, SignatureHelp, InlayHintKind, DocumentLink, Color, ColorPresentation, FoldingRange, SelectionRange, CallHierarchyItem, TypeHierarchyItem, DefinitionLink, PartialAcceptInfo } from './extHostTypeConverters.js';
|
|
19
|
+
import { Disposable, SyntaxTokenType, DocumentSymbol, Range as Range$2, CodeActionKind, InternalDataTransferItem, DocumentDropOrPasteEditKind, NewSymbolNameTriggerKind as NewSymbolNameTriggerKind$1, SemanticTokens, SemanticTokensEdits, SemanticTokensEdit, SnippetString, InlineEditTriggerKind as InlineEditTriggerKind$1, Location, CompletionList, InlineCompletionTriggerKind as InlineCompletionTriggerKind$1 } from './extHostTypes.js';
|
|
20
|
+
import { isProposedApiEnabled, checkProposedApiEnabled } from '../../services/extensions/common/extensions.js';
|
|
21
21
|
import { Cache } from './cache.js';
|
|
22
22
|
import { MainContext, ISuggestResultDtoField, ISuggestDataDtoField } from './extHost.protocol.js';
|
|
23
23
|
const _moduleId = "vs/workbench/api/common/extHostLanguageFeatures";
|
|
@@ -58,8 +58,8 @@ class DocumentSymbolAdapter {
|
|
|
58
58
|
tags: info.tags?.map(SymbolTag.from) || [],
|
|
59
59
|
detail: '',
|
|
60
60
|
containerName: info.containerName,
|
|
61
|
-
range: Range
|
|
62
|
-
selectionRange: Range
|
|
61
|
+
range: Range.from(info.location.range),
|
|
62
|
+
selectionRange: Range.from(info.location.range),
|
|
63
63
|
children: []
|
|
64
64
|
};
|
|
65
65
|
while (true) {
|
|
@@ -69,7 +69,7 @@ class DocumentSymbolAdapter {
|
|
|
69
69
|
break;
|
|
70
70
|
}
|
|
71
71
|
const parent = parentStack[parentStack.length - 1];
|
|
72
|
-
if (Range$
|
|
72
|
+
if (Range$1.containsRange(parent.range, element.range) && !Range$1.equalsRange(parent.range, element.range)) {
|
|
73
73
|
parent.children?.push(element);
|
|
74
74
|
parentStack.push(element);
|
|
75
75
|
break;
|
|
@@ -107,7 +107,7 @@ class CodeLensAdapter {
|
|
|
107
107
|
for (let i = 0; i < lenses.length; i++) {
|
|
108
108
|
result.lenses.push({
|
|
109
109
|
cacheId: [cacheId, i],
|
|
110
|
-
range: Range
|
|
110
|
+
range: Range.from(lenses[i].range),
|
|
111
111
|
command: this._commands.toInternal(lenses[i].command, disposables)
|
|
112
112
|
});
|
|
113
113
|
}
|
|
@@ -242,7 +242,7 @@ class HoverAdapter {
|
|
|
242
242
|
value.range = doc.getWordRangeAtPosition(pos);
|
|
243
243
|
}
|
|
244
244
|
if (!value.range) {
|
|
245
|
-
value.range = ( (new Range(pos, pos)));
|
|
245
|
+
value.range = ( (new Range$2(pos, pos)));
|
|
246
246
|
}
|
|
247
247
|
const convertedHover = Hover.from(value);
|
|
248
248
|
const id = this._hoverCounter;
|
|
@@ -284,7 +284,7 @@ class InlineValuesAdapter {
|
|
|
284
284
|
}
|
|
285
285
|
async provideInlineValues(resource, viewPort, context, token) {
|
|
286
286
|
const doc = this._documents.getDocument(resource);
|
|
287
|
-
const value = await this._provider.provideInlineValues(doc, Range
|
|
287
|
+
const value = await this._provider.provideInlineValues(doc, Range.to(viewPort), InlineValueContext.to(context), token);
|
|
288
288
|
if (Array.isArray(value)) {
|
|
289
289
|
return (
|
|
290
290
|
(value.map(iv => InlineValue.from(iv)))
|
|
@@ -339,7 +339,7 @@ class LinkedEditingRangeAdapter {
|
|
|
339
339
|
const value = await this._provider.provideLinkedEditingRanges(doc, pos, token);
|
|
340
340
|
if (value && Array.isArray(value.ranges)) {
|
|
341
341
|
return {
|
|
342
|
-
ranges: coalesce(( (value.ranges.map(Range
|
|
342
|
+
ranges: coalesce(( (value.ranges.map(Range.from)))),
|
|
343
343
|
wordPattern: value.wordPattern
|
|
344
344
|
};
|
|
345
345
|
}
|
|
@@ -380,7 +380,7 @@ class CodeActionAdapter {
|
|
|
380
380
|
const doc = this._documents.getDocument(resource);
|
|
381
381
|
const ran = Selection.isISelection(rangeOrSelection)
|
|
382
382
|
? Selection$1.to(rangeOrSelection)
|
|
383
|
-
: Range
|
|
383
|
+
: Range.to(rangeOrSelection);
|
|
384
384
|
const allDiagnostics = [];
|
|
385
385
|
for (const diagnostic of this._diagnostics.getDiagnostics(resource)) {
|
|
386
386
|
if (ran.intersection(diagnostic.range)) {
|
|
@@ -419,10 +419,10 @@ class CodeActionAdapter {
|
|
|
419
419
|
else {
|
|
420
420
|
if (codeActionContext.only) {
|
|
421
421
|
if (!candidate.kind) {
|
|
422
|
-
this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value}
|
|
422
|
+
this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value}' requested but returned code action does not have a 'kind'. Code action will be dropped. Please set 'CodeAction.kind'.`);
|
|
423
423
|
}
|
|
424
424
|
else if (!codeActionContext.only.contains(candidate.kind)) {
|
|
425
|
-
this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value}
|
|
425
|
+
this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value}' requested but returned code action is of kind '${candidate.kind.value}'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.`);
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
428
|
const range = candidate.ranges ?? [];
|
|
@@ -435,7 +435,7 @@ class CodeActionAdapter {
|
|
|
435
435
|
kind: candidate.kind && candidate.kind.value,
|
|
436
436
|
isPreferred: candidate.isPreferred,
|
|
437
437
|
isAI: isProposedApiEnabled(this._extension, 'codeActionAI') ? candidate.isAI : false,
|
|
438
|
-
ranges: isProposedApiEnabled(this._extension, 'codeActionRanges') ? coalesce(( (range.map(Range
|
|
438
|
+
ranges: isProposedApiEnabled(this._extension, 'codeActionRanges') ? coalesce(( (range.map(Range.from)))) : undefined,
|
|
439
439
|
disabled: candidate.disabled?.reason
|
|
440
440
|
});
|
|
441
441
|
}
|
|
@@ -488,7 +488,7 @@ class DocumentPasteEditProvider {
|
|
|
488
488
|
return;
|
|
489
489
|
}
|
|
490
490
|
const doc = this._documents.getDocument(resource);
|
|
491
|
-
const vscodeRanges = ( (ranges.map(range => Range
|
|
491
|
+
const vscodeRanges = ( (ranges.map(range => Range.to(range))));
|
|
492
492
|
const dataTransfer = DataTransfer.toDataTransfer(dataTransferDto, () => {
|
|
493
493
|
throw ( (new NotImplementedError()));
|
|
494
494
|
});
|
|
@@ -504,7 +504,7 @@ class DocumentPasteEditProvider {
|
|
|
504
504
|
return [];
|
|
505
505
|
}
|
|
506
506
|
const doc = this._documents.getDocument(resource);
|
|
507
|
-
const vscodeRanges = ( (ranges.map(range => Range
|
|
507
|
+
const vscodeRanges = ( (ranges.map(range => Range.to(range))));
|
|
508
508
|
const dataTransfer = DataTransfer.toDataTransfer(dataTransferDto, async (id) => {
|
|
509
509
|
return (await this._proxy.$resolvePasteFileData(this._handle, requestId, id)).buffer;
|
|
510
510
|
});
|
|
@@ -569,7 +569,7 @@ class RangeFormattingAdapter {
|
|
|
569
569
|
}
|
|
570
570
|
async provideDocumentRangeFormattingEdits(resource, range, options, token) {
|
|
571
571
|
const document = this._documents.getDocument(resource);
|
|
572
|
-
const ran = Range
|
|
572
|
+
const ran = Range.to(range);
|
|
573
573
|
const value = await this._provider.provideDocumentRangeFormattingEdits(document, ran, options, token);
|
|
574
574
|
if (Array.isArray(value)) {
|
|
575
575
|
return (
|
|
@@ -581,7 +581,7 @@ class RangeFormattingAdapter {
|
|
|
581
581
|
async provideDocumentRangesFormattingEdits(resource, ranges, options, token) {
|
|
582
582
|
assertType(typeof this._provider.provideDocumentRangesFormattingEdits === 'function', 'INVALID invocation of `provideDocumentRangesFormattingEdits`');
|
|
583
583
|
const document = this._documents.getDocument(resource);
|
|
584
|
-
const _ranges = ( (ranges.map(Range
|
|
584
|
+
const _ranges = ( (ranges.map(Range.to)));
|
|
585
585
|
const value = await this._provider.provideDocumentRangesFormattingEdits(document, _ranges, options, token);
|
|
586
586
|
if (Array.isArray(value)) {
|
|
587
587
|
return (
|
|
@@ -695,7 +695,7 @@ class RenameAdapter {
|
|
|
695
695
|
const rangeOrLocation = await this._provider.prepareRename(doc, pos, token);
|
|
696
696
|
let range;
|
|
697
697
|
let text;
|
|
698
|
-
if (Range.isRange(rangeOrLocation)) {
|
|
698
|
+
if (Range$2.isRange(rangeOrLocation)) {
|
|
699
699
|
range = rangeOrLocation;
|
|
700
700
|
text = doc.getText(rangeOrLocation);
|
|
701
701
|
}
|
|
@@ -710,7 +710,7 @@ class RenameAdapter {
|
|
|
710
710
|
this._logService.warn('INVALID rename location: position line must be within range start/end lines');
|
|
711
711
|
return undefined;
|
|
712
712
|
}
|
|
713
|
-
return { range: Range
|
|
713
|
+
return { range: Range.from(range), text };
|
|
714
714
|
}
|
|
715
715
|
catch (err) {
|
|
716
716
|
const rejectReason = RenameAdapter._asMessage(err);
|
|
@@ -749,7 +749,7 @@ class NewSymbolNamesAdapter {
|
|
|
749
749
|
}
|
|
750
750
|
async provideNewSymbolNames(resource, range, triggerKind, token) {
|
|
751
751
|
const doc = this._documents.getDocument(resource);
|
|
752
|
-
const pos = Range
|
|
752
|
+
const pos = Range.to(range);
|
|
753
753
|
try {
|
|
754
754
|
const kind = NewSymbolNamesAdapter.languageTriggerKindToVSCodeTriggerKind[triggerKind];
|
|
755
755
|
const value = await this._provider.provideNewSymbolNames(doc, pos, kind, token);
|
|
@@ -922,7 +922,7 @@ class DocumentRangeSemanticTokensAdapter {
|
|
|
922
922
|
}
|
|
923
923
|
async provideDocumentRangeSemanticTokens(resource, range, token) {
|
|
924
924
|
const doc = this._documents.getDocument(resource);
|
|
925
|
-
const value = await this._provider.provideDocumentRangeSemanticTokens(doc, Range
|
|
925
|
+
const value = await this._provider.provideDocumentRangeSemanticTokens(doc, Range.to(range), token);
|
|
926
926
|
if (!value) {
|
|
927
927
|
return null;
|
|
928
928
|
}
|
|
@@ -952,7 +952,7 @@ class CompletionsAdapter {
|
|
|
952
952
|
async provideCompletionItems(resource, position, context, token) {
|
|
953
953
|
const doc = this._documents.getDocument(resource);
|
|
954
954
|
const pos = Position.to(position);
|
|
955
|
-
const replaceRange = doc.getWordRangeAtPosition(pos) || ( (new Range(pos, pos)));
|
|
955
|
+
const replaceRange = doc.getWordRangeAtPosition(pos) || ( (new Range$2(pos, pos)));
|
|
956
956
|
const insertRange = replaceRange.with({ end: pos });
|
|
957
957
|
const sw = ( (new StopWatch()));
|
|
958
958
|
const itemsOrList = await this._provider.provideCompletionItems(doc, pos, token, CompletionContext.to(context));
|
|
@@ -970,7 +970,7 @@ class CompletionsAdapter {
|
|
|
970
970
|
const result = {
|
|
971
971
|
x: pid,
|
|
972
972
|
[ISuggestResultDtoField.completions]: completions,
|
|
973
|
-
[ISuggestResultDtoField.defaultRanges]: { replace: Range
|
|
973
|
+
[ISuggestResultDtoField.defaultRanges]: { replace: Range.from(replaceRange), insert: Range.from(insertRange) },
|
|
974
974
|
[ISuggestResultDtoField.isIncomplete]: list.isIncomplete || undefined,
|
|
975
975
|
[ISuggestResultDtoField.duration]: sw.elapsed()
|
|
976
976
|
};
|
|
@@ -1062,13 +1062,13 @@ class CompletionsAdapter {
|
|
|
1062
1062
|
else if (item.range) {
|
|
1063
1063
|
range = item.range;
|
|
1064
1064
|
}
|
|
1065
|
-
if (Range.isRange(range)) {
|
|
1066
|
-
result[ISuggestDataDtoField.range] = Range
|
|
1065
|
+
if (Range$2.isRange(range)) {
|
|
1066
|
+
result[ISuggestDataDtoField.range] = Range.from(range);
|
|
1067
1067
|
}
|
|
1068
1068
|
else if (range && (!defaultInsertRange?.isEqual(range.inserting) || !defaultReplaceRange?.isEqual(range.replacing))) {
|
|
1069
1069
|
result[ISuggestDataDtoField.range] = {
|
|
1070
|
-
insert: Range
|
|
1071
|
-
replace: Range
|
|
1070
|
+
insert: Range.from(range.inserting),
|
|
1071
|
+
replace: Range.from(range.replacing)
|
|
1072
1072
|
};
|
|
1073
1073
|
}
|
|
1074
1074
|
return result;
|
|
@@ -1078,6 +1078,9 @@ class InlineCompletionAdapterBase {
|
|
|
1078
1078
|
async provideInlineCompletions(resource, position, context, token) {
|
|
1079
1079
|
return undefined;
|
|
1080
1080
|
}
|
|
1081
|
+
async provideInlineEdits(resource, range, context, token) {
|
|
1082
|
+
return undefined;
|
|
1083
|
+
}
|
|
1081
1084
|
disposeCompletions(pid) { }
|
|
1082
1085
|
handleDidShowCompletionItem(pid, idx, updatedInsertText) { }
|
|
1083
1086
|
handlePartialAccept(pid, idx, acceptedCharacters, info) { }
|
|
@@ -1107,7 +1110,7 @@ class InlineCompletionAdapter extends InlineCompletionAdapterBase {
|
|
|
1107
1110
|
const result = await this._provider.provideInlineCompletionItems(doc, pos, {
|
|
1108
1111
|
selectedCompletionInfo: context.selectedSuggestionInfo
|
|
1109
1112
|
? {
|
|
1110
|
-
range: Range
|
|
1113
|
+
range: Range.to(context.selectedSuggestionInfo.range),
|
|
1111
1114
|
text: context.selectedSuggestionInfo.text
|
|
1112
1115
|
}
|
|
1113
1116
|
: undefined,
|
|
@@ -1143,7 +1146,70 @@ class InlineCompletionAdapter extends InlineCompletionAdapterBase {
|
|
|
1143
1146
|
return ({
|
|
1144
1147
|
insertText: typeof insertText === 'string' ? insertText : { snippet: insertText.value },
|
|
1145
1148
|
filterText: item.filterText,
|
|
1146
|
-
range: item.range ? Range
|
|
1149
|
+
range: item.range ? Range.from(item.range) : undefined,
|
|
1150
|
+
command,
|
|
1151
|
+
idx: idx,
|
|
1152
|
+
completeBracketPairs: this._isAdditionsProposedApiEnabled ? item.completeBracketPairs : false,
|
|
1153
|
+
});
|
|
1154
|
+
}))),
|
|
1155
|
+
commands: ( (commands.map(c => {
|
|
1156
|
+
if (!disposableStore) {
|
|
1157
|
+
disposableStore = ( (new DisposableStore()));
|
|
1158
|
+
}
|
|
1159
|
+
return this._commands.toInternal(c, disposableStore);
|
|
1160
|
+
}))),
|
|
1161
|
+
suppressSuggestions: false,
|
|
1162
|
+
enableForwardStability,
|
|
1163
|
+
};
|
|
1164
|
+
}
|
|
1165
|
+
async provideInlineEdits(resource, range, context, token) {
|
|
1166
|
+
if (!this._provider.provideInlineEdits) {
|
|
1167
|
+
return undefined;
|
|
1168
|
+
}
|
|
1169
|
+
checkProposedApiEnabled(this._extension, 'inlineCompletionsAdditions');
|
|
1170
|
+
const doc = this._documents.getDocument(resource);
|
|
1171
|
+
const r = Range.to(range);
|
|
1172
|
+
const result = await this._provider.provideInlineEdits(doc, r, {
|
|
1173
|
+
selectedCompletionInfo: context.selectedSuggestionInfo
|
|
1174
|
+
? {
|
|
1175
|
+
range: Range.to(context.selectedSuggestionInfo.range),
|
|
1176
|
+
text: context.selectedSuggestionInfo.text
|
|
1177
|
+
}
|
|
1178
|
+
: undefined,
|
|
1179
|
+
triggerKind: this.languageTriggerKindToVSCodeTriggerKind[context.triggerKind],
|
|
1180
|
+
userPrompt: context.userPrompt,
|
|
1181
|
+
}, token);
|
|
1182
|
+
if (!result) {
|
|
1183
|
+
return undefined;
|
|
1184
|
+
}
|
|
1185
|
+
if (token.isCancellationRequested) {
|
|
1186
|
+
return undefined;
|
|
1187
|
+
}
|
|
1188
|
+
const normalizedResult = Array.isArray(result) ? result : result.items;
|
|
1189
|
+
const commands = this._isAdditionsProposedApiEnabled ? Array.isArray(result) ? [] : result.commands || [] : [];
|
|
1190
|
+
const enableForwardStability = this._isAdditionsProposedApiEnabled && !Array.isArray(result) ? result.enableForwardStability : undefined;
|
|
1191
|
+
let disposableStore = undefined;
|
|
1192
|
+
const pid = this._references.createReferenceId({
|
|
1193
|
+
dispose() {
|
|
1194
|
+
disposableStore?.dispose();
|
|
1195
|
+
},
|
|
1196
|
+
items: normalizedResult
|
|
1197
|
+
});
|
|
1198
|
+
return {
|
|
1199
|
+
pid,
|
|
1200
|
+
items: ( (normalizedResult.map((item, idx) => {
|
|
1201
|
+
let command = undefined;
|
|
1202
|
+
if (item.command) {
|
|
1203
|
+
if (!disposableStore) {
|
|
1204
|
+
disposableStore = ( (new DisposableStore()));
|
|
1205
|
+
}
|
|
1206
|
+
command = this._commands.toInternal(item.command, disposableStore);
|
|
1207
|
+
}
|
|
1208
|
+
const insertText = item.insertText;
|
|
1209
|
+
return ({
|
|
1210
|
+
insertText: typeof insertText === 'string' ? insertText : { snippet: insertText.value },
|
|
1211
|
+
filterText: item.filterText,
|
|
1212
|
+
range: item.range ? Range.from(item.range) : undefined,
|
|
1147
1213
|
command,
|
|
1148
1214
|
idx: idx,
|
|
1149
1215
|
completeBracketPairs: this._isAdditionsProposedApiEnabled ? item.completeBracketPairs : false,
|
|
@@ -1217,7 +1283,7 @@ class InlineEditAdapter {
|
|
|
1217
1283
|
const langResult = {
|
|
1218
1284
|
pid,
|
|
1219
1285
|
text: result.text,
|
|
1220
|
-
range: Range
|
|
1286
|
+
range: Range.from(result.range),
|
|
1221
1287
|
accepted: acceptCommand,
|
|
1222
1288
|
rejected: rejectCommand,
|
|
1223
1289
|
};
|
|
@@ -1306,7 +1372,7 @@ class InlayHintsAdapter {
|
|
|
1306
1372
|
}
|
|
1307
1373
|
async provideInlayHints(resource, ran, token) {
|
|
1308
1374
|
const doc = this._documents.getDocument(resource);
|
|
1309
|
-
const range = Range
|
|
1375
|
+
const range = Range.to(ran);
|
|
1310
1376
|
const hints = await this._provider.provideInlayHints(doc, range, token);
|
|
1311
1377
|
if (!Array.isArray(hints) || hints.length === 0) {
|
|
1312
1378
|
this._logService.trace(`[InlayHints] NO inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(ran)}`);
|
|
@@ -1471,14 +1537,14 @@ class ColorProviderAdapter {
|
|
|
1471
1537
|
const colorInfos = ( (colors.map(ci => {
|
|
1472
1538
|
return {
|
|
1473
1539
|
color: Color.from(ci.color),
|
|
1474
|
-
range: Range
|
|
1540
|
+
range: Range.from(ci.range)
|
|
1475
1541
|
};
|
|
1476
1542
|
})));
|
|
1477
1543
|
return colorInfos;
|
|
1478
1544
|
}
|
|
1479
1545
|
async provideColorPresentations(resource, raw, token) {
|
|
1480
1546
|
const document = this._documents.getDocument(resource);
|
|
1481
|
-
const range = Range
|
|
1547
|
+
const range = Range.to(raw.range);
|
|
1482
1548
|
const color = Color.to(raw.color);
|
|
1483
1549
|
const value = await this._provider.provideColorPresentations(color, { document, range }, token);
|
|
1484
1550
|
if (!Array.isArray(value)) {
|
|
@@ -1581,7 +1647,7 @@ class CallHierarchyAdapter {
|
|
|
1581
1647
|
(calls.map(call => {
|
|
1582
1648
|
return {
|
|
1583
1649
|
from: this._cacheAndConvertItem(sessionId, call.from),
|
|
1584
|
-
fromRanges: ( (call.fromRanges.map(r => Range
|
|
1650
|
+
fromRanges: ( (call.fromRanges.map(r => Range.from(r))))
|
|
1585
1651
|
};
|
|
1586
1652
|
}))
|
|
1587
1653
|
);
|
|
@@ -1599,7 +1665,7 @@ class CallHierarchyAdapter {
|
|
|
1599
1665
|
(calls.map(call => {
|
|
1600
1666
|
return {
|
|
1601
1667
|
to: this._cacheAndConvertItem(sessionId, call.to),
|
|
1602
|
-
fromRanges: ( (call.fromRanges.map(r => Range
|
|
1668
|
+
fromRanges: ( (call.fromRanges.map(r => Range.from(r))))
|
|
1603
1669
|
};
|
|
1604
1670
|
}))
|
|
1605
1671
|
);
|
|
@@ -1750,7 +1816,7 @@ class MappedEditsAdapter {
|
|
|
1750
1816
|
return {
|
|
1751
1817
|
uri: URI.revive(r.uri),
|
|
1752
1818
|
version: r.version,
|
|
1753
|
-
ranges: ( (r.ranges.map((range) => Range
|
|
1819
|
+
ranges: ( (r.ranges.map((range) => Range.to(range)))),
|
|
1754
1820
|
};
|
|
1755
1821
|
}))))));
|
|
1756
1822
|
const ctx = {
|
|
@@ -2122,6 +2188,9 @@ class ExtHostLanguageFeatures {
|
|
|
2122
2188
|
$provideInlineCompletions(handle, resource, position, context, token) {
|
|
2123
2189
|
return this._withAdapter(handle, InlineCompletionAdapterBase, adapter => adapter.provideInlineCompletions(URI.revive(resource), position, context, token), undefined, token);
|
|
2124
2190
|
}
|
|
2191
|
+
$provideInlineEdits(handle, resource, range, context, token) {
|
|
2192
|
+
return this._withAdapter(handle, InlineCompletionAdapterBase, adapter => adapter.provideInlineEdits(URI.revive(resource), range, context, token), undefined, token);
|
|
2193
|
+
}
|
|
2125
2194
|
$handleInlineCompletionDidShow(handle, pid, idx, updatedInsertText) {
|
|
2126
2195
|
this._withAdapter(handle, InlineCompletionAdapterBase, async (adapter) => {
|
|
2127
2196
|
adapter.handleDidShowCompletionItem(pid, idx, updatedInsertText);
|
|
@@ -2290,7 +2359,7 @@ class ExtHostLanguageFeatures {
|
|
|
2290
2359
|
$resolveDropEdit(handle, id, token) {
|
|
2291
2360
|
return this._withAdapter(handle, DocumentDropEditAdapter, adapter => adapter.resolveDropEdit(id, token), {}, undefined);
|
|
2292
2361
|
}
|
|
2293
|
-
$
|
|
2362
|
+
$releaseDocumentOnDropEdits(handle, cacheId) {
|
|
2294
2363
|
this._withAdapter(handle, DocumentDropEditAdapter, adapter => Promise.resolve(adapter.releaseDropEdits(cacheId)), undefined, undefined);
|
|
2295
2364
|
}
|
|
2296
2365
|
registerMappedEditsProvider(extension, selector, provider) {
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { toDisposable } from '../../../base/common/lifecycle.js';
|
|
2
|
+
import { MainContext } from './extHost.protocol.js';
|
|
3
|
+
import { LanguageModelToolDescription } from './extHostTypeConverters.js';
|
|
4
|
+
class ExtHostLanguageModelTools {
|
|
5
|
+
constructor(mainContext) {
|
|
6
|
+
this._registeredTools = ( new Map());
|
|
7
|
+
this._allTools = ( new Map());
|
|
8
|
+
this._proxy = ( mainContext.getProxy(MainContext.MainThreadLanguageModelTools));
|
|
9
|
+
this._proxy.$getTools().then(tools => {
|
|
10
|
+
for (const tool of tools) {
|
|
11
|
+
this._allTools.set(tool.name, tool);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async invokeTool(name, parameters, token) {
|
|
16
|
+
return await this._proxy.$invokeTool(name, parameters, token);
|
|
17
|
+
}
|
|
18
|
+
async $acceptToolDelta(delta) {
|
|
19
|
+
if (delta.added) {
|
|
20
|
+
this._allTools.set(delta.added.name, delta.added);
|
|
21
|
+
}
|
|
22
|
+
if (delta.removed) {
|
|
23
|
+
this._allTools.delete(delta.removed);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get tools() {
|
|
27
|
+
return ( Array.from(( this._allTools.values()))
|
|
28
|
+
.map(tool => LanguageModelToolDescription.to(tool)));
|
|
29
|
+
}
|
|
30
|
+
async $invokeTool(name, parameters, token) {
|
|
31
|
+
const item = this._registeredTools.get(name);
|
|
32
|
+
if (!item) {
|
|
33
|
+
throw ( new Error(`Unknown tool ${name}`));
|
|
34
|
+
}
|
|
35
|
+
return await item.tool.invoke(parameters, token);
|
|
36
|
+
}
|
|
37
|
+
registerTool(extension, name, tool) {
|
|
38
|
+
this._registeredTools.set(name, { extension, tool });
|
|
39
|
+
this._proxy.$registerTool(name);
|
|
40
|
+
return toDisposable(() => {
|
|
41
|
+
this._registeredTools.delete(name);
|
|
42
|
+
this._proxy.$unregisterTool(name);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export { ExtHostLanguageModelTools };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { AsyncIterableSource, AsyncIterableObject } from '../../../base/common/async.js';
|
|
3
3
|
import { CancellationToken } from '../../../base/common/cancellation.js';
|
|
4
|
-
import {
|
|
4
|
+
import { toErrorMessage } from '../../../base/common/errorMessage.js';
|
|
5
|
+
import { transformErrorForSerialization, CancellationError, transformErrorFromSerialization } from '../../../base/common/errors.js';
|
|
5
6
|
import { Emitter, Event } from '../../../base/common/event.js';
|
|
6
7
|
import { Iterable } from '../../../base/common/iterator.js';
|
|
7
8
|
import { toDisposable } from '../../../base/common/lifecycle.js';
|
|
@@ -14,7 +15,7 @@ import { MainContext } from './extHost.protocol.js';
|
|
|
14
15
|
import { IExtHostAuthentication } from './extHostAuthentication.js';
|
|
15
16
|
import { IExtHostRpcService } from './extHostRpcService.js';
|
|
16
17
|
import { LanguageModelChatMessage } from './extHostTypeConverters.js';
|
|
17
|
-
import { LanguageModelError, LanguageModelChatMessageRole } from './extHostTypes.js';
|
|
18
|
+
import { LanguageModelError, LanguageModelChatMessageRole, LanguageModelFunctionResultPart, LanguageModelTextPart, LanguageModelFunctionUsePart } from './extHostTypes.js';
|
|
18
19
|
import { INTERNAL_AUTH_PROVIDER_PREFIX } from '../../services/authentication/common/authentication.js';
|
|
19
20
|
import { checkProposedApiEnabled } from '../../services/extensions/common/extensions.js';
|
|
20
21
|
var ExtHostLanguageModels_1;
|
|
@@ -32,10 +33,21 @@ class LanguageModelResponse {
|
|
|
32
33
|
this._responseStreams = ( (new Map()));
|
|
33
34
|
this._defaultStream = ( (new AsyncIterableSource()));
|
|
34
35
|
this._isDone = false;
|
|
35
|
-
this._isStreaming = false;
|
|
36
36
|
const that = this;
|
|
37
37
|
this.apiObject = {
|
|
38
|
-
|
|
38
|
+
get stream() {
|
|
39
|
+
return that._defaultStream.asyncIterable;
|
|
40
|
+
},
|
|
41
|
+
get text() {
|
|
42
|
+
return ( (AsyncIterableObject.map(that._defaultStream.asyncIterable, part => {
|
|
43
|
+
if (part instanceof LanguageModelTextPart) {
|
|
44
|
+
return part.value;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
}))).coalesce();
|
|
50
|
+
},
|
|
39
51
|
};
|
|
40
52
|
}
|
|
41
53
|
*_streams() {
|
|
@@ -52,7 +64,6 @@ class LanguageModelResponse {
|
|
|
52
64
|
if (this._isDone) {
|
|
53
65
|
return;
|
|
54
66
|
}
|
|
55
|
-
this._isStreaming = true;
|
|
56
67
|
let res = this._responseStreams.get(fragment.index);
|
|
57
68
|
if (!res) {
|
|
58
69
|
if (this._responseStreams.size === 0) {
|
|
@@ -63,10 +74,14 @@ class LanguageModelResponse {
|
|
|
63
74
|
}
|
|
64
75
|
this._responseStreams.set(fragment.index, res);
|
|
65
76
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
77
|
+
let out;
|
|
78
|
+
if (fragment.part.type === 'text') {
|
|
79
|
+
out = new LanguageModelTextPart(fragment.part.value);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
out = new LanguageModelFunctionUsePart(fragment.part.name, fragment.part.parameters);
|
|
83
|
+
}
|
|
84
|
+
res.stream.emitOne(out);
|
|
70
85
|
}
|
|
71
86
|
reject(err) {
|
|
72
87
|
this._isDone = true;
|
|
@@ -132,19 +147,44 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
132
147
|
responseReceivedListener?.dispose();
|
|
133
148
|
});
|
|
134
149
|
}
|
|
135
|
-
async $
|
|
150
|
+
async $startChatRequest(handle, requestId, from, messages, options, token) {
|
|
136
151
|
const data = this._languageModels.get(handle);
|
|
137
152
|
if (!data) {
|
|
138
|
-
|
|
153
|
+
throw ( (new Error('Provider not found')));
|
|
139
154
|
}
|
|
140
155
|
const progress = ( (new Progress(async (fragment) => {
|
|
141
156
|
if (token.isCancellationRequested) {
|
|
142
157
|
this._logService.warn(`[CHAT](${data.extension.value}) CANNOT send progress because the REQUEST IS CANCELLED`);
|
|
143
158
|
return;
|
|
144
159
|
}
|
|
145
|
-
|
|
160
|
+
let part;
|
|
161
|
+
if (fragment.part instanceof LanguageModelFunctionUsePart) {
|
|
162
|
+
part = { type: 'function_use', name: fragment.part.name, parameters: fragment.part.parameters };
|
|
163
|
+
}
|
|
164
|
+
else if (fragment.part instanceof LanguageModelTextPart) {
|
|
165
|
+
part = { type: 'text', value: fragment.part.value };
|
|
166
|
+
}
|
|
167
|
+
if (!part) {
|
|
168
|
+
this._logService.warn(`[CHAT](${data.extension.value}) UNKNOWN part ${JSON.stringify(fragment)}`);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
this._proxy.$reportResponsePart(requestId, { index: fragment.index, part });
|
|
146
172
|
})));
|
|
147
|
-
|
|
173
|
+
let p;
|
|
174
|
+
if (data.provider.provideLanguageModelResponse2) {
|
|
175
|
+
p = Promise.resolve(data.provider.provideLanguageModelResponse2(( (messages.map(LanguageModelChatMessage.to))), options, ExtensionIdentifier.toKey(from), progress, token));
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const progress2 = ( (new Progress(async (fragment) => {
|
|
179
|
+
progress.report({ index: fragment.index, part: new LanguageModelTextPart(fragment.part) });
|
|
180
|
+
})));
|
|
181
|
+
p = Promise.resolve(data.provider.provideLanguageModelResponse(( (messages.map(LanguageModelChatMessage.to))), options?.modelOptions ?? {}, ExtensionIdentifier.toKey(from), progress2, token));
|
|
182
|
+
}
|
|
183
|
+
p.then(() => {
|
|
184
|
+
this._proxy.$reportResponseDone(requestId, undefined);
|
|
185
|
+
}, err => {
|
|
186
|
+
this._proxy.$reportResponseDone(requestId, transformErrorForSerialization(err));
|
|
187
|
+
});
|
|
148
188
|
}
|
|
149
189
|
$provideTokenLength(handle, value, token) {
|
|
150
190
|
const data = this._languageModels.get(handle);
|
|
@@ -226,32 +266,25 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
226
266
|
throw LanguageModelError.NoPermissions(`Language model '${languageModelId}' cannot be used by '${from.value}'.`);
|
|
227
267
|
}
|
|
228
268
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
requestPromise.catch(err => {
|
|
236
|
-
if (barrier.isOpen()) {
|
|
237
|
-
res.reject(err);
|
|
269
|
+
try {
|
|
270
|
+
const requestId = (Math.random() * 1e6) | 0;
|
|
271
|
+
const res = ( (new LanguageModelResponse()));
|
|
272
|
+
this._pendingRequest.set(requestId, { languageModelId, res });
|
|
273
|
+
try {
|
|
274
|
+
await this._proxy.$tryStartChatRequest(from, languageModelId, requestId, internalMessages, options, token);
|
|
238
275
|
}
|
|
239
|
-
|
|
240
|
-
|
|
276
|
+
catch (error) {
|
|
277
|
+
this._pendingRequest.delete(requestId);
|
|
278
|
+
throw error;
|
|
241
279
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
barrier.open();
|
|
246
|
-
});
|
|
247
|
-
await barrier.wait();
|
|
248
|
-
if (error) {
|
|
280
|
+
return res.apiObject;
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
249
283
|
if (error.name === LanguageModelError.name) {
|
|
250
284
|
throw error;
|
|
251
285
|
}
|
|
252
|
-
throw new LanguageModelError(`Language model '${languageModelId}' errored
|
|
286
|
+
throw new LanguageModelError(`Language model '${languageModelId}' errored: ${toErrorMessage(error)}`, 'Unknown', error);
|
|
253
287
|
}
|
|
254
|
-
return res.apiObject;
|
|
255
288
|
}
|
|
256
289
|
_convertMessages(extension, messages) {
|
|
257
290
|
const internalMessages = [];
|
|
@@ -259,16 +292,32 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
259
292
|
if (message.role === LanguageModelChatMessageRole.System) {
|
|
260
293
|
checkProposedApiEnabled(extension, 'languageModelSystem');
|
|
261
294
|
}
|
|
295
|
+
if (message.content2 instanceof LanguageModelFunctionResultPart) {
|
|
296
|
+
checkProposedApiEnabled(extension, 'lmTools');
|
|
297
|
+
}
|
|
262
298
|
internalMessages.push(LanguageModelChatMessage.from(message));
|
|
263
299
|
}
|
|
264
300
|
return internalMessages;
|
|
265
301
|
}
|
|
266
|
-
async $
|
|
302
|
+
async $acceptResponsePart(requestId, chunk) {
|
|
267
303
|
const data = this._pendingRequest.get(requestId);
|
|
268
304
|
if (data) {
|
|
269
305
|
data.res.handleFragment(chunk);
|
|
270
306
|
}
|
|
271
307
|
}
|
|
308
|
+
async $acceptResponseDone(requestId, error) {
|
|
309
|
+
const data = this._pendingRequest.get(requestId);
|
|
310
|
+
if (!data) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
this._pendingRequest.delete(requestId);
|
|
314
|
+
if (error) {
|
|
315
|
+
data.res.reject(transformErrorFromSerialization(error));
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
data.res.resolve();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
272
321
|
async _getAuthAccess(from, to, justification, silent) {
|
|
273
322
|
const providerId = INTERNAL_AUTH_PROVIDER_PREFIX + to.identifier.value;
|
|
274
323
|
const session = await this._extHostAuthentication.getSession(from, providerId, [], { silent: true });
|
|
@@ -21,7 +21,7 @@ import { Schemas } from '../../../base/common/network.js';
|
|
|
21
21
|
import { QueryType } from '../../services/search/common/search.js';
|
|
22
22
|
import { CellSearchModel } from '../../contrib/search/common/cellSearchModel.js';
|
|
23
23
|
import { genericCellMatchesToTextSearchMatches } from '../../contrib/search/common/searchNotebookHelpers.js';
|
|
24
|
-
import { globMatchesResource } from '../../services/editor/common/editorResolverService.js';
|
|
24
|
+
import { RegisteredEditorPriority, globMatchesResource } from '../../services/editor/common/editorResolverService.js';
|
|
25
25
|
const _moduleId = "vs/workbench/api/common/extHostNotebook";
|
|
26
26
|
class ExtHostNotebookController {
|
|
27
27
|
static { this._notebookStatusBarItemProviderHandlePool = 0; }
|
|
@@ -120,7 +120,7 @@ class ExtHostNotebookController {
|
|
|
120
120
|
providerDisplayName: extension.displayName || extension.name,
|
|
121
121
|
displayName: registration.displayName,
|
|
122
122
|
filenamePattern: viewOptionsFilenamePattern,
|
|
123
|
-
|
|
123
|
+
priority: registration.exclusive ? RegisteredEditorPriority.exclusive : undefined
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
registerNotebookCellStatusBarItemProvider(extension, notebookType, provider) {
|