@codingame/monaco-vscode-api 6.0.3 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -117
- 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
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { h, svgElem } from '../../../../base/browser/dom.js';
|
|
3
|
+
import { DEFAULT_FONT_FAMILY } from '../../../../base/browser/fonts.js';
|
|
4
|
+
import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
|
|
5
|
+
import '../../../../base/common/arrays.js';
|
|
6
|
+
import { derived, derivedWithSetter } from '../../../../base/common/observableInternal/derived.js';
|
|
7
|
+
import { autorun } from '../../../../base/common/observableInternal/autorun.js';
|
|
8
|
+
import { constObservable } from '../../../../base/common/observableInternal/utils.js';
|
|
9
|
+
import '../../../../base/common/cancellation.js';
|
|
10
|
+
import './inlineEditsWidget.css.js';
|
|
11
|
+
import { EditorExtensionsRegistry } from '../../../browser/editorExtensions.js';
|
|
12
|
+
import { observableCodeEditor } from '../../../browser/observableCodeEditor.js';
|
|
13
|
+
import { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';
|
|
14
|
+
import { diffLineDeleteDecorationBackgroundWithIndicator, diffLineAddDecorationBackgroundWithIndicator, diffWholeLineDeleteDecoration, diffWholeLineAddDecoration, diffDeleteDecorationEmpty, diffDeleteDecoration, diffAddDecorationEmpty, diffAddDecoration } from '../../../browser/widget/diffEditor/registrations.contribution.js';
|
|
15
|
+
import { applyStyle, appendRemoveOnDispose } from '../../../browser/widget/diffEditor/utils.js';
|
|
16
|
+
import { EditorOption } from '../../../common/config/editorOptions.js';
|
|
17
|
+
import { PLAINTEXT_LANGUAGE_ID } from '../../../common/languages/modesRegistry.js';
|
|
18
|
+
import { TextModel } from '../../../common/model/textModel.js';
|
|
19
|
+
import { ContextMenuController } from '../../contextmenu/browser/contextmenu.js';
|
|
20
|
+
import { PlaceholderTextContribution } from '../../placeholderText/browser/placeholderText.contribution.js';
|
|
21
|
+
import { SuggestController } from '../../suggest/browser/suggestController.js';
|
|
22
|
+
import { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';
|
|
23
|
+
import { MenuId } from '../../../../platform/actions/common/actions.js';
|
|
24
|
+
import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
|
|
25
|
+
class InlineEdit {
|
|
26
|
+
constructor(range, newLines, changes) {
|
|
27
|
+
this.range = range;
|
|
28
|
+
this.newLines = newLines;
|
|
29
|
+
this.changes = changes;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
let InlineEditsWidget = class InlineEditsWidget extends Disposable {
|
|
33
|
+
constructor(_editor, _edit, _userPrompt, _instantiationService) {
|
|
34
|
+
super();
|
|
35
|
+
this._editor = _editor;
|
|
36
|
+
this._edit = _edit;
|
|
37
|
+
this._userPrompt = _userPrompt;
|
|
38
|
+
this._instantiationService = _instantiationService;
|
|
39
|
+
this._editorObs = observableCodeEditor(this._editor);
|
|
40
|
+
this._elements = h('div.inline-edits-widget', {
|
|
41
|
+
style: {
|
|
42
|
+
position: 'absolute',
|
|
43
|
+
overflow: 'visible',
|
|
44
|
+
top: '0px',
|
|
45
|
+
left: '0px',
|
|
46
|
+
},
|
|
47
|
+
}, [
|
|
48
|
+
h('div@editorContainer', { style: { position: 'absolute', top: '0px', left: '0px', width: '500px', height: '500px', } }, [
|
|
49
|
+
h('div.toolbar@toolbar', { style: { position: 'absolute', top: '-25px', left: '0px' } }),
|
|
50
|
+
h('div.promptEditor@promptEditor', { style: { position: 'absolute', top: '-25px', left: '80px', width: '300px', height: '22px' } }),
|
|
51
|
+
h('div.preview@editor', { style: { position: 'absolute', top: '0px', left: '0px' } }),
|
|
52
|
+
]),
|
|
53
|
+
svgElem('svg', { style: { overflow: 'visible', pointerEvents: 'none' }, }, [
|
|
54
|
+
svgElem('defs', [
|
|
55
|
+
svgElem('linearGradient', {
|
|
56
|
+
id: 'Gradient2',
|
|
57
|
+
x1: '0',
|
|
58
|
+
y1: '0',
|
|
59
|
+
x2: '1',
|
|
60
|
+
y2: '0',
|
|
61
|
+
}, [
|
|
62
|
+
svgElem('stop', { offset: '0%', class: 'gradient-stop', }),
|
|
63
|
+
svgElem('stop', { offset: '100%', class: 'gradient-stop', }),
|
|
64
|
+
]),
|
|
65
|
+
]),
|
|
66
|
+
svgElem('path@path', {
|
|
67
|
+
d: '',
|
|
68
|
+
fill: 'url(#Gradient2)',
|
|
69
|
+
}),
|
|
70
|
+
]),
|
|
71
|
+
]);
|
|
72
|
+
this._toolbar = this._register(this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.toolbar, MenuId.InlineEditsActions, {
|
|
73
|
+
toolbarOptions: {
|
|
74
|
+
primaryGroup: g => g.startsWith('primary'),
|
|
75
|
+
},
|
|
76
|
+
}));
|
|
77
|
+
this._previewTextModel = this._register(this._instantiationService.createInstance(TextModel, '', PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null));
|
|
78
|
+
this._setText = derived(reader => {
|
|
79
|
+
const edit = this._edit.read(reader);
|
|
80
|
+
if (!edit) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this._previewTextModel.setValue(edit.newLines.join('\n'));
|
|
84
|
+
}).recomputeInitiallyAndOnChange(this._store);
|
|
85
|
+
this._promptTextModel = this._register(this._instantiationService.createInstance(TextModel, '', PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null));
|
|
86
|
+
this._promptEditor = this._register(this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._elements.promptEditor, {
|
|
87
|
+
glyphMargin: false,
|
|
88
|
+
lineNumbers: 'off',
|
|
89
|
+
minimap: { enabled: false },
|
|
90
|
+
guides: {
|
|
91
|
+
indentation: false,
|
|
92
|
+
bracketPairs: false,
|
|
93
|
+
bracketPairsHorizontal: false,
|
|
94
|
+
highlightActiveIndentation: false,
|
|
95
|
+
},
|
|
96
|
+
folding: false,
|
|
97
|
+
selectOnLineNumbers: false,
|
|
98
|
+
selectionHighlight: false,
|
|
99
|
+
columnSelection: false,
|
|
100
|
+
overviewRulerBorder: false,
|
|
101
|
+
overviewRulerLanes: 0,
|
|
102
|
+
lineDecorationsWidth: 0,
|
|
103
|
+
lineNumbersMinChars: 0,
|
|
104
|
+
placeholder: 'Describe the change you want...',
|
|
105
|
+
fontFamily: DEFAULT_FONT_FAMILY,
|
|
106
|
+
}, {
|
|
107
|
+
contributions: EditorExtensionsRegistry.getSomeEditorContributions([
|
|
108
|
+
SuggestController.ID,
|
|
109
|
+
PlaceholderTextContribution.ID,
|
|
110
|
+
ContextMenuController.ID,
|
|
111
|
+
]),
|
|
112
|
+
isSimpleWidget: true
|
|
113
|
+
}, this._editor));
|
|
114
|
+
this._previewEditor = this._register(this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._elements.editor, {
|
|
115
|
+
glyphMargin: false,
|
|
116
|
+
lineNumbers: 'off',
|
|
117
|
+
minimap: { enabled: false },
|
|
118
|
+
guides: {
|
|
119
|
+
indentation: false,
|
|
120
|
+
bracketPairs: false,
|
|
121
|
+
bracketPairsHorizontal: false,
|
|
122
|
+
highlightActiveIndentation: false,
|
|
123
|
+
},
|
|
124
|
+
folding: false,
|
|
125
|
+
selectOnLineNumbers: false,
|
|
126
|
+
selectionHighlight: false,
|
|
127
|
+
columnSelection: false,
|
|
128
|
+
overviewRulerBorder: false,
|
|
129
|
+
overviewRulerLanes: 0,
|
|
130
|
+
lineDecorationsWidth: 0,
|
|
131
|
+
lineNumbersMinChars: 0,
|
|
132
|
+
}, { contributions: [], }, this._editor));
|
|
133
|
+
this._previewEditorObs = observableCodeEditor(this._previewEditor);
|
|
134
|
+
this._decorations = derived(this, (reader) => {
|
|
135
|
+
this._setText.read(reader);
|
|
136
|
+
const diff = this._edit.read(reader)?.changes;
|
|
137
|
+
if (!diff) {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
const originalDecorations = [];
|
|
141
|
+
const modifiedDecorations = [];
|
|
142
|
+
if (diff.length === 1 && diff[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange())) {
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
for (const m of diff) {
|
|
146
|
+
if (!m.original.isEmpty) {
|
|
147
|
+
originalDecorations.push({ range: m.original.toInclusiveRange(), options: diffLineDeleteDecorationBackgroundWithIndicator });
|
|
148
|
+
}
|
|
149
|
+
if (!m.modified.isEmpty) {
|
|
150
|
+
modifiedDecorations.push({ range: m.modified.toInclusiveRange(), options: diffLineAddDecorationBackgroundWithIndicator });
|
|
151
|
+
}
|
|
152
|
+
if (m.modified.isEmpty || m.original.isEmpty) {
|
|
153
|
+
if (!m.original.isEmpty) {
|
|
154
|
+
originalDecorations.push({ range: m.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration });
|
|
155
|
+
}
|
|
156
|
+
if (!m.modified.isEmpty) {
|
|
157
|
+
modifiedDecorations.push({ range: m.modified.toInclusiveRange(), options: diffWholeLineAddDecoration });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
for (const i of m.innerChanges || []) {
|
|
162
|
+
if (m.original.contains(i.originalRange.startLineNumber)) {
|
|
163
|
+
originalDecorations.push({ range: i.originalRange, options: i.originalRange.isEmpty() ? diffDeleteDecorationEmpty : diffDeleteDecoration });
|
|
164
|
+
}
|
|
165
|
+
if (m.modified.contains(i.modifiedRange.startLineNumber)) {
|
|
166
|
+
modifiedDecorations.push({ range: i.modifiedRange, options: i.modifiedRange.isEmpty() ? diffAddDecorationEmpty : diffAddDecoration });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return modifiedDecorations;
|
|
172
|
+
});
|
|
173
|
+
this._layout1 = derived(this, reader => {
|
|
174
|
+
const model = this._editor.getModel();
|
|
175
|
+
const inlineEdit = this._edit.read(reader);
|
|
176
|
+
if (!inlineEdit) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const range = inlineEdit.range;
|
|
180
|
+
let maxLeft = 0;
|
|
181
|
+
for (let i = range.startLineNumber; i < range.endLineNumberExclusive; i++) {
|
|
182
|
+
const column = model.getLineMaxColumn(i);
|
|
183
|
+
const left = this._editor.getOffsetForColumn(i, column);
|
|
184
|
+
maxLeft = Math.max(maxLeft, left);
|
|
185
|
+
}
|
|
186
|
+
const layoutInfo = this._editor.getLayoutInfo();
|
|
187
|
+
const contentLeft = layoutInfo.contentLeft;
|
|
188
|
+
return { left: contentLeft + maxLeft };
|
|
189
|
+
});
|
|
190
|
+
this._layout = derived(this, (reader) => {
|
|
191
|
+
const inlineEdit = this._edit.read(reader);
|
|
192
|
+
if (!inlineEdit) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
const range = inlineEdit.range;
|
|
196
|
+
const scrollLeft = this._editorObs.scrollLeft.read(reader);
|
|
197
|
+
const left = this._layout1.read(reader).left + 20 - scrollLeft;
|
|
198
|
+
const selectionTop = this._editor.getTopForLineNumber(range.startLineNumber) - this._editorObs.scrollTop.read(reader);
|
|
199
|
+
const selectionBottom = this._editor.getTopForLineNumber(range.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);
|
|
200
|
+
const topCode = ( new Point(left, selectionTop));
|
|
201
|
+
const bottomCode = ( new Point(left, selectionBottom));
|
|
202
|
+
const codeHeight = selectionBottom - selectionTop;
|
|
203
|
+
const codeEditDist = 50;
|
|
204
|
+
const editHeight = this._editor.getOption(EditorOption.lineHeight) * inlineEdit.newLines.length;
|
|
205
|
+
const difference = codeHeight - editHeight;
|
|
206
|
+
const topEdit = ( new Point(left + codeEditDist, selectionTop + (difference / 2)));
|
|
207
|
+
const bottomEdit = ( new Point(left + codeEditDist, selectionBottom - (difference / 2)));
|
|
208
|
+
return {
|
|
209
|
+
topCode,
|
|
210
|
+
bottomCode,
|
|
211
|
+
codeHeight,
|
|
212
|
+
topEdit,
|
|
213
|
+
bottomEdit,
|
|
214
|
+
editHeight,
|
|
215
|
+
};
|
|
216
|
+
});
|
|
217
|
+
const visible = derived(this, reader => this._edit.read(reader) !== undefined || this._userPrompt.read(reader) !== undefined);
|
|
218
|
+
this._register(applyStyle(this._elements.root, {
|
|
219
|
+
display: derived(this, reader => visible.read(reader) ? 'block' : 'none')
|
|
220
|
+
}));
|
|
221
|
+
this._register(appendRemoveOnDispose(this._editor.getDomNode(), this._elements.root));
|
|
222
|
+
this._register(observableCodeEditor(_editor).createOverlayWidget({
|
|
223
|
+
domNode: this._elements.root,
|
|
224
|
+
position: constObservable(null),
|
|
225
|
+
allowEditorOverflow: false,
|
|
226
|
+
minContentWidthInPx: derived(reader => {
|
|
227
|
+
const x = this._layout1.read(reader)?.left;
|
|
228
|
+
if (x === undefined) {
|
|
229
|
+
return 0;
|
|
230
|
+
}
|
|
231
|
+
const width = this._previewEditorObs.contentWidth.read(reader);
|
|
232
|
+
return x + width;
|
|
233
|
+
}),
|
|
234
|
+
}));
|
|
235
|
+
this._previewEditor.setModel(this._previewTextModel);
|
|
236
|
+
this._register(this._previewEditorObs.setDecorations(this._decorations));
|
|
237
|
+
this._register(autorun(reader => {
|
|
238
|
+
const layoutInfo = this._layout.read(reader);
|
|
239
|
+
if (!layoutInfo) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const { topCode, bottomCode, topEdit, bottomEdit, editHeight } = layoutInfo;
|
|
243
|
+
const straightWidthCode = 10;
|
|
244
|
+
const straightWidthEdit = 0;
|
|
245
|
+
const bezierDist = 40;
|
|
246
|
+
const path = ( new PathBuilder())
|
|
247
|
+
.moveTo(topCode)
|
|
248
|
+
.lineTo(topCode.deltaX(straightWidthCode))
|
|
249
|
+
.curveTo(topCode.deltaX(straightWidthCode + bezierDist), topEdit.deltaX(-bezierDist - straightWidthEdit), topEdit.deltaX(-straightWidthEdit))
|
|
250
|
+
.lineTo(topEdit)
|
|
251
|
+
.lineTo(bottomEdit)
|
|
252
|
+
.lineTo(bottomEdit.deltaX(-straightWidthEdit))
|
|
253
|
+
.curveTo(bottomEdit.deltaX(-bezierDist - straightWidthEdit), bottomCode.deltaX(straightWidthCode + bezierDist), bottomCode.deltaX(straightWidthCode))
|
|
254
|
+
.lineTo(bottomCode)
|
|
255
|
+
.build();
|
|
256
|
+
this._elements.path.setAttribute('d', path);
|
|
257
|
+
this._elements.editorContainer.style.top = `${topEdit.y}px`;
|
|
258
|
+
this._elements.editorContainer.style.left = `${topEdit.x}px`;
|
|
259
|
+
this._elements.editorContainer.style.height = `${editHeight}px`;
|
|
260
|
+
const width = this._previewEditorObs.contentWidth.read(reader);
|
|
261
|
+
this._previewEditor.layout({ height: editHeight, width });
|
|
262
|
+
}));
|
|
263
|
+
this._promptEditor.setModel(this._promptTextModel);
|
|
264
|
+
this._promptEditor.layout();
|
|
265
|
+
this._register(createTwoWaySync(mapSettableObservable(this._userPrompt, v => v ?? '', v => v), observableCodeEditor(this._promptEditor).value));
|
|
266
|
+
this._register(autorun(reader => {
|
|
267
|
+
const isFocused = observableCodeEditor(this._promptEditor).isFocused.read(reader);
|
|
268
|
+
this._elements.root.classList.toggle('focused', isFocused);
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
InlineEditsWidget = ( __decorate([
|
|
273
|
+
( __param(3, IInstantiationService))
|
|
274
|
+
], InlineEditsWidget));
|
|
275
|
+
function mapSettableObservable(obs, fn1, fn2) {
|
|
276
|
+
return derivedWithSetter(undefined, reader => fn1(obs.read(reader)), (value, tx) => obs.set(fn2(value), tx));
|
|
277
|
+
}
|
|
278
|
+
class Point {
|
|
279
|
+
constructor(x, y) {
|
|
280
|
+
this.x = x;
|
|
281
|
+
this.y = y;
|
|
282
|
+
}
|
|
283
|
+
add(other) {
|
|
284
|
+
return ( new Point(this.x + other.x, this.y + other.y));
|
|
285
|
+
}
|
|
286
|
+
deltaX(delta) {
|
|
287
|
+
return ( new Point(this.x + delta, this.y));
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
class PathBuilder {
|
|
291
|
+
constructor() {
|
|
292
|
+
this._data = '';
|
|
293
|
+
}
|
|
294
|
+
moveTo(point) {
|
|
295
|
+
this._data += `M ${point.x} ${point.y} `;
|
|
296
|
+
return this;
|
|
297
|
+
}
|
|
298
|
+
lineTo(point) {
|
|
299
|
+
this._data += `L ${point.x} ${point.y} `;
|
|
300
|
+
return this;
|
|
301
|
+
}
|
|
302
|
+
curveTo(cp1, cp2, to) {
|
|
303
|
+
this._data += `C ${cp1.x} ${cp1.y} ${cp2.x} ${cp2.y} ${to.x} ${to.y} `;
|
|
304
|
+
return this;
|
|
305
|
+
}
|
|
306
|
+
build() {
|
|
307
|
+
return this._data;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
function createTwoWaySync(main, target) {
|
|
311
|
+
const store = ( new DisposableStore());
|
|
312
|
+
store.add(autorun(reader => {
|
|
313
|
+
const value = main.read(reader);
|
|
314
|
+
target.set(value, undefined);
|
|
315
|
+
}));
|
|
316
|
+
store.add(autorun(reader => {
|
|
317
|
+
const value = target.read(reader);
|
|
318
|
+
main.set(value, undefined);
|
|
319
|
+
}));
|
|
320
|
+
return store;
|
|
321
|
+
}
|
|
322
|
+
export { InlineEdit, InlineEditsWidget };
|
|
@@ -83,11 +83,15 @@ let InlineProgressManager = class InlineProgressManager extends Disposable {
|
|
|
83
83
|
this._instantiationService = _instantiationService;
|
|
84
84
|
this._showDelay = 500;
|
|
85
85
|
this._showPromise = this._register(( new MutableDisposable()));
|
|
86
|
-
this._currentWidget = ( new MutableDisposable());
|
|
86
|
+
this._currentWidget = this._register(( new MutableDisposable()));
|
|
87
87
|
this._operationIdPool = 0;
|
|
88
88
|
this._currentDecorations = _editor.createDecorationsCollection();
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
dispose() {
|
|
91
|
+
super.dispose();
|
|
92
|
+
this._currentDecorations.clear();
|
|
93
|
+
}
|
|
94
|
+
async showWhile(position, title, promise, delegate, delayOverride) {
|
|
91
95
|
const operationId = this._operationIdPool++;
|
|
92
96
|
this._currentOperation = operationId;
|
|
93
97
|
this.clear();
|
|
@@ -98,9 +102,9 @@ let InlineProgressManager = class InlineProgressManager extends Disposable {
|
|
|
98
102
|
options: inlineProgressDecoration,
|
|
99
103
|
}]);
|
|
100
104
|
if (decorationIds.length > 0) {
|
|
101
|
-
this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range, title,
|
|
105
|
+
this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range, title, delegate);
|
|
102
106
|
}
|
|
103
|
-
}, this._showDelay);
|
|
107
|
+
}, delayOverride ?? this._showDelay);
|
|
104
108
|
try {
|
|
105
109
|
return await promise;
|
|
106
110
|
}
|
|
@@ -5,6 +5,7 @@ import { ReplaceCommandThatSelectsText, ReplaceCommand, ReplaceCommandThatPreser
|
|
|
5
5
|
import { TrimTrailingWhitespaceCommand } from '../../../common/commands/trimTrailingWhitespaceCommand.js';
|
|
6
6
|
import { EditorOption } from '../../../common/config/editorOptions.js';
|
|
7
7
|
import { TypeOperations } from '../../../common/cursor/cursorTypeOperations.js';
|
|
8
|
+
import { EnterOperation } from '../../../common/cursor/cursorTypeEditOperations.js';
|
|
8
9
|
import { EditOperation } from '../../../common/core/editOperation.js';
|
|
9
10
|
import { Position } from '../../../common/core/position.js';
|
|
10
11
|
import { Range } from '../../../common/core/range.js';
|
|
@@ -490,7 +491,7 @@ class InsertLineBeforeAction extends EditorAction {
|
|
|
490
491
|
return;
|
|
491
492
|
}
|
|
492
493
|
editor.pushUndoStop();
|
|
493
|
-
editor.executeCommands(this.id,
|
|
494
|
+
editor.executeCommands(this.id, EnterOperation.lineInsertBefore(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));
|
|
494
495
|
}
|
|
495
496
|
}
|
|
496
497
|
class InsertLineAfterAction extends EditorAction {
|
|
@@ -513,7 +514,7 @@ class InsertLineAfterAction extends EditorAction {
|
|
|
513
514
|
return;
|
|
514
515
|
}
|
|
515
516
|
editor.pushUndoStop();
|
|
516
|
-
editor.executeCommands(this.id,
|
|
517
|
+
editor.executeCommands(this.id, EnterOperation.lineInsertAfter(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));
|
|
517
518
|
}
|
|
518
519
|
}
|
|
519
520
|
class AbstractDeleteAllToBoundaryAction extends EditorAction {
|
|
@@ -311,5 +311,5 @@ ParameterHintsWidget = ParameterHintsWidget_1 = ( (__decorate([
|
|
|
311
311
|
( (__param(4, ILanguageService))),
|
|
312
312
|
( (__param(5, ITelemetryService)))
|
|
313
313
|
], ParameterHintsWidget)));
|
|
314
|
-
registerColor('editorHoverWidget.highlightForeground',
|
|
314
|
+
registerColor('editorHoverWidget.highlightForeground', listHighlightForeground, ( localizeWithPath(_moduleId, 3, 'Foreground color of the active item in the parameter hint.')));
|
|
315
315
|
export { ParameterHintsWidget };
|
|
@@ -243,8 +243,8 @@ registerColor('peekViewResult.selectionForeground', { dark: Color.white, light:
|
|
|
243
243
|
'Foreground color of the selected entry in the peek view result list.'
|
|
244
244
|
)));
|
|
245
245
|
const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, ( localizeWithPath(_moduleId, 11, 'Background color of the peek view editor.')));
|
|
246
|
-
registerColor('peekViewEditorGutter.background',
|
|
247
|
-
registerColor('peekViewEditorStickyScroll.background',
|
|
246
|
+
registerColor('peekViewEditorGutter.background', peekViewEditorBackground, ( localizeWithPath(_moduleId, 12, 'Background color of the gutter in the peek view editor.')));
|
|
247
|
+
registerColor('peekViewEditorStickyScroll.background', peekViewEditorBackground, ( localizeWithPath(
|
|
248
248
|
_moduleId,
|
|
249
249
|
13,
|
|
250
250
|
'Background color of sticky scroll in the peek view editor.'
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { structuralEquals } from '../../../../base/common/equals.js';
|
|
2
|
+
import { Disposable } from '../../../../base/common/lifecycle.js';
|
|
3
|
+
import { derivedOpts, derived } from '../../../../base/common/observableInternal/derived.js';
|
|
4
|
+
import '../../../../base/common/observableInternal/autorun.js';
|
|
5
|
+
import '../../../../base/common/observableInternal/utils.js';
|
|
6
|
+
import '../../../../base/common/cancellation.js';
|
|
7
|
+
import './placeholderText.css.js';
|
|
8
|
+
import { registerEditorContribution, EditorContributionInstantiation } from '../../../browser/editorExtensions.js';
|
|
9
|
+
import { observableCodeEditor } from '../../../browser/observableCodeEditor.js';
|
|
10
|
+
import { EditorOption } from '../../../common/config/editorOptions.js';
|
|
11
|
+
import { ghostTextForeground } from '../../../common/core/editorColorRegistry.js';
|
|
12
|
+
import { Range } from '../../../common/core/range.js';
|
|
13
|
+
import { InjectedTextCursorStops } from '../../../common/model.js';
|
|
14
|
+
import { localizeWithPath } from '../../../../nls.js';
|
|
15
|
+
import { registerColor } from '../../../../platform/theme/common/colorUtils.js';
|
|
16
|
+
const _moduleId = "vs/editor/contrib/placeholderText/browser/placeholderText.contribution";
|
|
17
|
+
class PlaceholderTextContribution extends Disposable {
|
|
18
|
+
static get(editor) {
|
|
19
|
+
return editor.getContribution(PlaceholderTextContribution.ID);
|
|
20
|
+
}
|
|
21
|
+
static { this.ID = 'editor.contrib.placeholderText'; }
|
|
22
|
+
constructor(_editor) {
|
|
23
|
+
super();
|
|
24
|
+
this._editor = _editor;
|
|
25
|
+
this._editorObs = observableCodeEditor(this._editor);
|
|
26
|
+
this._placeholderText = this._editorObs.getOption(EditorOption.placeholder);
|
|
27
|
+
this._decorationOptions = derivedOpts({ owner: this, equalsFn: structuralEquals }, reader => {
|
|
28
|
+
const p = this._placeholderText.read(reader);
|
|
29
|
+
if (!p) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (!this._editorObs.valueIsEmpty.read(reader)) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return { placeholder: p };
|
|
36
|
+
});
|
|
37
|
+
this._decorations = derived(this, (reader) => {
|
|
38
|
+
const options = this._decorationOptions.read(reader);
|
|
39
|
+
if (!options) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
return [{
|
|
43
|
+
range: ( (new Range(1, 1, 1, 1))),
|
|
44
|
+
options: {
|
|
45
|
+
description: 'placeholder',
|
|
46
|
+
showIfCollapsed: true,
|
|
47
|
+
after: {
|
|
48
|
+
content: options.placeholder,
|
|
49
|
+
cursorStops: InjectedTextCursorStops.None,
|
|
50
|
+
inlineClassName: 'placeholder-text'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}];
|
|
54
|
+
});
|
|
55
|
+
this._register(this._editorObs.setDecorations(this._decorations));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
registerEditorContribution(PlaceholderTextContribution.ID, PlaceholderTextContribution, EditorContributionInstantiation.Eager);
|
|
59
|
+
registerColor('editor.placeholder.foreground', { dark: ghostTextForeground, light: ghostTextForeground, hcDark: ghostTextForeground, hcLight: ghostTextForeground }, ( localizeWithPath(_moduleId, 0, 'Foreground color of the placeholder text in the editor.')));
|
|
60
|
+
export { PlaceholderTextContribution };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import n from '../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
|
+
var css = ".monaco-editor{--vscode-editor-placeholder-foreground:var(--vscode-editorGhostText-foreground)}.monaco-editor .placeholder-text{color:var(--vscode-editor-placeholder-foreground)}";
|
|
3
|
+
n(css,{});
|
|
4
|
+
export { css, css as default };
|
|
@@ -613,7 +613,7 @@ class InputWithButton {
|
|
|
613
613
|
this._buttonNode.setAttribute('tabindex', '0');
|
|
614
614
|
this._buttonGenHoverText = ( localizeWithPath(_moduleId, 5, "Generate new name suggestions"));
|
|
615
615
|
this._buttonCancelHoverText = ( localizeWithPath(_moduleId, 6, "Cancel"));
|
|
616
|
-
this._buttonHover = getBaseLayerHoverDelegate().
|
|
616
|
+
this._buttonHover = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('element'), this._buttonNode, this._buttonGenHoverText);
|
|
617
617
|
this._disposables.add(this._buttonHover);
|
|
618
618
|
this._domNode.appendChild(this._buttonNode);
|
|
619
619
|
this._disposables.add(addDisposableListener(this.input, EventType.INPUT, () => this._onDidInputChange.fire()));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import n from '../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
|
-
var css = ".monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0
|
|
2
|
+
var css = ".monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}";
|
|
3
3
|
n(css,{});
|
|
4
4
|
export { css, css as default };
|
|
@@ -36,7 +36,6 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
36
36
|
this._instaService = _instaService;
|
|
37
37
|
this._contextKeyService = _contextKeyService;
|
|
38
38
|
this._sessionStore = ( new DisposableStore());
|
|
39
|
-
this._foldingModel = null;
|
|
40
39
|
this._maxStickyLines = Number.MAX_SAFE_INTEGER;
|
|
41
40
|
this._candidateDefinitionsLength = -1;
|
|
42
41
|
this._focusedStickyElementIndex = -1;
|
|
@@ -45,12 +44,11 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
45
44
|
this._positionRevealed = false;
|
|
46
45
|
this._onMouseDown = false;
|
|
47
46
|
this._endLineNumbers = [];
|
|
48
|
-
this._showEndForLine = null;
|
|
49
47
|
this._stickyScrollWidget = ( new StickyScrollWidget(this._editor));
|
|
50
48
|
this._stickyLineCandidateProvider = ( new StickyLineCandidateProvider(this._editor, _languageFeaturesService, _languageConfigurationService));
|
|
51
49
|
this._register(this._stickyScrollWidget);
|
|
52
50
|
this._register(this._stickyLineCandidateProvider);
|
|
53
|
-
this._widgetState =
|
|
51
|
+
this._widgetState = StickyScrollWidgetState.Empty;
|
|
54
52
|
this._onDidResize();
|
|
55
53
|
this._readConfiguration();
|
|
56
54
|
const stickyScrollDomNode = this._stickyScrollWidget.getDomNode();
|
|
@@ -229,14 +227,14 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
229
227
|
this._renderStickyScroll();
|
|
230
228
|
return;
|
|
231
229
|
}
|
|
232
|
-
if (this._showEndForLine !==
|
|
233
|
-
this._showEndForLine =
|
|
230
|
+
if (this._showEndForLine !== undefined) {
|
|
231
|
+
this._showEndForLine = undefined;
|
|
234
232
|
this._renderStickyScroll();
|
|
235
233
|
}
|
|
236
234
|
}));
|
|
237
235
|
this._register(addDisposableListener(stickyScrollWidgetDomNode, EventType.MOUSE_LEAVE, (e) => {
|
|
238
|
-
if (this._showEndForLine !==
|
|
239
|
-
this._showEndForLine =
|
|
236
|
+
if (this._showEndForLine !== undefined) {
|
|
237
|
+
this._showEndForLine = undefined;
|
|
240
238
|
this._renderStickyScroll();
|
|
241
239
|
}
|
|
242
240
|
}));
|
|
@@ -345,14 +343,14 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
345
343
|
this._editor.addOverlayWidget(this._stickyScrollWidget);
|
|
346
344
|
this._sessionStore.add(this._editor.onDidScrollChange((e) => {
|
|
347
345
|
if (e.scrollTopChanged) {
|
|
348
|
-
this._showEndForLine =
|
|
346
|
+
this._showEndForLine = undefined;
|
|
349
347
|
this._renderStickyScroll();
|
|
350
348
|
}
|
|
351
349
|
}));
|
|
352
350
|
this._sessionStore.add(this._editor.onDidLayoutChange(() => this._onDidResize()));
|
|
353
351
|
this._sessionStore.add(this._editor.onDidChangeModelTokens((e) => this._onTokensChange(e)));
|
|
354
352
|
this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(() => {
|
|
355
|
-
this._showEndForLine =
|
|
353
|
+
this._showEndForLine = undefined;
|
|
356
354
|
this._renderStickyScroll();
|
|
357
355
|
}));
|
|
358
356
|
this._enabled = true;
|
|
@@ -360,7 +358,7 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
360
358
|
const lineNumberOption = this._editor.getOption(EditorOption.lineNumbers);
|
|
361
359
|
if (lineNumberOption.renderType === RenderLineNumbersType.Relative) {
|
|
362
360
|
this._sessionStore.add(this._editor.onDidChangeCursorPosition(() => {
|
|
363
|
-
this._showEndForLine =
|
|
361
|
+
this._showEndForLine = undefined;
|
|
364
362
|
this._renderStickyScroll(0);
|
|
365
363
|
}));
|
|
366
364
|
}
|
|
@@ -401,21 +399,19 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
401
399
|
async _renderStickyScroll(rebuildFromLine) {
|
|
402
400
|
const model = this._editor.getModel();
|
|
403
401
|
if (!model || model.isTooLargeForTokenization()) {
|
|
404
|
-
this.
|
|
405
|
-
this._stickyScrollWidget.setState(undefined, null);
|
|
402
|
+
this._resetState();
|
|
406
403
|
return;
|
|
407
404
|
}
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
this._stickyScrollVisibleContextKey.set(!(this._widgetState.startLineNumbers.length === 0));
|
|
405
|
+
const nextRebuildFromLine = this._updateAndGetMinRebuildFromLine(rebuildFromLine);
|
|
406
|
+
const stickyWidgetVersion = this._stickyLineCandidateProvider.getVersionId();
|
|
407
|
+
const shouldUpdateState = stickyWidgetVersion === undefined || stickyWidgetVersion === model.getVersionId();
|
|
408
|
+
if (shouldUpdateState) {
|
|
413
409
|
if (!this._focused) {
|
|
414
|
-
this.
|
|
410
|
+
await this._updateState(nextRebuildFromLine);
|
|
415
411
|
}
|
|
416
412
|
else {
|
|
417
413
|
if (this._focusedStickyElementIndex === -1) {
|
|
418
|
-
this.
|
|
414
|
+
await this._updateState(nextRebuildFromLine);
|
|
419
415
|
this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumberCount - 1;
|
|
420
416
|
if (this._focusedStickyElementIndex !== -1) {
|
|
421
417
|
this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);
|
|
@@ -423,7 +419,7 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
423
419
|
}
|
|
424
420
|
else {
|
|
425
421
|
const focusedStickyElementLineNumber = this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];
|
|
426
|
-
this.
|
|
422
|
+
await this._updateState(nextRebuildFromLine);
|
|
427
423
|
if (this._stickyScrollWidget.lineNumberCount === 0) {
|
|
428
424
|
this._focusedStickyElementIndex = -1;
|
|
429
425
|
}
|
|
@@ -438,6 +434,28 @@ let StickyScrollController = class StickyScrollController extends Disposable {
|
|
|
438
434
|
}
|
|
439
435
|
}
|
|
440
436
|
}
|
|
437
|
+
_updateAndGetMinRebuildFromLine(rebuildFromLine) {
|
|
438
|
+
if (rebuildFromLine !== undefined) {
|
|
439
|
+
const minRebuildFromLineOrInfinity = this._minRebuildFromLine !== undefined ? this._minRebuildFromLine : Infinity;
|
|
440
|
+
this._minRebuildFromLine = Math.min(rebuildFromLine, minRebuildFromLineOrInfinity);
|
|
441
|
+
}
|
|
442
|
+
return this._minRebuildFromLine;
|
|
443
|
+
}
|
|
444
|
+
async _updateState(rebuildFromLine) {
|
|
445
|
+
this._minRebuildFromLine = undefined;
|
|
446
|
+
this._foldingModel = (await FoldingController.get(this._editor)?.getFoldingModel()) ?? undefined;
|
|
447
|
+
this._widgetState = this.findScrollWidgetState();
|
|
448
|
+
const stickyWidgetHasLines = this._widgetState.startLineNumbers.length > 0;
|
|
449
|
+
this._stickyScrollVisibleContextKey.set(stickyWidgetHasLines);
|
|
450
|
+
this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);
|
|
451
|
+
}
|
|
452
|
+
async _resetState() {
|
|
453
|
+
this._minRebuildFromLine = undefined;
|
|
454
|
+
this._foldingModel = undefined;
|
|
455
|
+
this._widgetState = StickyScrollWidgetState.Empty;
|
|
456
|
+
this._stickyScrollVisibleContextKey.set(false);
|
|
457
|
+
this._stickyScrollWidget.setState(undefined, undefined);
|
|
458
|
+
}
|
|
441
459
|
findScrollWidgetState() {
|
|
442
460
|
const lineHeight = this._editor.getOption(EditorOption.lineHeight);
|
|
443
461
|
const maxNumberStickyLines = Math.min(this._maxStickyLines, this._editor.getOption(EditorOption.stickyScroll).maxLineCount);
|
|
@@ -27,6 +27,9 @@ class StickyScrollWidgetState {
|
|
|
27
27
|
&& equals(this.startLineNumbers, other.startLineNumbers)
|
|
28
28
|
&& equals(this.endLineNumbers, other.endLineNumbers);
|
|
29
29
|
}
|
|
30
|
+
static get Empty() {
|
|
31
|
+
return ( new StickyScrollWidgetState([], [], 0));
|
|
32
|
+
}
|
|
30
33
|
}
|
|
31
34
|
const _ttPolicy = createTrustedTypesPolicy('stickyScrollViewLayer', { createHTML: value => value });
|
|
32
35
|
const STICKY_INDEX_ATTR = 'data-sticky-line-index';
|