monaco-editor-core 0.57.0 → 0.58.0-dev-20261104
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/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +2 -2
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +2 -2
- package/esm/nls.messages.pt-br.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +38 -6
- package/esm/vs/base/browser/browser.js +8 -0
- package/esm/vs/base/browser/browser.js.map +1 -1
- package/esm/vs/base/browser/contextmenu.js +8 -1
- package/esm/vs/base/browser/contextmenu.js.map +1 -1
- package/esm/vs/base/browser/dom.js +34 -5
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/dompurify/dompurify.js +2457 -2640
- package/esm/vs/base/browser/markdownRenderer.js +48 -21
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/pixelRatio.js +3 -2
- package/esm/vs/base/browser/pixelRatio.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionViewItems.js +5 -2
- package/esm/vs/base/browser/ui/actionbar/actionViewItems.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionbar.js +7 -2
- package/esm/vs/base/browser/ui/actionbar/actionbar.js.map +1 -1
- package/esm/vs/base/browser/ui/animations/animations.js +68 -40
- package/esm/vs/base/browser/ui/animations/animations.js.map +1 -1
- package/esm/vs/base/browser/ui/button/button.js +7 -0
- package/esm/vs/base/browser/ui/button/button.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/contextview/contextview.css +15 -0
- package/esm/vs/base/browser/ui/contextview/contextview.js +266 -40
- package/esm/vs/base/browser/ui/contextview/contextview.js.map +1 -1
- package/esm/vs/base/browser/ui/contextview/windowControlsOverlay.js +72 -0
- package/esm/vs/base/browser/ui/contextview/windowControlsOverlay.js.map +1 -0
- package/esm/vs/base/browser/ui/dialog/dialog.css +5 -0
- package/esm/vs/base/browser/ui/dropdown/dropdown.js +2 -1
- package/esm/vs/base/browser/ui/dropdown/dropdown.js.map +1 -1
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js.map +1 -1
- package/esm/vs/base/browser/ui/hover/hover.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listView.js +87 -15
- package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listWidget.js +37 -15
- package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
- package/esm/vs/base/browser/ui/menu/menu.js +189 -52
- package/esm/vs/base/browser/ui/menu/menu.js.map +1 -1
- package/esm/vs/base/browser/ui/radio/radio.css +11 -0
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +2 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBox.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js +14 -8
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js.map +1 -1
- package/esm/vs/base/browser/ui/splitview/splitview.js +11 -7
- package/esm/vs/base/browser/ui/splitview/splitview.js.map +1 -1
- package/esm/vs/base/browser/ui/toggle/switch.css +16 -7
- package/esm/vs/base/browser/ui/toggle/switch.js +9 -6
- package/esm/vs/base/browser/ui/toggle/switch.js.map +1 -1
- package/esm/vs/base/browser/ui/toolbar/toolbar.css +1 -2
- package/esm/vs/base/browser/ui/toolbar/toolbar.js +85 -38
- package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js +48 -9
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +10 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTree.js +3 -0
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
- package/esm/vs/base/common/actions.js +8 -2
- package/esm/vs/base/common/actions.js.map +1 -1
- package/esm/vs/base/common/arrays.js +4 -4
- package/esm/vs/base/common/arrays.js.map +1 -1
- package/esm/vs/base/common/async.js +12 -8
- package/esm/vs/base/common/async.js.map +1 -1
- package/esm/vs/base/common/cancellation.js +25 -0
- package/esm/vs/base/common/cancellation.js.map +1 -1
- package/esm/vs/base/common/codicons.js +2 -0
- package/esm/vs/base/common/codicons.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +2 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/color.js +1 -1
- package/esm/vs/base/common/color.js.map +1 -1
- package/esm/vs/base/common/diff/diff.js +60 -1
- package/esm/vs/base/common/diff/diff.js.map +1 -1
- package/esm/vs/base/common/event.js +1 -1
- package/esm/vs/base/common/event.js.map +1 -1
- package/esm/vs/base/common/glob.js +1 -0
- package/esm/vs/base/common/glob.js.map +1 -1
- package/esm/vs/base/common/htmlContent.js +74 -12
- package/esm/vs/base/common/htmlContent.js.map +1 -1
- package/esm/vs/base/common/json.js +19 -0
- package/esm/vs/base/common/json.js.map +1 -0
- package/esm/vs/base/common/network.js +16 -0
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/resources.js +14 -2
- package/esm/vs/base/common/resources.js.map +1 -1
- package/esm/vs/base/common/strings.js +1 -1
- package/esm/vs/base/common/strings.js.map +1 -1
- package/esm/vs/base/common/uri.js +2 -2
- package/esm/vs/base/common/uri.js.map +1 -1
- package/esm/vs/editor/browser/config/editorConfiguration.js +1 -1
- package/esm/vs/editor/browser/config/fontMeasurements.js +19 -6
- package/esm/vs/editor/browser/config/fontMeasurements.js.map +1 -1
- package/esm/vs/editor/browser/controller/dragScrolling.js +3 -3
- package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js +11 -5
- package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +8 -38
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/screenReaderContentRich.js +3 -3
- package/esm/vs/editor/browser/controller/editContext/native/screenReaderSupport.js +6 -6
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +12 -10
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js +7 -7
- package/esm/vs/editor/browser/controller/mouseTarget.js +3 -3
- package/esm/vs/editor/browser/coreCommands.js +2 -2
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/editorMarkdownSanitizer.js +19 -0
- package/esm/vs/editor/browser/editorMarkdownSanitizer.js.map +1 -0
- package/esm/vs/editor/browser/gpu/rectangleRenderer.js +1 -1
- package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -1
- package/esm/vs/editor/browser/observableCodeEditor.js +1 -1
- package/esm/vs/editor/browser/services/editorWorkerService.js +3 -2
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js +6 -2
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js +34 -11
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js.map +1 -1
- package/esm/vs/editor/browser/view/viewController.js +7 -7
- package/esm/vs/editor/browser/view/viewController.js.map +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js +1 -1
- package/esm/vs/editor/browser/view/viewOverlays.js +4 -4
- package/esm/vs/editor/browser/view.js +5 -5
- package/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js +1 -1
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +11 -3
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +6 -6
- package/esm/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +12 -12
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +9 -2
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.js +2 -2
- package/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js +2 -2
- package/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js +2 -2
- package/esm/vs/editor/browser/viewParts/margin/margin.js +2 -2
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js +6 -6
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +9 -2
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js +5 -5
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +3 -3
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js +2 -2
- package/esm/vs/editor/browser/viewParts/rulersGpu/rulersGpu.js +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +3 -3
- package/esm/vs/editor/browser/viewParts/selections/selections.js +2 -2
- package/esm/vs/editor/browser/viewParts/viewCursors/viewCursor.js +2 -2
- package/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js +6 -6
- package/esm/vs/editor/browser/viewParts/viewLines/viewLineOptions.js +5 -5
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +11 -11
- package/esm/vs/editor/browser/viewParts/viewLinesGpu/viewLinesGpu.js +1 -1
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +4 -4
- package/esm/vs/editor/browser/viewParts/wordWrapIndicator/wordWrapIndicator.js +2 -2
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +22 -21
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/commands.js +12 -12
- package/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js +18 -18
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +3 -3
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +10 -10
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +4 -4
- package/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js +21 -3
- package/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +10 -10
- package/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
- package/esm/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollLayout.js +2 -2
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollLayout.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollView.js +21 -2
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollView.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -2
- package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +11 -3
- package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.js +1 -0
- package/esm/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.js.map +1 -1
- package/esm/vs/editor/common/commands/columnSelectionPasteCommand.js +64 -0
- package/esm/vs/editor/common/commands/columnSelectionPasteCommand.js.map +1 -0
- package/esm/vs/editor/common/config/editorConfigurationSchema.js +68 -58
- package/esm/vs/editor/common/config/editorConfigurationSchema.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +560 -500
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/editorColorRegistry.js +71 -71
- package/esm/vs/editor/common/core/edits/textEdit.js +16 -0
- package/esm/vs/editor/common/core/edits/textEdit.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursor.js +20 -10
- package/esm/vs/editor/common/cursor/cursor.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorTypeEditOperations.js +67 -14
- package/esm/vs/editor/common/cursor/cursorTypeEditOperations.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorTypeOperations.js +2 -2
- package/esm/vs/editor/common/cursor/cursorTypeOperations.js.map +1 -1
- package/esm/vs/editor/common/cursorCommon.js +22 -21
- package/esm/vs/editor/common/cursorCommon.js.map +1 -1
- package/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js +21 -8
- package/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js.map +1 -1
- package/esm/vs/editor/common/diff/documentDiffProvider.js.map +1 -1
- package/esm/vs/editor/common/diff/externalLinesDiffComputer.js +38 -26
- package/esm/vs/editor/common/diff/externalLinesDiffComputer.js.map +1 -1
- package/esm/vs/editor/common/diff/rangeMapping.js +11 -1
- package/esm/vs/editor/common/diff/rangeMapping.js.map +1 -1
- package/esm/vs/editor/common/diff/verifyLinesDiff.js +28 -0
- package/esm/vs/editor/common/diff/verifyLinesDiff.js.map +1 -0
- package/esm/vs/editor/common/editorContextKeys.js +53 -53
- package/esm/vs/editor/common/languages/languageConfiguration.js +8 -0
- package/esm/vs/editor/common/languages/languageConfiguration.js.map +1 -1
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/services/editorWebWorker.js +27 -6
- package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
- package/esm/vs/editor/common/services/editorWorker.js.map +1 -1
- package/esm/vs/editor/common/services/languageService.js +6 -4
- package/esm/vs/editor/common/services/languageService.js.map +1 -1
- package/esm/vs/editor/common/services/markerDecorationsService.js +21 -2
- package/esm/vs/editor/common/services/markerDecorationsService.js.map +1 -1
- package/esm/vs/editor/common/standalone/standaloneEnums.js +100 -97
- package/esm/vs/editor/common/standalone/standaloneEnums.js.map +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +11 -11
- package/esm/vs/editor/common/textModelEditSource.js +9 -0
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLayout.js +16 -16
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +1 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js +19 -19
- package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +9 -9
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +23 -20
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js.map +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/codeActionModel.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +25 -10
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerContribution.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +3 -3
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +17 -17
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +39 -39
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/pasteEditSession.js +19 -0
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/pasteEditSession.js.map +1 -0
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +26 -18
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js.map +1 -1
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +18 -18
- package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findModel.js +6 -6
- package/esm/vs/editor/contrib/find/browser/findWidget.js +40 -40
- package/esm/vs/editor/contrib/find/browser/findWidget.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/folding.js +23 -23
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +2 -2
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +4 -4
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js.map +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js +9 -3
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js +2 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +10 -8
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +6 -6
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +5 -5
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +9 -9
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js +3 -3
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +7 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +6 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +7 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +3 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -32
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +5 -4
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js.map +1 -1
- package/esm/vs/editor/contrib/links/browser/links.js +16 -15
- package/esm/vs/editor/contrib/links/browser/links.js.map +1 -1
- package/esm/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js +1 -1
- package/esm/vs/editor/contrib/message/browser/messageController.js +16 -12
- package/esm/vs/editor/contrib/message/browser/messageController.js.map +1 -1
- package/esm/vs/editor/contrib/middleScroll/browser/middleScrollController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +91 -55
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js +3 -3
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +6 -4
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderTextContribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +12 -12
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +3 -3
- package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js +6 -6
- package/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +23 -13
- package/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js.map +1 -1
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +5 -5
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +5 -5
- package/esm/vs/editor/contrib/snippet/browser/snippetSession.js +2 -2
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +10 -8
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js +2 -2
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +6 -6
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +15 -15
- package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestModel.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +27 -27
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +8 -6
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +5 -5
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +3 -3
- package/esm/vs/editor/contrib/suggest/browser/wordDistance.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +27 -27
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js +1 -1
- package/esm/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js.map +1 -1
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +50 -14
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +6 -6
- package/esm/vs/editor/editor.api.d.ts +133 -98
- package/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js +1 -1
- package/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +5 -3
- package/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js +15 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
- package/esm/vs/nls.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +72 -66
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js.map +1 -1
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +434 -136
- package/esm/vs/platform/actionWidget/browser/actionList.js.map +1 -1
- package/esm/vs/platform/actionWidget/browser/actionWidget.css +74 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +24 -26
- package/esm/vs/platform/actionWidget/browser/actionWidget.js.map +1 -1
- package/esm/vs/platform/actionWidget/browser/actionWidgetMotion.js +16 -0
- package/esm/vs/platform/actionWidget/browser/actionWidgetMotion.js.map +1 -0
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +15 -17
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
- package/esm/vs/platform/actions/browser/toolbar.js +25 -12
- package/esm/vs/platform/actions/browser/toolbar.js.map +1 -1
- package/esm/vs/platform/actions/common/actions.js +4 -2
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +15 -8
- package/esm/vs/platform/actions/common/menuService.js.map +1 -1
- package/esm/vs/platform/configuration/common/configuration.js +3 -1
- package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationModels.js +16 -11
- package/esm/vs/platform/configuration/common/configurationModels.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationRegistry.js +29 -27
- package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurations.js +13 -1
- package/esm/vs/platform/configuration/common/configurations.js.map +1 -1
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +2 -2
- package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +28 -14
- package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkeys.js +10 -10
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/contextview/browser/contextMenuHandler.js +17 -4
- package/esm/vs/platform/contextview/browser/contextMenuHandler.js.map +1 -1
- package/esm/vs/platform/contextview/browser/contextMenuService.js +1 -1
- package/esm/vs/platform/contextview/browser/contextMenuService.js.map +1 -1
- package/esm/vs/platform/contextview/browser/contextView.js.map +1 -1
- package/esm/vs/platform/contextview/browser/contextViewService.js +7 -2
- package/esm/vs/platform/contextview/browser/contextViewService.js.map +1 -1
- package/esm/vs/platform/editor/common/editor.js +17 -0
- package/esm/vs/platform/editor/common/editor.js.map +1 -1
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverService.js +6 -3
- package/esm/vs/platform/hover/browser/hoverService.js.map +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +38 -6
- package/esm/vs/platform/hover/browser/hoverWidget.js.map +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +32 -5
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +5 -5
- package/esm/vs/platform/keybinding/common/keybindingResolver.js +1 -1
- package/esm/vs/platform/keybinding/common/keybindingResolver.js.map +1 -1
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/markers/common/markerService.js +11 -8
- package/esm/vs/platform/markers/common/markerService.js.map +1 -1
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/markers/common/markers.js.map +1 -1
- package/esm/vs/platform/notification/common/notification.js.map +1 -1
- package/esm/vs/platform/notification/common/notificationMessage.js +37 -0
- package/esm/vs/platform/notification/common/notificationMessage.js.map +1 -0
- package/esm/vs/platform/opener/common/opener.js.map +1 -1
- package/esm/vs/platform/progress/common/progress.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/media/quickInput.css +33 -2
- package/esm/vs/platform/quickinput/browser/quickAccess.js +7 -4
- package/esm/vs/platform/quickinput/browser/quickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +65 -15
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js +96 -90
- package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputService.js +5 -7
- package/esm/vs/platform/quickinput/browser/quickInputService.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickTree.js +1 -1
- package/esm/vs/platform/quickinput/common/quickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
- package/esm/vs/platform/storage/common/storage.js.map +1 -1
- package/esm/vs/platform/theme/common/colorRegistry.js +1 -0
- package/esm/vs/platform/theme/common/colorRegistry.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +11 -3
- package/esm/vs/platform/theme/common/colorUtils.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/baseColors.js +19 -19
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -9
- package/esm/vs/platform/theme/common/colors/chartsColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/confettiColors.js +14 -0
- package/esm/vs/platform/theme/common/colors/confettiColors.js.map +1 -0
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +48 -48
- package/esm/vs/platform/theme/common/colors/inputColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +13 -13
- package/esm/vs/platform/theme/common/colors/minimapColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +10 -10
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/monaco.d.ts +133 -98
- package/package.json +3 -3
- package/version.txt +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/editor/contrib/links/browser/links.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;;AAEhG,OAAO,EAAE,uBAAuB,EAAqB,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,qCAAqC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAmC,oBAAoB,EAAE,0BAA0B,EAAoB,MAAM,sCAAsC,CAAC;AAOzK,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAA+B,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACnI,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAA+C,MAAM,mDAAmD,CAAC;AAClI,OAAO,EAAE,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAEvE,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;;aAEpB,OAAE,GAAW,qBAAX,AAAgC,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC,MAAmB;QACpC,OAAO,MAAM,CAAC,eAAe,CAAe,cAAY,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAUD,YACkB,MAAmB,EACH,aAA6B,EACvB,mBAAyC,EACrC,uBAAiD,EAC3D,8BAA+D;QAEhG,KAAK,EAAE,CAAC;QANS,WAAM,GAAN,MAAM,CAAa;QACH,kBAAa,GAAb,aAAa,CAAgB;QACvB,wBAAmB,GAAnB,mBAAmB,CAAsB;QACrC,4BAAuB,GAAvB,uBAAuB,CAA0B;QAK5F,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAEnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,EAAE;YAC5F,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,CAAC,CAAC,UAAU,6BAAoB,EAAE,CAAC;gBACvC,OAAO;YACR,CAAC;YACD,mDAAmD;YACnD,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE3B,uDAAuD;YACvD,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,iDAAiD;YACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE;YACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC7B,OAAO;YACR,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,6BAAoB,EAAE,CAAC;YAC3E,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAErC,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAClC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC;IAEO,iBAAiB,CAAC,KAAa;QACtC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,2CAAkC,KAAK,QAAQ,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,KAAK,MAAM,YAAY,IAAI,IAAI,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACxD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,cAAc,GAA4B,EAAE,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACX,sCAAsC;YACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,EAAE,EAAE;YAChD,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAEpF,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;YAC7D,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,UAA+B,EAAE,OAAsC;QACjG,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,2CAAkC,KAAK,QAAQ,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,kEAAkE;YACtG,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,EAAE,EAAE;oBAChD,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;oBAChD,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,YAAY,CAAC;gBACvD,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACpC,CAAC;IACF,CAAC;IAEO,2BAA2B;QAClC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,2CAAkC,KAAK,QAAQ,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACxE,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,EAAE,EAAE;oBAChD,UAAU,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACpC,CAAC;IACF,CAAC;IAEO,eAAe,CAAC,UAA+B;QACtD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO;QACR,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrG,CAAC;IAEM,kBAAkB,CAAC,UAA0B,EAAE,UAAmB,EAAE,eAAe,GAAG,KAAK;QAEjG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAE/C,sGAAsG;YACtG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;gBAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC5E,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;wBACvC,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBAEnD,IAAI,YAAY,GAAkB,IAAI,CAAC;wBACvC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC5D,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvC,CAAC;6BAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;4BACtE,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvC,CAAC;wBAED,IAAI,YAAY,EAAE,CAAC;4BAClB,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;wBAClD,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/I,CAAC,EAAE,GAAG,CAAC,EAAE;YACR,MAAM,cAAc,GACnB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,wBAAwB;YACxB,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAa,EAAE,6DAA6D,EAAE,IAAI,CAAC,GAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjJ,CAAC;iBAAM,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACzC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAa,EAAE,yDAAyD,CAAC,CAAC,CAAC;YACvH,CAAC;iBAAM,CAAC;gBACP,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,iBAAiB,CAAC,QAAyB;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;YAChE,eAAe,EAAE,QAAQ,CAAC,UAAU;YACpC,WAAW,EAAE,QAAQ,CAAC,MAAM;YAC5B,aAAa,EAAE,QAAQ,CAAC,UAAU;YAClC,SAAS,EAAE,QAAQ,CAAC,MAAM;SAC1B,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAEZ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,iBAAiB,EAAE,CAAC;gBACvB,OAAO,iBAAiB,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,SAAS,CAAC,UAA+B,EAAE,OAAuC;QACzF,OAAO,OAAO,CACb,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,yCAAiC,CAAC;eACtD,CAAC,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,sBAAsB,KAAK,UAAU,CAAC,CAChK,CAAC;IACH,CAAC;IAEO,IAAI;QACX,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC;IAEe,OAAO;QACtB,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;;AAtRW,YAAY;IAkBtB,WAAA,cAAc,CAAA;IACd,WAAA,oBAAoB,CAAA;IACpB,WAAA,wBAAwB,CAAA;IACxB,WAAA,+BAA+B,CAAA;GArBrB,YAAY,CAuRxB;;AAED,MAAM,UAAU,GAAG;IAClB,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC;QACxC,WAAW,EAAE,eAAe;QAC5B,UAAU,4DAAoD;QAC9D,qBAAqB,EAAE,IAAI;QAC3B,eAAe,EAAE,eAAe;KAChC,CAAC;IACF,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC;QACvC,WAAW,EAAE,sBAAsB;QACnC,UAAU,4DAAoD;QAC9D,qBAAqB,EAAE,IAAI;QAC3B,eAAe,EAAE,sBAAsB;KACvC,CAAC;CACF,CAAC;AAEF,MAAM,cAAc;IAEZ,MAAM,CAAC,UAAU,CAAC,IAAU,EAAE,UAAmB;QACvD,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;SAC5D,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,IAAU,EAAE,UAAmB,EAAE,QAAiB;QAC5E,MAAM,OAAO,GAAG,EAAE,GAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC;IAChB,CAAC;IAKD,YAAY,IAAU,EAAE,YAAoB;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;IAEM,QAAQ,CAAC,cAA+C,EAAE,UAAmB;QACnF,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IACpH,CAAC;IAEM,UAAU,CAAC,cAA+C,EAAE,UAAmB;QACrF,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACrH,CAAC;CACD;AAED,SAAS,eAAe,CAAC,IAAU,EAAE,UAAmB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;QACzB,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,UAAU;YACX,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAA2B,EAAE,iBAAiB,CAAC;YAC9D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAuB,EAAE,aAAa,CAAC,CAAC;IAEzD,MAAM,EAAE,GAAG,UAAU;QACpB,CAAC,CAAC,QAAQ,CAAC,WAAW;YACrB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAA4B,EAAE,aAAa,CAAC;YAC3D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAwB,EAAE,cAAc,CAAC;QACzD,CAAC,CAAC,QAAQ,CAAC,WAAW;YACrB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAA2B,EAAE,gBAAgB,CAAC;YAC7D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAuB,EAAE,aAAa,CAAC,CAAC;IAEzD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC5C,8DAA8D;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAqB,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC;aAC/C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC;aAC5E,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,YAAY,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,cAAc,EAAE,CAAC,UAAU,CAAC,GAAG,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;AACF,CAAC;AAED,MAAM,cAAe,SAAQ,YAAY;IAExC;QACC,KAAK,CAAC;YACL,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAAO,EAAE,WAAW,CAAC;YAC1C,YAAY,EAAE,SAAS;SACvB,CAAC,CAAC;IACJ,CAAC;IAEM,GAAG,CAAC,QAA0B,EAAE,MAAmB;QACzD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;YAClE,IAAI,IAAI,EAAE,CAAC;gBACV,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;IACF,CAAC;CACD;AAED,0BAA0B,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,2DAAmD,CAAC;AAC5G,oBAAoB,CAAC,cAAc,CAAC,CAAC","file":"links.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createCancelablePromise, CancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as resources from '../../../../base/common/resources.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport './links.css';\nimport { ICodeEditor, MouseTargetType } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorAction, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { LinkProvider } from '../../../common/languages.js';\nimport { IModelDecorationsChangeAccessor, IModelDeltaDecoration, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ClickLinkGesture, ClickLinkKeyboardEvent, ClickLinkMouseEvent } from '../../gotoSymbol/browser/link/clickLinkGesture.js';\nimport { getLinks, Link, LinksList } from './getLinks.js';\nimport * as nls from '../../../../nls.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\n\nexport class LinkDetector extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID: string = 'editor.linkDetector';\n\n\tpublic static get(editor: ICodeEditor): LinkDetector | null {\n\t\treturn editor.getContribution<LinkDetector>(LinkDetector.ID);\n\t}\n\n\tprivate readonly providers: LanguageFeatureRegistry<LinkProvider>;\n\tprivate readonly debounceInformation: IFeatureDebounceInformation;\n\tprivate readonly computeLinks: RunOnceScheduler;\n\tprivate computePromise: CancelablePromise<LinksList> | null;\n\tprivate activeLinksList: LinksList | null;\n\tprivate activeLinkDecorationId: string | null;\n\tprivate currentOccurrences: { [decorationId: string]: LinkOccurrence };\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@IOpenerService private readonly openerService: IOpenerService,\n\t\t@INotificationService private readonly notificationService: INotificationService,\n\t\t@ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService,\n\t\t@ILanguageFeatureDebounceService languageFeatureDebounceService: ILanguageFeatureDebounceService,\n\t) {\n\t\tsuper();\n\n\t\tthis.providers = this.languageFeaturesService.linkProvider;\n\t\tthis.debounceInformation = languageFeatureDebounceService.for(this.providers, 'Links', { min: 1000, max: 4000 });\n\t\tthis.computeLinks = this._register(new RunOnceScheduler(() => this.computeLinksNow(), 1000));\n\t\tthis.computePromise = null;\n\t\tthis.activeLinksList = null;\n\t\tthis.currentOccurrences = {};\n\t\tthis.activeLinkDecorationId = null;\n\n\t\tconst clickLinkGesture = this._register(new ClickLinkGesture(editor));\n\n\t\tthis._register(clickLinkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {\n\t\t\tthis._onEditorMouseMove(mouseEvent, keyboardEvent);\n\t\t}));\n\t\tthis._register(clickLinkGesture.onExecute((e) => {\n\t\t\tthis.onEditorMouseUp(e);\n\t\t}));\n\t\tthis._register(clickLinkGesture.onCancel((e) => {\n\t\t\tthis.cleanUpActiveLinkDecoration();\n\t\t}));\n\t\tthis._register(editor.onDidChangeConfiguration((e) => {\n\t\t\tif (!e.hasChanged(EditorOption.links)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Remove any links (for the getting disabled case)\n\t\t\tthis.updateDecorations([]);\n\n\t\t\t// Stop any computation (for the getting disabled case)\n\t\t\tthis.stop();\n\n\t\t\t// Start computing (for the getting enabled case)\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelContent((e) => {\n\t\t\tif (!this.editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()));\n\t\t}));\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.activeLinkDecorationId = null;\n\t\t\tthis.stop();\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelLanguage((e) => {\n\t\t\tthis.stop();\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\t\tthis._register(this.providers.onDidChange((e) => {\n\t\t\tthis.stop();\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\n\t\tthis.computeLinks.schedule(0);\n\t}\n\n\tprivate async computeLinksNow(): Promise<void> {\n\t\tif (!this.editor.hasModel() || !this.editor.getOption(EditorOption.links)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\n\t\tif (model.isTooLargeForSyncing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.providers.has(model)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.activeLinksList) {\n\t\t\tthis.activeLinksList.dispose();\n\t\t\tthis.activeLinksList = null;\n\t\t}\n\n\t\tthis.computePromise = createCancelablePromise(token => getLinks(this.providers, model, token));\n\t\ttry {\n\t\t\tconst sw = new StopWatch(false);\n\t\t\tthis.activeLinksList = await this.computePromise;\n\t\t\tthis.debounceInformation.update(model, sw.elapsed());\n\t\t\tif (model.isDisposed()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.updateDecorations(this.activeLinksList.links);\n\t\t} catch (err) {\n\t\t\tonUnexpectedError(err);\n\t\t} finally {\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tprivate updateDecorations(links: Link[]): void {\n\t\tconst useMetaKey = (this.editor.getOption(EditorOption.multiCursorModifier) === 'altKey');\n\t\tconst oldDecorations: string[] = [];\n\t\tconst keys = Object.keys(this.currentOccurrences);\n\t\tfor (const decorationId of keys) {\n\t\t\tconst occurence = this.currentOccurrences[decorationId];\n\t\t\toldDecorations.push(occurence.decorationId);\n\t\t}\n\n\t\tconst newDecorations: IModelDeltaDecoration[] = [];\n\t\tif (links) {\n\t\t\t// Not sure why this is sometimes null\n\t\t\tfor (const link of links) {\n\t\t\t\tnewDecorations.push(LinkOccurrence.decoration(link, useMetaKey));\n\t\t\t}\n\t\t}\n\n\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\tconst decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.activeLinkDecorationId = null;\n\t\t\tfor (let i = 0, len = decorations.length; i < len; i++) {\n\t\t\t\tconst occurence = new LinkOccurrence(links[i], decorations[i]);\n\t\t\t\tthis.currentOccurrences[occurence.decorationId] = occurence;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _onEditorMouseMove(mouseEvent: ClickLinkMouseEvent, withKey: ClickLinkKeyboardEvent | null): void {\n\t\tconst useMetaKey = (this.editor.getOption(EditorOption.multiCursorModifier) === 'altKey');\n\t\tif (this.isEnabled(mouseEvent, withKey)) {\n\t\t\tthis.cleanUpActiveLinkDecoration(); // always remove previous link decoration as their can only be one\n\t\t\tconst occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n\t\t\tif (occurrence) {\n\t\t\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\t\t\toccurrence.activate(changeAccessor, useMetaKey);\n\t\t\t\t\tthis.activeLinkDecorationId = occurrence.decorationId;\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.cleanUpActiveLinkDecoration();\n\t\t}\n\t}\n\n\tprivate cleanUpActiveLinkDecoration(): void {\n\t\tconst useMetaKey = (this.editor.getOption(EditorOption.multiCursorModifier) === 'altKey');\n\t\tif (this.activeLinkDecorationId) {\n\t\t\tconst occurrence = this.currentOccurrences[this.activeLinkDecorationId];\n\t\t\tif (occurrence) {\n\t\t\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\t\t\toccurrence.deactivate(changeAccessor, useMetaKey);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.activeLinkDecorationId = null;\n\t\t}\n\t}\n\n\tprivate onEditorMouseUp(mouseEvent: ClickLinkMouseEvent): void {\n\t\tif (!this.isEnabled(mouseEvent)) {\n\t\t\treturn;\n\t\t}\n\t\tconst occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n\t\tif (!occurrence) {\n\t\t\treturn;\n\t\t}\n\t\tthis.openLinkOccurrence(occurrence, mouseEvent.hasSideBySideModifier, true /* from user gesture */);\n\t}\n\n\tpublic openLinkOccurrence(occurrence: LinkOccurrence, openToSide: boolean, fromUserGesture = false): void {\n\n\t\tif (!this.openerService) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { link } = occurrence;\n\n\t\tlink.resolve(CancellationToken.None).then(uri => {\n\n\t\t\t// Support for relative file URIs of the shape file://./relativeFile.txt or file:///./relativeFile.txt\n\t\t\tif (typeof uri === 'string' && this.editor.hasModel()) {\n\t\t\t\tconst modelUri = this.editor.getModel().uri;\n\t\t\t\tif (modelUri.scheme === Schemas.file && uri.startsWith(`${Schemas.file}:`)) {\n\t\t\t\t\tconst parsedUri = URI.parse(uri);\n\t\t\t\t\tif (parsedUri.scheme === Schemas.file) {\n\t\t\t\t\t\tconst fsPath = resources.originalFSPath(parsedUri);\n\n\t\t\t\t\t\tlet relativePath: string | null = null;\n\t\t\t\t\t\tif (fsPath.startsWith('/./') || fsPath.startsWith('\\\\.\\\\')) {\n\t\t\t\t\t\t\trelativePath = `.${fsPath.substr(1)}`;\n\t\t\t\t\t\t} else if (fsPath.startsWith('//./') || fsPath.startsWith('\\\\\\\\.\\\\')) {\n\t\t\t\t\t\t\trelativePath = `.${fsPath.substr(2)}`;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (relativePath) {\n\t\t\t\t\t\t\turi = resources.joinPath(modelUri, relativePath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.openerService.open(uri, { openToSide, fromUserGesture, allowContributedOpeners: true, allowCommands: true, fromWorkspace: true });\n\n\t\t}, err => {\n\t\t\tconst messageOrError =\n\t\t\t\terr instanceof Error ? err.message : err;\n\t\t\t// different error cases\n\t\t\tif (messageOrError === 'invalid') {\n\t\t\t\tthis.notificationService.warn(nls.localize('invalid.url', 'Failed to open this link because it is not well-formed: {0}', link.url!.toString()));\n\t\t\t} else if (messageOrError === 'missing') {\n\t\t\t\tthis.notificationService.warn(nls.localize('missing.url', 'Failed to open this link because its target is missing.'));\n\t\t\t} else {\n\t\t\t\tonUnexpectedError(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getLinkOccurrence(position: Position | null): LinkOccurrence | null {\n\t\tif (!this.editor.hasModel() || !position) {\n\t\t\treturn null;\n\t\t}\n\t\tconst decorations = this.editor.getModel().getDecorationsInRange({\n\t\t\tstartLineNumber: position.lineNumber,\n\t\t\tstartColumn: position.column,\n\t\t\tendLineNumber: position.lineNumber,\n\t\t\tendColumn: position.column\n\t\t}, 0, true);\n\n\t\tfor (const decoration of decorations) {\n\t\t\tconst currentOccurrence = this.currentOccurrences[decoration.id];\n\t\t\tif (currentOccurrence) {\n\t\t\t\treturn currentOccurrence;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate isEnabled(mouseEvent: ClickLinkMouseEvent, withKey?: ClickLinkKeyboardEvent | null): boolean {\n\t\treturn Boolean(\n\t\t\t(mouseEvent.target.type === MouseTargetType.CONTENT_TEXT)\n\t\t\t&& ((mouseEvent.hasTriggerModifier || (withKey && withKey.keyCodeIsTriggerKey)) || mouseEvent.isMiddleClick && mouseEvent.mouseMiddleClickAction === 'openLink')\n\t\t);\n\t}\n\n\tprivate stop(): void {\n\t\tthis.computeLinks.cancel();\n\t\tif (this.activeLinksList) {\n\t\t\tthis.activeLinksList?.dispose();\n\t\t\tthis.activeLinksList = null;\n\t\t}\n\t\tif (this.computePromise) {\n\t\t\tthis.computePromise.cancel();\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis.stop();\n\t}\n}\n\nconst decoration = {\n\tgeneral: ModelDecorationOptions.register({\n\t\tdescription: 'detected-link',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tcollapseOnReplaceEdit: true,\n\t\tinlineClassName: 'detected-link'\n\t}),\n\tactive: ModelDecorationOptions.register({\n\t\tdescription: 'detected-link-active',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tcollapseOnReplaceEdit: true,\n\t\tinlineClassName: 'detected-link-active'\n\t})\n};\n\nclass LinkOccurrence {\n\n\tpublic static decoration(link: Link, useMetaKey: boolean): IModelDeltaDecoration {\n\t\treturn {\n\t\t\trange: link.range,\n\t\t\toptions: LinkOccurrence._getOptions(link, useMetaKey, false)\n\t\t};\n\t}\n\n\tprivate static _getOptions(link: Link, useMetaKey: boolean, isActive: boolean): ModelDecorationOptions {\n\t\tconst options = { ... (isActive ? decoration.active : decoration.general) };\n\t\toptions.hoverMessage = getHoverMessage(link, useMetaKey);\n\t\treturn options;\n\t}\n\n\tpublic decorationId: string;\n\tpublic link: Link;\n\n\tconstructor(link: Link, decorationId: string) {\n\t\tthis.link = link;\n\t\tthis.decorationId = decorationId;\n\t}\n\n\tpublic activate(changeAccessor: IModelDecorationsChangeAccessor, useMetaKey: boolean): void {\n\t\tchangeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, true));\n\t}\n\n\tpublic deactivate(changeAccessor: IModelDecorationsChangeAccessor, useMetaKey: boolean): void {\n\t\tchangeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, false));\n\t}\n}\n\nfunction getHoverMessage(link: Link, useMetaKey: boolean): MarkdownString {\n\tconst executeCmd = link.url && /^command:/i.test(link.url.toString());\n\n\tconst label = link.tooltip\n\t\t? link.tooltip\n\t\t: executeCmd\n\t\t\t? nls.localize('links.navigate.executeCmd', 'Execute command')\n\t\t\t: nls.localize('links.navigate.follow', 'Follow link');\n\n\tconst kb = useMetaKey\n\t\t? platform.isMacintosh\n\t\t\t? nls.localize('links.navigate.kb.meta.mac', \"cmd + click\")\n\t\t\t: nls.localize('links.navigate.kb.meta', \"ctrl + click\")\n\t\t: platform.isMacintosh\n\t\t\t? nls.localize('links.navigate.kb.alt.mac', \"option + click\")\n\t\t\t: nls.localize('links.navigate.kb.alt', \"alt + click\");\n\n\tif (link.url) {\n\t\tlet nativeLabel = '';\n\t\tif (/^command:/i.test(link.url.toString())) {\n\t\t\t// Don't show complete command arguments in the native tooltip\n\t\t\tconst match = link.url.toString().match(/^command:([^?#]+)/);\n\t\t\tif (match) {\n\t\t\t\tconst commandId = match[1];\n\t\t\t\tnativeLabel = nls.localize('tooltip.explanation', \"Execute command {0}\", commandId);\n\t\t\t}\n\t\t}\n\t\tconst hoverMessage = new MarkdownString('', true)\n\t\t\t.appendLink(link.url.toString(true).replace(/ /g, '%20'), label, nativeLabel)\n\t\t\t.appendMarkdown(` (${kb})`);\n\t\treturn hoverMessage;\n\t} else {\n\t\treturn new MarkdownString().appendText(`${label} (${kb})`);\n\t}\n}\n\nclass OpenLinkAction extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.openLink',\n\t\t\tlabel: nls.localize2('label', \"Open Link\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst linkDetector = LinkDetector.get(editor);\n\t\tif (!linkDetector) {\n\t\t\treturn;\n\t\t}\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selections = editor.getSelections();\n\t\tfor (const sel of selections) {\n\t\t\tconst link = linkDetector.getLinkOccurrence(sel.getEndPosition());\n\t\t\tif (link) {\n\t\t\t\tlinkDetector.openLinkOccurrence(link, false);\n\t\t\t}\n\t\t}\n\t}\n}\n\nregisterEditorContribution(LinkDetector.ID, LinkDetector, EditorContributionInstantiation.AfterFirstRender);\nregisterEditorAction(OpenLinkAction);\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/editor/contrib/links/browser/links.ts"],"names":[],"mappings":"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","file":"links.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createCancelablePromise, CancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { escapeMarkdownLinkText, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as resources from '../../../../base/common/resources.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport './links.css';\nimport { ICodeEditor, MouseTargetType } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorAction, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { LinkProvider } from '../../../common/languages.js';\nimport { IModelDecorationsChangeAccessor, IModelDeltaDecoration, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ClickLinkGesture, ClickLinkKeyboardEvent, ClickLinkMouseEvent } from '../../gotoSymbol/browser/link/clickLinkGesture.js';\nimport { getLinks, Link, LinksList } from './getLinks.js';\nimport * as nls from '../../../../nls.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\n\nexport class LinkDetector extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID: string = 'editor.linkDetector';\n\n\tpublic static get(editor: ICodeEditor): LinkDetector | null {\n\t\treturn editor.getContribution<LinkDetector>(LinkDetector.ID);\n\t}\n\n\tprivate readonly providers: LanguageFeatureRegistry<LinkProvider>;\n\tprivate readonly debounceInformation: IFeatureDebounceInformation;\n\tprivate readonly computeLinks: RunOnceScheduler;\n\tprivate computePromise: CancelablePromise<LinksList> | null;\n\tprivate activeLinksList: LinksList | null;\n\tprivate activeLinkDecorationId: string | null;\n\tprivate currentOccurrences: { [decorationId: string]: LinkOccurrence };\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@IOpenerService private readonly openerService: IOpenerService,\n\t\t@INotificationService private readonly notificationService: INotificationService,\n\t\t@ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService,\n\t\t@ILanguageFeatureDebounceService languageFeatureDebounceService: ILanguageFeatureDebounceService,\n\t) {\n\t\tsuper();\n\n\t\tthis.providers = this.languageFeaturesService.linkProvider;\n\t\tthis.debounceInformation = languageFeatureDebounceService.for(this.providers, 'Links', { min: 1000, max: 4000 });\n\t\tthis.computeLinks = this._register(new RunOnceScheduler(() => this.computeLinksNow(), 1000));\n\t\tthis.computePromise = null;\n\t\tthis.activeLinksList = null;\n\t\tthis.currentOccurrences = {};\n\t\tthis.activeLinkDecorationId = null;\n\n\t\tconst clickLinkGesture = this._register(new ClickLinkGesture(editor));\n\n\t\tthis._register(clickLinkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {\n\t\t\tthis._onEditorMouseMove(mouseEvent, keyboardEvent);\n\t\t}));\n\t\tthis._register(clickLinkGesture.onExecute((e) => {\n\t\t\tthis.onEditorMouseUp(e);\n\t\t}));\n\t\tthis._register(clickLinkGesture.onCancel((e) => {\n\t\t\tthis.cleanUpActiveLinkDecoration();\n\t\t}));\n\t\tthis._register(editor.onDidChangeConfiguration((e) => {\n\t\t\tif (!e.hasChanged(EditorOption.links)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Remove any links (for the getting disabled case)\n\t\t\tthis.updateDecorations([]);\n\n\t\t\t// Stop any computation (for the getting disabled case)\n\t\t\tthis.stop();\n\n\t\t\t// Start computing (for the getting enabled case)\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelContent((e) => {\n\t\t\tif (!this.editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()));\n\t\t}));\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.activeLinkDecorationId = null;\n\t\t\tthis.stop();\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelLanguage((e) => {\n\t\t\tthis.stop();\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\t\tthis._register(this.providers.onDidChange((e) => {\n\t\t\tthis.stop();\n\t\t\tthis.computeLinks.schedule(0);\n\t\t}));\n\n\t\tthis.computeLinks.schedule(0);\n\t}\n\n\tprivate async computeLinksNow(): Promise<void> {\n\t\tif (!this.editor.hasModel() || !this.editor.getOption(EditorOption.links)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\n\t\tif (model.isTooLargeForSyncing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.providers.has(model)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.activeLinksList) {\n\t\t\tthis.activeLinksList.dispose();\n\t\t\tthis.activeLinksList = null;\n\t\t}\n\n\t\tthis.computePromise = createCancelablePromise(token => getLinks(this.providers, model, token));\n\t\ttry {\n\t\t\tconst sw = new StopWatch(false);\n\t\t\tthis.activeLinksList = await this.computePromise;\n\t\t\tthis.debounceInformation.update(model, sw.elapsed());\n\t\t\tif (model.isDisposed()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.updateDecorations(this.activeLinksList.links);\n\t\t} catch (err) {\n\t\t\tonUnexpectedError(err);\n\t\t} finally {\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tprivate updateDecorations(links: Link[]): void {\n\t\tconst useMetaKey = (this.editor.getOption(EditorOption.multiCursorModifier) === 'altKey');\n\t\tconst oldDecorations: string[] = [];\n\t\tconst keys = Object.keys(this.currentOccurrences);\n\t\tfor (const decorationId of keys) {\n\t\t\tconst occurence = this.currentOccurrences[decorationId];\n\t\t\toldDecorations.push(occurence.decorationId);\n\t\t}\n\n\t\tconst newDecorations: IModelDeltaDecoration[] = [];\n\t\tif (links) {\n\t\t\t// Not sure why this is sometimes null\n\t\t\tfor (const link of links) {\n\t\t\t\tnewDecorations.push(LinkOccurrence.decoration(link, useMetaKey));\n\t\t\t}\n\t\t}\n\n\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\tconst decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.activeLinkDecorationId = null;\n\t\t\tfor (let i = 0, len = decorations.length; i < len; i++) {\n\t\t\t\tconst occurence = new LinkOccurrence(links[i], decorations[i]);\n\t\t\t\tthis.currentOccurrences[occurence.decorationId] = occurence;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _onEditorMouseMove(mouseEvent: ClickLinkMouseEvent, withKey: ClickLinkKeyboardEvent | null): void {\n\t\tconst useMetaKey = (this.editor.getOption(EditorOption.multiCursorModifier) === 'altKey');\n\t\tif (this.isEnabled(mouseEvent, withKey)) {\n\t\t\tthis.cleanUpActiveLinkDecoration(); // always remove previous link decoration as their can only be one\n\t\t\tconst occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n\t\t\tif (occurrence) {\n\t\t\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\t\t\toccurrence.activate(changeAccessor, useMetaKey);\n\t\t\t\t\tthis.activeLinkDecorationId = occurrence.decorationId;\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.cleanUpActiveLinkDecoration();\n\t\t}\n\t}\n\n\tprivate cleanUpActiveLinkDecoration(): void {\n\t\tconst useMetaKey = (this.editor.getOption(EditorOption.multiCursorModifier) === 'altKey');\n\t\tif (this.activeLinkDecorationId) {\n\t\t\tconst occurrence = this.currentOccurrences[this.activeLinkDecorationId];\n\t\t\tif (occurrence) {\n\t\t\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\t\t\toccurrence.deactivate(changeAccessor, useMetaKey);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.activeLinkDecorationId = null;\n\t\t}\n\t}\n\n\tprivate onEditorMouseUp(mouseEvent: ClickLinkMouseEvent): void {\n\t\tif (!this.isEnabled(mouseEvent)) {\n\t\t\treturn;\n\t\t}\n\t\tconst occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n\t\tif (!occurrence) {\n\t\t\treturn;\n\t\t}\n\t\tthis.openLinkOccurrence(occurrence, mouseEvent.hasSideBySideModifier, true /* from user gesture */);\n\t}\n\n\tpublic openLinkOccurrence(occurrence: LinkOccurrence, openToSide: boolean, fromUserGesture = false): void {\n\n\t\tif (!this.openerService) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { link } = occurrence;\n\n\t\tlink.resolve(CancellationToken.None).then(uri => {\n\n\t\t\t// Support for relative file URIs of the shape file://./relativeFile.txt or file:///./relativeFile.txt\n\t\t\tif (typeof uri === 'string' && this.editor.hasModel()) {\n\t\t\t\tconst modelUri = this.editor.getModel().uri;\n\t\t\t\tif (modelUri.scheme === Schemas.file && uri.startsWith(`${Schemas.file}:`)) {\n\t\t\t\t\tconst parsedUri = URI.parse(uri);\n\t\t\t\t\tif (parsedUri.scheme === Schemas.file) {\n\t\t\t\t\t\tconst fsPath = resources.originalFSPath(parsedUri);\n\n\t\t\t\t\t\tlet relativePath: string | null = null;\n\t\t\t\t\t\tif (fsPath.startsWith('/./') || fsPath.startsWith('\\\\.\\\\')) {\n\t\t\t\t\t\t\trelativePath = `.${fsPath.substr(1)}`;\n\t\t\t\t\t\t} else if (fsPath.startsWith('//./') || fsPath.startsWith('\\\\\\\\.\\\\')) {\n\t\t\t\t\t\t\trelativePath = `.${fsPath.substr(2)}`;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (relativePath) {\n\t\t\t\t\t\t\turi = resources.joinPath(modelUri, relativePath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.openerService.open(uri, { openToSide, fromUserGesture, allowContributedOpeners: true, allowCommands: true, fromWorkspace: true });\n\n\t\t}, err => {\n\t\t\tconst messageOrError =\n\t\t\t\terr instanceof Error ? err.message : err;\n\t\t\t// different error cases\n\t\t\tif (messageOrError === 'invalid') {\n\t\t\t\tthis.notificationService.warn(nls.localize('invalid.url', 'Failed to open this link because it is not well-formed: {0}', link.url!.toString()));\n\t\t\t} else if (messageOrError === 'missing') {\n\t\t\t\tthis.notificationService.warn(nls.localize('missing.url', 'Failed to open this link because its target is missing.'));\n\t\t\t} else {\n\t\t\t\tonUnexpectedError(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getLinkOccurrence(position: Position | null): LinkOccurrence | null {\n\t\tif (!this.editor.hasModel() || !position) {\n\t\t\treturn null;\n\t\t}\n\t\tconst decorations = this.editor.getModel().getDecorationsInRange({\n\t\t\tstartLineNumber: position.lineNumber,\n\t\t\tstartColumn: position.column,\n\t\t\tendLineNumber: position.lineNumber,\n\t\t\tendColumn: position.column\n\t\t}, 0, true);\n\n\t\tfor (const decoration of decorations) {\n\t\t\tconst currentOccurrence = this.currentOccurrences[decoration.id];\n\t\t\tif (currentOccurrence) {\n\t\t\t\treturn currentOccurrence;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate isEnabled(mouseEvent: ClickLinkMouseEvent, withKey?: ClickLinkKeyboardEvent | null): boolean {\n\t\treturn Boolean(\n\t\t\t(mouseEvent.target.type === MouseTargetType.CONTENT_TEXT)\n\t\t\t&& ((mouseEvent.hasTriggerModifier || (withKey && withKey.keyCodeIsTriggerKey)) || mouseEvent.isMiddleClick && mouseEvent.mouseMiddleClickAction === 'openLink')\n\t\t);\n\t}\n\n\tprivate stop(): void {\n\t\tthis.computeLinks.cancel();\n\t\tif (this.activeLinksList) {\n\t\t\tthis.activeLinksList?.dispose();\n\t\t\tthis.activeLinksList = null;\n\t\t}\n\t\tif (this.computePromise) {\n\t\t\tthis.computePromise.cancel();\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis.stop();\n\t}\n}\n\nconst decoration = {\n\tgeneral: ModelDecorationOptions.register({\n\t\tdescription: 'detected-link',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tcollapseOnReplaceEdit: true,\n\t\tinlineClassName: 'detected-link'\n\t}),\n\tactive: ModelDecorationOptions.register({\n\t\tdescription: 'detected-link-active',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tcollapseOnReplaceEdit: true,\n\t\tinlineClassName: 'detected-link-active'\n\t})\n};\n\nclass LinkOccurrence {\n\n\tpublic static decoration(link: Link, useMetaKey: boolean): IModelDeltaDecoration {\n\t\treturn {\n\t\t\trange: link.range,\n\t\t\toptions: LinkOccurrence._getOptions(link, useMetaKey, false)\n\t\t};\n\t}\n\n\tprivate static _getOptions(link: Link, useMetaKey: boolean, isActive: boolean): ModelDecorationOptions {\n\t\tconst options = { ... (isActive ? decoration.active : decoration.general) };\n\t\toptions.hoverMessage = getHoverMessage(link, useMetaKey);\n\t\treturn options;\n\t}\n\n\tpublic decorationId: string;\n\tpublic link: Link;\n\n\tconstructor(link: Link, decorationId: string) {\n\t\tthis.link = link;\n\t\tthis.decorationId = decorationId;\n\t}\n\n\tpublic activate(changeAccessor: IModelDecorationsChangeAccessor, useMetaKey: boolean): void {\n\t\tchangeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, true));\n\t}\n\n\tpublic deactivate(changeAccessor: IModelDecorationsChangeAccessor, useMetaKey: boolean): void {\n\t\tchangeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, false));\n\t}\n}\n\nfunction getHoverMessage(link: Link, useMetaKey: boolean): MarkdownString {\n\tconst executeCmd = link.url && /^command:/i.test(link.url.toString());\n\n\tconst label = link.tooltip\n\t\t? link.tooltip\n\t\t: executeCmd\n\t\t\t? nls.localize('links.navigate.executeCmd', 'Execute command')\n\t\t\t: nls.localize('links.navigate.follow', 'Follow link');\n\n\tconst kb = useMetaKey\n\t\t? platform.isMacintosh\n\t\t\t? nls.localize('links.navigate.kb.meta.mac', \"cmd + click\")\n\t\t\t: nls.localize('links.navigate.kb.meta', \"ctrl + click\")\n\t\t: platform.isMacintosh\n\t\t\t? nls.localize('links.navigate.kb.alt.mac', \"option + click\")\n\t\t\t: nls.localize('links.navigate.kb.alt', \"alt + click\");\n\n\tif (link.url) {\n\t\tlet nativeLabel = '';\n\t\tif (/^command:/i.test(link.url.toString())) {\n\t\t\t// Don't show complete command arguments in the native tooltip\n\t\t\tconst match = link.url.toString().match(/^command:([^?#]+)/);\n\t\t\tif (match) {\n\t\t\t\tconst commandId = match[1];\n\t\t\t\tnativeLabel = nls.localize('tooltip.explanation', \"Execute command {0}\", commandId);\n\t\t\t}\n\t\t}\n\t\t// The label, including a provider's tooltip, is plain text\n\t\tconst hoverMessage = new MarkdownString('', true)\n\t\t\t.appendLink(link.url.toString(true).replace(/ /g, '%20'), escapeMarkdownLinkText(label), nativeLabel)\n\t\t\t.appendMarkdown(` (${kb})`);\n\t\treturn hoverMessage;\n\t} else {\n\t\treturn new MarkdownString().appendText(`${label} (${kb})`);\n\t}\n}\n\nclass OpenLinkAction extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.openLink',\n\t\t\tlabel: nls.localize2('label', \"Open Link\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst linkDetector = LinkDetector.get(editor);\n\t\tif (!linkDetector) {\n\t\t\treturn;\n\t\t}\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selections = editor.getSelections();\n\t\tfor (const sel of selections) {\n\t\t\tconst link = linkDetector.getLinkOccurrence(sel.getEndPosition());\n\t\t\tif (link) {\n\t\t\t\tlinkDetector.openLinkOccurrence(link, false);\n\t\t\t}\n\t\t}\n\t}\n}\n\nregisterEditorContribution(LinkDetector.ID, LinkDetector, EditorContributionInstantiation.AfterFirstRender);\nregisterEditorAction(OpenLinkAction);\n"]}
|
|
@@ -10,7 +10,7 @@ class LongLinesHelper extends Disposable {
|
|
|
10
10
|
super();
|
|
11
11
|
this._editor = _editor;
|
|
12
12
|
this._register(this._editor.onMouseDown((e) => {
|
|
13
|
-
const stopRenderingLineAfter = this._editor.getOption(
|
|
13
|
+
const stopRenderingLineAfter = this._editor.getOption(136 /* EditorOption.stopRenderingLineAfter */);
|
|
14
14
|
if (stopRenderingLineAfter >= 0 && e.target.type === 6 /* MouseTargetType.CONTENT_TEXT */ && e.target.position.column >= stopRenderingLineAfter) {
|
|
15
15
|
this._editor.updateOptions({
|
|
16
16
|
stopRenderingLineAfter: -1
|
|
@@ -16,8 +16,9 @@ import { renderMarkdown } from '../../../../base/browser/markdownRenderer.js';
|
|
|
16
16
|
import { alert } from '../../../../base/browser/ui/aria/aria.js';
|
|
17
17
|
import { Event } from '../../../../base/common/event.js';
|
|
18
18
|
import { isMarkdownString } from '../../../../base/common/htmlContent.js';
|
|
19
|
-
import { DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';
|
|
19
|
+
import { DisposableStore, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';
|
|
20
20
|
import './messageController.css';
|
|
21
|
+
import { getEditorMarkdownSanitizerConfig } from '../../../browser/editorMarkdownSanitizer.js';
|
|
21
22
|
import { EditorCommand, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';
|
|
22
23
|
import { Range } from '../../../common/core/range.js';
|
|
23
24
|
import { openLinkFromMarkdown } from '../../../../platform/markdown/browser/markdownRenderer.js';
|
|
@@ -28,7 +29,7 @@ import * as dom from '../../../../base/browser/dom.js';
|
|
|
28
29
|
let MessageController = class MessageController {
|
|
29
30
|
static { MessageController_1 = this; }
|
|
30
31
|
static { this.ID = 'editor.contrib.messageController'; }
|
|
31
|
-
static { this.MESSAGE_VISIBLE = new RawContextKey('messageVisible', false, nls.localize(
|
|
32
|
+
static { this.MESSAGE_VISIBLE = new RawContextKey('messageVisible', false, nls.localize(1360, 'Whether the editor is currently showing an inline message')); }
|
|
32
33
|
static get(editor) {
|
|
33
34
|
return editor.getContribution(MessageController_1.ID);
|
|
34
35
|
}
|
|
@@ -52,6 +53,7 @@ let MessageController = class MessageController {
|
|
|
52
53
|
this._messageListeners.clear();
|
|
53
54
|
if (isMarkdownString(message)) {
|
|
54
55
|
const renderedMessage = this._messageListeners.add(renderMarkdown(message, {
|
|
56
|
+
sanitizerConfig: getEditorMarkdownSanitizerConfig(this._editor),
|
|
55
57
|
actionHandler: (url, mdStr) => {
|
|
56
58
|
this.closeMessage();
|
|
57
59
|
openLinkFromMarkdown(this._openerService, url, mdStr.isTrusted);
|
|
@@ -97,8 +99,10 @@ let MessageController = class MessageController {
|
|
|
97
99
|
closeMessage() {
|
|
98
100
|
this._visible.reset();
|
|
99
101
|
this._messageListeners.clear();
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
// Hand the widget over to the fade out so it isn't retained after it went away
|
|
103
|
+
const messageWidget = this._messageWidget.clearAndLeak();
|
|
104
|
+
if (messageWidget) {
|
|
105
|
+
this._messageListeners.add(MessageWidget.fadeOut(messageWidget));
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
108
|
};
|
|
@@ -119,15 +123,15 @@ registerEditorCommand(new MessageCommand({
|
|
|
119
123
|
}));
|
|
120
124
|
class MessageWidget {
|
|
121
125
|
static fadeOut(messageWidget) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
const handle = setTimeout(dispose, 110);
|
|
128
|
-
|
|
126
|
+
// Everything that references the widget lives in the store, which is emptied once the
|
|
127
|
+
// fade out completes, so holding on to the returned disposable doesn't keep it alive
|
|
128
|
+
const store = new DisposableStore();
|
|
129
|
+
store.add(toDisposable(() => messageWidget.dispose()));
|
|
130
|
+
store.add(dom.addDisposableListener(messageWidget.getDomNode(), 'animationend', () => store.dispose()));
|
|
131
|
+
const handle = setTimeout(() => store.dispose(), 110);
|
|
132
|
+
store.add(toDisposable(() => clearTimeout(handle)));
|
|
129
133
|
messageWidget.getDomNode().classList.add('fadeOut');
|
|
130
|
-
return
|
|
134
|
+
return store;
|
|
131
135
|
}
|
|
132
136
|
constructor(editor, { lineNumber, column }, text) {
|
|
133
137
|
// Editor.IContentWidget.allowEditorOverflow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/editor/contrib/message/browser/messageController.ts"],"names":[],"mappings":"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","file":"messageController.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { renderMarkdown } from '../../../../base/browser/markdownRenderer.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { IMarkdownString, isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { KeyCode } from '../../../../base/common/keyCodes.js';\nimport { DisposableStore, IDisposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport './messageController.css';\nimport { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from '../../../browser/editorBrowser.js';\nimport { EditorCommand, EditorContributionInstantiation, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { IPosition } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution, ScrollType } from '../../../common/editorCommon.js';\nimport { PositionAffinity } from '../../../common/model.js';\nimport { openLinkFromMarkdown } from '../../../../platform/markdown/browser/markdownRenderer.js';\nimport * as nls from '../../../../nls.js';\nimport { IContextKey, IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport * as dom from '../../../../base/browser/dom.js';\n\nexport class MessageController implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.messageController';\n\n\tstatic readonly MESSAGE_VISIBLE = new RawContextKey<boolean>('messageVisible', false, nls.localize('messageVisible', 'Whether the editor is currently showing an inline message'));\n\n\tstatic get(editor: ICodeEditor): MessageController | null {\n\t\treturn editor.getContribution<MessageController>(MessageController.ID);\n\t}\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _visible: IContextKey<boolean>;\n\tprivate readonly _messageWidget = new MutableDisposable<MessageWidget>();\n\tprivate readonly _messageListeners = new DisposableStore();\n\tprivate _mouseOverMessage: boolean = false;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IOpenerService private readonly _openerService: IOpenerService\n\t) {\n\n\t\tthis._editor = editor;\n\t\tthis._visible = MessageController.MESSAGE_VISIBLE.bindTo(contextKeyService);\n\t}\n\n\tdispose(): void {\n\t\tthis._messageListeners.dispose();\n\t\tthis._messageWidget.dispose();\n\t\tthis._visible.reset();\n\t}\n\n\tshowMessage(message: IMarkdownString | string, position: IPosition): void {\n\n\t\talert(isMarkdownString(message) ? message.value : message);\n\n\t\tthis._visible.set(true);\n\t\tthis._messageWidget.clear();\n\t\tthis._messageListeners.clear();\n\n\t\tif (isMarkdownString(message)) {\n\t\t\tconst renderedMessage = this._messageListeners.add(renderMarkdown(message, {\n\t\t\t\tactionHandler: (url, mdStr) => {\n\t\t\t\t\tthis.closeMessage();\n\t\t\t\t\topenLinkFromMarkdown(this._openerService, url, mdStr.isTrusted);\n\t\t\t\t},\n\t\t\t}));\n\t\t\tthis._messageWidget.value = new MessageWidget(this._editor, position, renderedMessage.element);\n\t\t} else {\n\t\t\tthis._messageWidget.value = new MessageWidget(this._editor, position, message);\n\t\t}\n\n\t\t// close on blur (debounced to allow to tab into the message), cursor, model change, dispose\n\t\tthis._messageListeners.add(Event.debounce(this._editor.onDidBlurEditorText, (last, event) => event, 0)(() => {\n\t\t\tif (this._mouseOverMessage) {\n\t\t\t\treturn; // override when mouse over message\n\t\t\t}\n\n\t\t\tif (this._messageWidget.value && dom.isAncestor(dom.getActiveElement(), this._messageWidget.value.getDomNode())) {\n\t\t\t\treturn; // override when focus is inside the message\n\t\t\t}\n\n\t\t\tthis.closeMessage();\n\t\t}\n\t\t));\n\t\tthis._messageListeners.add(this._editor.onDidChangeCursorPosition(() => this.closeMessage()));\n\t\tthis._messageListeners.add(this._editor.onDidDispose(() => this.closeMessage()));\n\t\tthis._messageListeners.add(this._editor.onDidChangeModel(() => this.closeMessage()));\n\t\tthis._messageListeners.add(dom.addDisposableListener(this._messageWidget.value.getDomNode(), dom.EventType.MOUSE_ENTER, () => this._mouseOverMessage = true, true));\n\t\tthis._messageListeners.add(dom.addDisposableListener(this._messageWidget.value.getDomNode(), dom.EventType.MOUSE_LEAVE, () => this._mouseOverMessage = false, true));\n\n\t\t// close on mouse move\n\t\tlet bounds: Range;\n\t\tthis._messageListeners.add(this._editor.onMouseMove(e => {\n\t\t\t// outside the text area\n\t\t\tif (!e.target.position) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!bounds) {\n\t\t\t\t// define bounding box around position and first mouse occurance\n\t\t\t\tbounds = new Range(position.lineNumber - 3, 1, e.target.position.lineNumber + 3, 1);\n\t\t\t} else if (!bounds.containsPosition(e.target.position)) {\n\t\t\t\t// check if position is still in bounds\n\t\t\t\tthis.closeMessage();\n\t\t\t}\n\t\t}));\n\t}\n\n\tcloseMessage(): void {\n\t\tthis._visible.reset();\n\t\tthis._messageListeners.clear();\n\t\tif (this._messageWidget.value) {\n\t\t\tthis._messageListeners.add(MessageWidget.fadeOut(this._messageWidget.value));\n\t\t}\n\t}\n}\n\nconst MessageCommand = EditorCommand.bindToContribution<MessageController>(MessageController.get);\n\n\nregisterEditorCommand(new MessageCommand({\n\tid: 'leaveEditorMessage',\n\tprecondition: MessageController.MESSAGE_VISIBLE,\n\thandler: c => c.closeMessage(),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 30,\n\t\tprimary: KeyCode.Escape\n\t}\n}));\n\nclass MessageWidget implements IContentWidget {\n\n\t// Editor.IContentWidget.allowEditorOverflow\n\treadonly allowEditorOverflow = true;\n\treadonly suppressMouseDown = false;\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _position: IPosition;\n\tprivate readonly _domNode: HTMLDivElement;\n\n\tstatic fadeOut(messageWidget: MessageWidget): IDisposable {\n\t\tconst dispose = () => {\n\t\t\tmessageWidget.dispose();\n\t\t\tclearTimeout(handle);\n\t\t\tmessageWidget.getDomNode().removeEventListener('animationend', dispose);\n\t\t};\n\t\tconst handle = setTimeout(dispose, 110);\n\t\tmessageWidget.getDomNode().addEventListener('animationend', dispose);\n\t\tmessageWidget.getDomNode().classList.add('fadeOut');\n\t\treturn { dispose };\n\t}\n\n\tconstructor(editor: ICodeEditor, { lineNumber, column }: IPosition, text: HTMLElement | string) {\n\n\t\tthis._editor = editor;\n\t\tthis._editor.revealLinesInCenterIfOutsideViewport(lineNumber, lineNumber, ScrollType.Smooth);\n\t\tthis._position = { lineNumber, column };\n\n\t\tthis._domNode = document.createElement('div');\n\t\tthis._domNode.classList.add('monaco-editor-overlaymessage');\n\t\tthis._domNode.style.marginLeft = '-6px';\n\n\t\tconst anchorTop = document.createElement('div');\n\t\tanchorTop.classList.add('anchor', 'top');\n\t\tthis._domNode.appendChild(anchorTop);\n\n\t\tconst message = document.createElement('div');\n\t\tif (typeof text === 'string') {\n\t\t\tmessage.classList.add('message');\n\t\t\tmessage.textContent = text;\n\t\t} else {\n\t\t\ttext.classList.add('message');\n\t\t\tmessage.appendChild(text);\n\t\t}\n\t\tthis._domNode.appendChild(message);\n\n\t\tconst anchorBottom = document.createElement('div');\n\t\tanchorBottom.classList.add('anchor', 'below');\n\t\tthis._domNode.appendChild(anchorBottom);\n\n\t\tthis._editor.addContentWidget(this);\n\t\tthis._domNode.classList.add('fadeIn');\n\t}\n\n\tdispose() {\n\t\tthis._editor.removeContentWidget(this);\n\t}\n\n\tgetId(): string {\n\t\treturn 'messageoverlay';\n\t}\n\n\tgetDomNode(): HTMLElement {\n\t\treturn this._domNode;\n\t}\n\n\tgetPosition(): IContentWidgetPosition {\n\t\treturn {\n\t\t\tposition: this._position,\n\t\t\tpreference: [\n\t\t\t\tContentWidgetPositionPreference.ABOVE,\n\t\t\t\tContentWidgetPositionPreference.BELOW,\n\t\t\t],\n\t\t\tpositionAffinity: PositionAffinity.Right,\n\t\t};\n\t}\n\n\tafterRender(position: ContentWidgetPositionPreference | null): void {\n\t\tthis._domNode.classList.toggle('below', position === ContentWidgetPositionPreference.BELOW);\n\t}\n\n}\n\nregisterEditorContribution(MessageController.ID, MessageController, EditorContributionInstantiation.Lazy);\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/editor/contrib/message/browser/messageController.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE3F,OAAO,EAAE,eAAe,EAAe,iBAAiB,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACrH,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAmC,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAEzJ,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAC;AACjG,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAe,kBAAkB,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAEtH,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAEhD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;;aAEN,OAAE,GAAG,kCAAH,AAAqC,CAAC;aAE/C,oBAAe,GAAG,IAAI,aAAa,CAAU,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAgB,EAAE,2DAA2D,CAAC,CAAlJ,AAAmJ,CAAC;IAEnL,MAAM,CAAC,GAAG,CAAC,MAAmB;QAC7B,OAAO,MAAM,CAAC,eAAe,CAAoB,mBAAiB,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAQD,YACC,MAAmB,EACC,iBAAqC,EACzC,cAA+C;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAP/C,mBAAc,GAAG,IAAI,iBAAiB,EAAiB,CAAC;QACxD,sBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;QACnD,sBAAiB,GAAY,KAAK,CAAC;QAQ1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,mBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACN,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,OAAiC,EAAE,QAAmB;QAEjE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAE/B,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC1E,eAAe,EAAE,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC/D,aAAa,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACjE,CAAC;aACD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChF,CAAC;QAED,4FAA4F;QAC5F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YAC3G,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,OAAO,CAAC,mCAAmC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;gBACjH,OAAO,CAAC,4CAA4C;YACrD,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC,CACA,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAErK,sBAAsB;QACtB,IAAI,MAAa,CAAC;QAClB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACvD,wBAAwB;YACxB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO;YACR,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,gEAAgE;gBAChE,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,uCAAuC;gBACvC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,+EAA+E;QAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACzD,IAAI,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;;AAlGW,iBAAiB;IAkB3B,WAAA,kBAAkB,CAAA;IAClB,WAAA,cAAc,CAAA;GAnBJ,iBAAiB,CAmG7B;;AAED,MAAM,cAAc,GAAG,aAAa,CAAC,kBAAkB,CAAoB,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAGlG,qBAAqB,CAAC,IAAI,cAAc,CAAC;IACxC,EAAE,EAAE,oBAAoB;IACxB,YAAY,EAAE,iBAAiB,CAAC,eAAe;IAC/C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE;IAC9B,MAAM,EAAE;QACP,MAAM,EAAE,2CAAiC,EAAE;QAC3C,OAAO,wBAAgB;KACvB;CACD,CAAC,CAAC,CAAC;AAEJ,MAAM,aAAa;IAUlB,MAAM,CAAC,OAAO,CAAC,aAA4B;QAC1C,sFAAsF;QACtF,qFAAqF;QACrF,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxG,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,aAAa,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,YAAY,MAAmB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAa,EAAE,IAA0B;QApB9F,4CAA4C;QACnC,wBAAmB,GAAG,IAAI,CAAC;QAC3B,sBAAiB,GAAG,KAAK,CAAC;QAoBlC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,EAAE,UAAU,4BAAoB,CAAC;QAC7F,IAAI,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAExC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAExC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACN,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK;QACJ,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,WAAW;QACV,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU,EAAE;;;aAGX;YACD,gBAAgB,gCAAwB;SACxC,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAgD;QAC3D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,kDAA0C,CAAC,CAAC;IAC7F,CAAC;CAED;AAED,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,+CAAuC,CAAC","file":"messageController.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { renderMarkdown } from '../../../../base/browser/markdownRenderer.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { IMarkdownString, isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { KeyCode } from '../../../../base/common/keyCodes.js';\nimport { DisposableStore, IDisposable, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport './messageController.css';\nimport { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from '../../../browser/editorBrowser.js';\nimport { getEditorMarkdownSanitizerConfig } from '../../../browser/editorMarkdownSanitizer.js';\nimport { EditorCommand, EditorContributionInstantiation, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { IPosition } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution, ScrollType } from '../../../common/editorCommon.js';\nimport { PositionAffinity } from '../../../common/model.js';\nimport { openLinkFromMarkdown } from '../../../../platform/markdown/browser/markdownRenderer.js';\nimport * as nls from '../../../../nls.js';\nimport { IContextKey, IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport * as dom from '../../../../base/browser/dom.js';\n\nexport class MessageController implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.messageController';\n\n\tstatic readonly MESSAGE_VISIBLE = new RawContextKey<boolean>('messageVisible', false, nls.localize('messageVisible', 'Whether the editor is currently showing an inline message'));\n\n\tstatic get(editor: ICodeEditor): MessageController | null {\n\t\treturn editor.getContribution<MessageController>(MessageController.ID);\n\t}\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _visible: IContextKey<boolean>;\n\tprivate readonly _messageWidget = new MutableDisposable<MessageWidget>();\n\tprivate readonly _messageListeners = new DisposableStore();\n\tprivate _mouseOverMessage: boolean = false;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IOpenerService private readonly _openerService: IOpenerService\n\t) {\n\n\t\tthis._editor = editor;\n\t\tthis._visible = MessageController.MESSAGE_VISIBLE.bindTo(contextKeyService);\n\t}\n\n\tdispose(): void {\n\t\tthis._messageListeners.dispose();\n\t\tthis._messageWidget.dispose();\n\t\tthis._visible.reset();\n\t}\n\n\tshowMessage(message: IMarkdownString | string, position: IPosition): void {\n\n\t\talert(isMarkdownString(message) ? message.value : message);\n\n\t\tthis._visible.set(true);\n\t\tthis._messageWidget.clear();\n\t\tthis._messageListeners.clear();\n\n\t\tif (isMarkdownString(message)) {\n\t\t\tconst renderedMessage = this._messageListeners.add(renderMarkdown(message, {\n\t\t\t\tsanitizerConfig: getEditorMarkdownSanitizerConfig(this._editor),\n\t\t\t\tactionHandler: (url, mdStr) => {\n\t\t\t\t\tthis.closeMessage();\n\t\t\t\t\topenLinkFromMarkdown(this._openerService, url, mdStr.isTrusted);\n\t\t\t\t},\n\t\t\t}));\n\t\t\tthis._messageWidget.value = new MessageWidget(this._editor, position, renderedMessage.element);\n\t\t} else {\n\t\t\tthis._messageWidget.value = new MessageWidget(this._editor, position, message);\n\t\t}\n\n\t\t// close on blur (debounced to allow to tab into the message), cursor, model change, dispose\n\t\tthis._messageListeners.add(Event.debounce(this._editor.onDidBlurEditorText, (last, event) => event, 0)(() => {\n\t\t\tif (this._mouseOverMessage) {\n\t\t\t\treturn; // override when mouse over message\n\t\t\t}\n\n\t\t\tif (this._messageWidget.value && dom.isAncestor(dom.getActiveElement(), this._messageWidget.value.getDomNode())) {\n\t\t\t\treturn; // override when focus is inside the message\n\t\t\t}\n\n\t\t\tthis.closeMessage();\n\t\t}\n\t\t));\n\t\tthis._messageListeners.add(this._editor.onDidChangeCursorPosition(() => this.closeMessage()));\n\t\tthis._messageListeners.add(this._editor.onDidDispose(() => this.closeMessage()));\n\t\tthis._messageListeners.add(this._editor.onDidChangeModel(() => this.closeMessage()));\n\t\tthis._messageListeners.add(dom.addDisposableListener(this._messageWidget.value.getDomNode(), dom.EventType.MOUSE_ENTER, () => this._mouseOverMessage = true, true));\n\t\tthis._messageListeners.add(dom.addDisposableListener(this._messageWidget.value.getDomNode(), dom.EventType.MOUSE_LEAVE, () => this._mouseOverMessage = false, true));\n\n\t\t// close on mouse move\n\t\tlet bounds: Range;\n\t\tthis._messageListeners.add(this._editor.onMouseMove(e => {\n\t\t\t// outside the text area\n\t\t\tif (!e.target.position) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!bounds) {\n\t\t\t\t// define bounding box around position and first mouse occurance\n\t\t\t\tbounds = new Range(position.lineNumber - 3, 1, e.target.position.lineNumber + 3, 1);\n\t\t\t} else if (!bounds.containsPosition(e.target.position)) {\n\t\t\t\t// check if position is still in bounds\n\t\t\t\tthis.closeMessage();\n\t\t\t}\n\t\t}));\n\t}\n\n\tcloseMessage(): void {\n\t\tthis._visible.reset();\n\t\tthis._messageListeners.clear();\n\t\t// Hand the widget over to the fade out so it isn't retained after it went away\n\t\tconst messageWidget = this._messageWidget.clearAndLeak();\n\t\tif (messageWidget) {\n\t\t\tthis._messageListeners.add(MessageWidget.fadeOut(messageWidget));\n\t\t}\n\t}\n}\n\nconst MessageCommand = EditorCommand.bindToContribution<MessageController>(MessageController.get);\n\n\nregisterEditorCommand(new MessageCommand({\n\tid: 'leaveEditorMessage',\n\tprecondition: MessageController.MESSAGE_VISIBLE,\n\thandler: c => c.closeMessage(),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 30,\n\t\tprimary: KeyCode.Escape\n\t}\n}));\n\nclass MessageWidget implements IContentWidget {\n\n\t// Editor.IContentWidget.allowEditorOverflow\n\treadonly allowEditorOverflow = true;\n\treadonly suppressMouseDown = false;\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _position: IPosition;\n\tprivate readonly _domNode: HTMLDivElement;\n\n\tstatic fadeOut(messageWidget: MessageWidget): IDisposable {\n\t\t// Everything that references the widget lives in the store, which is emptied once the\n\t\t// fade out completes, so holding on to the returned disposable doesn't keep it alive\n\t\tconst store = new DisposableStore();\n\t\tstore.add(toDisposable(() => messageWidget.dispose()));\n\t\tstore.add(dom.addDisposableListener(messageWidget.getDomNode(), 'animationend', () => store.dispose()));\n\t\tconst handle = setTimeout(() => store.dispose(), 110);\n\t\tstore.add(toDisposable(() => clearTimeout(handle)));\n\t\tmessageWidget.getDomNode().classList.add('fadeOut');\n\t\treturn store;\n\t}\n\n\tconstructor(editor: ICodeEditor, { lineNumber, column }: IPosition, text: HTMLElement | string) {\n\n\t\tthis._editor = editor;\n\t\tthis._editor.revealLinesInCenterIfOutsideViewport(lineNumber, lineNumber, ScrollType.Smooth);\n\t\tthis._position = { lineNumber, column };\n\n\t\tthis._domNode = document.createElement('div');\n\t\tthis._domNode.classList.add('monaco-editor-overlaymessage');\n\t\tthis._domNode.style.marginLeft = '-6px';\n\n\t\tconst anchorTop = document.createElement('div');\n\t\tanchorTop.classList.add('anchor', 'top');\n\t\tthis._domNode.appendChild(anchorTop);\n\n\t\tconst message = document.createElement('div');\n\t\tif (typeof text === 'string') {\n\t\t\tmessage.classList.add('message');\n\t\t\tmessage.textContent = text;\n\t\t} else {\n\t\t\ttext.classList.add('message');\n\t\t\tmessage.appendChild(text);\n\t\t}\n\t\tthis._domNode.appendChild(message);\n\n\t\tconst anchorBottom = document.createElement('div');\n\t\tanchorBottom.classList.add('anchor', 'below');\n\t\tthis._domNode.appendChild(anchorBottom);\n\n\t\tthis._editor.addContentWidget(this);\n\t\tthis._domNode.classList.add('fadeIn');\n\t}\n\n\tdispose() {\n\t\tthis._editor.removeContentWidget(this);\n\t}\n\n\tgetId(): string {\n\t\treturn 'messageoverlay';\n\t}\n\n\tgetDomNode(): HTMLElement {\n\t\treturn this._domNode;\n\t}\n\n\tgetPosition(): IContentWidgetPosition {\n\t\treturn {\n\t\t\tposition: this._position,\n\t\t\tpreference: [\n\t\t\t\tContentWidgetPositionPreference.ABOVE,\n\t\t\t\tContentWidgetPositionPreference.BELOW,\n\t\t\t],\n\t\t\tpositionAffinity: PositionAffinity.Right,\n\t\t};\n\t}\n\n\tafterRender(position: ContentWidgetPositionPreference | null): void {\n\t\tthis._domNode.classList.toggle('below', position === ContentWidgetPositionPreference.BELOW);\n\t}\n\n}\n\nregisterEditorContribution(MessageController.ID, MessageController, EditorContributionInstantiation.Lazy);\n"]}
|
|
@@ -16,7 +16,7 @@ export class MiddleScrollController extends Disposable {
|
|
|
16
16
|
super();
|
|
17
17
|
this._editor = _editor;
|
|
18
18
|
const obsEditor = observableCodeEditor(this._editor);
|
|
19
|
-
const scrollOnMiddleClick = obsEditor.getOption(
|
|
19
|
+
const scrollOnMiddleClick = obsEditor.getOption(175 /* EditorOption.scrollOnMiddleClick */);
|
|
20
20
|
this._register(autorun(reader => {
|
|
21
21
|
if (!scrollOnMiddleClick.read(reader)) {
|
|
22
22
|
return;
|