@codingame/monaco-vscode-api 6.0.2 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -73
- package/api.js +1 -1
- package/debugProtocol.d.ts +10 -1
- package/extensions.d.ts +2 -0
- package/missing-services.js +21 -2
- package/monaco.d.ts +1 -1
- package/monaco.js +1 -1
- package/package.json +9 -9
- package/service-override/extensions.d.ts +1 -2
- package/services.js +4 -2
- package/vscode/src/vs/base/browser/dnd.js +1 -1
- package/vscode/src/vs/base/browser/dom.js +116 -5
- package/vscode/src/vs/base/browser/domObservable.js +16 -0
- package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
- package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
- package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
- package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
- package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
- package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
- package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
- package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
- package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
- package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
- package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
- package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
- package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
- package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
- package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
- package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
- package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
- package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
- package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
- package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
- package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
- package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
- package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
- package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
- package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
- package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
- package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
- package/vscode/src/vs/base/common/assert.js +1 -1
- package/vscode/src/vs/base/common/collections.js +49 -1
- package/vscode/src/vs/base/common/equals.js +55 -5
- package/vscode/src/vs/base/common/errors.js +14 -1
- package/vscode/src/vs/base/common/event.js +2 -1
- package/vscode/src/vs/base/common/history.js +7 -4
- package/vscode/src/vs/base/common/iterator.js +9 -1
- package/vscode/src/vs/base/common/map.d.ts +41 -0
- package/vscode/src/vs/base/common/numbers.js +18 -1
- package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
- package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
- package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
- package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
- package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
- package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
- package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
- package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
- package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
- package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
- package/vscode/src/vs/base/common/product.d.ts +1 -0
- package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
- package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
- package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
- package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
- package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
- package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
- package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
- package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
- package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
- package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
- package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
- package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
- package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
- package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
- package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
- package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
- package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
- package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
- package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
- package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
- package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
- package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
- package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
- package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
- package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
- package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
- package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
- package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
- package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
- package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
- package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
- package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
- package/vscode/src/vs/editor/common/languages.d.ts +20 -3
- package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
- package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
- package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
- package/vscode/src/vs/editor/common/model/textModel.js +6 -2
- package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
- package/vscode/src/vs/editor/common/model.d.ts +4 -0
- package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
- package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
- package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
- package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
- package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
- package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
- package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
- package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
- package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
- package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
- package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
- package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
- package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
- package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
- package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
- package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
- package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
- package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
- package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
- package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
- package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
- package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
- package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
- package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
- package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
- package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
- package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
- package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
- package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
- package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
- package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
- package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
- package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
- package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
- package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
- package/vscode/src/vs/editor/editor.api.d.ts +31 -5
- package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
- package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
- package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
- package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
- package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
- package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
- package/vscode/src/vs/platform/actions/common/actions.js +3 -0
- package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
- package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
- package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
- package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
- package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
- package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
- package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
- package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
- package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
- package/vscode/src/vs/platform/files/common/watcher.js +21 -24
- package/vscode/src/vs/platform/list/browser/listService.js +2 -1
- package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
- package/vscode/src/vs/platform/opener/browser/link.js +1 -1
- package/vscode/src/vs/platform/product/common/product.js +1 -1
- package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
- package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
- package/vscode/src/vs/platform/request/common/request.js +18 -8
- package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
- package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
- package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
- package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
- package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
- package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
- package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
- package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
- package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
- package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
- package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
- package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
- package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
- package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
- package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
- package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
- package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
- package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
- package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
- package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
- package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
- package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
- package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
- package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
- package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
- package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
- package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
- package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
- package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
- package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
- package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
- package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
- package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
- package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
- package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
- package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
- package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
- package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
- package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
- package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
- package/vscode/src/vs/workbench/browser/web.api.js +8 -0
- package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
- package/vscode/src/vs/workbench/common/configuration.js +1 -1
- package/vscode/src/vs/workbench/common/contributions.js +8 -1
- package/vscode/src/vs/workbench/common/editor.js +5 -1
- package/vscode/src/vs/workbench/common/theme.js +79 -454
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
- package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
- package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
- package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
- package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
- package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
- package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
- package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
- package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
- package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
- package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
- package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
- package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
- package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
- package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
- package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
- package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
- package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
- package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
- package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
- package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
- package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
- package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
- package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
- package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
- package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
- package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
- package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
- package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
- package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
- package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
- package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
- package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
- package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
- package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
- package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
- package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
- package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
- package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
- package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
- package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
- package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
- package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
- package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
- package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { append, $ as $$1 } from '../../../../base/browser/dom.js';
|
|
3
3
|
import { asArray, compareBy, numberComparator } from '../../../../base/common/arrays.js';
|
|
4
4
|
import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
|
|
5
5
|
import { MarkdownString, isEmptyMarkdownString } from '../../../../base/common/htmlContent.js';
|
|
6
|
-
import {
|
|
6
|
+
import { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';
|
|
7
7
|
import { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';
|
|
8
8
|
import { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';
|
|
9
9
|
import { Range } from '../../../common/core/range.js';
|
|
10
10
|
import { ILanguageService } from '../../../common/languages/language.js';
|
|
11
|
-
import { HoverAnchorType } from './hoverTypes.js';
|
|
11
|
+
import { HoverAnchorType, RenderedHoverParts } from './hoverTypes.js';
|
|
12
12
|
import { localizeWithPath } from '../../../../nls.js';
|
|
13
13
|
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.service.js';
|
|
14
14
|
import { IOpenerService } from '../../../../platform/opener/common/opener.service.js';
|
|
@@ -26,6 +26,7 @@ import { WorkbenchHoverDelegate } from '../../../../platform/hover/browser/hover
|
|
|
26
26
|
import { IHoverService } from '../../../../platform/hover/browser/hover.service.js';
|
|
27
27
|
import { AsyncIterableObject } from '../../../../base/common/async.js';
|
|
28
28
|
import { getHoverProviderResultsAsAsyncIterable } from './getHover.js';
|
|
29
|
+
import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
|
|
29
30
|
const _moduleId = "vs/editor/contrib/hover/browser/markdownHoverParticipant";
|
|
30
31
|
const $ = $$1;
|
|
31
32
|
const increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, ( localizeWithPath(_moduleId, 0, 'Icon for increaseing hover verbosity.')));
|
|
@@ -61,7 +62,7 @@ class HoverSource {
|
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
let MarkdownHoverParticipant = class MarkdownHoverParticipant {
|
|
64
|
-
constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService) {
|
|
65
|
+
constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService, _commandService) {
|
|
65
66
|
this._editor = _editor;
|
|
66
67
|
this._languageService = _languageService;
|
|
67
68
|
this._openerService = _openerService;
|
|
@@ -69,6 +70,7 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
|
|
|
69
70
|
this._languageFeaturesService = _languageFeaturesService;
|
|
70
71
|
this._keybindingService = _keybindingService;
|
|
71
72
|
this._hoverService = _hoverService;
|
|
73
|
+
this._commandService = _commandService;
|
|
72
74
|
this.hoverOrdinal = 3;
|
|
73
75
|
}
|
|
74
76
|
createLoadingMessage(anchor) {
|
|
@@ -167,9 +169,11 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
|
|
|
167
169
|
this._renderedHoverParts = ( (new MarkdownRenderedHoverParts(
|
|
168
170
|
hoverParts,
|
|
169
171
|
context.fragment,
|
|
172
|
+
this,
|
|
170
173
|
this._editor,
|
|
171
174
|
this._languageService,
|
|
172
175
|
this._openerService,
|
|
176
|
+
this._commandService,
|
|
173
177
|
this._keybindingService,
|
|
174
178
|
this._hoverService,
|
|
175
179
|
this._configurationService,
|
|
@@ -177,17 +181,14 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
|
|
|
177
181
|
)));
|
|
178
182
|
return this._renderedHoverParts;
|
|
179
183
|
}
|
|
180
|
-
|
|
181
|
-
return this._renderedHoverParts?.
|
|
182
|
-
}
|
|
183
|
-
focusedMarkdownHoverIndex() {
|
|
184
|
-
return this._renderedHoverParts?.focusedMarkdownHoverIndex() ?? 1;
|
|
184
|
+
getAccessibleContent(hoverPart) {
|
|
185
|
+
return this._renderedHoverParts?.getAccessibleContent(hoverPart) ?? '';
|
|
185
186
|
}
|
|
186
187
|
doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {
|
|
187
188
|
return this._renderedHoverParts?.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) ?? false;
|
|
188
189
|
}
|
|
189
190
|
updateMarkdownHoverVerbosityLevel(action, index, focus) {
|
|
190
|
-
this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index, focus);
|
|
191
|
+
return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index, focus));
|
|
191
192
|
}
|
|
192
193
|
};
|
|
193
194
|
MarkdownHoverParticipant = ( (__decorate([
|
|
@@ -196,73 +197,84 @@ MarkdownHoverParticipant = ( (__decorate([
|
|
|
196
197
|
( (__param(3, IConfigurationService))),
|
|
197
198
|
( (__param(4, ILanguageFeaturesService))),
|
|
198
199
|
( (__param(5, IKeybindingService))),
|
|
199
|
-
( (__param(6, IHoverService)))
|
|
200
|
+
( (__param(6, IHoverService))),
|
|
201
|
+
( (__param(7, ICommandService)))
|
|
200
202
|
], MarkdownHoverParticipant)));
|
|
201
|
-
class
|
|
202
|
-
constructor(
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
class RenderedMarkdownHoverPart {
|
|
204
|
+
constructor(hoverPart, hoverElement, disposables) {
|
|
205
|
+
this.hoverPart = hoverPart;
|
|
206
|
+
this.hoverElement = hoverElement;
|
|
207
|
+
this.disposables = disposables;
|
|
208
|
+
}
|
|
209
|
+
get hoverAccessibleContent() {
|
|
210
|
+
return this.hoverElement.innerText.trim();
|
|
211
|
+
}
|
|
212
|
+
dispose() {
|
|
213
|
+
this.disposables.dispose();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
class MarkdownRenderedHoverParts {
|
|
217
|
+
constructor(hoverParts, hoverPartsContainer, _hoverParticipant, _editor, _languageService, _openerService, _commandService, _keybindingService, _hoverService, _configurationService, _onFinishedRendering) {
|
|
218
|
+
this._hoverParticipant = _hoverParticipant;
|
|
205
219
|
this._editor = _editor;
|
|
206
220
|
this._languageService = _languageService;
|
|
207
221
|
this._openerService = _openerService;
|
|
222
|
+
this._commandService = _commandService;
|
|
208
223
|
this._keybindingService = _keybindingService;
|
|
209
224
|
this._hoverService = _hoverService;
|
|
210
225
|
this._configurationService = _configurationService;
|
|
211
226
|
this._onFinishedRendering = _onFinishedRendering;
|
|
212
|
-
this._focusedHoverPartIndex = -1;
|
|
213
227
|
this._ongoingHoverOperations = ( (new Map()));
|
|
214
|
-
this.
|
|
215
|
-
this.
|
|
216
|
-
|
|
217
|
-
|
|
228
|
+
this._disposables = ( (new DisposableStore()));
|
|
229
|
+
this.renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);
|
|
230
|
+
this._disposables.add(toDisposable(() => {
|
|
231
|
+
this.renderedHoverParts.forEach(renderedHoverPart => {
|
|
232
|
+
renderedHoverPart.dispose();
|
|
233
|
+
});
|
|
234
|
+
this._ongoingHoverOperations.forEach(operation => {
|
|
235
|
+
operation.tokenSource.dispose(true);
|
|
218
236
|
});
|
|
219
|
-
}));
|
|
220
|
-
this._register(toDisposable(() => {
|
|
221
|
-
this._ongoingHoverOperations.forEach(operation => { operation.tokenSource.dispose(true); });
|
|
222
237
|
}));
|
|
223
238
|
}
|
|
224
239
|
_renderHoverParts(hoverParts, hoverPartsContainer, onFinishedRendering) {
|
|
225
240
|
hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));
|
|
226
241
|
return (
|
|
227
|
-
(hoverParts.map(
|
|
228
|
-
const renderedHoverPart = this._renderHoverPart(
|
|
229
|
-
hoverPartsContainer.appendChild(renderedHoverPart.
|
|
242
|
+
(hoverParts.map(hoverPart => {
|
|
243
|
+
const renderedHoverPart = this._renderHoverPart(hoverPart, onFinishedRendering);
|
|
244
|
+
hoverPartsContainer.appendChild(renderedHoverPart.hoverElement);
|
|
230
245
|
return renderedHoverPart;
|
|
231
246
|
}))
|
|
232
247
|
);
|
|
233
248
|
}
|
|
234
|
-
_renderHoverPart(
|
|
235
|
-
const
|
|
249
|
+
_renderHoverPart(hoverPart, onFinishedRendering) {
|
|
250
|
+
const renderedMarkdownPart = this._renderMarkdownHover(hoverPart, onFinishedRendering);
|
|
251
|
+
const renderedMarkdownElement = renderedMarkdownPart.hoverElement;
|
|
252
|
+
const hoverSource = hoverPart.source;
|
|
253
|
+
const disposables = ( (new DisposableStore()));
|
|
254
|
+
disposables.add(renderedMarkdownPart);
|
|
236
255
|
if (!hoverSource) {
|
|
237
|
-
return
|
|
256
|
+
return (
|
|
257
|
+
(new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables))
|
|
258
|
+
);
|
|
238
259
|
}
|
|
239
260
|
const canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);
|
|
240
261
|
const canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);
|
|
241
262
|
if (!canIncreaseVerbosity && !canDecreaseVerbosity) {
|
|
242
|
-
return
|
|
263
|
+
return (
|
|
264
|
+
(new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables))
|
|
265
|
+
);
|
|
243
266
|
}
|
|
244
267
|
const actionsContainer = $('div.verbosity-actions');
|
|
245
|
-
|
|
268
|
+
renderedMarkdownElement.prepend(actionsContainer);
|
|
246
269
|
disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Increase, canIncreaseVerbosity));
|
|
247
270
|
disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Decrease, canDecreaseVerbosity));
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}));
|
|
252
|
-
this._register(addDisposableListener(renderedMarkdown, EventType.FOCUS_OUT, (event) => {
|
|
253
|
-
event.stopPropagation();
|
|
254
|
-
this._focusedHoverPartIndex = -1;
|
|
255
|
-
}));
|
|
256
|
-
return { renderedMarkdown, disposables, hoverSource };
|
|
271
|
+
return (
|
|
272
|
+
(new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables))
|
|
273
|
+
);
|
|
257
274
|
}
|
|
258
|
-
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
const renderedMarkdownContents = $('div.hover-row-contents');
|
|
262
|
-
renderedMarkdown.appendChild(renderedMarkdownContents);
|
|
263
|
-
const disposables = ( (new DisposableStore()));
|
|
264
|
-
disposables.add(renderMarkdownInContainer(this._editor, renderedMarkdownContents, markdownContent, this._languageService, this._openerService, onFinishedRendering));
|
|
265
|
-
return { renderedMarkdown, disposables };
|
|
275
|
+
_renderMarkdownHover(markdownHover, onFinishedRendering) {
|
|
276
|
+
const renderedMarkdownHover = renderMarkdownInContainer(this._editor, markdownHover, this._languageService, this._openerService, onFinishedRendering);
|
|
277
|
+
return renderedMarkdownHover;
|
|
266
278
|
}
|
|
267
279
|
_renderHoverExpansionAction(container, action, actionEnabled) {
|
|
268
280
|
const store = ( (new DisposableStore()));
|
|
@@ -276,50 +288,68 @@ class MarkdownRenderedHoverParts extends Disposable {
|
|
|
276
288
|
this._configurationService,
|
|
277
289
|
this._hoverService
|
|
278
290
|
)));
|
|
279
|
-
store.add(this._hoverService.
|
|
291
|
+
store.add(this._hoverService.setupManagedHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));
|
|
280
292
|
if (!actionEnabled) {
|
|
281
293
|
actionElement.classList.add('disabled');
|
|
282
294
|
return store;
|
|
283
295
|
}
|
|
284
296
|
actionElement.classList.add('enabled');
|
|
285
|
-
const actionFunction = () => this.
|
|
297
|
+
const actionFunction = () => this._commandService.executeCommand(action === HoverVerbosityAction.Increase ? INCREASE_HOVER_VERBOSITY_ACTION_ID : DECREASE_HOVER_VERBOSITY_ACTION_ID);
|
|
286
298
|
store.add(( (new ClickAction(actionElement, actionFunction))));
|
|
287
299
|
store.add(( (new KeyDownAction(actionElement, actionFunction, [KeyCode.Enter, KeyCode.Space]))));
|
|
288
300
|
return store;
|
|
289
301
|
}
|
|
290
|
-
async updateMarkdownHoverPartVerbosityLevel(action, index
|
|
302
|
+
async updateMarkdownHoverPartVerbosityLevel(action, index, focus = true) {
|
|
291
303
|
const model = this._editor.getModel();
|
|
292
304
|
if (!model) {
|
|
293
|
-
return;
|
|
305
|
+
return undefined;
|
|
294
306
|
}
|
|
295
|
-
const
|
|
296
|
-
const
|
|
297
|
-
if (!hoverRenderedPart || !
|
|
298
|
-
return;
|
|
307
|
+
const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);
|
|
308
|
+
const hoverSource = hoverRenderedPart?.hoverPart.source;
|
|
309
|
+
if (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {
|
|
310
|
+
return undefined;
|
|
299
311
|
}
|
|
300
|
-
const hoverSource = hoverRenderedPart.hoverSource;
|
|
301
312
|
const newHover = await this._fetchHover(hoverSource, model, action);
|
|
302
313
|
if (!newHover) {
|
|
303
|
-
return;
|
|
314
|
+
return undefined;
|
|
304
315
|
}
|
|
305
316
|
const newHoverSource = ( (new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition)));
|
|
306
|
-
const
|
|
307
|
-
|
|
317
|
+
const initialHoverPart = hoverRenderedPart.hoverPart;
|
|
318
|
+
const newHoverPart = ( (new MarkdownHover(
|
|
319
|
+
this._hoverParticipant,
|
|
320
|
+
initialHoverPart.range,
|
|
321
|
+
newHover.contents,
|
|
322
|
+
initialHoverPart.isBeforeContent,
|
|
323
|
+
initialHoverPart.ordinal,
|
|
324
|
+
newHoverSource
|
|
325
|
+
)));
|
|
326
|
+
const newHoverRenderedPart = this._renderHoverPart(newHoverPart, this._onFinishedRendering);
|
|
327
|
+
this._replaceRenderedHoverPartAtIndex(index, newHoverRenderedPart, newHoverPart);
|
|
308
328
|
if (focus) {
|
|
309
|
-
this._focusOnHoverPartWithIndex(
|
|
329
|
+
this._focusOnHoverPartWithIndex(index);
|
|
310
330
|
}
|
|
311
|
-
|
|
331
|
+
return {
|
|
332
|
+
hoverPart: newHoverPart,
|
|
333
|
+
hoverElement: newHoverRenderedPart.hoverElement
|
|
334
|
+
};
|
|
312
335
|
}
|
|
313
|
-
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
336
|
+
getAccessibleContent(hoverPart) {
|
|
337
|
+
const renderedHoverPartIndex = this.renderedHoverParts.findIndex(renderedHoverPart => renderedHoverPart.hoverPart === hoverPart);
|
|
338
|
+
if (renderedHoverPartIndex === -1) {
|
|
339
|
+
return undefined;
|
|
340
|
+
}
|
|
341
|
+
const renderedHoverPart = this._getRenderedHoverPartAtIndex(renderedHoverPartIndex);
|
|
342
|
+
if (!renderedHoverPart) {
|
|
343
|
+
return undefined;
|
|
344
|
+
}
|
|
345
|
+
const hoverElementInnerText = renderedHoverPart.hoverElement.innerText;
|
|
346
|
+
const accessibleContent = hoverElementInnerText.replace(/[^\S\n\r]+/gu, ' ');
|
|
347
|
+
return accessibleContent;
|
|
319
348
|
}
|
|
320
349
|
doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {
|
|
321
350
|
const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);
|
|
322
|
-
|
|
351
|
+
const hoverSource = hoverRenderedPart?.hoverPart.source;
|
|
352
|
+
if (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {
|
|
323
353
|
return false;
|
|
324
354
|
}
|
|
325
355
|
return true;
|
|
@@ -346,49 +376,67 @@ class MarkdownRenderedHoverParts extends Disposable {
|
|
|
346
376
|
this._ongoingHoverOperations.delete(provider);
|
|
347
377
|
return hover;
|
|
348
378
|
}
|
|
349
|
-
_replaceRenderedHoverPartAtIndex(index, renderedHoverPart) {
|
|
350
|
-
if (index >= this.
|
|
379
|
+
_replaceRenderedHoverPartAtIndex(index, renderedHoverPart, hoverPart) {
|
|
380
|
+
if (index >= this.renderedHoverParts.length || index < 0) {
|
|
351
381
|
return;
|
|
352
382
|
}
|
|
353
|
-
const currentRenderedHoverPart = this.
|
|
354
|
-
const currentRenderedMarkdown = currentRenderedHoverPart.
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
383
|
+
const currentRenderedHoverPart = this.renderedHoverParts[index];
|
|
384
|
+
const currentRenderedMarkdown = currentRenderedHoverPart.hoverElement;
|
|
385
|
+
const renderedMarkdown = renderedHoverPart.hoverElement;
|
|
386
|
+
const renderedChildrenElements = Array.from(renderedMarkdown.children);
|
|
387
|
+
currentRenderedMarkdown.replaceChildren(...renderedChildrenElements);
|
|
388
|
+
const newRenderedHoverPart = ( (new RenderedMarkdownHoverPart(hoverPart, currentRenderedMarkdown, renderedHoverPart.disposables)));
|
|
389
|
+
currentRenderedMarkdown.focus();
|
|
390
|
+
currentRenderedHoverPart.dispose();
|
|
391
|
+
this.renderedHoverParts[index] = newRenderedHoverPart;
|
|
358
392
|
}
|
|
359
393
|
_focusOnHoverPartWithIndex(index) {
|
|
360
|
-
this.
|
|
394
|
+
this.renderedHoverParts[index].hoverElement.focus();
|
|
361
395
|
}
|
|
362
396
|
_getRenderedHoverPartAtIndex(index) {
|
|
363
|
-
return this.
|
|
397
|
+
return this.renderedHoverParts[index];
|
|
398
|
+
}
|
|
399
|
+
dispose() {
|
|
400
|
+
this._disposables.dispose();
|
|
364
401
|
}
|
|
365
402
|
}
|
|
366
|
-
function renderMarkdownHovers(context,
|
|
367
|
-
|
|
368
|
-
const
|
|
369
|
-
for (const
|
|
370
|
-
|
|
403
|
+
function renderMarkdownHovers(context, markdownHovers, editor, languageService, openerService) {
|
|
404
|
+
markdownHovers.sort(compareBy(hover => hover.ordinal, numberComparator));
|
|
405
|
+
const renderedHoverParts = [];
|
|
406
|
+
for (const markdownHover of markdownHovers) {
|
|
407
|
+
renderedHoverParts.push(renderMarkdownInContainer(editor, markdownHover, languageService, openerService, context.onContentsChanged));
|
|
371
408
|
}
|
|
372
|
-
return
|
|
409
|
+
return (
|
|
410
|
+
(new RenderedHoverParts(renderedHoverParts))
|
|
411
|
+
);
|
|
373
412
|
}
|
|
374
|
-
function renderMarkdownInContainer(editor,
|
|
375
|
-
const
|
|
376
|
-
|
|
377
|
-
|
|
413
|
+
function renderMarkdownInContainer(editor, markdownHover, languageService, openerService, onFinishedRendering) {
|
|
414
|
+
const disposables = ( (new DisposableStore()));
|
|
415
|
+
const renderedMarkdown = $('div.hover-row');
|
|
416
|
+
const renderedMarkdownContents = $('div.hover-row-contents');
|
|
417
|
+
renderedMarkdown.appendChild(renderedMarkdownContents);
|
|
418
|
+
const markdownStrings = markdownHover.contents;
|
|
419
|
+
for (const markdownString of markdownStrings) {
|
|
420
|
+
if (isEmptyMarkdownString(markdownString)) {
|
|
378
421
|
continue;
|
|
379
422
|
}
|
|
380
423
|
const markdownHoverElement = $('div.markdown-hover');
|
|
381
424
|
const hoverContentsElement = append(markdownHoverElement, $('div.hover-contents'));
|
|
382
|
-
const renderer =
|
|
383
|
-
|
|
425
|
+
const renderer = disposables.add(( (new MarkdownRenderer({ editor }, languageService, openerService))));
|
|
426
|
+
disposables.add(renderer.onDidRenderAsync(() => {
|
|
384
427
|
hoverContentsElement.className = 'hover-contents code-hover-contents';
|
|
385
428
|
onFinishedRendering();
|
|
386
429
|
}));
|
|
387
|
-
const renderedContents =
|
|
430
|
+
const renderedContents = disposables.add(renderer.render(markdownString));
|
|
388
431
|
hoverContentsElement.appendChild(renderedContents.element);
|
|
389
|
-
|
|
432
|
+
renderedMarkdownContents.appendChild(markdownHoverElement);
|
|
390
433
|
}
|
|
391
|
-
|
|
434
|
+
const renderedHoverPart = {
|
|
435
|
+
hoverPart: markdownHover,
|
|
436
|
+
hoverElement: renderedMarkdown,
|
|
437
|
+
dispose() { disposables.dispose(); }
|
|
438
|
+
};
|
|
439
|
+
return renderedHoverPart;
|
|
392
440
|
}
|
|
393
441
|
function labelForHoverVerbosityAction(keybindingService, action) {
|
|
394
442
|
switch (action) {
|
|
@@ -14,7 +14,7 @@ import { quickFixCommandId, getCodeActions } from '../../codeAction/browser/code
|
|
|
14
14
|
import { CodeActionController } from '../../codeAction/browser/codeActionController.js';
|
|
15
15
|
import { CodeActionKind, CodeActionTriggerSource } from '../../codeAction/common/types.js';
|
|
16
16
|
import { MarkerController, NextMarkerAction } from '../../gotoError/browser/gotoError.js';
|
|
17
|
-
import { HoverAnchorType } from './hoverTypes.js';
|
|
17
|
+
import { HoverAnchorType, RenderedHoverParts } from './hoverTypes.js';
|
|
18
18
|
import { localizeWithPath } from '../../../../nls.js';
|
|
19
19
|
import { MarkerSeverity, IMarkerData } from '../../../../platform/markers/common/markers.js';
|
|
20
20
|
import { IOpenerService } from '../../../../platform/opener/common/opener.service.js';
|
|
@@ -74,17 +74,29 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
|
|
|
74
74
|
}
|
|
75
75
|
renderHoverParts(context, hoverParts) {
|
|
76
76
|
if (!hoverParts.length) {
|
|
77
|
-
return
|
|
77
|
+
return (
|
|
78
|
+
(new RenderedHoverParts([]))
|
|
79
|
+
);
|
|
78
80
|
}
|
|
79
81
|
const disposables = ( (new DisposableStore()));
|
|
80
|
-
|
|
82
|
+
const renderedHoverParts = [];
|
|
83
|
+
hoverParts.forEach(hoverPart => {
|
|
84
|
+
const renderedMarkerHover = this._renderMarkerHover(hoverPart);
|
|
85
|
+
context.fragment.appendChild(renderedMarkerHover.hoverElement);
|
|
86
|
+
renderedHoverParts.push(renderedMarkerHover);
|
|
87
|
+
});
|
|
81
88
|
const markerHoverForStatusbar = hoverParts.length === 1 ? hoverParts[0] : hoverParts.sort((a, b) => MarkerSeverity.compare(a.marker.severity, b.marker.severity))[0];
|
|
82
89
|
this.renderMarkerStatusbar(context, markerHoverForStatusbar, disposables);
|
|
83
|
-
return
|
|
90
|
+
return (
|
|
91
|
+
(new RenderedHoverParts(renderedHoverParts))
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
getAccessibleContent(hoverPart) {
|
|
95
|
+
return hoverPart.marker.message;
|
|
84
96
|
}
|
|
85
|
-
|
|
97
|
+
_renderMarkerHover(markerHover) {
|
|
98
|
+
const disposables = ( (new DisposableStore()));
|
|
86
99
|
const hoverElement = $('div.hover-row');
|
|
87
|
-
hoverElement.tabIndex = 0;
|
|
88
100
|
const markerElement = append(hoverElement, $('div.marker.hover-contents'));
|
|
89
101
|
const { source, message, code, relatedInformation } = markerHover.marker;
|
|
90
102
|
this._editor.applyFontInfo(markerElement);
|
|
@@ -140,7 +152,12 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
|
|
|
140
152
|
this._editor.applyFontInfo(messageElement);
|
|
141
153
|
}
|
|
142
154
|
}
|
|
143
|
-
|
|
155
|
+
const renderedHoverPart = {
|
|
156
|
+
hoverPart: markerHover,
|
|
157
|
+
hoverElement,
|
|
158
|
+
dispose: () => disposables.dispose()
|
|
159
|
+
};
|
|
160
|
+
return renderedHoverPart;
|
|
144
161
|
}
|
|
145
162
|
renderMarkerStatusbar(context, markerHover, disposables) {
|
|
146
163
|
if (markerHover.marker.severity === MarkerSeverity.Error || markerHover.marker.severity === MarkerSeverity.Warning || markerHover.marker.severity === MarkerSeverity.Info) {
|
|
@@ -337,6 +337,10 @@ let AutoIndentOnPaste = class AutoIndentOnPaste {
|
|
|
337
337
|
if (!model) {
|
|
338
338
|
return;
|
|
339
339
|
}
|
|
340
|
+
const containsOnlyWhitespace = this.rangeContainsOnlyWhitespaceCharacters(model, range);
|
|
341
|
+
if (containsOnlyWhitespace) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
340
344
|
if (isStartOrEndInString(model, range)) {
|
|
341
345
|
return;
|
|
342
346
|
}
|
|
@@ -378,7 +382,7 @@ let AutoIndentOnPaste = class AutoIndentOnPaste {
|
|
|
378
382
|
range: ( (new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1))),
|
|
379
383
|
text: newIndent
|
|
380
384
|
});
|
|
381
|
-
firstLineText = newIndent + firstLineText.
|
|
385
|
+
firstLineText = newIndent + firstLineText.substring(oldIndentation.length);
|
|
382
386
|
}
|
|
383
387
|
else {
|
|
384
388
|
const indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);
|
|
@@ -447,6 +451,37 @@ let AutoIndentOnPaste = class AutoIndentOnPaste {
|
|
|
447
451
|
this.editor.pushUndoStop();
|
|
448
452
|
}
|
|
449
453
|
}
|
|
454
|
+
rangeContainsOnlyWhitespaceCharacters(model, range) {
|
|
455
|
+
const lineContainsOnlyWhitespace = (content) => {
|
|
456
|
+
return content.trim().length === 0;
|
|
457
|
+
};
|
|
458
|
+
let containsOnlyWhitespace = true;
|
|
459
|
+
if (range.startLineNumber === range.endLineNumber) {
|
|
460
|
+
const lineContent = model.getLineContent(range.startLineNumber);
|
|
461
|
+
const linePart = lineContent.substring(range.startColumn - 1, range.endColumn - 1);
|
|
462
|
+
containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
for (let i = range.startLineNumber; i <= range.endLineNumber; i++) {
|
|
466
|
+
const lineContent = model.getLineContent(i);
|
|
467
|
+
if (i === range.startLineNumber) {
|
|
468
|
+
const linePart = lineContent.substring(range.startColumn - 1);
|
|
469
|
+
containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);
|
|
470
|
+
}
|
|
471
|
+
else if (i === range.endLineNumber) {
|
|
472
|
+
const linePart = lineContent.substring(0, range.endColumn - 1);
|
|
473
|
+
containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
containsOnlyWhitespace = model.getLineFirstNonWhitespaceColumn(i) === 0;
|
|
477
|
+
}
|
|
478
|
+
if (!containsOnlyWhitespace) {
|
|
479
|
+
break;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
return containsOnlyWhitespace;
|
|
484
|
+
}
|
|
450
485
|
shouldIgnoreLine(model, lineNumber) {
|
|
451
486
|
model.tokenization.forceTokenization(lineNumber);
|
|
452
487
|
const nonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);
|
|
@@ -20,6 +20,7 @@ import { asCommandLink } from './inlayHints.js';
|
|
|
20
20
|
import { isNonEmptyArray } from '../../../../base/common/arrays.js';
|
|
21
21
|
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.service.js';
|
|
22
22
|
import { IHoverService } from '../../../../platform/hover/browser/hover.service.js';
|
|
23
|
+
import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
|
|
23
24
|
const _moduleId = "vs/editor/contrib/inlayHints/browser/inlayHintsHover";
|
|
24
25
|
class InlayHintsHoverAnchor extends HoverForeignElementAnchor {
|
|
25
26
|
constructor(part, owner, initialMousePosX, initialMousePosY) {
|
|
@@ -28,8 +29,8 @@ class InlayHintsHoverAnchor extends HoverForeignElementAnchor {
|
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
let InlayHintsHover = class InlayHintsHover extends MarkdownHoverParticipant {
|
|
31
|
-
constructor(editor, languageService, openerService, keybindingService, hoverService, configurationService, _resolverService, languageFeaturesService) {
|
|
32
|
-
super(editor, languageService, openerService, configurationService, languageFeaturesService, keybindingService, hoverService);
|
|
32
|
+
constructor(editor, languageService, openerService, keybindingService, hoverService, configurationService, _resolverService, languageFeaturesService, commandService) {
|
|
33
|
+
super(editor, languageService, openerService, configurationService, languageFeaturesService, keybindingService, hoverService, commandService);
|
|
33
34
|
this._resolverService = _resolverService;
|
|
34
35
|
this.hoverOrdinal = 6;
|
|
35
36
|
}
|
|
@@ -153,6 +154,7 @@ InlayHintsHover = ( (__decorate([
|
|
|
153
154
|
( (__param(4, IHoverService))),
|
|
154
155
|
( (__param(5, IConfigurationService))),
|
|
155
156
|
( (__param(6, ITextModelService))),
|
|
156
|
-
( (__param(7, ILanguageFeaturesService)))
|
|
157
|
+
( (__param(7, ILanguageFeaturesService))),
|
|
158
|
+
( (__param(8, ICommandService)))
|
|
157
159
|
], InlayHintsHover)));
|
|
158
160
|
export { InlayHintsHover };
|
|
@@ -31,7 +31,7 @@ let GhostTextWidget = class GhostTextWidget extends Disposable {
|
|
|
31
31
|
this.model = model;
|
|
32
32
|
this.languageService = languageService;
|
|
33
33
|
this.isDisposed = observableValue(this, false);
|
|
34
|
-
this.currentTextModel = observableFromEvent(this.editor.onDidChangeModel, () => this.editor.getModel());
|
|
34
|
+
this.currentTextModel = observableFromEvent(this, this.editor.onDidChangeModel, () => this.editor.getModel());
|
|
35
35
|
this.uiState = derived(this, reader => {
|
|
36
36
|
if (this.isDisposed.read(reader)) {
|
|
37
37
|
return undefined;
|
|
@@ -11,7 +11,7 @@ import { MouseTargetType } from '../../../browser/editorBrowser.js';
|
|
|
11
11
|
import { EditorOption } from '../../../common/config/editorOptions.js';
|
|
12
12
|
import { Range } from '../../../common/core/range.js';
|
|
13
13
|
import { ILanguageService } from '../../../common/languages/language.js';
|
|
14
|
-
import { HoverForeignElementAnchor, HoverAnchorType } from '../../hover/browser/hoverTypes.js';
|
|
14
|
+
import { HoverForeignElementAnchor, RenderedHoverParts, HoverAnchorType } from '../../hover/browser/hoverTypes.js';
|
|
15
15
|
import { InlineCompletionsController } from './inlineCompletionsController.js';
|
|
16
16
|
import { InlineSuggestionHintsContentWidget } from './inlineCompletionsHintsWidget.js';
|
|
17
17
|
import { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';
|
|
@@ -106,34 +106,46 @@ let InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant
|
|
|
106
106
|
return [];
|
|
107
107
|
}
|
|
108
108
|
renderHoverParts(context, hoverParts) {
|
|
109
|
-
const
|
|
109
|
+
const disposables = ( (new DisposableStore()));
|
|
110
110
|
const part = hoverParts[0];
|
|
111
111
|
this._telemetryService.publicLog2('inlineCompletionHover.shown');
|
|
112
112
|
if (this.accessibilityService.isScreenReaderOptimized() && !this._editor.getOption(EditorOption.screenReaderAnnounceInlineSuggestion)) {
|
|
113
|
-
this.renderScreenReaderText(context, part
|
|
113
|
+
disposables.add(this.renderScreenReaderText(context, part));
|
|
114
114
|
}
|
|
115
115
|
const model = part.controller.model.get();
|
|
116
116
|
const w = this._instantiationService.createInstance(InlineSuggestionHintsContentWidget, this._editor, false, constObservable(null), model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands);
|
|
117
|
-
|
|
117
|
+
const widgetNode = w.getDomNode();
|
|
118
|
+
context.fragment.appendChild(widgetNode);
|
|
118
119
|
model.triggerExplicitly();
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
disposables.add(w);
|
|
121
|
+
const renderedHoverPart = {
|
|
122
|
+
hoverPart: part,
|
|
123
|
+
hoverElement: widgetNode,
|
|
124
|
+
dispose() { disposables.dispose(); }
|
|
125
|
+
};
|
|
126
|
+
return (
|
|
127
|
+
(new RenderedHoverParts([renderedHoverPart]))
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
getAccessibleContent(hoverPart) {
|
|
131
|
+
return ( localizeWithPath(_moduleId, 0, 'There are inline completions here'));
|
|
121
132
|
}
|
|
122
|
-
renderScreenReaderText(context, part
|
|
133
|
+
renderScreenReaderText(context, part) {
|
|
134
|
+
const disposables = ( (new DisposableStore()));
|
|
123
135
|
const $$1 = $;
|
|
124
136
|
const markdownHoverElement = $$1('div.hover-row.markdown-hover');
|
|
125
137
|
const hoverContentsElement = append(markdownHoverElement, $$1('div.hover-contents', { ['aria-live']: 'assertive' }));
|
|
126
|
-
const renderer =
|
|
138
|
+
const renderer = disposables.add(( (new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService))));
|
|
127
139
|
const render = (code) => {
|
|
128
|
-
|
|
140
|
+
disposables.add(renderer.onDidRenderAsync(() => {
|
|
129
141
|
hoverContentsElement.className = 'hover-contents code-hover-contents';
|
|
130
142
|
context.onContentsChanged();
|
|
131
143
|
}));
|
|
132
|
-
const inlineSuggestionAvailable = ( localizeWithPath(_moduleId,
|
|
133
|
-
const renderedContents =
|
|
144
|
+
const inlineSuggestionAvailable = ( localizeWithPath(_moduleId, 1, "Suggestion:"));
|
|
145
|
+
const renderedContents = disposables.add(renderer.render(( (new MarkdownString())).appendText(inlineSuggestionAvailable).appendCodeblock('text', code)));
|
|
134
146
|
hoverContentsElement.replaceChildren(renderedContents.element);
|
|
135
147
|
};
|
|
136
|
-
|
|
148
|
+
disposables.add(autorun(reader => {
|
|
137
149
|
const ghostText = part.controller.model.read(reader)?.primaryGhostText.read(reader);
|
|
138
150
|
if (ghostText) {
|
|
139
151
|
const lineText = this._editor.getModel().getLineContent(ghostText.lineNumber);
|
|
@@ -144,6 +156,7 @@ let InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant
|
|
|
144
156
|
}
|
|
145
157
|
}));
|
|
146
158
|
context.fragment.appendChild(markdownHoverElement);
|
|
159
|
+
return disposables;
|
|
147
160
|
}
|
|
148
161
|
};
|
|
149
162
|
InlineCompletionsHoverParticipant = ( (__decorate([
|