@codingame/monaco-vscode-api 6.0.3 → 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/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/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
|
@@ -30,7 +30,7 @@ import { SessionPrompt, EmptyResponse, ErrorResponse, ReplyResponse, Session } f
|
|
|
30
30
|
import { IInlineChatSessionService } from './inlineChatSessionService.service.js';
|
|
31
31
|
import { LiveStrategy, PreviewStrategy } from './inlineChatStrategies.js';
|
|
32
32
|
import { InlineChatZoneWidget } from './inlineChatZoneWidget.js';
|
|
33
|
-
import { INLINE_CHAT_ID, CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_USER_DID_EDIT,
|
|
33
|
+
import { INLINE_CHAT_ID, CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_USER_DID_EDIT, CTX_INLINE_CHAT_RESPONSE_TYPE, CTX_INLINE_CHAT_REQUEST_IN_PROGRESS, InlineChatConfigKeys, EditMode, InlineChatResponseType } from '../common/inlineChat.js';
|
|
34
34
|
import { InlineChatContentWidget } from './inlineChatContentWidget.js';
|
|
35
35
|
import { MessageController } from '../../../../editor/contrib/message/browser/messageController.js';
|
|
36
36
|
import { ChatRequestRemovalReason } from '../../chat/common/chatModel.js';
|
|
@@ -43,6 +43,7 @@ import { generateUuid } from '../../../../base/common/uuid.js';
|
|
|
43
43
|
import { isEqual } from '../../../../base/common/resources.js';
|
|
44
44
|
import { ChatAgentLocation } from '../../chat/common/chatAgents.js';
|
|
45
45
|
import { INotebookEditorService } from '../../notebook/browser/services/notebookEditorService.service.js';
|
|
46
|
+
import { escapeRegExpCharacters } from '../../../../base/common/strings.js';
|
|
46
47
|
const _moduleId = "vs/workbench/contrib/inlineChat/browser/inlineChatController";
|
|
47
48
|
var State;
|
|
48
49
|
( ((function(State) {
|
|
@@ -66,7 +67,7 @@ var Message;
|
|
|
66
67
|
Message[Message["ACCEPT_INPUT"] = 32] = "ACCEPT_INPUT";
|
|
67
68
|
})(Message || (Message = {}))));
|
|
68
69
|
class InlineChatRunOptions {
|
|
69
|
-
static
|
|
70
|
+
static isInlineChatRunOptions(options) {
|
|
70
71
|
const { initialSelection, initialRange, message, autoSend, position, existingSession } = options;
|
|
71
72
|
if (typeof message !== 'undefined' && typeof message !== 'string'
|
|
72
73
|
|| typeof autoSend !== 'undefined' && typeof autoSend !== 'boolean'
|
|
@@ -113,7 +114,8 @@ let InlineChatController = class InlineChatController {
|
|
|
113
114
|
this._forcedPlaceholder = undefined;
|
|
114
115
|
this._ctxVisible = CTX_INLINE_CHAT_VISIBLE.bindTo(contextKeyService);
|
|
115
116
|
this._ctxUserDidEdit = CTX_INLINE_CHAT_USER_DID_EDIT.bindTo(contextKeyService);
|
|
116
|
-
this.
|
|
117
|
+
this._ctxResponseType = CTX_INLINE_CHAT_RESPONSE_TYPE.bindTo(contextKeyService);
|
|
118
|
+
this._ctxRequestInProgress = CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.bindTo(contextKeyService);
|
|
117
119
|
this._ui = ( (new Lazy(() => {
|
|
118
120
|
let location = ChatAgentLocation.Editor;
|
|
119
121
|
for (const notebookEditor of notebookEditorService.listNotebookEditors()) {
|
|
@@ -235,7 +237,6 @@ let InlineChatController = class InlineChatController {
|
|
|
235
237
|
this._log('state=_createSession) message received', m);
|
|
236
238
|
if (m === Message.ACCEPT_INPUT) {
|
|
237
239
|
options.autoSend = true;
|
|
238
|
-
this._ui.value.zone.widget.updateProgress(true);
|
|
239
240
|
this._ui.value.zone.widget.updateInfo(( localizeWithPath(_moduleId, 1, "Getting ready...")));
|
|
240
241
|
}
|
|
241
242
|
else {
|
|
@@ -295,9 +296,8 @@ let InlineChatController = class InlineChatController {
|
|
|
295
296
|
this._sessionStore.add(this._ui.value.content.onDidBlur(() => this.cancelSession()));
|
|
296
297
|
this._ui.value.content.setSession(this._session);
|
|
297
298
|
this._updatePlaceholder();
|
|
298
|
-
const message = this._session.session.message ?? ( localizeWithPath(_moduleId, 2, "AI-generated code may be incorrect"));
|
|
299
|
-
this._ui.value.zone.widget.updateInfo(message);
|
|
300
299
|
this._showWidget(!this._session.chatModel.hasRequests);
|
|
300
|
+
this._ui.value.zone.widget.updateToolbar(true);
|
|
301
301
|
this._sessionStore.add(this._editor.onDidChangeModel((e) => {
|
|
302
302
|
const msg = this._session?.chatModel.hasRequests
|
|
303
303
|
? Message.PAUSE_SESSION
|
|
@@ -327,30 +327,8 @@ let InlineChatController = class InlineChatController {
|
|
|
327
327
|
}
|
|
328
328
|
}));
|
|
329
329
|
this._sessionStore.add(this._session.chatModel.onDidChange(async (e) => {
|
|
330
|
-
if (e.kind === '
|
|
331
|
-
this.
|
|
332
|
-
const listener = e.request.response.onDidChange(() => {
|
|
333
|
-
if (e.request.response?.isCanceled || e.request.response?.isComplete) {
|
|
334
|
-
this._ui.value.zone.widget.updateProgress(false);
|
|
335
|
-
listener.dispose();
|
|
336
|
-
}
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
else if (e.kind === 'removeRequest') {
|
|
340
|
-
const exchange = this._session.exchanges.find(candidate => candidate.prompt.request.id === e.requestId);
|
|
341
|
-
if (exchange && this._editor.hasModel()) {
|
|
342
|
-
this._session.hunkData.ignoreTextModelNChanges = true;
|
|
343
|
-
try {
|
|
344
|
-
const model = this._editor.getModel();
|
|
345
|
-
const targetAltVersion = exchange.prompt.modelAltVersionId;
|
|
346
|
-
while (targetAltVersion < model.getAlternativeVersionId() && model.canUndo()) {
|
|
347
|
-
await model.undo();
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
finally {
|
|
351
|
-
this._session.hunkData.ignoreTextModelNChanges = false;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
330
|
+
if (e.kind === 'removeRequest') {
|
|
331
|
+
await this._session.undoChangesUntil(e.requestId);
|
|
354
332
|
}
|
|
355
333
|
}));
|
|
356
334
|
this._sessionStore.add(this._languageFeatureService.completionProvider.register({ scheme: ChatInputPart.INPUT_SCHEME, hasAccessToAllModels: true }, {
|
|
@@ -360,7 +338,7 @@ let InlineChatController = class InlineChatController {
|
|
|
360
338
|
if (position.lineNumber !== 1) {
|
|
361
339
|
return undefined;
|
|
362
340
|
}
|
|
363
|
-
if (!this._session || !this._session.
|
|
341
|
+
if (!this._session || !this._session.agent.slashCommands) {
|
|
364
342
|
return undefined;
|
|
365
343
|
}
|
|
366
344
|
const widget = this._chatWidgetService.getWidgetByInputUri(model.uri);
|
|
@@ -368,12 +346,12 @@ let InlineChatController = class InlineChatController {
|
|
|
368
346
|
return undefined;
|
|
369
347
|
}
|
|
370
348
|
const result = { suggestions: [], incomplete: false };
|
|
371
|
-
for (const command of this._session.
|
|
349
|
+
for (const command of this._session.agent.slashCommands) {
|
|
372
350
|
const withSlash = `/${command.name}`;
|
|
373
351
|
result.suggestions.push({
|
|
374
352
|
label: { label: withSlash, description: command.description ?? '' },
|
|
375
353
|
kind: CompletionItemKind.Text,
|
|
376
|
-
insertText: withSlash
|
|
354
|
+
insertText: `${withSlash} `,
|
|
377
355
|
range: Range.fromPositions(( (new Position(1, 1))), position),
|
|
378
356
|
});
|
|
379
357
|
}
|
|
@@ -382,18 +360,15 @@ let InlineChatController = class InlineChatController {
|
|
|
382
360
|
}));
|
|
383
361
|
const updateSlashDecorations = (collection, model) => {
|
|
384
362
|
const newDecorations = [];
|
|
385
|
-
for (const command of (this._session?.
|
|
363
|
+
for (const command of (this._session?.agent.slashCommands ?? []).sort((a, b) => b.name.length - a.name.length)) {
|
|
386
364
|
const withSlash = `/${command.name}`;
|
|
387
365
|
const firstLine = model.getLineContent(1);
|
|
388
|
-
if (firstLine.
|
|
366
|
+
if (firstLine.match(( (new RegExp(`^${escapeRegExpCharacters(withSlash)}(\\s|$)`))))) {
|
|
389
367
|
newDecorations.push({
|
|
390
368
|
range: ( (new Range(1, 1, 1, withSlash.length + 1))),
|
|
391
369
|
options: {
|
|
392
370
|
description: 'inline-chat-slash-command',
|
|
393
371
|
inlineClassName: 'inline-chat-slash-command',
|
|
394
|
-
after: {
|
|
395
|
-
content: ' '
|
|
396
|
-
}
|
|
397
372
|
}
|
|
398
373
|
});
|
|
399
374
|
if (firstLine.trim() === `/${command.name}`) {
|
|
@@ -482,20 +457,18 @@ let InlineChatController = class InlineChatController {
|
|
|
482
457
|
if (!request?.message.text) {
|
|
483
458
|
return State.WAIT_FOR_INPUT;
|
|
484
459
|
}
|
|
485
|
-
const input = request.message.text;
|
|
486
|
-
this._ui.value.zone.widget.value = input;
|
|
487
460
|
this._session.addInput(( (new SessionPrompt(request, this._editor.getModel().getAlternativeVersionId()))));
|
|
488
461
|
return State.SHOW_REQUEST;
|
|
489
462
|
}
|
|
490
463
|
async [State.SHOW_REQUEST]() {
|
|
491
464
|
assertType(this._session);
|
|
492
465
|
assertType(this._session.chatModel.requestInProgress);
|
|
466
|
+
this._ctxRequestInProgress.set(true);
|
|
493
467
|
const { chatModel } = this._session;
|
|
494
468
|
const request = chatModel.getRequests().at(-1);
|
|
495
469
|
assertType(request);
|
|
496
470
|
assertType(request.response);
|
|
497
471
|
this._showWidget(false);
|
|
498
|
-
this._ui.value.zone.widget.value = request.message.text;
|
|
499
472
|
this._ui.value.zone.widget.selectAll(false);
|
|
500
473
|
this._ui.value.zone.widget.updateInfo('');
|
|
501
474
|
const { response } = request;
|
|
@@ -543,6 +516,7 @@ let InlineChatController = class InlineChatController {
|
|
|
543
516
|
const editState = { sha1: textModel0Sha1, applied: 0 };
|
|
544
517
|
let localEditGroup;
|
|
545
518
|
const handleResponse = () => {
|
|
519
|
+
this._updateCtxResponseType();
|
|
546
520
|
if (!localEditGroup) {
|
|
547
521
|
localEditGroup = response.response.value.find(part => part.kind === 'textEditGroup' && isEqual(part.uri, this._session?.textModelN.uri));
|
|
548
522
|
}
|
|
@@ -582,36 +556,23 @@ let InlineChatController = class InlineChatController {
|
|
|
582
556
|
handleResponse();
|
|
583
557
|
await responsePromise.p;
|
|
584
558
|
await progressiveEditsQueue.whenIdle();
|
|
559
|
+
if (response.isCanceled) {
|
|
560
|
+
await this._session.undoChangesUntil(response.requestId);
|
|
561
|
+
}
|
|
585
562
|
store.dispose();
|
|
586
563
|
const diff = await this._editorWorkerService.computeDiff(this._session.textModel0.uri, this._session.textModelN.uri, { computeMoves: false, maxComputationTimeMs: Number.MAX_SAFE_INTEGER, ignoreTrimWhitespace: false }, 'advanced');
|
|
587
564
|
this._session.wholeRange.fixup(diff?.changes ?? []);
|
|
588
|
-
await this._session.hunkData.recompute(editState);
|
|
589
|
-
this.
|
|
590
|
-
this._ui.value.zone.widget.updateProgress(false);
|
|
565
|
+
await this._session.hunkData.recompute(editState, diff);
|
|
566
|
+
this._ctxRequestInProgress.set(false);
|
|
591
567
|
return next;
|
|
592
568
|
}
|
|
593
569
|
async [State.SHOW_RESPONSE]() {
|
|
594
570
|
assertType(this._session);
|
|
595
571
|
assertType(this._strategy);
|
|
596
572
|
const { response } = this._session.lastExchange;
|
|
597
|
-
let responseTypes;
|
|
598
|
-
for (const request of this._session.chatModel.getRequests()) {
|
|
599
|
-
if (!request.response) {
|
|
600
|
-
continue;
|
|
601
|
-
}
|
|
602
|
-
const thisType = asInlineChatResponseType(request.response.response);
|
|
603
|
-
if (responseTypes === undefined) {
|
|
604
|
-
responseTypes = thisType;
|
|
605
|
-
}
|
|
606
|
-
else if (responseTypes !== thisType) {
|
|
607
|
-
responseTypes = InlineChatResponseTypes.Mixed;
|
|
608
|
-
break;
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
this._ctxResponseTypes.set(responseTypes);
|
|
612
573
|
let newPosition;
|
|
613
574
|
if (response instanceof EmptyResponse) {
|
|
614
|
-
const status = ( localizeWithPath(_moduleId,
|
|
575
|
+
const status = ( localizeWithPath(_moduleId, 2, "No results, please refine your input and try again"));
|
|
615
576
|
this._ui.value.zone.widget.updateStatus(status, { classes: ['warn'] });
|
|
616
577
|
return State.WAIT_FOR_INPUT;
|
|
617
578
|
}
|
|
@@ -623,8 +584,18 @@ let InlineChatController = class InlineChatController {
|
|
|
623
584
|
}
|
|
624
585
|
else if (response instanceof ReplyResponse) {
|
|
625
586
|
this._ui.value.zone.widget.updateStatus('');
|
|
626
|
-
this.
|
|
627
|
-
|
|
587
|
+
const position = await this._strategy.renderChanges();
|
|
588
|
+
if (position) {
|
|
589
|
+
const selection = this._editor.getSelection();
|
|
590
|
+
if (selection?.containsPosition(position)) {
|
|
591
|
+
if (position.lineNumber - selection.startLineNumber > 8) {
|
|
592
|
+
newPosition = position;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
newPosition = position;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
628
599
|
}
|
|
629
600
|
this._showWidget(false, newPosition);
|
|
630
601
|
return State.WAIT_FOR_INPUT;
|
|
@@ -642,7 +613,7 @@ let InlineChatController = class InlineChatController {
|
|
|
642
613
|
await this._strategy.apply();
|
|
643
614
|
}
|
|
644
615
|
catch (err) {
|
|
645
|
-
this._dialogService.error(( localizeWithPath(_moduleId,
|
|
616
|
+
this._dialogService.error(( localizeWithPath(_moduleId, 3, "Failed to apply changes.", toErrorMessage(err))));
|
|
646
617
|
this._log('FAILED to apply changes');
|
|
647
618
|
this._log(err);
|
|
648
619
|
}
|
|
@@ -656,13 +627,13 @@ let InlineChatController = class InlineChatController {
|
|
|
656
627
|
if (this._session) {
|
|
657
628
|
assertType(this._strategy);
|
|
658
629
|
this._sessionStore.clear();
|
|
659
|
-
const shouldStash = !this._session.isUnstashed &&
|
|
630
|
+
const shouldStash = !this._session.isUnstashed && this._session.chatModel.hasRequests && this._session.hunkData.size === this._session.hunkData.pending;
|
|
660
631
|
let undoCancelEdits = [];
|
|
661
632
|
try {
|
|
662
633
|
undoCancelEdits = this._strategy.cancel();
|
|
663
634
|
}
|
|
664
635
|
catch (err) {
|
|
665
|
-
this._dialogService.error(( localizeWithPath(_moduleId,
|
|
636
|
+
this._dialogService.error(( localizeWithPath(_moduleId, 4, "Failed to discard changes.", toErrorMessage(err))));
|
|
666
637
|
this._log('FAILED to discard changes');
|
|
667
638
|
this._log(err);
|
|
668
639
|
}
|
|
@@ -681,6 +652,7 @@ let InlineChatController = class InlineChatController {
|
|
|
681
652
|
}
|
|
682
653
|
_showWidget(initialRender = false, position) {
|
|
683
654
|
assertType(this._editor.hasModel());
|
|
655
|
+
this._ctxVisible.set(true);
|
|
684
656
|
let widgetPosition;
|
|
685
657
|
if (position) {
|
|
686
658
|
widgetPosition = position;
|
|
@@ -696,7 +668,7 @@ let InlineChatController = class InlineChatController {
|
|
|
696
668
|
else {
|
|
697
669
|
widgetPosition = this._editor.getSelection().getStartPosition().delta(-1);
|
|
698
670
|
}
|
|
699
|
-
if (this._session && !position && (this._session.hasChangedText || this._session.
|
|
671
|
+
if (this._session && !position && (this._session.hasChangedText || this._session.chatModel.hasRequests)) {
|
|
700
672
|
widgetPosition = this._session.wholeRange.value.getStartPosition().delta(-1);
|
|
701
673
|
}
|
|
702
674
|
if (this._ui.rawValue?.zone?.position) {
|
|
@@ -714,10 +686,6 @@ let InlineChatController = class InlineChatController {
|
|
|
714
686
|
this._ui.value.zone.widget.setChatModel(this._session.chatModel);
|
|
715
687
|
}
|
|
716
688
|
}
|
|
717
|
-
if (this._session && this._ui.rawValue?.zone) {
|
|
718
|
-
this._ui.rawValue?.zone.updateBackgroundColor(widgetPosition, this._session.wholeRange.value);
|
|
719
|
-
}
|
|
720
|
-
this._ctxVisible.set(true);
|
|
721
689
|
return widgetPosition;
|
|
722
690
|
}
|
|
723
691
|
_resetWidget() {
|
|
@@ -730,6 +698,31 @@ let InlineChatController = class InlineChatController {
|
|
|
730
698
|
this._editor.focus();
|
|
731
699
|
}
|
|
732
700
|
}
|
|
701
|
+
_updateCtxResponseType() {
|
|
702
|
+
if (!this._session) {
|
|
703
|
+
this._ctxResponseType.set(InlineChatResponseType.None);
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
706
|
+
const hasLocalEdit = (response) => {
|
|
707
|
+
return (
|
|
708
|
+
(response.value.some(
|
|
709
|
+
part => part.kind === 'textEditGroup' && isEqual(part.uri, this._session?.textModelN.uri)
|
|
710
|
+
))
|
|
711
|
+
);
|
|
712
|
+
};
|
|
713
|
+
let responseType = InlineChatResponseType.None;
|
|
714
|
+
for (const request of this._session.chatModel.getRequests()) {
|
|
715
|
+
if (!request.response) {
|
|
716
|
+
continue;
|
|
717
|
+
}
|
|
718
|
+
responseType = InlineChatResponseType.Messages;
|
|
719
|
+
if (hasLocalEdit(request.response.response)) {
|
|
720
|
+
responseType = InlineChatResponseType.MessagesAndEdits;
|
|
721
|
+
break;
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
this._ctxResponseType.set(responseType);
|
|
725
|
+
}
|
|
733
726
|
async _makeChanges(edits, opts, undoStopBefore) {
|
|
734
727
|
assertType(this._session);
|
|
735
728
|
assertType(this._strategy);
|
|
@@ -745,7 +738,6 @@ let InlineChatController = class InlineChatController {
|
|
|
745
738
|
stop: () => this._session.hunkData.ignoreTextModelNChanges = false,
|
|
746
739
|
};
|
|
747
740
|
this._inlineChatSavingService.markChanged(this._session);
|
|
748
|
-
this._session.wholeRange.trackEdits(editOperations);
|
|
749
741
|
if (opts) {
|
|
750
742
|
await this._strategy.makeProgressiveChanges(editOperations, editsObserver, opts, undoStopBefore);
|
|
751
743
|
}
|
|
@@ -757,10 +749,10 @@ let InlineChatController = class InlineChatController {
|
|
|
757
749
|
this._ui.value.zone.widget.placeholder = this._getPlaceholderText();
|
|
758
750
|
}
|
|
759
751
|
_getPlaceholderText() {
|
|
760
|
-
return this._forcedPlaceholder ?? this._session?.
|
|
752
|
+
return this._forcedPlaceholder ?? this._session?.agent.description ?? '';
|
|
761
753
|
}
|
|
762
754
|
showSaveHint() {
|
|
763
|
-
const status = ( localizeWithPath(_moduleId,
|
|
755
|
+
const status = ( localizeWithPath(_moduleId, 5, "Accept or discard changes to continue saving"));
|
|
764
756
|
this._ui.value.zone.widget.updateStatus(status, { classes: ['warn'] });
|
|
765
757
|
}
|
|
766
758
|
acceptInput() {
|
|
@@ -828,10 +820,10 @@ let InlineChatController = class InlineChatController {
|
|
|
828
820
|
this._strategy?.toggleDiff?.();
|
|
829
821
|
}
|
|
830
822
|
acceptSession() {
|
|
831
|
-
|
|
832
|
-
|
|
823
|
+
const response = this._session?.chatModel.getRequests().at(-1)?.response;
|
|
824
|
+
if (response) {
|
|
833
825
|
this._chatService.notifyUserAction({
|
|
834
|
-
sessionId:
|
|
826
|
+
sessionId: response.session.sessionId,
|
|
835
827
|
requestId: response.requestId,
|
|
836
828
|
agentId: response.agent?.id,
|
|
837
829
|
result: response.result,
|
|
@@ -850,10 +842,10 @@ let InlineChatController = class InlineChatController {
|
|
|
850
842
|
return this._strategy?.discardHunk();
|
|
851
843
|
}
|
|
852
844
|
async cancelSession() {
|
|
853
|
-
|
|
854
|
-
|
|
845
|
+
const response = this._session?.chatModel.getRequests().at(-1)?.response;
|
|
846
|
+
if (response) {
|
|
855
847
|
this._chatService.notifyUserAction({
|
|
856
|
-
sessionId:
|
|
848
|
+
sessionId: response.session.sessionId,
|
|
857
849
|
requestId: response.requestId,
|
|
858
850
|
agentId: response.agent?.id,
|
|
859
851
|
result: response.result,
|
|
@@ -913,26 +905,4 @@ async function moveToPanelChat(accessor, model) {
|
|
|
913
905
|
widget.focusLastMessage();
|
|
914
906
|
}
|
|
915
907
|
}
|
|
916
|
-
function asInlineChatResponseType(response) {
|
|
917
|
-
let result;
|
|
918
|
-
for (const item of response.value) {
|
|
919
|
-
let thisType;
|
|
920
|
-
switch (item.kind) {
|
|
921
|
-
case 'textEditGroup':
|
|
922
|
-
thisType = InlineChatResponseTypes.OnlyEdits;
|
|
923
|
-
break;
|
|
924
|
-
case 'markdownContent':
|
|
925
|
-
default:
|
|
926
|
-
thisType = InlineChatResponseTypes.OnlyMessages;
|
|
927
|
-
break;
|
|
928
|
-
}
|
|
929
|
-
if (result === undefined) {
|
|
930
|
-
result = thisType;
|
|
931
|
-
}
|
|
932
|
-
else if (result !== thisType) {
|
|
933
|
-
return InlineChatResponseTypes.Mixed;
|
|
934
|
-
}
|
|
935
|
-
}
|
|
936
|
-
return result ?? InlineChatResponseTypes.Empty;
|
|
937
|
-
}
|
|
938
908
|
export { InlineChatController, InlineChatRunOptions, State };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { Emitter, Event } from '../../../../base/common/event.js';
|
|
3
|
-
import { ResourceFileEdit, ResourceTextEdit, ResourceEdit } from '../../../../editor/browser/services/bulkEditService.js';
|
|
4
3
|
import { TrackedRangeStickiness } from '../../../../editor/common/model.js';
|
|
5
4
|
import { CTX_INLINE_CHAT_HAS_STASHED_SESSION } from '../common/inlineChat.js';
|
|
6
5
|
import { Range } from '../../../../editor/common/core/range.js';
|
|
@@ -38,14 +37,6 @@ class SessionWholeRange {
|
|
|
38
37
|
this._textModel.deltaDecorations(this._decorationIds, []);
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
|
-
trackEdits(edits) {
|
|
42
|
-
const newDeco = [];
|
|
43
|
-
for (const edit of edits) {
|
|
44
|
-
newDeco.push({ range: edit.range, options: SessionWholeRange._options });
|
|
45
|
-
}
|
|
46
|
-
this._decorationIds.push(...this._textModel.deltaDecorations([], newDeco));
|
|
47
|
-
this._onDidChange.fire(this);
|
|
48
|
-
}
|
|
49
40
|
fixup(changes) {
|
|
50
41
|
const newDeco = [];
|
|
51
42
|
for (const { modified } of changes) {
|
|
@@ -93,18 +84,17 @@ class Session {
|
|
|
93
84
|
constructor(editMode,
|
|
94
85
|
targetUri,
|
|
95
86
|
textModel0,
|
|
96
|
-
textModelN, agent,
|
|
87
|
+
textModelN, agent, wholeRange, hunkData, chatModel) {
|
|
97
88
|
this.editMode = editMode;
|
|
98
89
|
this.targetUri = targetUri;
|
|
99
90
|
this.textModel0 = textModel0;
|
|
100
91
|
this.textModelN = textModelN;
|
|
101
92
|
this.agent = agent;
|
|
102
|
-
this.session = session;
|
|
103
93
|
this.wholeRange = wholeRange;
|
|
104
94
|
this.hunkData = hunkData;
|
|
105
95
|
this.chatModel = chatModel;
|
|
106
96
|
this._isUnstashed = false;
|
|
107
|
-
this.
|
|
97
|
+
this._exchanges = [];
|
|
108
98
|
this._startTime = ( new Date());
|
|
109
99
|
this.textModelNAltVersion = textModelN.getAlternativeVersionId();
|
|
110
100
|
this._teldata = {
|
|
@@ -137,14 +127,28 @@ class Session {
|
|
|
137
127
|
}
|
|
138
128
|
addExchange(exchange) {
|
|
139
129
|
this._isUnstashed = false;
|
|
140
|
-
const newLen = this.
|
|
130
|
+
const newLen = this._exchanges.push(exchange);
|
|
141
131
|
this._teldata.rounds += `${newLen}|`;
|
|
142
132
|
}
|
|
143
|
-
get exchanges() {
|
|
144
|
-
return this._exchange;
|
|
145
|
-
}
|
|
146
133
|
get lastExchange() {
|
|
147
|
-
return this.
|
|
134
|
+
return this._exchanges[this._exchanges.length - 1];
|
|
135
|
+
}
|
|
136
|
+
async undoChangesUntil(requestId) {
|
|
137
|
+
const idx = this._exchanges.findIndex(candidate => candidate.prompt.request.id === requestId);
|
|
138
|
+
if (idx < 0) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
this.hunkData.ignoreTextModelNChanges = true;
|
|
142
|
+
try {
|
|
143
|
+
const targetAltVersion = this._exchanges[idx].prompt.modelAltVersionId;
|
|
144
|
+
while (targetAltVersion < this.textModelN.getAlternativeVersionId() && this.textModelN.canUndo()) {
|
|
145
|
+
await this.textModelN.undo();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
this.hunkData.ignoreTextModelNChanges = false;
|
|
150
|
+
}
|
|
151
|
+
return true;
|
|
148
152
|
}
|
|
149
153
|
get hasChangedText() {
|
|
150
154
|
return !this.textModel0.equalsTextBuffer(this.textModelN.getTextBuffer());
|
|
@@ -181,14 +185,14 @@ class Session {
|
|
|
181
185
|
}
|
|
182
186
|
asRecording() {
|
|
183
187
|
const result = {
|
|
184
|
-
session: this.
|
|
188
|
+
session: this.chatModel.sessionId,
|
|
185
189
|
when: this._startTime,
|
|
186
190
|
exchanges: []
|
|
187
191
|
};
|
|
188
|
-
for (const exchange of this.
|
|
192
|
+
for (const exchange of this._exchanges) {
|
|
189
193
|
const response = exchange.response;
|
|
190
194
|
if (response instanceof ReplyResponse) {
|
|
191
|
-
result.exchanges.push({ prompt: exchange.prompt.value, res: response.
|
|
195
|
+
result.exchanges.push({ prompt: exchange.prompt.value, res: response.chatResponse });
|
|
192
196
|
}
|
|
193
197
|
}
|
|
194
198
|
return result;
|
|
@@ -217,31 +221,22 @@ class ErrorResponse {
|
|
|
217
221
|
}
|
|
218
222
|
}
|
|
219
223
|
let ReplyResponse = class ReplyResponse {
|
|
220
|
-
constructor(
|
|
221
|
-
this.raw = raw;
|
|
222
|
-
this.modelAltVersionId = modelAltVersionId;
|
|
224
|
+
constructor(localUri, chatRequest, chatResponse, _textFileService, _languageService) {
|
|
223
225
|
this.chatRequest = chatRequest;
|
|
224
226
|
this.chatResponse = chatResponse;
|
|
225
227
|
this._textFileService = _textFileService;
|
|
226
228
|
this._languageService = _languageService;
|
|
227
229
|
const editsMap = ( new ResourceMap());
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
230
|
+
for (const item of chatResponse.response.value) {
|
|
231
|
+
if (item.kind === 'textEditGroup') {
|
|
232
|
+
const array = editsMap.get(item.uri);
|
|
233
|
+
for (const group of item.edits) {
|
|
234
|
+
if (array) {
|
|
235
|
+
array.push(group);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
editsMap.set(item.uri, [group]);
|
|
235
239
|
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else if (edit instanceof ResourceTextEdit) {
|
|
239
|
-
const array = editsMap.get(edit.resource);
|
|
240
|
-
if (array) {
|
|
241
|
-
array.push([edit.textEdit]);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
editsMap.set(edit.resource, [[edit.textEdit]]);
|
|
245
240
|
}
|
|
246
241
|
}
|
|
247
242
|
}
|
|
@@ -265,8 +260,8 @@ let ReplyResponse = class ReplyResponse {
|
|
|
265
260
|
}
|
|
266
261
|
};
|
|
267
262
|
ReplyResponse = ( __decorate([
|
|
268
|
-
( __param(
|
|
269
|
-
( __param(
|
|
263
|
+
( __param(3, ITextFileService)),
|
|
264
|
+
( __param(4, ILanguageService))
|
|
270
265
|
], ReplyResponse));
|
|
271
266
|
let StashedSession = class StashedSession {
|
|
272
267
|
constructor(editor, session, _undoCancelEdits, contextKeyService, _sessionService, _logService) {
|
|
@@ -426,8 +421,8 @@ let HunkData = class HunkData {
|
|
|
426
421
|
}
|
|
427
422
|
this._textModel0.pushEditOperations(null, edits, () => null);
|
|
428
423
|
}
|
|
429
|
-
async recompute(editState) {
|
|
430
|
-
|
|
424
|
+
async recompute(editState, diff) {
|
|
425
|
+
diff ??= await this._editorWorkerService.computeDiff(this._textModel0.uri, this._textModelN.uri, { ignoreTrimWhitespace: false, maxComputationTimeMs: Number.MAX_SAFE_INTEGER, computeMoves: false }, 'advanced');
|
|
431
426
|
if (!diff || diff.changes.length === 0) {
|
|
432
427
|
return;
|
|
433
428
|
}
|
|
@@ -97,17 +97,6 @@ let InlineChatSessionServiceImpl = class InlineChatSessionServiceImpl {
|
|
|
97
97
|
this._onWillStartSession.fire(editor);
|
|
98
98
|
const textModel = editor.getModel();
|
|
99
99
|
const selection = editor.getSelection();
|
|
100
|
-
const rawSession = {
|
|
101
|
-
id: Math.random(),
|
|
102
|
-
wholeRange: ( new Range(
|
|
103
|
-
selection.selectionStartLineNumber,
|
|
104
|
-
selection.selectionStartColumn,
|
|
105
|
-
selection.positionLineNumber,
|
|
106
|
-
selection.positionColumn
|
|
107
|
-
)),
|
|
108
|
-
placeholder: agent.description,
|
|
109
|
-
slashCommands: agent.slashCommands
|
|
110
|
-
};
|
|
111
100
|
const store = ( new DisposableStore());
|
|
112
101
|
this._logService.trace(`[IE] creating NEW session for ${editor.getId()}, ${agent.extensionId}`);
|
|
113
102
|
const chatModel = this._chatService.startSession(ChatAgentLocation.Editor, token);
|
|
@@ -124,7 +113,6 @@ let InlineChatSessionServiceImpl = class InlineChatSessionServiceImpl {
|
|
|
124
113
|
if (e.kind !== 'addRequest' || !e.request.response) {
|
|
125
114
|
return;
|
|
126
115
|
}
|
|
127
|
-
const modelAltVersionIdNow = textModel.getAlternativeVersionId();
|
|
128
116
|
const { response } = e.request;
|
|
129
117
|
lastResponseListener.value = response.onDidChange(() => {
|
|
130
118
|
if (!response.isComplete) {
|
|
@@ -142,23 +130,7 @@ let InlineChatSessionServiceImpl = class InlineChatSessionServiceImpl {
|
|
|
142
130
|
inlineResponse = ( new EmptyResponse());
|
|
143
131
|
}
|
|
144
132
|
else {
|
|
145
|
-
|
|
146
|
-
edits: { edits: [] },
|
|
147
|
-
};
|
|
148
|
-
for (const item of response.response.value) {
|
|
149
|
-
if (item.kind === 'textEditGroup') {
|
|
150
|
-
for (const group of item.edits) {
|
|
151
|
-
for (const edit of group) {
|
|
152
|
-
raw.edits.edits.push({
|
|
153
|
-
resource: item.uri,
|
|
154
|
-
textEdit: edit,
|
|
155
|
-
versionId: undefined
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
inlineResponse = this._instaService.createInstance(ReplyResponse, raw, session.textModelN.uri, modelAltVersionIdNow, e.request, response);
|
|
133
|
+
inlineResponse = this._instaService.createInstance(ReplyResponse, session.textModelN.uri, e.request, response);
|
|
162
134
|
}
|
|
163
135
|
session.addExchange(( new SessionExchange(session.lastInput, inlineResponse)));
|
|
164
136
|
if (inlineResponse instanceof ReplyResponse && inlineResponse.untitledTextModel) {
|
|
@@ -188,7 +160,12 @@ let InlineChatSessionServiceImpl = class InlineChatSessionServiceImpl {
|
|
|
188
160
|
}
|
|
189
161
|
let wholeRange = options.wholeRange;
|
|
190
162
|
if (!wholeRange) {
|
|
191
|
-
wholeRange =
|
|
163
|
+
wholeRange = ( new Range(
|
|
164
|
+
selection.selectionStartLineNumber,
|
|
165
|
+
selection.selectionStartColumn,
|
|
166
|
+
selection.positionLineNumber,
|
|
167
|
+
selection.positionColumn
|
|
168
|
+
));
|
|
192
169
|
}
|
|
193
170
|
if (token.isCancellationRequested) {
|
|
194
171
|
store.dispose();
|
|
@@ -200,7 +177,6 @@ let InlineChatSessionServiceImpl = class InlineChatSessionServiceImpl {
|
|
|
200
177
|
textModel0,
|
|
201
178
|
textModelN,
|
|
202
179
|
agent,
|
|
203
|
-
rawSession,
|
|
204
180
|
store.add(( new SessionWholeRange(textModelN, wholeRange))),
|
|
205
181
|
store.add(( new HunkData(this._editorWorkerService, textModel0, textModelN))),
|
|
206
182
|
chatModel
|
|
@@ -315,14 +291,16 @@ InlineChatSessionServiceImpl = ( __decorate([
|
|
|
315
291
|
let InlineChatEnabler = class InlineChatEnabler {
|
|
316
292
|
static { this.Id = 'inlineChat.enabler'; }
|
|
317
293
|
constructor(contextKeyService, chatAgentService) {
|
|
294
|
+
this._store = ( new DisposableStore());
|
|
318
295
|
this._ctxHasProvider = CTX_INLINE_CHAT_HAS_AGENT.bindTo(contextKeyService);
|
|
319
|
-
chatAgentService.onDidChangeAgents(() => {
|
|
296
|
+
this._store.add(chatAgentService.onDidChangeAgents(() => {
|
|
320
297
|
const hasEditorAgent = Boolean(chatAgentService.getDefaultAgent(ChatAgentLocation.Editor));
|
|
321
298
|
this._ctxHasProvider.set(hasEditorAgent);
|
|
322
|
-
});
|
|
299
|
+
}));
|
|
323
300
|
}
|
|
324
301
|
dispose() {
|
|
325
302
|
this._ctxHasProvider.reset();
|
|
303
|
+
this._store.dispose();
|
|
326
304
|
}
|
|
327
305
|
};
|
|
328
306
|
InlineChatEnabler = ( __decorate([
|
|
@@ -128,7 +128,7 @@ let PreviewStrategy = class PreviewStrategy extends EditModeStrategy {
|
|
|
128
128
|
}
|
|
129
129
|
async makeProgressiveChanges() {
|
|
130
130
|
}
|
|
131
|
-
async renderChanges(
|
|
131
|
+
async renderChanges() { }
|
|
132
132
|
hasFocus() {
|
|
133
133
|
return this._zone.widget.hasFocus();
|
|
134
134
|
}
|
|
@@ -239,7 +239,7 @@ let LiveStrategy = class LiveStrategy extends EditModeStrategy {
|
|
|
239
239
|
obs.stop();
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
|
-
async renderChanges(
|
|
242
|
+
async renderChanges() {
|
|
243
243
|
this._progressiveEditingDecorations.clear();
|
|
244
244
|
const renderHunks = () => {
|
|
245
245
|
let widgetData;
|
|
@@ -387,7 +387,6 @@ let LiveStrategy = class LiveStrategy extends EditModeStrategy {
|
|
|
387
387
|
});
|
|
388
388
|
if (widgetData) {
|
|
389
389
|
this._zone.updatePositionAndHeight(widgetData.position);
|
|
390
|
-
this._editor.revealPositionInCenterIfOutsideViewport(widgetData.position);
|
|
391
390
|
const remainingHunks = this._session.hunkData.pending;
|
|
392
391
|
this._updateSummaryMessage(remainingHunks, this._session.hunkData.size);
|
|
393
392
|
const mode = this._configService.getValue(InlineChatConfigKeys.AccessibleDiffView);
|
|
@@ -427,7 +426,7 @@ let LiveStrategy = class LiveStrategy extends EditModeStrategy {
|
|
|
427
426
|
}
|
|
428
427
|
else if (remaining === 1) {
|
|
429
428
|
message = needsReview
|
|
430
|
-
? ( localizeWithPath(_moduleId, 1, "$(info) Accept or
|
|
429
|
+
? ( localizeWithPath(_moduleId, 1, "$(info) Accept or Discard change"))
|
|
431
430
|
: ( localizeWithPath(_moduleId, 2, "1 change"));
|
|
432
431
|
}
|
|
433
432
|
else {
|