@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
|
@@ -11,7 +11,6 @@ import { EditorOption } from '../../../common/config/editorOptions.js';
|
|
|
11
11
|
import { computeIndentLevel } from '../../../common/model/utils.js';
|
|
12
12
|
import { autoFixCommandId, quickFixCommandId } from './codeAction.js';
|
|
13
13
|
import { localizeWithPath } from '../../../../nls.js';
|
|
14
|
-
import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
|
|
15
14
|
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.service.js';
|
|
16
15
|
var LightBulbWidget_1;
|
|
17
16
|
const _moduleId = "vs/editor/contrib/codeAction/browser/lightBulbWidget";
|
|
@@ -38,7 +37,7 @@ let LightBulbWidget = class LightBulbWidget extends Disposable {
|
|
|
38
37
|
static { LightBulbWidget_1 = this; }
|
|
39
38
|
static { this.ID = 'editor.contrib.lightbulbWidget'; }
|
|
40
39
|
static { this._posPref = [ContentWidgetPositionPreference.EXACT]; }
|
|
41
|
-
constructor(_editor, _keybindingService
|
|
40
|
+
constructor(_editor, _keybindingService) {
|
|
42
41
|
super();
|
|
43
42
|
this._editor = _editor;
|
|
44
43
|
this._keybindingService = _keybindingService;
|
|
@@ -124,8 +123,23 @@ let LightBulbWidget = class LightBulbWidget extends Disposable {
|
|
|
124
123
|
let effectiveLineNumber = lineNumber;
|
|
125
124
|
let effectiveColumnNumber = 1;
|
|
126
125
|
if (!lineHasSpace) {
|
|
126
|
+
const isLineEmptyOrIndented = (lineNumber) => {
|
|
127
|
+
const lineContent = model.getLineContent(lineNumber);
|
|
128
|
+
return /^\s*$|^\s+/.test(lineContent) || lineContent.length <= effectiveColumnNumber;
|
|
129
|
+
};
|
|
127
130
|
if (lineNumber > 1 && !isFolded(lineNumber - 1)) {
|
|
128
|
-
|
|
131
|
+
const lineCount = model.getLineCount();
|
|
132
|
+
const endLine = lineNumber === lineCount;
|
|
133
|
+
const prevLineEmptyOrIndented = lineNumber > 1 && isLineEmptyOrIndented(lineNumber - 1);
|
|
134
|
+
const nextLineEmptyOrIndented = !endLine && isLineEmptyOrIndented(lineNumber + 1);
|
|
135
|
+
const currLineEmptyOrIndented = isLineEmptyOrIndented(lineNumber);
|
|
136
|
+
const notEmpty = !nextLineEmptyOrIndented && !prevLineEmptyOrIndented;
|
|
137
|
+
if (prevLineEmptyOrIndented || endLine || (notEmpty && !currLineEmptyOrIndented)) {
|
|
138
|
+
effectiveLineNumber -= 1;
|
|
139
|
+
}
|
|
140
|
+
else if (nextLineEmptyOrIndented || (notEmpty && currLineEmptyOrIndented)) {
|
|
141
|
+
effectiveLineNumber += 1;
|
|
142
|
+
}
|
|
129
143
|
}
|
|
130
144
|
else if ((lineNumber < model.getLineCount()) && !isFolded(lineNumber + 1)) {
|
|
131
145
|
effectiveLineNumber += 1;
|
|
@@ -218,7 +232,6 @@ let LightBulbWidget = class LightBulbWidget extends Disposable {
|
|
|
218
232
|
}
|
|
219
233
|
};
|
|
220
234
|
LightBulbWidget = LightBulbWidget_1 = ( (__decorate([
|
|
221
|
-
( (__param(1, IKeybindingService)))
|
|
222
|
-
( (__param(2, ICommandService)))
|
|
235
|
+
( (__param(1, IKeybindingService)))
|
|
223
236
|
], LightBulbWidget)));
|
|
224
237
|
export { LightBulbWidget };
|
|
@@ -2,7 +2,7 @@ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.e
|
|
|
2
2
|
import { AsyncIterableObject } from '../../../../base/common/async.js';
|
|
3
3
|
import { CancellationToken } from '../../../../base/common/cancellation.js';
|
|
4
4
|
import { Color, RGBA } from '../../../../base/common/color.js';
|
|
5
|
-
import {
|
|
5
|
+
import { DisposableStore } from '../../../../base/common/lifecycle.js';
|
|
6
6
|
import { EditorOption } from '../../../common/config/editorOptions.js';
|
|
7
7
|
import { Range } from '../../../common/core/range.js';
|
|
8
8
|
import { TrackedRangeStickiness } from '../../../common/model.js';
|
|
@@ -10,9 +10,11 @@ import { getColors, getColorPresentations } from './color.js';
|
|
|
10
10
|
import { ColorDetector } from './colorDetector.js';
|
|
11
11
|
import { ColorPickerModel } from './colorPickerModel.js';
|
|
12
12
|
import { ColorPickerWidget } from './colorPickerWidget.js';
|
|
13
|
-
import { HoverAnchorType } from '../../hover/browser/hoverTypes.js';
|
|
13
|
+
import { RenderedHoverParts, HoverAnchorType } from '../../hover/browser/hoverTypes.js';
|
|
14
14
|
import { IThemeService } from '../../../../platform/theme/common/themeService.service.js';
|
|
15
15
|
import { Dimension } from '../../../../base/browser/dom.js';
|
|
16
|
+
import { localizeWithPath } from '../../../../nls.js';
|
|
17
|
+
const _moduleId = "vs/editor/contrib/colorPicker/browser/colorHoverParticipant";
|
|
16
18
|
class ColorHover {
|
|
17
19
|
constructor(owner, range, model, provider) {
|
|
18
20
|
this.owner = owner;
|
|
@@ -60,12 +62,35 @@ let ColorHoverParticipant = class ColorHoverParticipant {
|
|
|
60
62
|
return [];
|
|
61
63
|
}
|
|
62
64
|
renderHoverParts(context, hoverParts) {
|
|
63
|
-
|
|
65
|
+
const renderedPart = renderHoverParts(this, this._editor, this._themeService, hoverParts, context);
|
|
66
|
+
if (!renderedPart) {
|
|
67
|
+
return (
|
|
68
|
+
(new RenderedHoverParts([]))
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
this._colorPicker = renderedPart.colorPicker;
|
|
72
|
+
const renderedHoverPart = {
|
|
73
|
+
hoverPart: renderedPart.hoverPart,
|
|
74
|
+
hoverElement: this._colorPicker.domNode,
|
|
75
|
+
dispose() { renderedPart.disposables.dispose(); }
|
|
76
|
+
};
|
|
77
|
+
return (
|
|
78
|
+
(new RenderedHoverParts([renderedHoverPart]))
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
getAccessibleContent(hoverPart) {
|
|
82
|
+
return ( localizeWithPath(_moduleId, 0, 'There is a color picker here.'));
|
|
83
|
+
}
|
|
84
|
+
handleResize() {
|
|
85
|
+
this._colorPicker?.layout();
|
|
86
|
+
}
|
|
87
|
+
isColorPickerVisible() {
|
|
88
|
+
return !!this._colorPicker;
|
|
64
89
|
}
|
|
65
90
|
};
|
|
66
|
-
ColorHoverParticipant = ( __decorate([
|
|
67
|
-
( __param(1, IThemeService))
|
|
68
|
-
], ColorHoverParticipant));
|
|
91
|
+
ColorHoverParticipant = ( (__decorate([
|
|
92
|
+
( (__param(1, IThemeService)))
|
|
93
|
+
], ColorHoverParticipant)));
|
|
69
94
|
class StandaloneColorPickerHover {
|
|
70
95
|
constructor(owner, range, model, provider) {
|
|
71
96
|
this.owner = owner;
|
|
@@ -109,12 +134,12 @@ let StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant {
|
|
|
109
134
|
return;
|
|
110
135
|
}
|
|
111
136
|
const colorPickerModel = colorHoverData.model;
|
|
112
|
-
let range = ( new Range(
|
|
137
|
+
let range = ( (new Range(
|
|
113
138
|
colorHoverData.range.startLineNumber,
|
|
114
139
|
colorHoverData.range.startColumn,
|
|
115
140
|
colorHoverData.range.endLineNumber,
|
|
116
141
|
colorHoverData.range.endColumn
|
|
117
|
-
));
|
|
142
|
+
)));
|
|
118
143
|
if (this._color) {
|
|
119
144
|
await _updateColorPresentations(this._editor.getModel(), colorPickerModel, this._color, range, colorHoverData);
|
|
120
145
|
range = _updateEditorModel(this._editor, range, colorPickerModel);
|
|
@@ -130,59 +155,62 @@ let StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant {
|
|
|
130
155
|
return this._color;
|
|
131
156
|
}
|
|
132
157
|
};
|
|
133
|
-
StandaloneColorPickerParticipant = ( __decorate([
|
|
134
|
-
( __param(1, IThemeService))
|
|
135
|
-
], StandaloneColorPickerParticipant));
|
|
158
|
+
StandaloneColorPickerParticipant = ( (__decorate([
|
|
159
|
+
( (__param(1, IThemeService)))
|
|
160
|
+
], StandaloneColorPickerParticipant)));
|
|
136
161
|
async function _createColorHover(participant, editorModel, colorInfo, provider) {
|
|
137
162
|
const originalText = editorModel.getValueInRange(colorInfo.range);
|
|
138
163
|
const { red, green, blue, alpha } = colorInfo.color;
|
|
139
|
-
const rgba = ( new RGBA(
|
|
164
|
+
const rgba = ( (new RGBA(
|
|
140
165
|
Math.round(red * 255),
|
|
141
166
|
Math.round(green * 255),
|
|
142
167
|
Math.round(blue * 255),
|
|
143
168
|
alpha
|
|
144
|
-
));
|
|
145
|
-
const color = ( new Color(rgba));
|
|
169
|
+
)));
|
|
170
|
+
const color = ( (new Color(rgba)));
|
|
146
171
|
const colorPresentations = await getColorPresentations(editorModel, colorInfo, provider, CancellationToken.None);
|
|
147
|
-
const model = ( new ColorPickerModel(color, [], 0));
|
|
172
|
+
const model = ( (new ColorPickerModel(color, [], 0)));
|
|
148
173
|
model.colorPresentations = colorPresentations || [];
|
|
149
174
|
model.guessColorPresentation(color, originalText);
|
|
150
175
|
if (participant instanceof ColorHoverParticipant) {
|
|
151
|
-
return (
|
|
176
|
+
return (
|
|
177
|
+
(new ColorHover(participant, Range.lift(colorInfo.range), model, provider))
|
|
178
|
+
);
|
|
152
179
|
}
|
|
153
180
|
else {
|
|
154
|
-
return (
|
|
181
|
+
return (
|
|
182
|
+
(new StandaloneColorPickerHover(participant, Range.lift(colorInfo.range), model, provider))
|
|
183
|
+
);
|
|
155
184
|
}
|
|
156
185
|
}
|
|
157
186
|
function renderHoverParts(participant, editor, themeService, hoverParts, context) {
|
|
158
187
|
if (hoverParts.length === 0 || !editor.hasModel()) {
|
|
159
|
-
return
|
|
188
|
+
return undefined;
|
|
160
189
|
}
|
|
161
190
|
if (context.setMinimumDimensions) {
|
|
162
191
|
const minimumHeight = editor.getOption(EditorOption.lineHeight) + 8;
|
|
163
|
-
context.setMinimumDimensions(( new Dimension(302, minimumHeight)));
|
|
192
|
+
context.setMinimumDimensions(( (new Dimension(302, minimumHeight))));
|
|
164
193
|
}
|
|
165
|
-
const disposables = ( new DisposableStore());
|
|
194
|
+
const disposables = ( (new DisposableStore()));
|
|
166
195
|
const colorHover = hoverParts[0];
|
|
167
196
|
const editorModel = editor.getModel();
|
|
168
197
|
const model = colorHover.model;
|
|
169
|
-
const
|
|
198
|
+
const colorPicker = disposables.add(( (new ColorPickerWidget(
|
|
170
199
|
context.fragment,
|
|
171
200
|
model,
|
|
172
201
|
editor.getOption(EditorOption.pixelRatio),
|
|
173
202
|
themeService,
|
|
174
203
|
participant instanceof StandaloneColorPickerParticipant
|
|
175
|
-
)));
|
|
176
|
-
context.setColorPicker(widget);
|
|
204
|
+
))));
|
|
177
205
|
let editorUpdatedByColorPicker = false;
|
|
178
|
-
let range = ( new Range(
|
|
206
|
+
let range = ( (new Range(
|
|
179
207
|
colorHover.range.startLineNumber,
|
|
180
208
|
colorHover.range.startColumn,
|
|
181
209
|
colorHover.range.endLineNumber,
|
|
182
210
|
colorHover.range.endColumn
|
|
183
|
-
));
|
|
211
|
+
)));
|
|
184
212
|
if (participant instanceof StandaloneColorPickerParticipant) {
|
|
185
|
-
const color =
|
|
213
|
+
const color = colorHover.model.color;
|
|
186
214
|
participant.color = color;
|
|
187
215
|
_updateColorPresentations(editorModel, model, color, range, colorHover);
|
|
188
216
|
disposables.add(model.onColorFlushed((color) => {
|
|
@@ -208,7 +236,7 @@ function renderHoverParts(participant, editor, themeService, hoverParts, context
|
|
|
208
236
|
editor.focus();
|
|
209
237
|
}
|
|
210
238
|
}));
|
|
211
|
-
return disposables;
|
|
239
|
+
return { hoverPart: colorHover, colorPicker, disposables };
|
|
212
240
|
}
|
|
213
241
|
function _updateEditorModel(editor, range, model) {
|
|
214
242
|
const textEdits = [];
|
|
@@ -359,10 +359,10 @@ class ColorPickerWidget extends Widget {
|
|
|
359
359
|
this.model = model;
|
|
360
360
|
this.pixelRatio = pixelRatio;
|
|
361
361
|
this._register(PixelRatio.getInstance(getWindow(container)).onDidChange(() => this.layout()));
|
|
362
|
-
|
|
363
|
-
container.appendChild(
|
|
364
|
-
this.header = this._register(( (new ColorPickerHeader(
|
|
365
|
-
this.body = this._register(( (new ColorPickerBody(
|
|
362
|
+
this._domNode = $('.colorpicker-widget');
|
|
363
|
+
container.appendChild(this._domNode);
|
|
364
|
+
this.header = this._register(( (new ColorPickerHeader(this._domNode, this.model, themeService, standaloneColorPicker))));
|
|
365
|
+
this.body = this._register(( (new ColorPickerBody(this._domNode, this.model, this.pixelRatio, standaloneColorPicker))));
|
|
366
366
|
}
|
|
367
367
|
getId() {
|
|
368
368
|
return ColorPickerWidget.ID;
|
|
@@ -370,5 +370,8 @@ class ColorPickerWidget extends Widget {
|
|
|
370
370
|
layout() {
|
|
371
371
|
this.body.layout();
|
|
372
372
|
}
|
|
373
|
+
get domNode() {
|
|
374
|
+
return this._domNode;
|
|
375
|
+
}
|
|
373
376
|
}
|
|
374
377
|
export { ColorPickerBody, ColorPickerHeader, ColorPickerWidget, InsertButton };
|
|
@@ -194,39 +194,39 @@ let StandaloneColorPickerWidget = class StandaloneColorPickerWidget extends Disp
|
|
|
194
194
|
_render(colorHover, foundInEditor) {
|
|
195
195
|
const fragment = document.createDocumentFragment();
|
|
196
196
|
const statusBar = this._register(( new EditorHoverStatusBar(this._keybindingService)));
|
|
197
|
-
let colorPickerWidget;
|
|
198
197
|
const context = {
|
|
199
198
|
fragment,
|
|
200
199
|
statusBar,
|
|
201
|
-
setColorPicker: (widget) => colorPickerWidget = widget,
|
|
202
200
|
onContentsChanged: () => { },
|
|
203
201
|
hide: () => this.hide()
|
|
204
202
|
};
|
|
205
203
|
this._colorHover = colorHover;
|
|
206
|
-
this.
|
|
207
|
-
if (
|
|
204
|
+
const renderedHoverPart = this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]);
|
|
205
|
+
if (!renderedHoverPart) {
|
|
208
206
|
return;
|
|
209
207
|
}
|
|
208
|
+
this._register(renderedHoverPart.disposables);
|
|
209
|
+
const colorPicker = renderedHoverPart.colorPicker;
|
|
210
210
|
this._body.classList.add('standalone-colorpicker-body');
|
|
211
211
|
this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px';
|
|
212
212
|
this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px';
|
|
213
213
|
this._body.tabIndex = 0;
|
|
214
214
|
this._body.appendChild(fragment);
|
|
215
|
-
|
|
216
|
-
const colorPickerBody =
|
|
215
|
+
colorPicker.layout();
|
|
216
|
+
const colorPickerBody = colorPicker.body;
|
|
217
217
|
const saturationBoxWidth = colorPickerBody.saturationBox.domNode.clientWidth;
|
|
218
218
|
const widthOfOriginalColorBox = colorPickerBody.domNode.clientWidth - saturationBoxWidth - CLOSE_BUTTON_WIDTH - PADDING;
|
|
219
|
-
const enterButton =
|
|
219
|
+
const enterButton = colorPicker.body.enterButton;
|
|
220
220
|
enterButton?.onClicked(() => {
|
|
221
221
|
this.updateEditor();
|
|
222
222
|
this.hide();
|
|
223
223
|
});
|
|
224
|
-
const colorPickerHeader =
|
|
224
|
+
const colorPickerHeader = colorPicker.header;
|
|
225
225
|
const pickedColorNode = colorPickerHeader.pickedColorNode;
|
|
226
226
|
pickedColorNode.style.width = saturationBoxWidth + PADDING + 'px';
|
|
227
227
|
const originalColorNode = colorPickerHeader.originalColorNode;
|
|
228
228
|
originalColorNode.style.width = widthOfOriginalColorBox + 'px';
|
|
229
|
-
const closeButton =
|
|
229
|
+
const closeButton = colorPicker.header.closeButton;
|
|
230
230
|
closeButton?.onClicked(() => {
|
|
231
231
|
this.hide();
|
|
232
232
|
});
|
|
@@ -169,7 +169,7 @@ let ContextMenuController = class ContextMenuController {
|
|
|
169
169
|
const useShadowDOM = this._editor.getOption(EditorOption.useShadowDOM) && !isIOS;
|
|
170
170
|
this._contextMenuIsBeingShownCount++;
|
|
171
171
|
this._contextMenuService.showContextMenu({
|
|
172
|
-
domForShadowRoot: useShadowDOM ? this._editor.getDomNode() : undefined,
|
|
172
|
+
domForShadowRoot: useShadowDOM ? this._editor.getOverflowWidgetsDomNode() ?? this._editor.getDomNode() : undefined,
|
|
173
173
|
getAnchor: () => anchor,
|
|
174
174
|
getActions: () => actions,
|
|
175
175
|
getActionViewItem: (action) => {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { addDisposableListener, getActiveDocument } from '../../../../base/browser/dom.js';
|
|
3
3
|
import { coalesce } from '../../../../base/common/arrays.js';
|
|
4
|
-
import { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';
|
|
4
|
+
import { createCancelablePromise, raceCancellation, DeferredPromise } from '../../../../base/common/async.js';
|
|
5
|
+
import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
|
|
5
6
|
import { matchesMimeType, createStringDataTransferItem, UriList } from '../../../../base/common/dataTransfer.js';
|
|
6
7
|
import { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';
|
|
7
|
-
import { Disposable } from '../../../../base/common/lifecycle.js';
|
|
8
|
+
import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
|
|
8
9
|
import { Mimes } from '../../../../base/common/mime.js';
|
|
9
10
|
import { isWeb, isWindows } from '../../../../base/common/platform.js';
|
|
10
11
|
import { generateUuid } from '../../../../base/common/uuid.js';
|
|
@@ -29,6 +30,7 @@ import { ProgressLocation } from '../../../../platform/progress/common/progress.
|
|
|
29
30
|
import { IProgressService } from '../../../../platform/progress/common/progress.service.js';
|
|
30
31
|
import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.service.js';
|
|
31
32
|
import { PostEditWidgetManager } from './postEditWidget.js';
|
|
33
|
+
import { isCancellationError, CancellationError } from '../../../../base/common/errors.js';
|
|
32
34
|
var CopyPasteController_1;
|
|
33
35
|
const _moduleId = "vs/editor/contrib/dropOrPasteInto/browser/copyPasteController";
|
|
34
36
|
const changePasteTypeCommandId = 'editor.changePasteType';
|
|
@@ -210,59 +212,100 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
210
212
|
)), selections[0].getStartPosition());
|
|
211
213
|
}
|
|
212
214
|
doPasteInline(allProviders, selections, dataTransfer, metadata, clipboardEvent) {
|
|
213
|
-
const
|
|
215
|
+
const editor = this._editor;
|
|
216
|
+
if (!editor.hasModel()) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const editorStateCts = ( (new EditorStateCancellationTokenSource(
|
|
220
|
+
editor,
|
|
221
|
+
CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection,
|
|
222
|
+
undefined
|
|
223
|
+
)));
|
|
224
|
+
const p = createCancelablePromise(async (pToken) => {
|
|
214
225
|
const editor = this._editor;
|
|
215
226
|
if (!editor.hasModel()) {
|
|
216
227
|
return;
|
|
217
228
|
}
|
|
218
229
|
const model = editor.getModel();
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
token
|
|
224
|
-
)));
|
|
230
|
+
const disposables = ( (new DisposableStore()));
|
|
231
|
+
const cts = disposables.add(( (new CancellationTokenSource(pToken))));
|
|
232
|
+
disposables.add(editorStateCts.token.onCancellationRequested(() => cts.cancel()));
|
|
233
|
+
const token = cts.token;
|
|
225
234
|
try {
|
|
226
|
-
await this.mergeInDataFromCopy(dataTransfer, metadata,
|
|
227
|
-
if (
|
|
235
|
+
await this.mergeInDataFromCopy(dataTransfer, metadata, token);
|
|
236
|
+
if (token.isCancellationRequested) {
|
|
228
237
|
return;
|
|
229
238
|
}
|
|
230
239
|
const supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));
|
|
231
240
|
if (!supportedProviders.length
|
|
232
241
|
|| (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider)
|
|
233
242
|
) {
|
|
234
|
-
return this.applyDefaultPasteHandler(dataTransfer, metadata,
|
|
243
|
+
return this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);
|
|
235
244
|
}
|
|
236
245
|
const context = {
|
|
237
246
|
triggerKind: DocumentPasteTriggerKind.Automatic,
|
|
238
247
|
};
|
|
239
|
-
const
|
|
240
|
-
|
|
248
|
+
const editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);
|
|
249
|
+
disposables.add(editSession);
|
|
250
|
+
if (token.isCancellationRequested) {
|
|
241
251
|
return;
|
|
242
252
|
}
|
|
243
|
-
if (
|
|
244
|
-
return this.applyDefaultPasteHandler(dataTransfer, metadata,
|
|
253
|
+
if (editSession.edits.length === 1 && editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {
|
|
254
|
+
return this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);
|
|
245
255
|
}
|
|
246
|
-
if (
|
|
256
|
+
if (editSession.edits.length) {
|
|
247
257
|
const canShowWidget = editor.getOption(EditorOption.pasteAs).showPasteSelector === 'afterPaste';
|
|
248
|
-
return this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: 0, allEdits:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
258
|
+
return this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: 0, allEdits: editSession.edits }, canShowWidget, (edit, token) => {
|
|
259
|
+
return (
|
|
260
|
+
(new Promise((resolve, reject) => {
|
|
261
|
+
(async () => {
|
|
262
|
+
try {
|
|
263
|
+
const resolveP = edit.provider.resolveDocumentPasteEdit?.(edit, token);
|
|
264
|
+
const showP = ( (new DeferredPromise()));
|
|
265
|
+
const resolved = resolveP && (await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), ( localizeWithPath(_moduleId, 3, "Resolving paste edit. Click to cancel")), Promise.race([showP.p, resolveP]), {
|
|
266
|
+
cancel: () => {
|
|
267
|
+
showP.cancel();
|
|
268
|
+
return reject(( (new CancellationError())));
|
|
269
|
+
}
|
|
270
|
+
}, 0));
|
|
271
|
+
if (resolved) {
|
|
272
|
+
edit.additionalEdit = resolved.additionalEdit;
|
|
273
|
+
}
|
|
274
|
+
return resolve(edit);
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
return reject(err);
|
|
278
|
+
}
|
|
279
|
+
})();
|
|
280
|
+
}))
|
|
281
|
+
);
|
|
282
|
+
}, token);
|
|
255
283
|
}
|
|
256
|
-
await this.applyDefaultPasteHandler(dataTransfer, metadata,
|
|
284
|
+
await this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);
|
|
257
285
|
}
|
|
258
286
|
finally {
|
|
259
|
-
|
|
287
|
+
disposables.dispose();
|
|
260
288
|
if (this._currentPasteOperation === p) {
|
|
261
289
|
this._currentPasteOperation = undefined;
|
|
262
290
|
}
|
|
263
291
|
}
|
|
264
292
|
});
|
|
265
|
-
this._pasteProgressManager.showWhile(selections[0].getEndPosition(), ( localizeWithPath(_moduleId,
|
|
293
|
+
this._pasteProgressManager.showWhile(selections[0].getEndPosition(), ( localizeWithPath(_moduleId, 4, "Running paste handlers. Click to cancel and do basic paste")), p, {
|
|
294
|
+
cancel: async () => {
|
|
295
|
+
try {
|
|
296
|
+
p.cancel();
|
|
297
|
+
if (editorStateCts.token.isCancellationRequested) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
await this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);
|
|
301
|
+
}
|
|
302
|
+
finally {
|
|
303
|
+
editorStateCts.dispose();
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}).then(() => {
|
|
307
|
+
editorStateCts.dispose();
|
|
308
|
+
});
|
|
266
309
|
this._currentPasteOperation = p;
|
|
267
310
|
}
|
|
268
311
|
showPasteAsPick(preference, allProviders, selections, dataTransfer, metadata) {
|
|
@@ -272,12 +315,13 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
272
315
|
return;
|
|
273
316
|
}
|
|
274
317
|
const model = editor.getModel();
|
|
275
|
-
const
|
|
318
|
+
const disposables = ( (new DisposableStore()));
|
|
319
|
+
const tokenSource = disposables.add(( (new EditorStateCancellationTokenSource(
|
|
276
320
|
editor,
|
|
277
321
|
CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection,
|
|
278
322
|
undefined,
|
|
279
323
|
token
|
|
280
|
-
)));
|
|
324
|
+
))));
|
|
281
325
|
try {
|
|
282
326
|
await this.mergeInDataFromCopy(dataTransfer, metadata, tokenSource.token);
|
|
283
327
|
if (tokenSource.token.isCancellationRequested) {
|
|
@@ -291,21 +335,24 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
291
335
|
triggerKind: DocumentPasteTriggerKind.PasteAs,
|
|
292
336
|
only: preference && preference instanceof HierarchicalKind ? preference : undefined,
|
|
293
337
|
};
|
|
294
|
-
let
|
|
338
|
+
let editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));
|
|
295
339
|
if (tokenSource.token.isCancellationRequested) {
|
|
296
340
|
return;
|
|
297
341
|
}
|
|
298
342
|
if (preference) {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
343
|
+
editSession = {
|
|
344
|
+
edits: editSession.edits.filter(edit => {
|
|
345
|
+
if (preference instanceof HierarchicalKind) {
|
|
346
|
+
return preference.contains(edit.kind);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
return preference.providerId === edit.provider.id;
|
|
350
|
+
}
|
|
351
|
+
}),
|
|
352
|
+
dispose: editSession.dispose
|
|
353
|
+
};
|
|
307
354
|
}
|
|
308
|
-
if (!
|
|
355
|
+
if (!editSession.edits.length) {
|
|
309
356
|
if (context.only) {
|
|
310
357
|
this.showPasteAsNoEditMessage(selections, context.only);
|
|
311
358
|
}
|
|
@@ -313,15 +360,15 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
313
360
|
}
|
|
314
361
|
let pickedEdit;
|
|
315
362
|
if (preference) {
|
|
316
|
-
pickedEdit =
|
|
363
|
+
pickedEdit = editSession.edits.at(0);
|
|
317
364
|
}
|
|
318
365
|
else {
|
|
319
|
-
const selected = await this._quickInputService.pick(( (
|
|
366
|
+
const selected = await this._quickInputService.pick(( (editSession.edits.map((edit) => ({
|
|
320
367
|
label: edit.title,
|
|
321
368
|
description: edit.kind?.value,
|
|
322
369
|
edit,
|
|
323
370
|
})))), {
|
|
324
|
-
placeHolder: ( localizeWithPath(_moduleId,
|
|
371
|
+
placeHolder: ( localizeWithPath(_moduleId, 5, "Select Paste Action")),
|
|
325
372
|
});
|
|
326
373
|
pickedEdit = selected?.edit;
|
|
327
374
|
}
|
|
@@ -332,7 +379,7 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
332
379
|
await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });
|
|
333
380
|
}
|
|
334
381
|
finally {
|
|
335
|
-
|
|
382
|
+
disposables.dispose();
|
|
336
383
|
if (this._currentPasteOperation === p) {
|
|
337
384
|
this._currentPasteOperation = undefined;
|
|
338
385
|
}
|
|
@@ -340,7 +387,7 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
340
387
|
});
|
|
341
388
|
this._progressService.withProgress({
|
|
342
389
|
location: ProgressLocation.Window,
|
|
343
|
-
title: ( localizeWithPath(_moduleId,
|
|
390
|
+
title: ( localizeWithPath(_moduleId, 6, "Running paste handlers")),
|
|
344
391
|
}, () => p);
|
|
345
392
|
}
|
|
346
393
|
setCopyMetadata(dataTransfer, metadata) {
|
|
@@ -392,20 +439,29 @@ let CopyPasteController = class CopyPasteController extends Disposable {
|
|
|
392
439
|
}
|
|
393
440
|
}
|
|
394
441
|
async getPasteEdits(providers, dataTransfer, model, selections, context, token) {
|
|
442
|
+
const disposables = ( (new DisposableStore()));
|
|
395
443
|
const results = await raceCancellation(Promise.all(( (providers.map(async (provider) => {
|
|
396
444
|
try {
|
|
397
445
|
const edits = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);
|
|
446
|
+
if (edits) {
|
|
447
|
+
disposables.add(edits);
|
|
448
|
+
}
|
|
398
449
|
return edits?.edits?.map(edit => ({ ...edit, provider }));
|
|
399
450
|
}
|
|
400
451
|
catch (err) {
|
|
401
|
-
|
|
452
|
+
if (!isCancellationError(err)) {
|
|
453
|
+
console.error(err);
|
|
454
|
+
}
|
|
455
|
+
return undefined;
|
|
402
456
|
}
|
|
403
|
-
return undefined;
|
|
404
457
|
})))), token);
|
|
405
458
|
const edits = coalesce(results ?? []).flat().filter(edit => {
|
|
406
459
|
return !context.only || context.only.contains(edit.kind);
|
|
407
460
|
});
|
|
408
|
-
return
|
|
461
|
+
return {
|
|
462
|
+
edits: sortEditsByYieldTo(edits),
|
|
463
|
+
dispose: () => disposables.dispose()
|
|
464
|
+
};
|
|
409
465
|
}
|
|
410
466
|
async applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent) {
|
|
411
467
|
const textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get('text');
|
|
@@ -19,13 +19,19 @@ class SimplePasteAndDropProvider {
|
|
|
19
19
|
return undefined;
|
|
20
20
|
}
|
|
21
21
|
return {
|
|
22
|
+
edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }],
|
|
22
23
|
dispose() { },
|
|
23
|
-
edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }]
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
async provideDocumentDropEdits(_model, _position, dataTransfer, token) {
|
|
27
27
|
const edit = await this.getEdit(dataTransfer, token);
|
|
28
|
-
|
|
28
|
+
if (!edit) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }],
|
|
33
|
+
dispose() { },
|
|
34
|
+
};
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
class DefaultTextPasteOrDropEditProvider extends SimplePasteAndDropProvider {
|