monaco-editor-core 0.55.1 → 0.56.0-dev-20251121
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 +27 -8
- package/esm/vs/base/browser/dom.js +31 -34
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/dompurify/dompurify.js +0 -1
- package/esm/vs/base/browser/keyboardEvent.js +3 -3
- package/esm/vs/base/browser/keyboardEvent.js.map +1 -1
- package/esm/vs/base/browser/markdownRenderer.js +5 -2
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/pixelRatio.js +5 -5
- package/esm/vs/base/browser/pixelRatio.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js +1 -1
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionbar.js +3 -0
- package/esm/vs/base/browser/ui/actionbar/actionbar.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +7 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js.map +1 -1
- package/esm/vs/base/browser/ui/hover/hoverWidget.css +0 -13
- package/esm/vs/base/browser/ui/inputbox/inputBox.js +7 -0
- package/esm/vs/base/browser/ui/inputbox/inputBox.js.map +1 -1
- package/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css +4 -2
- package/esm/vs/base/browser/ui/list/listView.js +7 -2
- package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBox.js +4 -0
- package/esm/vs/base/browser/ui/selectBox/selectBox.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css +12 -32
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js +8 -18
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js.map +1 -1
- package/esm/vs/base/browser/ui/toolbar/toolbar.js +41 -14
- package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js +11 -0
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +1 -0
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
- package/esm/vs/base/common/arrays.js +10 -0
- package/esm/vs/base/common/arrays.js.map +1 -1
- package/esm/vs/base/common/async.js +34 -0
- package/esm/vs/base/common/async.js.map +1 -1
- package/esm/vs/base/common/buffer.js +1 -1
- package/esm/vs/base/common/buffer.js.map +1 -1
- package/esm/vs/base/common/cancellation.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +3 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/collections.js.map +1 -1
- package/esm/vs/base/common/equals.js.map +1 -1
- package/esm/vs/base/common/event.js +32 -15
- package/esm/vs/base/common/event.js.map +1 -1
- package/esm/vs/base/common/filters.js +22 -3
- package/esm/vs/base/common/filters.js.map +1 -1
- package/esm/vs/base/common/hotReload.js +2 -2
- package/esm/vs/base/common/hotReload.js.map +1 -1
- package/esm/vs/base/common/iterator.js +1 -1
- package/esm/vs/base/common/iterator.js.map +1 -1
- package/esm/vs/base/common/keyCodes.js +7 -6
- package/esm/vs/base/common/keyCodes.js.map +1 -1
- package/esm/vs/base/common/linkedList.js.map +1 -1
- package/esm/vs/base/common/map.js.map +1 -1
- package/esm/vs/base/common/marked/marked.js +0 -1
- package/esm/vs/base/common/network.js +26 -1
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/normalization.js +19 -6
- package/esm/vs/base/common/normalization.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugLocation.js +1 -2
- package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugName.js +0 -1
- package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/esm/vs/base/common/observableInternal/index.js +4 -4
- package/esm/vs/base/common/observableInternal/index.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +38 -10
- package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/baseObservable.js +3 -3
- package/esm/vs/base/common/observableInternal/observables/baseObservable.js.map +1 -1
- package/esm/vs/base/common/observableInternal/utils/utils.js +46 -5
- package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
- package/esm/vs/base/common/path.js +1 -0
- package/esm/vs/base/common/path.js.map +1 -1
- package/esm/vs/base/common/strings.js +27 -19
- package/esm/vs/base/common/strings.js.map +1 -1
- package/esm/vs/editor/browser/config/elementSizeObserver.js +5 -5
- package/esm/vs/editor/browser/config/elementSizeObserver.js.map +1 -1
- package/esm/vs/editor/browser/config/fontMeasurements.js.map +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js +6 -0
- package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
- package/esm/vs/editor/browser/config/tabFocus.js +4 -2
- package/esm/vs/editor/browser/config/tabFocus.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +8 -0
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js +1 -2
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/observableCodeEditor.js +32 -1
- package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
- package/esm/vs/editor/browser/services/contribution.js +9 -0
- package/esm/vs/editor/browser/services/contribution.js.map +1 -0
- package/esm/vs/editor/browser/services/editorWorkerService.js +27 -14
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js +5 -1
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js.map +1 -1
- package/esm/vs/editor/browser/view/renderingContext.js +1 -1
- package/esm/vs/editor/browser/view/renderingContext.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +10 -3
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +3 -4
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +1 -1
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +4 -2
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js +1 -3
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js +2 -1
- package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +6 -18
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +0 -7
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +7 -2
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js.map +1 -1
- package/esm/vs/editor/common/commands/replaceCommand.js +2 -2
- package/esm/vs/editor/common/commands/replaceCommand.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +374 -360
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/2d/rect.js +7 -0
- package/esm/vs/editor/common/core/2d/rect.js.map +1 -1
- package/esm/vs/editor/common/core/2d/size.js +20 -0
- package/esm/vs/editor/common/core/2d/size.js.map +1 -0
- package/esm/vs/editor/common/core/editorColorRegistry.js +69 -68
- package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
- package/esm/vs/editor/common/core/ranges/offsetRange.js +9 -0
- package/esm/vs/editor/common/core/ranges/offsetRange.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorContextKeys.js +47 -47
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/services/languagesAssociations.js +6 -8
- package/esm/vs/editor/common/services/languagesAssociations.js.map +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +11 -10
- package/esm/vs/editor/common/standaloneStrings.js.map +1 -1
- package/esm/vs/editor/common/textModelEditSource.js +1 -1
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- 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 +17 -17
- 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/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelens.js.map +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/codelens/browser/codelensController.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/hoverColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js +14 -0
- package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- 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/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +17 -17
- package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
- 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/format.js +21 -6
- package/esm/vs/editor/contrib/format/browser/format.js.map +1 -1
- 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/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- 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 +5 -10
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js +11 -6
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.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/hoverUtils.js +24 -0
- package/esm/vs/editor/contrib/hover/browser/hoverUtils.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- 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/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +18 -16
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +42 -37
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +3 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +54 -43
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +74 -48
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +8 -36
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js +10 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +105 -119
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +8 -36
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js +95 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +17 -9
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +415 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +253 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js +103 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js +32 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +44 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +181 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -0
- 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 -31
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- 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/quickAccess/browser/editorNavigationQuickAccess.js +2 -2
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +18 -13
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +12 -12
- package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- 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/stickyScrollWidget.js +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.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 +29 -29
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +4 -4
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/esm/vs/editor/editor.all.js +1 -0
- package/esm/vs/editor/editor.all.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +9 -5
- package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js +22 -2
- package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js +39 -0
- package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js.map +1 -0
- package/esm/vs/editor/standalone/browser/standaloneEditor.js +2 -1
- package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneServices.js +3 -21
- package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js +4 -4
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +7 -9
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/actions.js +2 -0
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configuration.js +5 -4
- package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationModels.js +21 -10
- package/esm/vs/platform/configuration/common/configurationModels.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurations.js.map +1 -1
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +3 -3
- package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/contextview/browser/contextViewService.js.map +1 -1
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +11 -32
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/media/quickInput.css +9 -3
- 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 +35 -14
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js +4 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.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/quickInputTreeController.js +71 -40
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +21 -8
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
- package/esm/vs/platform/telemetry/common/gdprTypings.js.map +1 -1
- package/esm/vs/platform/telemetry/common/telemetry.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/editorColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- 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 +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/miscColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- 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/webWorker/browser/webWorkerDescriptor.js +12 -0
- package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js.map +1 -0
- package/esm/vs/platform/webWorker/browser/webWorkerService.js +7 -0
- package/esm/vs/platform/webWorker/browser/webWorkerService.js.map +1 -0
- package/esm/vs/{base/browser/webWorkerFactory.js → platform/webWorker/browser/webWorkerServiceImpl.js} +47 -66
- package/esm/vs/platform/webWorker/browser/webWorkerServiceImpl.js.map +1 -0
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/monaco.d.ts +9 -5
- package/package.json +2 -2
- package/esm/vs/base/browser/webWorkerFactory.js.map +0 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js +0 -82
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/editor/contrib/wordHighlighter/browser/wordHighlighter.ts"],"names":[],"mappings":"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","file":"wordHighlighter.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 * as nls from '../../../../nls.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { CancelablePromise, createCancelablePromise, Delayer, first } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { matchesScheme, Schemas } from '../../../../base/common/network.js';\nimport { isEqual } from '../../../../base/common/resources.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKey, IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IActiveCodeEditor, ICodeEditor, isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, IActionOptions, registerEditorAction, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IWordAtPosition } from '../../../common/core/wordHelper.js';\nimport { CursorChangeReason, ICursorPositionChangedEvent } from '../../../common/cursorEvents.js';\nimport { IDiffEditor, IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { DocumentHighlight, DocumentHighlightProvider, MultiDocumentHighlightProvider } from '../../../common/languages.js';\nimport { score } from '../../../common/languageSelector.js';\nimport { IModelDeltaDecoration, ITextModel, shouldSynchronizeModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { getHighlightDecorationOptions } from './highlightDecorations.js';\nimport { TextualMultiDocumentHighlightFeature } from './textualHighlightProvider.js';\n\nconst ctxHasWordHighlights = new RawContextKey<boolean>('hasWordHighlights', false);\n\nexport function getOccurrencesAtPosition(registry: LanguageFeatureRegistry<DocumentHighlightProvider>, model: ITextModel, position: Position, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]> | null | undefined> {\n\tconst orderedByScore = registry.ordered(model);\n\n\t// in order of score ask the occurrences provider\n\t// until someone response with a good result\n\t// (good = non undefined and non null value)\n\t// (result of size == 0 is valid, no highlights is a valid/expected result -- not a signal to fall back to other providers)\n\treturn first<DocumentHighlight[] | null | undefined>(orderedByScore.map(provider => () => {\n\t\treturn Promise.resolve(provider.provideDocumentHighlights(model, position, token))\n\t\t\t.then(undefined, onUnexpectedExternalError);\n\t}), (result): result is DocumentHighlight[] => result !== undefined && result !== null).then(result => {\n\t\tif (result) {\n\t\t\tconst map = new ResourceMap<DocumentHighlight[]>();\n\t\t\tmap.set(model.uri, result);\n\t\t\treturn map;\n\t\t}\n\t\treturn new ResourceMap<DocumentHighlight[]>();\n\t});\n}\n\nexport function getOccurrencesAcrossMultipleModels(registry: LanguageFeatureRegistry<MultiDocumentHighlightProvider>, model: ITextModel, position: Position, token: CancellationToken, otherModels: ITextModel[]): Promise<ResourceMap<DocumentHighlight[]> | null | undefined> {\n\tconst orderedByScore = registry.ordered(model);\n\n\t// in order of score ask the occurrences provider\n\t// until someone response with a good result\n\t// (good = non undefined and non null ResourceMap)\n\t// (result of size == 0 is valid, no highlights is a valid/expected result -- not a signal to fall back to other providers)\n\treturn first<ResourceMap<DocumentHighlight[]> | null | undefined>(orderedByScore.map(provider => () => {\n\t\tconst filteredModels = otherModels.filter(otherModel => {\n\t\t\treturn shouldSynchronizeModel(otherModel);\n\t\t}).filter(otherModel => {\n\t\t\treturn score(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, undefined, undefined) > 0;\n\t\t});\n\t\treturn Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token))\n\t\t\t.then(undefined, onUnexpectedExternalError);\n\t}), (result): result is ResourceMap<DocumentHighlight[]> => result !== undefined && result !== null);\n}\n\ninterface IOccurenceAtPositionRequest {\n\treadonly result: Promise<ResourceMap<DocumentHighlight[]>>;\n\tcancel(): void;\n}\n\ninterface IWordHighlighterQuery {\n\tmodelInfo: {\n\t\tmodelURI: URI;\n\t\tselection: Selection;\n\t} | null;\n}\n\nabstract class OccurenceAtPositionRequest implements IOccurenceAtPositionRequest {\n\n\tprivate readonly _wordRange: Range | null;\n\tprivate _result: CancelablePromise<ResourceMap<DocumentHighlight[]>> | null;\n\n\tconstructor(private readonly _model: ITextModel, private readonly _selection: Selection, private readonly _wordSeparators: string) {\n\t\tthis._wordRange = this._getCurrentWordRange(_model, _selection);\n\t\tthis._result = null;\n\t}\n\n\tget result() {\n\t\tif (!this._result) {\n\t\t\tthis._result = createCancelablePromise(token => this._compute(this._model, this._selection, this._wordSeparators, token));\n\t\t}\n\t\treturn this._result;\n\t}\n\n\tprotected abstract _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]>>;\n\n\tprivate _getCurrentWordRange(model: ITextModel, selection: Selection): Range | null {\n\t\tconst word = model.getWordAtPosition(selection.getPosition());\n\t\tif (word) {\n\t\t\treturn new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic cancel(): void {\n\t\tthis.result.cancel();\n\t}\n}\n\nclass SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest {\n\n\tprivate readonly _providers: LanguageFeatureRegistry<DocumentHighlightProvider>;\n\n\tconstructor(model: ITextModel, selection: Selection, wordSeparators: string, providers: LanguageFeatureRegistry<DocumentHighlightProvider>) {\n\t\tsuper(model, selection, wordSeparators);\n\t\tthis._providers = providers;\n\t}\n\n\tprotected _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]>> {\n\t\treturn getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then(value => {\n\t\t\tif (!value) {\n\t\t\t\treturn new ResourceMap<DocumentHighlight[]>();\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t}\n}\n\nclass MultiModelOccurenceRequest extends OccurenceAtPositionRequest {\n\tprivate readonly _providers: LanguageFeatureRegistry<MultiDocumentHighlightProvider>;\n\tprivate readonly _otherModels: ITextModel[];\n\n\tconstructor(model: ITextModel, selection: Selection, wordSeparators: string, providers: LanguageFeatureRegistry<MultiDocumentHighlightProvider>, otherModels: ITextModel[]) {\n\t\tsuper(model, selection, wordSeparators);\n\t\tthis._providers = providers;\n\t\tthis._otherModels = otherModels;\n\t}\n\n\tprotected override _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]>> {\n\t\treturn getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), token, this._otherModels).then(value => {\n\t\t\tif (!value) {\n\t\t\t\treturn new ResourceMap<DocumentHighlight[]>();\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t}\n}\n\n\nfunction computeOccurencesAtPosition(registry: LanguageFeatureRegistry<DocumentHighlightProvider>, model: ITextModel, selection: Selection, wordSeparators: string): IOccurenceAtPositionRequest {\n\treturn new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators, registry);\n}\n\nfunction computeOccurencesMultiModel(registry: LanguageFeatureRegistry<MultiDocumentHighlightProvider>, model: ITextModel, selection: Selection, wordSeparators: string, otherModels: ITextModel[]): IOccurenceAtPositionRequest {\n\treturn new MultiModelOccurenceRequest(model, selection, wordSeparators, registry, otherModels);\n}\n\nregisterModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {\n\tconst languageFeaturesService = accessor.get(ILanguageFeaturesService);\n\tconst map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n\treturn map?.get(model.uri);\n});\n\nclass WordHighlighter {\n\n\tprivate readonly editor: IActiveCodeEditor;\n\tprivate readonly providers: LanguageFeatureRegistry<DocumentHighlightProvider>;\n\tprivate readonly multiDocumentProviders: LanguageFeatureRegistry<MultiDocumentHighlightProvider>;\n\tprivate readonly model: ITextModel;\n\tprivate readonly decorations: IEditorDecorationsCollection;\n\tprivate readonly toUnhook = new DisposableStore();\n\n\tprivate readonly textModelService: ITextModelService;\n\tprivate readonly codeEditorService: ICodeEditorService;\n\tprivate readonly configurationService: IConfigurationService;\n\tprivate readonly logService: ILogService;\n\n\tprivate occurrencesHighlightEnablement: string;\n\tprivate occurrencesHighlightDelay: number;\n\n\tprivate workerRequestTokenId: number = 0;\n\tprivate workerRequest: IOccurenceAtPositionRequest | null;\n\tprivate workerRequestCompleted: boolean = false;\n\tprivate workerRequestValue: ResourceMap<DocumentHighlight[]> = new ResourceMap();\n\n\tprivate lastCursorPositionChangeTime: number = 0;\n\tprivate renderDecorationsTimer: Timeout | undefined = undefined;\n\n\tprivate readonly _hasWordHighlights: IContextKey<boolean>;\n\tprivate _ignorePositionChangeEvent: boolean;\n\n\tprivate readonly runDelayer: Delayer<void> = this.toUnhook.add(new Delayer<void>(50));\n\n\tprivate static storedDecorationIDs: ResourceMap<string[]> = new ResourceMap();\n\tprivate static query: IWordHighlighterQuery | null = null;\n\n\tconstructor(\n\t\teditor: IActiveCodeEditor,\n\t\tproviders: LanguageFeatureRegistry<DocumentHighlightProvider>,\n\t\tmultiProviders: LanguageFeatureRegistry<MultiDocumentHighlightProvider>,\n\t\tcontextKeyService: IContextKeyService,\n\t\t@ITextModelService textModelService: ITextModelService,\n\t\t@ICodeEditorService codeEditorService: ICodeEditorService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@ILogService logService: ILogService,\n\t) {\n\t\tthis.editor = editor;\n\t\tthis.providers = providers;\n\t\tthis.multiDocumentProviders = multiProviders;\n\n\t\tthis.codeEditorService = codeEditorService;\n\t\tthis.textModelService = textModelService;\n\t\tthis.configurationService = configurationService;\n\t\tthis.logService = logService;\n\n\t\tthis._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n\t\tthis._ignorePositionChangeEvent = false;\n\t\tthis.occurrencesHighlightEnablement = this.editor.getOption(EditorOption.occurrencesHighlight);\n\t\tthis.occurrencesHighlightDelay = this.configurationService.getValue<number>('editor.occurrencesHighlightDelay');\n\t\tthis.model = this.editor.getModel();\n\n\t\tthis.toUnhook.add(editor.onDidChangeCursorPosition((e: ICursorPositionChangedEvent) => {\n\t\t\tif (this._ignorePositionChangeEvent) {\n\t\t\t\t// We are changing the position => ignore this event\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\t\t// Early exit if nothing needs to be done!\n\t\t\t\t// Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.runDelayer.trigger(() => { this._onPositionChanged(e); });\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidFocusEditorText((e) => {\n\t\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\t\t// Early exit if nothing needs to be done\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.workerRequest) {\n\t\t\t\tthis.runDelayer.trigger(() => { this._run(); });\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidChangeModelContent((e) => {\n\t\t\tif (!matchesScheme(this.model.uri, 'output')) {\n\t\t\t\tthis._stopAll();\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidChangeModel((e) => {\n\t\t\tif (!e.newModelUrl && e.oldModelUrl) {\n\t\t\t\tthis._stopSingular();\n\t\t\t} else if (WordHighlighter.query) {\n\t\t\t\tthis._run();\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidChangeConfiguration((e) => {\n\t\t\tconst newEnablement = this.editor.getOption(EditorOption.occurrencesHighlight);\n\t\t\tif (this.occurrencesHighlightEnablement !== newEnablement) {\n\t\t\t\tthis.occurrencesHighlightEnablement = newEnablement;\n\t\t\t\tswitch (newEnablement) {\n\t\t\t\t\tcase 'off':\n\t\t\t\t\t\tthis._stopAll();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'singleFile':\n\t\t\t\t\t\tthis._stopAll(WordHighlighter.query?.modelInfo?.modelURI);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'multiFile':\n\t\t\t\t\t\tif (WordHighlighter.query) {\n\t\t\t\t\t\t\tthis._run(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tconsole.warn('Unknown occurrencesHighlight setting value:', newEnablement);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(this.configurationService.onDidChangeConfiguration((e) => {\n\t\t\tif (e.affectsConfiguration('editor.occurrencesHighlightDelay')) {\n\t\t\t\tconst newDelay = configurationService.getValue<number>('editor.occurrencesHighlightDelay');\n\t\t\t\tif (this.occurrencesHighlightDelay !== newDelay) {\n\t\t\t\t\tthis.occurrencesHighlightDelay = newDelay;\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidBlurEditorWidget(() => {\n\t\t\t// logic is as follows\n\t\t\t// - didBlur => active null => stopall\n\t\t\t// - didBlur => active nb => if this.editor is notebook, do nothing (new cell, so we don't want to stopAll)\n\t\t\t// active nb => if this.editor is NOT nb, stopAll\n\n\t\t\tconst activeEditor = this.codeEditorService.getFocusedCodeEditor();\n\t\t\tif (!activeEditor) { // clicked into nb cell list, outline, terminal, etc\n\t\t\t\tthis._stopAll();\n\t\t\t} else if (activeEditor.getModel()?.uri.scheme === Schemas.vscodeNotebookCell && this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell) { // switched tabs from non-nb to nb\n\t\t\t\tthis._stopAll();\n\t\t\t}\n\t\t}));\n\n\t\tthis.decorations = this.editor.createDecorationsCollection();\n\t\tthis.workerRequestTokenId = 0;\n\t\tthis.workerRequest = null;\n\t\tthis.workerRequestCompleted = false;\n\n\t\tthis.lastCursorPositionChangeTime = 0;\n\t\tthis.renderDecorationsTimer = undefined;\n\n\t\t// if there is a query already, highlight off that query\n\t\tif (WordHighlighter.query) {\n\t\t\tthis._run();\n\t\t}\n\t}\n\n\tpublic hasDecorations(): boolean {\n\t\treturn (this.decorations.length > 0);\n\t}\n\n\tpublic restore(delay: number): void {\n\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.runDelayer.cancel();\n\t\tthis.runDelayer.trigger(() => { this._run(false, delay); });\n\t}\n\n\tpublic stop(): void {\n\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._stopAll();\n\t}\n\n\tprivate _getSortedHighlights(): Range[] {\n\t\treturn (\n\t\t\tthis.decorations.getRanges()\n\t\t\t\t.sort(Range.compareRangesUsingStarts)\n\t\t);\n\t}\n\n\tpublic moveNext() {\n\t\tconst highlights = this._getSortedHighlights();\n\t\tconst index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n\t\tconst newIndex = ((index + 1) % highlights.length);\n\t\tconst dest = highlights[newIndex];\n\t\ttry {\n\t\t\tthis._ignorePositionChangeEvent = true;\n\t\t\tthis.editor.setPosition(dest.getStartPosition());\n\t\t\tthis.editor.revealRangeInCenterIfOutsideViewport(dest);\n\t\t\tconst word = this._getWord();\n\t\t\tif (word) {\n\t\t\t\tconst lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n\t\t\t\talert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._ignorePositionChangeEvent = false;\n\t\t}\n\t}\n\n\tpublic moveBack() {\n\t\tconst highlights = this._getSortedHighlights();\n\t\tconst index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n\t\tconst newIndex = ((index - 1 + highlights.length) % highlights.length);\n\t\tconst dest = highlights[newIndex];\n\t\ttry {\n\t\t\tthis._ignorePositionChangeEvent = true;\n\t\t\tthis.editor.setPosition(dest.getStartPosition());\n\t\t\tthis.editor.revealRangeInCenterIfOutsideViewport(dest);\n\t\t\tconst word = this._getWord();\n\t\t\tif (word) {\n\t\t\t\tconst lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n\t\t\t\talert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._ignorePositionChangeEvent = false;\n\t\t}\n\t}\n\n\tprivate _removeSingleDecorations(): void {\n\t\t// return if no model\n\t\tif (!this.editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentDecorationIDs = WordHighlighter.storedDecorationIDs.get(this.editor.getModel().uri);\n\t\tif (!currentDecorationIDs) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.removeDecorations(currentDecorationIDs);\n\t\tWordHighlighter.storedDecorationIDs.delete(this.editor.getModel().uri);\n\n\t\tif (this.decorations.length > 0) {\n\t\t\tthis.decorations.clear();\n\t\t\tthis._hasWordHighlights.set(false);\n\t\t}\n\t}\n\n\tprivate _removeAllDecorations(preservedModel?: URI): void {\n\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\tconst deleteURI = [];\n\t\t// iterate over editors and store models in currentModels\n\t\tfor (const editor of currentEditors) {\n\t\t\tif (!editor.hasModel() || isEqual(editor.getModel().uri, preservedModel)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentDecorationIDs = WordHighlighter.storedDecorationIDs.get(editor.getModel().uri);\n\t\t\tif (!currentDecorationIDs) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\teditor.removeDecorations(currentDecorationIDs);\n\t\t\tdeleteURI.push(editor.getModel().uri);\n\n\t\t\tconst editorHighlighterContrib = WordHighlighterContribution.get(editor);\n\t\t\tif (!editorHighlighterContrib?.wordHighlighter) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (editorHighlighterContrib.wordHighlighter.decorations.length > 0) {\n\t\t\t\teditorHighlighterContrib.wordHighlighter.decorations.clear();\n\t\t\t\teditorHighlighterContrib.wordHighlighter.workerRequest = null;\n\t\t\t\teditorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n\t\t\t}\n\t\t}\n\n\t\tfor (const uri of deleteURI) {\n\t\t\tWordHighlighter.storedDecorationIDs.delete(uri);\n\t\t}\n\t}\n\n\tprivate _stopSingular(): void {\n\t\t// Remove any existing decorations + a possible query, and re - run to update decorations\n\t\tthis._removeSingleDecorations();\n\n\t\tif (this.editor.hasTextFocus()) {\n\t\t\tif (this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell && WordHighlighter.query?.modelInfo?.modelURI.scheme !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor\n\t\t\t\tWordHighlighter.query = null;\n\t\t\t\tthis._run(); // TODO: @Yoyokrazy -- investigate why we need a full rerun here. likely addressed a case/patch in the first iteration of this feature\n\t\t\t} else { // remove modelInfo to account for nb cell being disposed\n\t\t\t\tif (WordHighlighter.query?.modelInfo) {\n\t\t\t\t\tWordHighlighter.query.modelInfo = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Cancel any renderDecorationsTimer\n\t\tif (this.renderDecorationsTimer !== undefined) {\n\t\t\tclearTimeout(this.renderDecorationsTimer);\n\t\t\tthis.renderDecorationsTimer = undefined;\n\t\t}\n\n\t\t// Cancel any worker request\n\t\tif (this.workerRequest !== null) {\n\t\t\tthis.workerRequest.cancel();\n\t\t\tthis.workerRequest = null;\n\t\t}\n\n\t\t// Invalidate any worker request callback\n\t\tif (!this.workerRequestCompleted) {\n\t\t\tthis.workerRequestTokenId++;\n\t\t\tthis.workerRequestCompleted = true;\n\t\t}\n\t}\n\n\tprivate _stopAll(preservedModel?: URI): void {\n\t\t// Remove any existing decorations\n\t\t// TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily.\n\t\t// maybe a nb type check?\n\t\tthis._removeAllDecorations(preservedModel);\n\n\t\t// Cancel any renderDecorationsTimer\n\t\tif (this.renderDecorationsTimer !== undefined) {\n\t\t\tclearTimeout(this.renderDecorationsTimer);\n\t\t\tthis.renderDecorationsTimer = undefined;\n\t\t}\n\n\t\t// Cancel any worker request\n\t\tif (this.workerRequest !== null) {\n\t\t\tthis.workerRequest.cancel();\n\t\t\tthis.workerRequest = null;\n\t\t}\n\n\t\t// Invalidate any worker request callback\n\t\tif (!this.workerRequestCompleted) {\n\t\t\tthis.workerRequestTokenId++;\n\t\t\tthis.workerRequestCompleted = true;\n\t\t}\n\t}\n\n\tprivate _onPositionChanged(e: ICursorPositionChangedEvent): void {\n\n\t\t// disabled\n\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\tthis._stopAll();\n\t\t\treturn;\n\t\t}\n\n\t\t// ignore typing & other\n\t\t// need to check if the model is a notebook cell, should not stop if nb\n\t\tif (e.source !== 'api' && e.reason !== CursorChangeReason.Explicit) {\n\t\t\tthis._stopAll();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._run();\n\t}\n\n\tprivate _getWord(): IWordAtPosition | null {\n\t\tconst editorSelection = this.editor.getSelection();\n\t\tconst lineNumber = editorSelection.startLineNumber;\n\t\tconst startColumn = editorSelection.startColumn;\n\n\t\tif (this.model.isDisposed()) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.model.getWordAtPosition({\n\t\t\tlineNumber: lineNumber,\n\t\t\tcolumn: startColumn\n\t\t});\n\t}\n\n\tprivate getOtherModelsToHighlight(model: ITextModel): ITextModel[] {\n\t\tif (!model) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// notebook case\n\t\tconst isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n\t\tif (isNotebookEditor) {\n\t\t\tconst currentModels: ITextModel[] = [];\n\t\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\t\tfor (const editor of currentEditors) {\n\t\t\t\tconst tempModel = editor.getModel();\n\t\t\t\tif (tempModel && tempModel !== model && tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n\t\t\t\t\tcurrentModels.push(tempModel);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn currentModels;\n\t\t}\n\n\t\t// inline case\n\t\t// ? current works when highlighting outside of an inline diff, highlighting in.\n\t\t// ? broken when highlighting within a diff editor. highlighting the main editor does not work\n\t\t// ? editor group service could be useful here\n\t\tconst currentModels: ITextModel[] = [];\n\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\tfor (const editor of currentEditors) {\n\t\t\tif (!isDiffEditor(editor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst diffModel = (editor as IDiffEditor).getModel();\n\t\t\tif (!diffModel) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (model === diffModel.modified) { // embedded inline chat diff would pass this, allowing highlights\n\t\t\t\t//? currentModels.push(diffModel.original);\n\t\t\t\tcurrentModels.push(diffModel.modified);\n\t\t\t}\n\t\t}\n\t\tif (currentModels.length) { // no matching editors have been found\n\t\t\treturn currentModels;\n\t\t}\n\n\t\t// multi-doc OFF\n\t\tif (this.occurrencesHighlightEnablement === 'singleFile') {\n\t\t\treturn [];\n\t\t}\n\n\t\t// multi-doc ON\n\t\tfor (const editor of currentEditors) {\n\t\t\tconst tempModel = editor.getModel();\n\n\t\t\tconst isValidModel = tempModel && tempModel !== model;\n\n\t\t\tif (isValidModel) {\n\t\t\t\tcurrentModels.push(tempModel);\n\t\t\t}\n\t\t}\n\t\treturn currentModels;\n\t}\n\n\tprivate async _run(multiFileConfigChange?: boolean, delay?: number): Promise<void> {\n\n\t\tconst hasTextFocus = this.editor.hasTextFocus();\n\t\tif (!hasTextFocus) { // new nb cell scrolled in, didChangeModel fires\n\t\t\tif (!WordHighlighter.query) { // no previous query, nothing to highlight off of\n\t\t\t\tthis._stopAll();\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else { // has text focus\n\t\t\tconst editorSelection = this.editor.getSelection();\n\n\t\t\t// ignore multiline selection\n\t\t\tif (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n\t\t\t\tWordHighlighter.query = null;\n\t\t\t\tthis._stopAll();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst startColumn = editorSelection.startColumn;\n\t\t\tconst endColumn = editorSelection.endColumn;\n\n\t\t\tconst word = this._getWord();\n\n\t\t\t// The selection must be inside a word or surround one word at most\n\t\t\tif (!word || word.startColumn > startColumn || word.endColumn < endColumn) {\n\t\t\t\t// no previous query, nothing to highlight\n\t\t\t\tWordHighlighter.query = null;\n\t\t\t\tthis._stopAll();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tWordHighlighter.query = {\n\t\t\t\tmodelInfo: {\n\t\t\t\t\tmodelURI: this.model.uri,\n\t\t\t\t\tselection: editorSelection,\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\n\t\tthis.lastCursorPositionChangeTime = (new Date()).getTime();\n\n\t\tif (isEqual(this.editor.getModel().uri, WordHighlighter.query.modelInfo?.modelURI)) { // only trigger new worker requests from the primary model that initiated the query\n\t\t\t// case d)\n\n\t\t\t// check if the new queried word is contained in the range of a stored decoration for this model\n\t\t\tif (!multiFileConfigChange) {\n\t\t\t\tconst currentModelDecorationRanges = this.decorations.getRanges();\n\t\t\t\tfor (const storedRange of currentModelDecorationRanges) {\n\t\t\t\t\tif (storedRange.containsPosition(this.editor.getPosition())) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// stop all previous actions if new word is highlighted\n\t\t\t// if we trigger the run off a setting change -> multifile highlighting, we do not want to remove decorations from this model\n\t\t\tthis._stopAll(multiFileConfigChange ? this.model.uri : undefined);\n\n\t\t\tconst myRequestId = ++this.workerRequestTokenId;\n\t\t\tthis.workerRequestCompleted = false;\n\n\t\t\tconst otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n\n\t\t\t// when reaching here, there are two possible states.\n\t\t\t// \t\t1) we have text focus, and a valid query was updated.\n\t\t\t// \t\t2) we do not have text focus, and a valid query is cached.\n\t\t\t// the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely\n\t\t\tif (!WordHighlighter.query || !WordHighlighter.query.modelInfo) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst queryModelRef = await this.textModelService.createModelReference(WordHighlighter.query.modelInfo.modelURI);\n\t\t\ttry {\n\t\t\t\tthis.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter.query.modelInfo.selection, otherModelsToHighlight);\n\t\t\t\tthis.workerRequest?.result.then(data => {\n\t\t\t\t\tif (myRequestId === this.workerRequestTokenId) {\n\t\t\t\t\t\tthis.workerRequestCompleted = true;\n\t\t\t\t\t\tthis.workerRequestValue = data || [];\n\t\t\t\t\t\tthis._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n\t\t\t\t\t}\n\t\t\t\t}, onUnexpectedError);\n\t\t\t} catch (e) {\n\t\t\t\tthis.logService.error('Unexpected error during occurrence request. Log: ', e);\n\t\t\t} finally {\n\t\t\t\tqueryModelRef.dispose();\n\t\t\t}\n\n\t\t} else if (this.model.uri.scheme === Schemas.vscodeNotebookCell) {\n\t\t\t// new wordHighlighter coming from a different model, NOT the query model, need to create a textModel ref\n\n\t\t\tconst myRequestId = ++this.workerRequestTokenId;\n\t\t\tthis.workerRequestCompleted = false;\n\n\t\t\tif (!WordHighlighter.query || !WordHighlighter.query.modelInfo) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst queryModelRef = await this.textModelService.createModelReference(WordHighlighter.query.modelInfo.modelURI);\n\t\t\ttry {\n\t\t\t\tthis.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter.query.modelInfo.selection, [this.model]);\n\t\t\t\tthis.workerRequest?.result.then(data => {\n\t\t\t\t\tif (myRequestId === this.workerRequestTokenId) {\n\t\t\t\t\t\tthis.workerRequestCompleted = true;\n\t\t\t\t\t\tthis.workerRequestValue = data || [];\n\t\t\t\t\t\tthis._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n\t\t\t\t\t}\n\t\t\t\t}, onUnexpectedError);\n\t\t\t} catch (e) {\n\t\t\t\tthis.logService.error('Unexpected error during occurrence request. Log: ', e);\n\t\t\t} finally {\n\t\t\t\tqueryModelRef.dispose();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate computeWithModel(model: ITextModel, selection: Selection, otherModels: ITextModel[]): IOccurenceAtPositionRequest | null {\n\t\tif (!otherModels.length) {\n\t\t\treturn computeOccurencesAtPosition(this.providers, model, selection, this.editor.getOption(EditorOption.wordSeparators));\n\t\t} else {\n\t\t\treturn computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, this.editor.getOption(EditorOption.wordSeparators), otherModels);\n\t\t}\n\t}\n\n\tprivate _beginRenderDecorations(delay: number): void {\n\t\tconst currentTime = (new Date()).getTime();\n\t\tconst minimumRenderTime = this.lastCursorPositionChangeTime + delay;\n\n\t\tif (currentTime >= minimumRenderTime) {\n\t\t\t// Synchronous\n\t\t\tthis.renderDecorationsTimer = undefined;\n\t\t\tthis.renderDecorations();\n\t\t} else {\n\t\t\t// Asynchronous\n\t\t\tthis.renderDecorationsTimer = setTimeout(() => {\n\t\t\t\tthis.renderDecorations();\n\t\t\t}, (minimumRenderTime - currentTime));\n\t\t}\n\t}\n\n\tprivate renderDecorations(): void {\n\t\tthis.renderDecorationsTimer = undefined;\n\t\t// create new loop, iterate over current editors using this.codeEditorService.listCodeEditors(),\n\t\t// if the URI of that codeEditor is in the map, then add the decorations to the decorations array\n\t\t// then set the decorations for the editor\n\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\tfor (const editor of currentEditors) {\n\t\t\tconst editorHighlighterContrib = WordHighlighterContribution.get(editor);\n\t\t\tif (!editorHighlighterContrib) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newDecorations: IModelDeltaDecoration[] = [];\n\t\t\tconst uri = editor.getModel()?.uri;\n\t\t\tif (uri && this.workerRequestValue.has(uri)) {\n\t\t\t\tconst oldDecorationIDs: string[] | undefined = WordHighlighter.storedDecorationIDs.get(uri);\n\t\t\t\tconst newDocumentHighlights = this.workerRequestValue.get(uri);\n\t\t\t\tif (newDocumentHighlights) {\n\t\t\t\t\tfor (const highlight of newDocumentHighlights) {\n\t\t\t\t\t\tif (!highlight.range) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnewDecorations.push({\n\t\t\t\t\t\t\trange: highlight.range,\n\t\t\t\t\t\t\toptions: getHighlightDecorationOptions(highlight.kind)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet newDecorationIDs: string[] = [];\n\t\t\t\teditor.changeDecorations((changeAccessor) => {\n\t\t\t\t\tnewDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs ?? [], newDecorations);\n\t\t\t\t});\n\t\t\t\tWordHighlighter.storedDecorationIDs = WordHighlighter.storedDecorationIDs.set(uri, newDecorationIDs);\n\n\t\t\t\tif (newDecorations.length > 0) {\n\t\t\t\t\teditorHighlighterContrib.wordHighlighter?.decorations.set(newDecorations);\n\t\t\t\t\teditorHighlighterContrib.wordHighlighter?._hasWordHighlights.set(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// clear the worker request when decorations are completed\n\t\tthis.workerRequest = null;\n\t}\n\n\tpublic dispose(): void {\n\t\tthis._stopSingular();\n\t\tthis.toUnhook.dispose();\n\t}\n}\n\nexport class WordHighlighterContribution extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.wordHighlighter';\n\n\tpublic static get(editor: ICodeEditor): WordHighlighterContribution | null {\n\t\treturn editor.getContribution<WordHighlighterContribution>(WordHighlighterContribution.ID);\n\t}\n\n\tprivate _wordHighlighter: WordHighlighter | null;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@ILanguageFeaturesService languageFeaturesService: ILanguageFeaturesService,\n\t\t@ICodeEditorService codeEditorService: ICodeEditorService,\n\t\t@ITextModelService textModelService: ITextModelService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@ILogService logService: ILogService,\n\t) {\n\t\tsuper();\n\t\tthis._wordHighlighter = null;\n\t\tconst createWordHighlighterIfPossible = () => {\n\t\t\tif (editor.hasModel() && !editor.getModel().isTooLargeForTokenization() && editor.getModel().uri.scheme !== Schemas.accessibleView) {\n\t\t\t\tthis._wordHighlighter = new WordHighlighter(editor, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, textModelService, codeEditorService, configurationService, logService);\n\t\t\t}\n\t\t};\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tif (this._wordHighlighter) {\n\t\t\t\tif (!e.newModelUrl && e.oldModelUrl?.scheme !== Schemas.vscodeNotebookCell) { // happens when switching tabs to a notebook that has focus in the cell list, no new model URI (this also doesn't make it to the wordHighlighter, bc no editor.hasModel)\n\t\t\t\t\tthis.wordHighlighter?.stop();\n\t\t\t\t}\n\n\t\t\t\tthis._wordHighlighter.dispose();\n\t\t\t\tthis._wordHighlighter = null;\n\t\t\t}\n\t\t\tcreateWordHighlighterIfPossible();\n\t\t}));\n\t\tcreateWordHighlighterIfPossible();\n\t}\n\n\tpublic get wordHighlighter(): WordHighlighter | null {\n\t\treturn this._wordHighlighter;\n\t}\n\n\tpublic saveViewState(): boolean {\n\t\tif (this._wordHighlighter && this._wordHighlighter.hasDecorations()) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic moveNext() {\n\t\tthis._wordHighlighter?.moveNext();\n\t}\n\n\tpublic moveBack() {\n\t\tthis._wordHighlighter?.moveBack();\n\t}\n\n\tpublic restoreViewState(state: boolean | undefined): void {\n\t\tif (this._wordHighlighter && state) {\n\t\t\tthis._wordHighlighter.restore(250); // 250 ms delay to restoring view state, since only exts call this\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tif (this._wordHighlighter) {\n\t\t\tthis._wordHighlighter.dispose();\n\t\t\tthis._wordHighlighter = null;\n\t\t}\n\t\tsuper.dispose();\n\t}\n}\n\n\nclass WordHighlightNavigationAction extends EditorAction {\n\n\tprivate readonly _isNext: boolean;\n\n\tconstructor(next: boolean, opts: IActionOptions) {\n\t\tsuper(opts);\n\t\tthis._isNext = next;\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst controller = WordHighlighterContribution.get(editor);\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isNext) {\n\t\t\tcontroller.moveNext();\n\t\t} else {\n\t\t\tcontroller.moveBack();\n\t\t}\n\t}\n}\n\nclass NextWordHighlightAction extends WordHighlightNavigationAction {\n\tconstructor() {\n\t\tsuper(true, {\n\t\t\tid: 'editor.action.wordHighlight.next',\n\t\t\tlabel: nls.localize2('wordHighlight.next.label', \"Go to Next Symbol Highlight\"),\n\t\t\tprecondition: ctxHasWordHighlights,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyCode.F7,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass PrevWordHighlightAction extends WordHighlightNavigationAction {\n\tconstructor() {\n\t\tsuper(false, {\n\t\t\tid: 'editor.action.wordHighlight.prev',\n\t\t\tlabel: nls.localize2('wordHighlight.previous.label', \"Go to Previous Symbol Highlight\"),\n\t\t\tprecondition: ctxHasWordHighlights,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyMod.Shift | KeyCode.F7,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass TriggerWordHighlightAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.wordHighlight.trigger',\n\t\t\tlabel: nls.localize2('wordHighlight.trigger.label', \"Trigger Symbol Highlight\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: 0,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void {\n\t\tconst controller = WordHighlighterContribution.get(editor);\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontroller.restoreViewState(true);\n\t}\n}\n\nregisterEditorContribution(WordHighlighterContribution.ID, WordHighlighterContribution, EditorContributionInstantiation.Eager); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\nregisterEditorFeature(TextualMultiDocumentHighlightFeature);\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/editor/contrib/wordHighlighter/browser/wordHighlighter.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;;AAEhG,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACjE,OAAO,EAAqB,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEjG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAAe,kBAAkB,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAGtH,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAkC,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAmD,oBAAoB,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACxM,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAKtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAqC,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AAErF,MAAM,oBAAoB,GAAG,IAAI,aAAa,CAAU,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAEpF,MAAM,UAAU,wBAAwB,CAAC,QAA4D,EAAE,KAAiB,EAAE,QAAkB,EAAE,KAAwB;IACrK,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/C,iDAAiD;IACjD,4CAA4C;IAC5C,4CAA4C;IAC5C,2HAA2H;IAC3H,OAAO,KAAK,CAAyC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE;QACxF,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;aAChF,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC,MAAM,EAAiC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrG,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAuB,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,WAAW,EAAuB,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAAiE,EAAE,KAAiB,EAAE,QAAkB,EAAE,KAAwB,EAAE,WAAyB;IAC/M,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/C,iDAAiD;IACjD,4CAA4C;IAC5C,kDAAkD;IAClD,2HAA2H;IAC3H,OAAO,KAAK,CAAsD,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE;QACrG,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACtD,OAAO,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;aACrG,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC,MAAM,EAA8C,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC;AACtG,CAAC;AAcD,MAAe,0BAA0B;IAKxC,YAA6B,MAAkB,EAAmB,UAAqB,EAAmB,eAAuB;QAApG,WAAM,GAAN,MAAM,CAAY;QAAmB,eAAU,GAAV,UAAU,CAAW;QAAmB,oBAAe,GAAf,eAAe,CAAQ;QAChI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3H,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAIO,oBAAoB,CAAC,KAAiB,EAAE,SAAoB;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;CACD;AAED,MAAM,kCAAmC,SAAQ,0BAA0B;IAI1E,YAAY,KAAiB,EAAE,SAAoB,EAAE,cAAsB,EAAE,SAA6D;QACzI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC7B,CAAC;IAES,QAAQ,CAAC,KAAiB,EAAE,SAAoB,EAAE,cAAsB,EAAE,KAAwB;QAC3G,OAAO,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO,IAAI,WAAW,EAAuB,CAAC;YAC/C,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAED,MAAM,0BAA2B,SAAQ,0BAA0B;IAIlE,YAAY,KAAiB,EAAE,SAAoB,EAAE,cAAsB,EAAE,SAAkE,EAAE,WAAyB;QACzK,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACjC,CAAC;IAEkB,QAAQ,CAAC,KAAiB,EAAE,SAAoB,EAAE,cAAsB,EAAE,KAAwB;QACpH,OAAO,kCAAkC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO,IAAI,WAAW,EAAuB,CAAC;YAC/C,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAGD,SAAS,2BAA2B,CAAC,QAA4D,EAAE,KAAiB,EAAE,SAAoB,EAAE,cAAsB;IACjK,OAAO,IAAI,kCAAkC,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAiE,EAAE,KAAiB,EAAE,SAAoB,EAAE,cAAsB,EAAE,WAAyB;IACjM,OAAO,IAAI,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAChG,CAAC;AAED,+BAA+B,CAAC,4BAA4B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IACjG,MAAM,uBAAuB,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,yBAAyB,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvI,OAAO,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,IAAM,eAAe,GAArB,MAAM,eAAe;;aA8BL,wBAAmB,GAA0B,IAAI,WAAW,EAAzC,AAA2C,CAAC;aAC/D,UAAK,GAAiC,IAAjC,AAAqC,CAAC;IAE1D,YACC,MAAyB,EACzB,SAA6D,EAC7D,cAAuE,EACvE,iBAAqC,EAClB,gBAAmC,EAClC,iBAAqC,EAClC,oBAA2C,EACrD,UAAuB;QAlCpB,aAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QAU1C,yBAAoB,GAAW,CAAC,CAAC;QAEjC,2BAAsB,GAAY,KAAK,CAAC;QACxC,uBAAkB,GAAqC,IAAI,WAAW,EAAE,CAAC;QAEzE,iCAA4B,GAAW,CAAC,CAAC;QACzC,2BAAsB,GAAwB,SAAS,CAAC;QAK/C,eAAU,GAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAO,EAAE,CAAC,CAAC,CAAC;QAerF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAE7C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzE,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,4CAAmC,CAAC;QAC/F,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAS,kCAAkC,CAAC,CAAC;QAChH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAA8B,EAAE,EAAE;YACrF,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACrC,oDAAoD;gBACpD,OAAO;YACR,CAAC;YAED,IAAI,IAAI,CAAC,8BAA8B,KAAK,KAAK,EAAE,CAAC;gBACnD,0CAA0C;gBAC1C,8GAA8G;gBAC9G,OAAO;YACR,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,8BAA8B,KAAK,KAAK,EAAE,CAAC;gBACnD,yCAAyC;gBACzC,OAAO;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,EAAE;YACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,iBAAe,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,4CAAmC,CAAC;YAC/E,IAAI,IAAI,CAAC,8BAA8B,KAAK,aAAa,EAAE,CAAC;gBAC3D,IAAI,CAAC,8BAA8B,GAAG,aAAa,CAAC;gBACpD,QAAQ,aAAa,EAAE,CAAC;oBACvB,KAAK,KAAK;wBACT,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChB,MAAM;oBACP,KAAK,YAAY;wBAChB,IAAI,CAAC,QAAQ,CAAC,iBAAe,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAC1D,MAAM;oBACP,KAAK,WAAW;wBACf,IAAI,iBAAe,CAAC,KAAK,EAAE,CAAC;4BAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjB,CAAC;wBACD,MAAM;oBACP;wBACC,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,aAAa,CAAC,CAAC;wBAC3E,MAAM;gBACR,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1E,IAAI,CAAC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,EAAE,CAAC;gBAChE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAS,kCAAkC,CAAC,CAAC;gBAC3F,IAAI,IAAI,CAAC,yBAAyB,KAAK,QAAQ,EAAE,CAAC;oBACjD,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;YACnD,sBAAsB;YACtB,sCAAsC;YACtC,6GAA6G;YAC7G,kEAAkE;YAElE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YACnE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,oDAAoD;gBACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC;iBAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,kCAAkC;gBACvL,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QAEpC,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QAExC,wDAAwD;QACxD,IAAI,iBAAe,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAEM,cAAc;QACpB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,KAAa;QAC3B,IAAI,IAAI,CAAC,8BAA8B,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEM,IAAI;QACV,IAAI,IAAI,CAAC,8BAA8B,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAEO,oBAAoB;QAC3B,OAAO,CACN,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;aAC1B,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACtC,CAAC;IACH,CAAC;IAEM,QAAQ;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC;YACJ,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAChF,KAAK,CAAC,GAAG,WAAW,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,MAAM,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACzC,CAAC;IACF,CAAC;IAEM,QAAQ;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC;YACJ,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAChF,KAAK,CAAC,GAAG,WAAW,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,MAAM,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACzC,CAAC;IACF,CAAC;IAEO,wBAAwB;QAC/B,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,MAAM,oBAAoB,GAAG,iBAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QACjG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QACpD,iBAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAEO,qBAAqB,CAAC,cAAoB;QACjD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,yDAAyD;QACzD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC;gBAC1E,SAAS;YACV,CAAC;YAED,MAAM,oBAAoB,GAAG,iBAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5F,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC3B,SAAS;YACV,CAAC;YAED,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;YAEtC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,CAAC,wBAAwB,EAAE,eAAe,EAAE,CAAC;gBAChD,SAAS;YACV,CAAC;YAED,IAAI,wBAAwB,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrE,wBAAwB,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC7D,wBAAwB,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC9D,wBAAwB,CAAC,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC7B,iBAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAEO,aAAa;QACpB,yFAAyF;QACzF,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,IAAI,iBAAe,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,uCAAuC;gBACnM,iBAAe,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,sIAAsI;YACpJ,CAAC;iBAAM,CAAC,CAAC,yDAAyD;gBACjE,IAAI,iBAAe,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;oBACtC,iBAAe,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,CAAC;YACF,CAAC;QACF,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACzC,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACpC,CAAC;IACF,CAAC;IAEO,QAAQ,CAAC,cAAoB;QACpC,kCAAkC;QAClC,sGAAsG;QACtG,yBAAyB;QACzB,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE3C,oCAAoC;QACpC,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACzC,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACpC,CAAC;IACF,CAAC;IAEO,kBAAkB,CAAC,CAA8B;QAExD,WAAW;QACX,IAAI,IAAI,CAAC,8BAA8B,KAAK,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACR,CAAC;QAED,wBAAwB;QACxB,uEAAuE;QACvE,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,wCAAgC,EAAE,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,QAAQ;QACf,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC;QACnD,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;QAEhD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACnC,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,WAAW;SACnB,CAAC,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,KAAiB;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC;QACzE,IAAI,gBAAgB,EAAE,CAAC;YACtB,MAAM,aAAa,GAAiB,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YAChE,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,SAAS,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC7F,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,OAAO,aAAa,CAAC;QACtB,CAAC;QAED,cAAc;QACd,gFAAgF;QAChF,8FAA8F;QAC9F,8CAA8C;QAC9C,MAAM,aAAa,GAAiB,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACV,CAAC;YACD,MAAM,SAAS,GAAI,MAAsB,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,SAAS;YACV,CAAC;YACD,IAAI,KAAK,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,iEAAiE;gBACpG,2CAA2C;gBAC3C,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,sCAAsC;YACjE,OAAO,aAAa,CAAC;QACtB,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,8BAA8B,KAAK,YAAY,EAAE,CAAC;YAC1D,OAAO,EAAE,CAAC;QACX,CAAC;QAED,eAAe;QACf,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAEpC,MAAM,YAAY,GAAG,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC;YAEtD,IAAI,YAAY,EAAE,CAAC;gBAClB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;QACD,OAAO,aAAa,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,qBAA+B,EAAE,KAAc;QAEjE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,gDAAgD;YACpE,IAAI,CAAC,iBAAe,CAAC,KAAK,EAAE,CAAC,CAAC,iDAAiD;gBAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACR,CAAC;QACF,CAAC;aAAM,CAAC,CAAC,iBAAiB;YACzB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAEnD,6BAA6B;YAC7B,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,eAAe,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC;gBAC3F,iBAAe,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACR,CAAC;YAED,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;YAChD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;YAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE7B,mEAAmE;YACnE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;gBAC3E,0CAA0C;gBAC1C,iBAAe,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACR,CAAC;YAED,iBAAe,CAAC,KAAK,GAAG;gBACvB,SAAS,EAAE;oBACV,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;oBACxB,SAAS,EAAE,eAAe;iBAC1B;aACD,CAAC;QACH,CAAC;QAGD,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3D,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,iBAAe,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,mFAAmF;YACxK,UAAU;YAEV,gGAAgG;YAChG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC5B,MAAM,4BAA4B,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAClE,KAAK,MAAM,WAAW,IAAI,4BAA4B,EAAE,CAAC;oBACxD,IAAI,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC7D,OAAO;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;YAED,uDAAuD;YACvD,6HAA6H;YAC7H,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAElE,MAAM,WAAW,GAAG,EAAE,IAAI,CAAC,oBAAoB,CAAC;YAChD,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YAEpC,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtF,qDAAqD;YACrD,0DAA0D;YAC1D,+DAA+D;YAC/D,wIAAwI;YACxI,IAAI,CAAC,iBAAe,CAAC,KAAK,IAAI,CAAC,iBAAe,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChE,OAAO;YACR,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,iBAAe,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjH,IAAI,CAAC;gBACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,EAAE,iBAAe,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;gBACpJ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtC,IAAI,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC/C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;wBACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,IAAI,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBACvE,CAAC;gBACF,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;oBAAS,CAAC;gBACV,aAAa,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;QAEF,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACjE,yGAAyG;YAEzG,MAAM,WAAW,GAAG,EAAE,IAAI,CAAC,oBAAoB,CAAC;YAChD,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YAEpC,IAAI,CAAC,iBAAe,CAAC,KAAK,IAAI,CAAC,iBAAe,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChE,OAAO;YACR,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,iBAAe,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjH,IAAI,CAAC;gBACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,EAAE,iBAAe,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1I,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtC,IAAI,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC/C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;wBACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,IAAI,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBACvE,CAAC;gBACF,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;oBAAS,CAAC;gBACV,aAAa,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;QACF,CAAC;IACF,CAAC;IAEO,gBAAgB,CAAC,KAAiB,EAAE,SAAoB,EAAE,WAAyB;QAC1F,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,2BAA2B,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,uCAA6B,CAAC,CAAC;QAC1H,CAAC;aAAM,CAAC;YACP,OAAO,2BAA2B,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,uCAA6B,EAAE,WAAW,CAAC,CAAC;QACpJ,CAAC;IACF,CAAC;IAEO,uBAAuB,CAAC,KAAa;QAC5C,MAAM,WAAW,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAEpE,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;YACtC,cAAc;YACd,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,eAAe;YACf,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,CAAC,EAAE,CAAC,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAEO,iBAAiB;QACxB,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACxC,gGAAgG;QAChG,iGAAiG;QACjG,0CAA0C;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC/B,SAAS;YACV,CAAC;YAED,MAAM,cAAc,GAA4B,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC;YACnC,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,gBAAgB,GAAyB,iBAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5F,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/D,IAAI,qBAAqB,EAAE,CAAC;oBAC3B,KAAK,MAAM,SAAS,IAAI,qBAAqB,EAAE,CAAC;wBAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;4BACtB,SAAS;wBACV,CAAC;wBACD,cAAc,CAAC,IAAI,CAAC;4BACnB,KAAK,EAAE,SAAS,CAAC,KAAK;4BACtB,OAAO,EAAE,6BAA6B,CAAC,SAAS,CAAC,IAAI,CAAC;yBACtD,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;gBAED,IAAI,gBAAgB,GAAa,EAAE,CAAC;gBACpC,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC3C,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAC,gBAAgB,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;gBAC5F,CAAC,CAAC,CAAC;gBACH,iBAAe,CAAC,mBAAmB,GAAG,iBAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;gBAErG,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,wBAAwB,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC1E,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxE,CAAC;YACF,CAAC;QACF,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;;AArmBI,eAAe;IAsClB,WAAA,iBAAiB,CAAA;IACjB,WAAA,kBAAkB,CAAA;IAClB,WAAA,qBAAqB,CAAA;IACrB,WAAA,WAAW,CAAA;GAzCR,eAAe,CAsmBpB;AAEM,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,UAAU;;aAEnC,OAAE,GAAG,gCAAH,AAAmC,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,MAAmB;QACpC,OAAO,MAAM,CAAC,eAAe,CAA8B,6BAA2B,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAID,YACC,MAAmB,EACC,iBAAqC,EAC/B,uBAAiD,EACvD,iBAAqC,EACtC,gBAAmC,EAC/B,oBAA2C,EACrD,UAAuB;QAEpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,MAAM,+BAA+B,GAAG,GAAG,EAAE;YAC5C,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,yBAAyB,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;gBACpI,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,uBAAuB,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;YAC1P,CAAC;QACF,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,wKAAwK;oBACrP,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;gBAC9B,CAAC;gBAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,+BAA+B,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC;QACJ,+BAA+B,EAAE,CAAC;IACnC,CAAC;IAED,IAAW,eAAe;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAEM,aAAa;QACnB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,QAAQ;QACd,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IAEM,QAAQ;QACd,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IAEM,gBAAgB,CAAC,KAA0B;QACjD,IAAI,IAAI,CAAC,gBAAgB,IAAI,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kEAAkE;QACvG,CAAC;IACF,CAAC;IAEe,OAAO;QACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;;AAvEW,2BAA2B;IAYrC,WAAA,kBAAkB,CAAA;IAClB,WAAA,wBAAwB,CAAA;IACxB,WAAA,kBAAkB,CAAA;IAClB,WAAA,iBAAiB,CAAA;IACjB,WAAA,qBAAqB,CAAA;IACrB,WAAA,WAAW,CAAA;GAjBD,2BAA2B,CAwEvC;;AAGD,MAAM,6BAA8B,SAAQ,YAAY;IAIvD,YAAY,IAAa,EAAE,IAAoB;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,GAAG,CAAC,QAA0B,EAAE,MAAmB;QACzD,MAAM,UAAU,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;CACD;AAED,MAAM,uBAAwB,SAAQ,6BAA6B;IAClE;QACC,KAAK,CAAC,IAAI,EAAE;YACX,EAAE,EAAE,kCAAkC;YACtC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAA0B,EAAE,6BAA6B,CAAC;YAC/E,YAAY,EAAE,oBAAoB;YAClC,MAAM,EAAE;gBACP,MAAM,EAAE,iBAAiB,CAAC,eAAe;gBACzC,OAAO,qBAAY;gBACnB,MAAM,0CAAgC;aACtC;SACD,CAAC,CAAC;IACJ,CAAC;CACD;AAED,MAAM,uBAAwB,SAAQ,6BAA6B;IAClE;QACC,KAAK,CAAC,KAAK,EAAE;YACZ,EAAE,EAAE,kCAAkC;YACtC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAA8B,EAAE,iCAAiC,CAAC;YACvF,YAAY,EAAE,oBAAoB;YAClC,MAAM,EAAE;gBACP,MAAM,EAAE,iBAAiB,CAAC,eAAe;gBACzC,OAAO,EAAE,6CAAyB;gBAClC,MAAM,0CAAgC;aACtC;SACD,CAAC,CAAC;IACJ,CAAC;CACD;AAED,MAAM,0BAA2B,SAAQ,YAAY;IACpD;QACC,KAAK,CAAC;YACL,EAAE,EAAE,qCAAqC;YACzC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAA6B,EAAE,0BAA0B,CAAC;YAC/E,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE;gBACP,MAAM,EAAE,iBAAiB,CAAC,eAAe;gBACzC,OAAO,EAAE,CAAC;gBACV,MAAM,0CAAgC;aACtC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,GAAG,CAAC,QAA0B,EAAE,MAAmB;QACzD,MAAM,UAAU,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QAED,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACD;AAED,0BAA0B,CAAC,2BAA2B,CAAC,EAAE,EAAE,2BAA2B,gDAAwC,CAAC,CAAC,2DAA2D;AAC3L,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;AAC9C,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;AAC9C,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;AACjD,qBAAqB,CAAC,oCAAoC,CAAC,CAAC","file":"wordHighlighter.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 * as nls from '../../../../nls.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { CancelablePromise, createCancelablePromise, Delayer, first } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { matchesScheme, Schemas } from '../../../../base/common/network.js';\nimport { isEqual } from '../../../../base/common/resources.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKey, IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IActiveCodeEditor, ICodeEditor, isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, IActionOptions, registerEditorAction, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IWordAtPosition } from '../../../common/core/wordHelper.js';\nimport { CursorChangeReason, ICursorPositionChangedEvent } from '../../../common/cursorEvents.js';\nimport { IDiffEditor, IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { DocumentHighlight, DocumentHighlightProvider, MultiDocumentHighlightProvider } from '../../../common/languages.js';\nimport { score } from '../../../common/languageSelector.js';\nimport { IModelDeltaDecoration, ITextModel, shouldSynchronizeModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { getHighlightDecorationOptions } from './highlightDecorations.js';\nimport { TextualMultiDocumentHighlightFeature } from './textualHighlightProvider.js';\n\nconst ctxHasWordHighlights = new RawContextKey<boolean>('hasWordHighlights', false);\n\nexport function getOccurrencesAtPosition(registry: LanguageFeatureRegistry<DocumentHighlightProvider>, model: ITextModel, position: Position, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]> | null | undefined> {\n\tconst orderedByScore = registry.ordered(model);\n\n\t// in order of score ask the occurrences provider\n\t// until someone response with a good result\n\t// (good = non undefined and non null value)\n\t// (result of size == 0 is valid, no highlights is a valid/expected result -- not a signal to fall back to other providers)\n\treturn first<DocumentHighlight[] | null | undefined>(orderedByScore.map(provider => () => {\n\t\treturn Promise.resolve(provider.provideDocumentHighlights(model, position, token))\n\t\t\t.then(undefined, onUnexpectedExternalError);\n\t}), (result): result is DocumentHighlight[] => result !== undefined && result !== null).then(result => {\n\t\tif (result) {\n\t\t\tconst map = new ResourceMap<DocumentHighlight[]>();\n\t\t\tmap.set(model.uri, result);\n\t\t\treturn map;\n\t\t}\n\t\treturn new ResourceMap<DocumentHighlight[]>();\n\t});\n}\n\nexport function getOccurrencesAcrossMultipleModels(registry: LanguageFeatureRegistry<MultiDocumentHighlightProvider>, model: ITextModel, position: Position, token: CancellationToken, otherModels: ITextModel[]): Promise<ResourceMap<DocumentHighlight[]> | null | undefined> {\n\tconst orderedByScore = registry.ordered(model);\n\n\t// in order of score ask the occurrences provider\n\t// until someone response with a good result\n\t// (good = non undefined and non null ResourceMap)\n\t// (result of size == 0 is valid, no highlights is a valid/expected result -- not a signal to fall back to other providers)\n\treturn first<ResourceMap<DocumentHighlight[]> | null | undefined>(orderedByScore.map(provider => () => {\n\t\tconst filteredModels = otherModels.filter(otherModel => {\n\t\t\treturn shouldSynchronizeModel(otherModel);\n\t\t}).filter(otherModel => {\n\t\t\treturn score(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, undefined, undefined) > 0;\n\t\t});\n\t\treturn Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token))\n\t\t\t.then(undefined, onUnexpectedExternalError);\n\t}), (result): result is ResourceMap<DocumentHighlight[]> => result !== undefined && result !== null);\n}\n\ninterface IOccurenceAtPositionRequest {\n\treadonly result: Promise<ResourceMap<DocumentHighlight[]>>;\n\tcancel(): void;\n}\n\ninterface IWordHighlighterQuery {\n\tmodelInfo: {\n\t\tmodelURI: URI;\n\t\tselection: Selection;\n\t} | null;\n}\n\nabstract class OccurenceAtPositionRequest implements IOccurenceAtPositionRequest {\n\n\tprivate readonly _wordRange: Range | null;\n\tprivate _result: CancelablePromise<ResourceMap<DocumentHighlight[]>> | null;\n\n\tconstructor(private readonly _model: ITextModel, private readonly _selection: Selection, private readonly _wordSeparators: string) {\n\t\tthis._wordRange = this._getCurrentWordRange(_model, _selection);\n\t\tthis._result = null;\n\t}\n\n\tget result() {\n\t\tif (!this._result) {\n\t\t\tthis._result = createCancelablePromise(token => this._compute(this._model, this._selection, this._wordSeparators, token));\n\t\t}\n\t\treturn this._result;\n\t}\n\n\tprotected abstract _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]>>;\n\n\tprivate _getCurrentWordRange(model: ITextModel, selection: Selection): Range | null {\n\t\tconst word = model.getWordAtPosition(selection.getPosition());\n\t\tif (word) {\n\t\t\treturn new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic cancel(): void {\n\t\tthis.result.cancel();\n\t}\n}\n\nclass SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest {\n\n\tprivate readonly _providers: LanguageFeatureRegistry<DocumentHighlightProvider>;\n\n\tconstructor(model: ITextModel, selection: Selection, wordSeparators: string, providers: LanguageFeatureRegistry<DocumentHighlightProvider>) {\n\t\tsuper(model, selection, wordSeparators);\n\t\tthis._providers = providers;\n\t}\n\n\tprotected _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]>> {\n\t\treturn getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then(value => {\n\t\t\tif (!value) {\n\t\t\t\treturn new ResourceMap<DocumentHighlight[]>();\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t}\n}\n\nclass MultiModelOccurenceRequest extends OccurenceAtPositionRequest {\n\tprivate readonly _providers: LanguageFeatureRegistry<MultiDocumentHighlightProvider>;\n\tprivate readonly _otherModels: ITextModel[];\n\n\tconstructor(model: ITextModel, selection: Selection, wordSeparators: string, providers: LanguageFeatureRegistry<MultiDocumentHighlightProvider>, otherModels: ITextModel[]) {\n\t\tsuper(model, selection, wordSeparators);\n\t\tthis._providers = providers;\n\t\tthis._otherModels = otherModels;\n\t}\n\n\tprotected override _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise<ResourceMap<DocumentHighlight[]>> {\n\t\treturn getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), token, this._otherModels).then(value => {\n\t\t\tif (!value) {\n\t\t\t\treturn new ResourceMap<DocumentHighlight[]>();\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t}\n}\n\n\nfunction computeOccurencesAtPosition(registry: LanguageFeatureRegistry<DocumentHighlightProvider>, model: ITextModel, selection: Selection, wordSeparators: string): IOccurenceAtPositionRequest {\n\treturn new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators, registry);\n}\n\nfunction computeOccurencesMultiModel(registry: LanguageFeatureRegistry<MultiDocumentHighlightProvider>, model: ITextModel, selection: Selection, wordSeparators: string, otherModels: ITextModel[]): IOccurenceAtPositionRequest {\n\treturn new MultiModelOccurenceRequest(model, selection, wordSeparators, registry, otherModels);\n}\n\nregisterModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {\n\tconst languageFeaturesService = accessor.get(ILanguageFeaturesService);\n\tconst map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n\treturn map?.get(model.uri);\n});\n\nclass WordHighlighter {\n\n\tprivate readonly editor: IActiveCodeEditor;\n\tprivate readonly providers: LanguageFeatureRegistry<DocumentHighlightProvider>;\n\tprivate readonly multiDocumentProviders: LanguageFeatureRegistry<MultiDocumentHighlightProvider>;\n\tprivate readonly model: ITextModel;\n\tprivate readonly decorations: IEditorDecorationsCollection;\n\tprivate readonly toUnhook = new DisposableStore();\n\n\tprivate readonly textModelService: ITextModelService;\n\tprivate readonly codeEditorService: ICodeEditorService;\n\tprivate readonly configurationService: IConfigurationService;\n\tprivate readonly logService: ILogService;\n\n\tprivate occurrencesHighlightEnablement: string;\n\tprivate occurrencesHighlightDelay: number;\n\n\tprivate workerRequestTokenId: number = 0;\n\tprivate workerRequest: IOccurenceAtPositionRequest | null;\n\tprivate workerRequestCompleted: boolean = false;\n\tprivate workerRequestValue: ResourceMap<DocumentHighlight[]> = new ResourceMap();\n\n\tprivate lastCursorPositionChangeTime: number = 0;\n\tprivate renderDecorationsTimer: Timeout | undefined = undefined;\n\n\tprivate readonly _hasWordHighlights: IContextKey<boolean>;\n\tprivate _ignorePositionChangeEvent: boolean;\n\n\tprivate readonly runDelayer: Delayer<void> = this.toUnhook.add(new Delayer<void>(50));\n\n\tprivate static storedDecorationIDs: ResourceMap<string[]> = new ResourceMap();\n\tprivate static query: IWordHighlighterQuery | null = null;\n\n\tconstructor(\n\t\teditor: IActiveCodeEditor,\n\t\tproviders: LanguageFeatureRegistry<DocumentHighlightProvider>,\n\t\tmultiProviders: LanguageFeatureRegistry<MultiDocumentHighlightProvider>,\n\t\tcontextKeyService: IContextKeyService,\n\t\t@ITextModelService textModelService: ITextModelService,\n\t\t@ICodeEditorService codeEditorService: ICodeEditorService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@ILogService logService: ILogService,\n\t) {\n\t\tthis.editor = editor;\n\t\tthis.providers = providers;\n\t\tthis.multiDocumentProviders = multiProviders;\n\n\t\tthis.codeEditorService = codeEditorService;\n\t\tthis.textModelService = textModelService;\n\t\tthis.configurationService = configurationService;\n\t\tthis.logService = logService;\n\n\t\tthis._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n\t\tthis._ignorePositionChangeEvent = false;\n\t\tthis.occurrencesHighlightEnablement = this.editor.getOption(EditorOption.occurrencesHighlight);\n\t\tthis.occurrencesHighlightDelay = this.configurationService.getValue<number>('editor.occurrencesHighlightDelay');\n\t\tthis.model = this.editor.getModel();\n\n\t\tthis.toUnhook.add(editor.onDidChangeCursorPosition((e: ICursorPositionChangedEvent) => {\n\t\t\tif (this._ignorePositionChangeEvent) {\n\t\t\t\t// We are changing the position => ignore this event\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\t\t// Early exit if nothing needs to be done!\n\t\t\t\t// Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.runDelayer.trigger(() => { this._onPositionChanged(e); });\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidFocusEditorText((e) => {\n\t\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\t\t// Early exit if nothing needs to be done\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.workerRequest) {\n\t\t\t\tthis.runDelayer.trigger(() => { this._run(); });\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidChangeModelContent((e) => {\n\t\t\tif (!matchesScheme(this.model.uri, 'output')) {\n\t\t\t\tthis._stopAll();\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidChangeModel((e) => {\n\t\t\tif (!e.newModelUrl && e.oldModelUrl) {\n\t\t\t\tthis._stopSingular();\n\t\t\t} else if (WordHighlighter.query) {\n\t\t\t\tthis._run();\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidChangeConfiguration((e) => {\n\t\t\tconst newEnablement = this.editor.getOption(EditorOption.occurrencesHighlight);\n\t\t\tif (this.occurrencesHighlightEnablement !== newEnablement) {\n\t\t\t\tthis.occurrencesHighlightEnablement = newEnablement;\n\t\t\t\tswitch (newEnablement) {\n\t\t\t\t\tcase 'off':\n\t\t\t\t\t\tthis._stopAll();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'singleFile':\n\t\t\t\t\t\tthis._stopAll(WordHighlighter.query?.modelInfo?.modelURI);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'multiFile':\n\t\t\t\t\t\tif (WordHighlighter.query) {\n\t\t\t\t\t\t\tthis._run(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tconsole.warn('Unknown occurrencesHighlight setting value:', newEnablement);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(this.configurationService.onDidChangeConfiguration((e) => {\n\t\t\tif (e.affectsConfiguration('editor.occurrencesHighlightDelay')) {\n\t\t\t\tconst newDelay = configurationService.getValue<number>('editor.occurrencesHighlightDelay');\n\t\t\t\tif (this.occurrencesHighlightDelay !== newDelay) {\n\t\t\t\t\tthis.occurrencesHighlightDelay = newDelay;\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis.toUnhook.add(editor.onDidBlurEditorWidget(() => {\n\t\t\t// logic is as follows\n\t\t\t// - didBlur => active null => stopall\n\t\t\t// - didBlur => active nb => if this.editor is notebook, do nothing (new cell, so we don't want to stopAll)\n\t\t\t// active nb => if this.editor is NOT nb, stopAll\n\n\t\t\tconst activeEditor = this.codeEditorService.getFocusedCodeEditor();\n\t\t\tif (!activeEditor) { // clicked into nb cell list, outline, terminal, etc\n\t\t\t\tthis._stopAll();\n\t\t\t} else if (activeEditor.getModel()?.uri.scheme === Schemas.vscodeNotebookCell && this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell) { // switched tabs from non-nb to nb\n\t\t\t\tthis._stopAll();\n\t\t\t}\n\t\t}));\n\n\t\tthis.decorations = this.editor.createDecorationsCollection();\n\t\tthis.workerRequestTokenId = 0;\n\t\tthis.workerRequest = null;\n\t\tthis.workerRequestCompleted = false;\n\n\t\tthis.lastCursorPositionChangeTime = 0;\n\t\tthis.renderDecorationsTimer = undefined;\n\n\t\t// if there is a query already, highlight off that query\n\t\tif (WordHighlighter.query) {\n\t\t\tthis._run();\n\t\t}\n\t}\n\n\tpublic hasDecorations(): boolean {\n\t\treturn (this.decorations.length > 0);\n\t}\n\n\tpublic restore(delay: number): void {\n\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.runDelayer.cancel();\n\t\tthis.runDelayer.trigger(() => { this._run(false, delay); });\n\t}\n\n\tpublic stop(): void {\n\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._stopAll();\n\t}\n\n\tprivate _getSortedHighlights(): Range[] {\n\t\treturn (\n\t\t\tthis.decorations.getRanges()\n\t\t\t\t.sort(Range.compareRangesUsingStarts)\n\t\t);\n\t}\n\n\tpublic moveNext() {\n\t\tconst highlights = this._getSortedHighlights();\n\t\tconst index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n\t\tconst newIndex = ((index + 1) % highlights.length);\n\t\tconst dest = highlights[newIndex];\n\t\ttry {\n\t\t\tthis._ignorePositionChangeEvent = true;\n\t\t\tthis.editor.setPosition(dest.getStartPosition());\n\t\t\tthis.editor.revealRangeInCenterIfOutsideViewport(dest);\n\t\t\tconst word = this._getWord();\n\t\t\tif (word) {\n\t\t\t\tconst lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n\t\t\t\talert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._ignorePositionChangeEvent = false;\n\t\t}\n\t}\n\n\tpublic moveBack() {\n\t\tconst highlights = this._getSortedHighlights();\n\t\tconst index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n\t\tconst newIndex = ((index - 1 + highlights.length) % highlights.length);\n\t\tconst dest = highlights[newIndex];\n\t\ttry {\n\t\t\tthis._ignorePositionChangeEvent = true;\n\t\t\tthis.editor.setPosition(dest.getStartPosition());\n\t\t\tthis.editor.revealRangeInCenterIfOutsideViewport(dest);\n\t\t\tconst word = this._getWord();\n\t\t\tif (word) {\n\t\t\t\tconst lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n\t\t\t\talert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._ignorePositionChangeEvent = false;\n\t\t}\n\t}\n\n\tprivate _removeSingleDecorations(): void {\n\t\t// return if no model\n\t\tif (!this.editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentDecorationIDs = WordHighlighter.storedDecorationIDs.get(this.editor.getModel().uri);\n\t\tif (!currentDecorationIDs) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.removeDecorations(currentDecorationIDs);\n\t\tWordHighlighter.storedDecorationIDs.delete(this.editor.getModel().uri);\n\n\t\tif (this.decorations.length > 0) {\n\t\t\tthis.decorations.clear();\n\t\t\tthis._hasWordHighlights.set(false);\n\t\t}\n\t}\n\n\tprivate _removeAllDecorations(preservedModel?: URI): void {\n\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\tconst deleteURI = [];\n\t\t// iterate over editors and store models in currentModels\n\t\tfor (const editor of currentEditors) {\n\t\t\tif (!editor.hasModel() || isEqual(editor.getModel().uri, preservedModel)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentDecorationIDs = WordHighlighter.storedDecorationIDs.get(editor.getModel().uri);\n\t\t\tif (!currentDecorationIDs) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\teditor.removeDecorations(currentDecorationIDs);\n\t\t\tdeleteURI.push(editor.getModel().uri);\n\n\t\t\tconst editorHighlighterContrib = WordHighlighterContribution.get(editor);\n\t\t\tif (!editorHighlighterContrib?.wordHighlighter) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (editorHighlighterContrib.wordHighlighter.decorations.length > 0) {\n\t\t\t\teditorHighlighterContrib.wordHighlighter.decorations.clear();\n\t\t\t\teditorHighlighterContrib.wordHighlighter.workerRequest = null;\n\t\t\t\teditorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n\t\t\t}\n\t\t}\n\n\t\tfor (const uri of deleteURI) {\n\t\t\tWordHighlighter.storedDecorationIDs.delete(uri);\n\t\t}\n\t}\n\n\tprivate _stopSingular(): void {\n\t\t// Remove any existing decorations + a possible query, and re - run to update decorations\n\t\tthis._removeSingleDecorations();\n\n\t\tif (this.editor.hasTextFocus()) {\n\t\t\tif (this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell && WordHighlighter.query?.modelInfo?.modelURI.scheme !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor\n\t\t\t\tWordHighlighter.query = null;\n\t\t\t\tthis._run(); // TODO: @Yoyokrazy -- investigate why we need a full rerun here. likely addressed a case/patch in the first iteration of this feature\n\t\t\t} else { // remove modelInfo to account for nb cell being disposed\n\t\t\t\tif (WordHighlighter.query?.modelInfo) {\n\t\t\t\t\tWordHighlighter.query.modelInfo = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Cancel any renderDecorationsTimer\n\t\tif (this.renderDecorationsTimer !== undefined) {\n\t\t\tclearTimeout(this.renderDecorationsTimer);\n\t\t\tthis.renderDecorationsTimer = undefined;\n\t\t}\n\n\t\t// Cancel any worker request\n\t\tif (this.workerRequest !== null) {\n\t\t\tthis.workerRequest.cancel();\n\t\t\tthis.workerRequest = null;\n\t\t}\n\n\t\t// Invalidate any worker request callback\n\t\tif (!this.workerRequestCompleted) {\n\t\t\tthis.workerRequestTokenId++;\n\t\t\tthis.workerRequestCompleted = true;\n\t\t}\n\t}\n\n\tprivate _stopAll(preservedModel?: URI): void {\n\t\t// Remove any existing decorations\n\t\t// TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily.\n\t\t// maybe a nb type check?\n\t\tthis._removeAllDecorations(preservedModel);\n\n\t\t// Cancel any renderDecorationsTimer\n\t\tif (this.renderDecorationsTimer !== undefined) {\n\t\t\tclearTimeout(this.renderDecorationsTimer);\n\t\t\tthis.renderDecorationsTimer = undefined;\n\t\t}\n\n\t\t// Cancel any worker request\n\t\tif (this.workerRequest !== null) {\n\t\t\tthis.workerRequest.cancel();\n\t\t\tthis.workerRequest = null;\n\t\t}\n\n\t\t// Invalidate any worker request callback\n\t\tif (!this.workerRequestCompleted) {\n\t\t\tthis.workerRequestTokenId++;\n\t\t\tthis.workerRequestCompleted = true;\n\t\t}\n\t}\n\n\tprivate _onPositionChanged(e: ICursorPositionChangedEvent): void {\n\n\t\t// disabled\n\t\tif (this.occurrencesHighlightEnablement === 'off') {\n\t\t\tthis._stopAll();\n\t\t\treturn;\n\t\t}\n\n\t\t// ignore typing & other\n\t\t// need to check if the model is a notebook cell, should not stop if nb\n\t\tif (e.source !== 'api' && e.reason !== CursorChangeReason.Explicit) {\n\t\t\tthis._stopAll();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._run();\n\t}\n\n\tprivate _getWord(): IWordAtPosition | null {\n\t\tconst editorSelection = this.editor.getSelection();\n\t\tconst lineNumber = editorSelection.startLineNumber;\n\t\tconst startColumn = editorSelection.startColumn;\n\n\t\tif (this.model.isDisposed()) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.model.getWordAtPosition({\n\t\t\tlineNumber: lineNumber,\n\t\t\tcolumn: startColumn\n\t\t});\n\t}\n\n\tprivate getOtherModelsToHighlight(model: ITextModel): ITextModel[] {\n\t\tif (!model) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// notebook case\n\t\tconst isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n\t\tif (isNotebookEditor) {\n\t\t\tconst currentModels: ITextModel[] = [];\n\t\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\t\tfor (const editor of currentEditors) {\n\t\t\t\tconst tempModel = editor.getModel();\n\t\t\t\tif (tempModel && tempModel !== model && tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n\t\t\t\t\tcurrentModels.push(tempModel);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn currentModels;\n\t\t}\n\n\t\t// inline case\n\t\t// ? current works when highlighting outside of an inline diff, highlighting in.\n\t\t// ? broken when highlighting within a diff editor. highlighting the main editor does not work\n\t\t// ? editor group service could be useful here\n\t\tconst currentModels: ITextModel[] = [];\n\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\tfor (const editor of currentEditors) {\n\t\t\tif (!isDiffEditor(editor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst diffModel = (editor as IDiffEditor).getModel();\n\t\t\tif (!diffModel) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (model === diffModel.modified) { // embedded inline chat diff would pass this, allowing highlights\n\t\t\t\t//? currentModels.push(diffModel.original);\n\t\t\t\tcurrentModels.push(diffModel.modified);\n\t\t\t}\n\t\t}\n\t\tif (currentModels.length) { // no matching editors have been found\n\t\t\treturn currentModels;\n\t\t}\n\n\t\t// multi-doc OFF\n\t\tif (this.occurrencesHighlightEnablement === 'singleFile') {\n\t\t\treturn [];\n\t\t}\n\n\t\t// multi-doc ON\n\t\tfor (const editor of currentEditors) {\n\t\t\tconst tempModel = editor.getModel();\n\n\t\t\tconst isValidModel = tempModel && tempModel !== model;\n\n\t\t\tif (isValidModel) {\n\t\t\t\tcurrentModels.push(tempModel);\n\t\t\t}\n\t\t}\n\t\treturn currentModels;\n\t}\n\n\tprivate async _run(multiFileConfigChange?: boolean, delay?: number): Promise<void> {\n\n\t\tconst hasTextFocus = this.editor.hasTextFocus();\n\t\tif (!hasTextFocus) { // new nb cell scrolled in, didChangeModel fires\n\t\t\tif (!WordHighlighter.query) { // no previous query, nothing to highlight off of\n\t\t\t\tthis._stopAll();\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else { // has text focus\n\t\t\tconst editorSelection = this.editor.getSelection();\n\n\t\t\t// ignore multiline selection\n\t\t\tif (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n\t\t\t\tWordHighlighter.query = null;\n\t\t\t\tthis._stopAll();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst startColumn = editorSelection.startColumn;\n\t\t\tconst endColumn = editorSelection.endColumn;\n\n\t\t\tconst word = this._getWord();\n\n\t\t\t// The selection must be inside a word or surround one word at most\n\t\t\tif (!word || word.startColumn > startColumn || word.endColumn < endColumn) {\n\t\t\t\t// no previous query, nothing to highlight\n\t\t\t\tWordHighlighter.query = null;\n\t\t\t\tthis._stopAll();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tWordHighlighter.query = {\n\t\t\t\tmodelInfo: {\n\t\t\t\t\tmodelURI: this.model.uri,\n\t\t\t\t\tselection: editorSelection,\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\n\t\tthis.lastCursorPositionChangeTime = (new Date()).getTime();\n\n\t\tif (isEqual(this.editor.getModel().uri, WordHighlighter.query.modelInfo?.modelURI)) { // only trigger new worker requests from the primary model that initiated the query\n\t\t\t// case d)\n\n\t\t\t// check if the new queried word is contained in the range of a stored decoration for this model\n\t\t\tif (!multiFileConfigChange) {\n\t\t\t\tconst currentModelDecorationRanges = this.decorations.getRanges();\n\t\t\t\tfor (const storedRange of currentModelDecorationRanges) {\n\t\t\t\t\tif (storedRange.containsPosition(this.editor.getPosition())) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// stop all previous actions if new word is highlighted\n\t\t\t// if we trigger the run off a setting change -> multifile highlighting, we do not want to remove decorations from this model\n\t\t\tthis._stopAll(multiFileConfigChange ? this.model.uri : undefined);\n\n\t\t\tconst myRequestId = ++this.workerRequestTokenId;\n\t\t\tthis.workerRequestCompleted = false;\n\n\t\t\tconst otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n\n\t\t\t// when reaching here, there are two possible states.\n\t\t\t// \t\t1) we have text focus, and a valid query was updated.\n\t\t\t// \t\t2) we do not have text focus, and a valid query is cached.\n\t\t\t// the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely\n\t\t\tif (!WordHighlighter.query || !WordHighlighter.query.modelInfo) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst queryModelRef = await this.textModelService.createModelReference(WordHighlighter.query.modelInfo.modelURI);\n\t\t\ttry {\n\t\t\t\tthis.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter.query.modelInfo.selection, otherModelsToHighlight);\n\t\t\t\tthis.workerRequest?.result.then(data => {\n\t\t\t\t\tif (myRequestId === this.workerRequestTokenId) {\n\t\t\t\t\t\tthis.workerRequestCompleted = true;\n\t\t\t\t\t\tthis.workerRequestValue = data || [];\n\t\t\t\t\t\tthis._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n\t\t\t\t\t}\n\t\t\t\t}, onUnexpectedError);\n\t\t\t} catch (e) {\n\t\t\t\tthis.logService.error('Unexpected error during occurrence request. Log: ', e);\n\t\t\t} finally {\n\t\t\t\tqueryModelRef.dispose();\n\t\t\t}\n\n\t\t} else if (this.model.uri.scheme === Schemas.vscodeNotebookCell) {\n\t\t\t// new wordHighlighter coming from a different model, NOT the query model, need to create a textModel ref\n\n\t\t\tconst myRequestId = ++this.workerRequestTokenId;\n\t\t\tthis.workerRequestCompleted = false;\n\n\t\t\tif (!WordHighlighter.query || !WordHighlighter.query.modelInfo) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst queryModelRef = await this.textModelService.createModelReference(WordHighlighter.query.modelInfo.modelURI);\n\t\t\ttry {\n\t\t\t\tthis.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter.query.modelInfo.selection, [this.model]);\n\t\t\t\tthis.workerRequest?.result.then(data => {\n\t\t\t\t\tif (myRequestId === this.workerRequestTokenId) {\n\t\t\t\t\t\tthis.workerRequestCompleted = true;\n\t\t\t\t\t\tthis.workerRequestValue = data || [];\n\t\t\t\t\t\tthis._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n\t\t\t\t\t}\n\t\t\t\t}, onUnexpectedError);\n\t\t\t} catch (e) {\n\t\t\t\tthis.logService.error('Unexpected error during occurrence request. Log: ', e);\n\t\t\t} finally {\n\t\t\t\tqueryModelRef.dispose();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate computeWithModel(model: ITextModel, selection: Selection, otherModels: ITextModel[]): IOccurenceAtPositionRequest | null {\n\t\tif (!otherModels.length) {\n\t\t\treturn computeOccurencesAtPosition(this.providers, model, selection, this.editor.getOption(EditorOption.wordSeparators));\n\t\t} else {\n\t\t\treturn computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, this.editor.getOption(EditorOption.wordSeparators), otherModels);\n\t\t}\n\t}\n\n\tprivate _beginRenderDecorations(delay: number): void {\n\t\tconst currentTime = (new Date()).getTime();\n\t\tconst minimumRenderTime = this.lastCursorPositionChangeTime + delay;\n\n\t\tif (currentTime >= minimumRenderTime) {\n\t\t\t// Synchronous\n\t\t\tthis.renderDecorationsTimer = undefined;\n\t\t\tthis.renderDecorations();\n\t\t} else {\n\t\t\t// Asynchronous\n\t\t\tthis.renderDecorationsTimer = setTimeout(() => {\n\t\t\t\tthis.renderDecorations();\n\t\t\t}, (minimumRenderTime - currentTime));\n\t\t}\n\t}\n\n\tprivate renderDecorations(): void {\n\t\tthis.renderDecorationsTimer = undefined;\n\t\t// create new loop, iterate over current editors using this.codeEditorService.listCodeEditors(),\n\t\t// if the URI of that codeEditor is in the map, then add the decorations to the decorations array\n\t\t// then set the decorations for the editor\n\t\tconst currentEditors = this.codeEditorService.listCodeEditors();\n\t\tfor (const editor of currentEditors) {\n\t\t\tconst editorHighlighterContrib = WordHighlighterContribution.get(editor);\n\t\t\tif (!editorHighlighterContrib) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newDecorations: IModelDeltaDecoration[] = [];\n\t\t\tconst uri = editor.getModel()?.uri;\n\t\t\tif (uri && this.workerRequestValue.has(uri)) {\n\t\t\t\tconst oldDecorationIDs: string[] | undefined = WordHighlighter.storedDecorationIDs.get(uri);\n\t\t\t\tconst newDocumentHighlights = this.workerRequestValue.get(uri);\n\t\t\t\tif (newDocumentHighlights) {\n\t\t\t\t\tfor (const highlight of newDocumentHighlights) {\n\t\t\t\t\t\tif (!highlight.range) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnewDecorations.push({\n\t\t\t\t\t\t\trange: highlight.range,\n\t\t\t\t\t\t\toptions: getHighlightDecorationOptions(highlight.kind)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet newDecorationIDs: string[] = [];\n\t\t\t\teditor.changeDecorations((changeAccessor) => {\n\t\t\t\t\tnewDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs ?? [], newDecorations);\n\t\t\t\t});\n\t\t\t\tWordHighlighter.storedDecorationIDs = WordHighlighter.storedDecorationIDs.set(uri, newDecorationIDs);\n\n\t\t\t\tif (newDecorations.length > 0) {\n\t\t\t\t\teditorHighlighterContrib.wordHighlighter?.decorations.set(newDecorations);\n\t\t\t\t\teditorHighlighterContrib.wordHighlighter?._hasWordHighlights.set(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// clear the worker request when decorations are completed\n\t\tthis.workerRequest = null;\n\t}\n\n\tpublic dispose(): void {\n\t\tthis._stopSingular();\n\t\tthis.toUnhook.dispose();\n\t}\n}\n\nexport class WordHighlighterContribution extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.wordHighlighter';\n\n\tpublic static get(editor: ICodeEditor): WordHighlighterContribution | null {\n\t\treturn editor.getContribution<WordHighlighterContribution>(WordHighlighterContribution.ID);\n\t}\n\n\tprivate _wordHighlighter: WordHighlighter | null;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@ILanguageFeaturesService languageFeaturesService: ILanguageFeaturesService,\n\t\t@ICodeEditorService codeEditorService: ICodeEditorService,\n\t\t@ITextModelService textModelService: ITextModelService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@ILogService logService: ILogService,\n\t) {\n\t\tsuper();\n\t\tthis._wordHighlighter = null;\n\t\tconst createWordHighlighterIfPossible = () => {\n\t\t\tif (editor.hasModel() && !editor.getModel().isTooLargeForTokenization() && editor.getModel().uri.scheme !== Schemas.accessibleView) {\n\t\t\t\tthis._wordHighlighter = new WordHighlighter(editor, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, textModelService, codeEditorService, configurationService, logService);\n\t\t\t}\n\t\t};\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tif (this._wordHighlighter) {\n\t\t\t\tif (!e.newModelUrl && e.oldModelUrl?.scheme !== Schemas.vscodeNotebookCell) { // happens when switching tabs to a notebook that has focus in the cell list, no new model URI (this also doesn't make it to the wordHighlighter, bc no editor.hasModel)\n\t\t\t\t\tthis.wordHighlighter?.stop();\n\t\t\t\t}\n\n\t\t\t\tthis._wordHighlighter.dispose();\n\t\t\t\tthis._wordHighlighter = null;\n\t\t\t}\n\t\t\tcreateWordHighlighterIfPossible();\n\t\t}));\n\t\tcreateWordHighlighterIfPossible();\n\t}\n\n\tpublic get wordHighlighter(): WordHighlighter | null {\n\t\treturn this._wordHighlighter;\n\t}\n\n\tpublic saveViewState(): boolean {\n\t\tif (this._wordHighlighter && this._wordHighlighter.hasDecorations()) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic moveNext() {\n\t\tthis._wordHighlighter?.moveNext();\n\t}\n\n\tpublic moveBack() {\n\t\tthis._wordHighlighter?.moveBack();\n\t}\n\n\tpublic restoreViewState(state: boolean | undefined): void {\n\t\tif (this._wordHighlighter && state) {\n\t\t\tthis._wordHighlighter.restore(250); // 250 ms delay to restoring view state, since only exts call this\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tif (this._wordHighlighter) {\n\t\t\tthis._wordHighlighter.dispose();\n\t\t\tthis._wordHighlighter = null;\n\t\t}\n\t\tsuper.dispose();\n\t}\n}\n\n\nclass WordHighlightNavigationAction extends EditorAction {\n\n\tprivate readonly _isNext: boolean;\n\n\tconstructor(next: boolean, opts: IActionOptions) {\n\t\tsuper(opts);\n\t\tthis._isNext = next;\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst controller = WordHighlighterContribution.get(editor);\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isNext) {\n\t\t\tcontroller.moveNext();\n\t\t} else {\n\t\t\tcontroller.moveBack();\n\t\t}\n\t}\n}\n\nclass NextWordHighlightAction extends WordHighlightNavigationAction {\n\tconstructor() {\n\t\tsuper(true, {\n\t\t\tid: 'editor.action.wordHighlight.next',\n\t\t\tlabel: nls.localize2('wordHighlight.next.label', \"Go to Next Symbol Highlight\"),\n\t\t\tprecondition: ctxHasWordHighlights,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyCode.F7,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass PrevWordHighlightAction extends WordHighlightNavigationAction {\n\tconstructor() {\n\t\tsuper(false, {\n\t\t\tid: 'editor.action.wordHighlight.prev',\n\t\t\tlabel: nls.localize2('wordHighlight.previous.label', \"Go to Previous Symbol Highlight\"),\n\t\t\tprecondition: ctxHasWordHighlights,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyMod.Shift | KeyCode.F7,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass TriggerWordHighlightAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.wordHighlight.trigger',\n\t\t\tlabel: nls.localize2('wordHighlight.trigger.label', \"Trigger Symbol Highlight\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: 0,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst controller = WordHighlighterContribution.get(editor);\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontroller.restoreViewState(true);\n\t}\n}\n\nregisterEditorContribution(WordHighlighterContribution.ID, WordHighlighterContribution, EditorContributionInstantiation.Eager); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\nregisterEditorFeature(TextualMultiDocumentHighlightFeature);\n"]}
|
|
@@ -395,7 +395,7 @@ export class DeleteInsideWord extends EditorAction {
|
|
|
395
395
|
super({
|
|
396
396
|
id: 'deleteInsideWord',
|
|
397
397
|
precondition: EditorContextKeys.writable,
|
|
398
|
-
label: nls.localize2(
|
|
398
|
+
label: nls.localize2(1582, "Delete Word"),
|
|
399
399
|
});
|
|
400
400
|
}
|
|
401
401
|
run(accessor, editor, args) {
|
|
@@ -63,6 +63,7 @@ import './contrib/wordPartOperations/browser/wordPartOperations.js';
|
|
|
63
63
|
import './contrib/readOnlyMessage/browser/contribution.js';
|
|
64
64
|
import './contrib/diffEditorBreadcrumbs/browser/contribution.js';
|
|
65
65
|
import './contrib/floatingMenu/browser/floatingMenu.contribution.js';
|
|
66
|
+
import './browser/services/contribution.js';
|
|
66
67
|
// Load up these strings even in VSCode, even if they are not used
|
|
67
68
|
// in order to get them translated
|
|
68
69
|
import './common/standaloneStrings.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/editor.all.ts","vs/editor/editor.all.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,2BAA2B,CAAC;AACnC,OAAO,iDAAiD,CAAC;AACzD,OAAO,wDAAwD,CAAC;AAChE,OAAO,gDAAgD,CAAC;AACxD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AACxD,OAAO,0CAA0C,CAAC;AAClD,OAAO,yDAAyD,CAAC;AACjE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,0DAA0D,CAAC;AAClE,OAAO,sCAAsC,CAAC;AAC9C,OAAO,8CAA8C,CAAC;AACtD,OAAO,4CAA4C,CAAC;AACpD,OAAO,8BAA8B,CAAC;AACtC,OAAO,4DAA4D,CAAC;AACpE,OAAO,iEAAiE,CAAC;AACzE,OAAO,0CAA0C,CAAC;AAClD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,wCAAwC,CAAC;AAChD,OAAO,2CAA2C,CAAC;AACnD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,uEAAuE,CAAC;AAC/E,OAAO,oDAAoD,CAAC;AAC5D,OAAO,8CAA8C,CAAC;AACtD,OAAO,+DAA+D,CAAC;AACvE,OAAO,0CAA0C,CAAC;AAClD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AACtD,OAAO,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,4DAA4D,CAAC;AACpE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sDAAsD,CAAC;AAC9D,OAAO,6DAA6D,CAAC;AACrE,OAAO,8CAA8C,CAAC;AACtD,OAAO,oDAAoD,CAAC;AAC5D,OAAO,mEAAmE,CAAC;AAC3E,OAAO,oCAAoC,CAAC;AAC5C,OAAO,oDAAoD,CAAC;AAC5D,OAAO,4DAA4D,CAAC;AACpE,OAAO,4DAA4D,CAAC;AACpE,OAAO,8CAA8C,CAAC;AACtD,OAAO,iDAAiD,CAAC;AACzD,OAAO,4DAA4D,CAAC;AACpE,OAAO,gDAAgD,CAAC;AACxD,OAAO,uDAAuD,CAAC;AAC/D,OAAO,gDAAgD,CAAC;AACxD,OAAO,4DAA4D,CAAC;AACpE,OAAO,4DAA4D,CAAC;AACpE,OAAO,oEAAoE,CAAC;AAC5E,OAAO,sDAAsD,CAAC;AAC9D,OAAO,oDAAoD,CAAC;AAC5D,OAAO,4DAA4D,CAAC;AACpE,OAAO,mDAAmD,CAAC;AAC3D,OAAO,yDAAyD,CAAC;AACjE,OAAO,6DAA6D,CAAC;AAErE,kEAAkE;AAClE,kCAAkC;AAClC,OAAO,+BAA+B,CAAC;AAEvC,OAAO,8CAA8C,CAAC,CAAC,mDAAmD","file":"editor.all.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 './browser/coreCommands.js';\nimport './browser/widget/codeEditor/codeEditorWidget.js';\nimport './browser/widget/diffEditor/diffEditor.contribution.js';\nimport './contrib/anchorSelect/browser/anchorSelect.js';\nimport './contrib/bracketMatching/browser/bracketMatching.js';\nimport './contrib/caretOperations/browser/caretOperations.js';\nimport './contrib/caretOperations/browser/transpose.js';\nimport './contrib/clipboard/browser/clipboard.js';\nimport './contrib/codeAction/browser/codeActionContributions.js';\nimport './contrib/codelens/browser/codelensController.js';\nimport './contrib/colorPicker/browser/colorPickerContribution.js';\nimport './contrib/comment/browser/comment.js';\nimport './contrib/contextmenu/browser/contextmenu.js';\nimport './contrib/cursorUndo/browser/cursorUndo.js';\nimport './contrib/dnd/browser/dnd.js';\nimport './contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport './contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport './contrib/find/browser/findController.js';\nimport './contrib/folding/browser/folding.js';\nimport './contrib/fontZoom/browser/fontZoom.js';\nimport './contrib/format/browser/formatActions.js';\nimport './contrib/documentSymbols/browser/documentSymbols.js';\nimport './contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport './contrib/inlineProgress/browser/inlineProgress.js';\nimport './contrib/gotoSymbol/browser/goToCommands.js';\nimport './contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport './contrib/gotoError/browser/gotoError.js';\nimport './contrib/gpu/browser/gpuActions.js';\nimport './contrib/hover/browser/hoverContribution.js';\nimport './contrib/indentation/browser/indentation.js';\nimport './contrib/inlayHints/browser/inlayHintsContribution.js';\nimport './contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport './contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport './contrib/lineSelection/browser/lineSelection.js';\nimport './contrib/linesOperations/browser/linesOperations.js';\nimport './contrib/linkedEditing/browser/linkedEditing.js';\nimport './contrib/links/browser/links.js';\nimport './contrib/longLinesHelper/browser/longLinesHelper.js';\nimport './contrib/middleScroll/browser/middleScroll.contribution.js';\nimport './contrib/multicursor/browser/multicursor.js';\nimport './contrib/parameterHints/browser/parameterHints.js';\nimport './contrib/placeholderText/browser/placeholderText.contribution.js';\nimport './contrib/rename/browser/rename.js';\nimport './contrib/sectionHeaders/browser/sectionHeaders.js';\nimport './contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport './contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport './contrib/smartSelect/browser/smartSelect.js';\nimport './contrib/snippet/browser/snippetController2.js';\nimport './contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport './contrib/suggest/browser/suggestController.js';\nimport './contrib/suggest/browser/suggestInlineCompletions.js';\nimport './contrib/tokenization/browser/tokenization.js';\nimport './contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport './contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport './contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport './contrib/wordHighlighter/browser/wordHighlighter.js';\nimport './contrib/wordOperations/browser/wordOperations.js';\nimport './contrib/wordPartOperations/browser/wordPartOperations.js';\nimport './contrib/readOnlyMessage/browser/contribution.js';\nimport './contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport './contrib/floatingMenu/browser/floatingMenu.contribution.js';\n\n// Load up these strings even in VSCode, even if they are not used\n// in order to get them translated\nimport './common/standaloneStrings.js';\n\nimport '../base/browser/ui/codicons/codiconStyles.js'; // The codicons are defined here and must be loaded\n\n","/*---------------------------------------------------------------------------------------------\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 './browser/coreCommands.js';\nimport './browser/widget/codeEditor/codeEditorWidget.js';\nimport './browser/widget/diffEditor/diffEditor.contribution.js';\nimport './contrib/anchorSelect/browser/anchorSelect.js';\nimport './contrib/bracketMatching/browser/bracketMatching.js';\nimport './contrib/caretOperations/browser/caretOperations.js';\nimport './contrib/caretOperations/browser/transpose.js';\nimport './contrib/clipboard/browser/clipboard.js';\nimport './contrib/codeAction/browser/codeActionContributions.js';\nimport './contrib/codelens/browser/codelensController.js';\nimport './contrib/colorPicker/browser/colorPickerContribution.js';\nimport './contrib/comment/browser/comment.js';\nimport './contrib/contextmenu/browser/contextmenu.js';\nimport './contrib/cursorUndo/browser/cursorUndo.js';\nimport './contrib/dnd/browser/dnd.js';\nimport './contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport './contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport './contrib/find/browser/findController.js';\nimport './contrib/folding/browser/folding.js';\nimport './contrib/fontZoom/browser/fontZoom.js';\nimport './contrib/format/browser/formatActions.js';\nimport './contrib/documentSymbols/browser/documentSymbols.js';\nimport './contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport './contrib/inlineProgress/browser/inlineProgress.js';\nimport './contrib/gotoSymbol/browser/goToCommands.js';\nimport './contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport './contrib/gotoError/browser/gotoError.js';\nimport './contrib/gpu/browser/gpuActions.js';\nimport './contrib/hover/browser/hoverContribution.js';\nimport './contrib/indentation/browser/indentation.js';\nimport './contrib/inlayHints/browser/inlayHintsContribution.js';\nimport './contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport './contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport './contrib/lineSelection/browser/lineSelection.js';\nimport './contrib/linesOperations/browser/linesOperations.js';\nimport './contrib/linkedEditing/browser/linkedEditing.js';\nimport './contrib/links/browser/links.js';\nimport './contrib/longLinesHelper/browser/longLinesHelper.js';\nimport './contrib/middleScroll/browser/middleScroll.contribution.js';\nimport './contrib/multicursor/browser/multicursor.js';\nimport './contrib/parameterHints/browser/parameterHints.js';\nimport './contrib/placeholderText/browser/placeholderText.contribution.js';\nimport './contrib/rename/browser/rename.js';\nimport './contrib/sectionHeaders/browser/sectionHeaders.js';\nimport './contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport './contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport './contrib/smartSelect/browser/smartSelect.js';\nimport './contrib/snippet/browser/snippetController2.js';\nimport './contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport './contrib/suggest/browser/suggestController.js';\nimport './contrib/suggest/browser/suggestInlineCompletions.js';\nimport './contrib/tokenization/browser/tokenization.js';\nimport './contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport './contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport './contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport './contrib/wordHighlighter/browser/wordHighlighter.js';\nimport './contrib/wordOperations/browser/wordOperations.js';\nimport './contrib/wordPartOperations/browser/wordPartOperations.js';\nimport './contrib/readOnlyMessage/browser/contribution.js';\nimport './contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport './contrib/floatingMenu/browser/floatingMenu.contribution.js';\n\n// Load up these strings even in VSCode, even if they are not used\n// in order to get them translated\nimport './common/standaloneStrings.js';\n\nimport '../base/browser/ui/codicons/codiconStyles.js'; // The codicons are defined here and must be loaded\n\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/editor.all.ts","vs/editor/editor.all.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,2BAA2B,CAAC;AACnC,OAAO,iDAAiD,CAAC;AACzD,OAAO,wDAAwD,CAAC;AAChE,OAAO,gDAAgD,CAAC;AACxD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AACxD,OAAO,0CAA0C,CAAC;AAClD,OAAO,yDAAyD,CAAC;AACjE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,0DAA0D,CAAC;AAClE,OAAO,sCAAsC,CAAC;AAC9C,OAAO,8CAA8C,CAAC;AACtD,OAAO,4CAA4C,CAAC;AACpD,OAAO,8BAA8B,CAAC;AACtC,OAAO,4DAA4D,CAAC;AACpE,OAAO,iEAAiE,CAAC;AACzE,OAAO,0CAA0C,CAAC;AAClD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,wCAAwC,CAAC;AAChD,OAAO,2CAA2C,CAAC;AACnD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,uEAAuE,CAAC;AAC/E,OAAO,oDAAoD,CAAC;AAC5D,OAAO,8CAA8C,CAAC;AACtD,OAAO,+DAA+D,CAAC;AACvE,OAAO,0CAA0C,CAAC;AAClD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AACtD,OAAO,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,4DAA4D,CAAC;AACpE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sDAAsD,CAAC;AAC9D,OAAO,6DAA6D,CAAC;AACrE,OAAO,8CAA8C,CAAC;AACtD,OAAO,oDAAoD,CAAC;AAC5D,OAAO,mEAAmE,CAAC;AAC3E,OAAO,oCAAoC,CAAC;AAC5C,OAAO,oDAAoD,CAAC;AAC5D,OAAO,4DAA4D,CAAC;AACpE,OAAO,4DAA4D,CAAC;AACpE,OAAO,8CAA8C,CAAC;AACtD,OAAO,iDAAiD,CAAC;AACzD,OAAO,4DAA4D,CAAC;AACpE,OAAO,gDAAgD,CAAC;AACxD,OAAO,uDAAuD,CAAC;AAC/D,OAAO,gDAAgD,CAAC;AACxD,OAAO,4DAA4D,CAAC;AACpE,OAAO,4DAA4D,CAAC;AACpE,OAAO,oEAAoE,CAAC;AAC5E,OAAO,sDAAsD,CAAC;AAC9D,OAAO,oDAAoD,CAAC;AAC5D,OAAO,4DAA4D,CAAC;AACpE,OAAO,mDAAmD,CAAC;AAC3D,OAAO,yDAAyD,CAAC;AACjE,OAAO,6DAA6D,CAAC;AACrE,OAAO,oCAAoC,CAAC;AAE5C,kEAAkE;AAClE,kCAAkC;AAClC,OAAO,+BAA+B,CAAC;AAEvC,OAAO,8CAA8C,CAAC,CAAC,mDAAmD","file":"editor.all.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 './browser/coreCommands.js';\nimport './browser/widget/codeEditor/codeEditorWidget.js';\nimport './browser/widget/diffEditor/diffEditor.contribution.js';\nimport './contrib/anchorSelect/browser/anchorSelect.js';\nimport './contrib/bracketMatching/browser/bracketMatching.js';\nimport './contrib/caretOperations/browser/caretOperations.js';\nimport './contrib/caretOperations/browser/transpose.js';\nimport './contrib/clipboard/browser/clipboard.js';\nimport './contrib/codeAction/browser/codeActionContributions.js';\nimport './contrib/codelens/browser/codelensController.js';\nimport './contrib/colorPicker/browser/colorPickerContribution.js';\nimport './contrib/comment/browser/comment.js';\nimport './contrib/contextmenu/browser/contextmenu.js';\nimport './contrib/cursorUndo/browser/cursorUndo.js';\nimport './contrib/dnd/browser/dnd.js';\nimport './contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport './contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport './contrib/find/browser/findController.js';\nimport './contrib/folding/browser/folding.js';\nimport './contrib/fontZoom/browser/fontZoom.js';\nimport './contrib/format/browser/formatActions.js';\nimport './contrib/documentSymbols/browser/documentSymbols.js';\nimport './contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport './contrib/inlineProgress/browser/inlineProgress.js';\nimport './contrib/gotoSymbol/browser/goToCommands.js';\nimport './contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport './contrib/gotoError/browser/gotoError.js';\nimport './contrib/gpu/browser/gpuActions.js';\nimport './contrib/hover/browser/hoverContribution.js';\nimport './contrib/indentation/browser/indentation.js';\nimport './contrib/inlayHints/browser/inlayHintsContribution.js';\nimport './contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport './contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport './contrib/lineSelection/browser/lineSelection.js';\nimport './contrib/linesOperations/browser/linesOperations.js';\nimport './contrib/linkedEditing/browser/linkedEditing.js';\nimport './contrib/links/browser/links.js';\nimport './contrib/longLinesHelper/browser/longLinesHelper.js';\nimport './contrib/middleScroll/browser/middleScroll.contribution.js';\nimport './contrib/multicursor/browser/multicursor.js';\nimport './contrib/parameterHints/browser/parameterHints.js';\nimport './contrib/placeholderText/browser/placeholderText.contribution.js';\nimport './contrib/rename/browser/rename.js';\nimport './contrib/sectionHeaders/browser/sectionHeaders.js';\nimport './contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport './contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport './contrib/smartSelect/browser/smartSelect.js';\nimport './contrib/snippet/browser/snippetController2.js';\nimport './contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport './contrib/suggest/browser/suggestController.js';\nimport './contrib/suggest/browser/suggestInlineCompletions.js';\nimport './contrib/tokenization/browser/tokenization.js';\nimport './contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport './contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport './contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport './contrib/wordHighlighter/browser/wordHighlighter.js';\nimport './contrib/wordOperations/browser/wordOperations.js';\nimport './contrib/wordPartOperations/browser/wordPartOperations.js';\nimport './contrib/readOnlyMessage/browser/contribution.js';\nimport './contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport './contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport './browser/services/contribution.js';\n\n// Load up these strings even in VSCode, even if they are not used\n// in order to get them translated\nimport './common/standaloneStrings.js';\n\nimport '../base/browser/ui/codicons/codiconStyles.js'; // The codicons are defined here and must be loaded\n\n","/*---------------------------------------------------------------------------------------------\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 './browser/coreCommands.js';\nimport './browser/widget/codeEditor/codeEditorWidget.js';\nimport './browser/widget/diffEditor/diffEditor.contribution.js';\nimport './contrib/anchorSelect/browser/anchorSelect.js';\nimport './contrib/bracketMatching/browser/bracketMatching.js';\nimport './contrib/caretOperations/browser/caretOperations.js';\nimport './contrib/caretOperations/browser/transpose.js';\nimport './contrib/clipboard/browser/clipboard.js';\nimport './contrib/codeAction/browser/codeActionContributions.js';\nimport './contrib/codelens/browser/codelensController.js';\nimport './contrib/colorPicker/browser/colorPickerContribution.js';\nimport './contrib/comment/browser/comment.js';\nimport './contrib/contextmenu/browser/contextmenu.js';\nimport './contrib/cursorUndo/browser/cursorUndo.js';\nimport './contrib/dnd/browser/dnd.js';\nimport './contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport './contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport './contrib/find/browser/findController.js';\nimport './contrib/folding/browser/folding.js';\nimport './contrib/fontZoom/browser/fontZoom.js';\nimport './contrib/format/browser/formatActions.js';\nimport './contrib/documentSymbols/browser/documentSymbols.js';\nimport './contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport './contrib/inlineProgress/browser/inlineProgress.js';\nimport './contrib/gotoSymbol/browser/goToCommands.js';\nimport './contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport './contrib/gotoError/browser/gotoError.js';\nimport './contrib/gpu/browser/gpuActions.js';\nimport './contrib/hover/browser/hoverContribution.js';\nimport './contrib/indentation/browser/indentation.js';\nimport './contrib/inlayHints/browser/inlayHintsContribution.js';\nimport './contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport './contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport './contrib/lineSelection/browser/lineSelection.js';\nimport './contrib/linesOperations/browser/linesOperations.js';\nimport './contrib/linkedEditing/browser/linkedEditing.js';\nimport './contrib/links/browser/links.js';\nimport './contrib/longLinesHelper/browser/longLinesHelper.js';\nimport './contrib/middleScroll/browser/middleScroll.contribution.js';\nimport './contrib/multicursor/browser/multicursor.js';\nimport './contrib/parameterHints/browser/parameterHints.js';\nimport './contrib/placeholderText/browser/placeholderText.contribution.js';\nimport './contrib/rename/browser/rename.js';\nimport './contrib/sectionHeaders/browser/sectionHeaders.js';\nimport './contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport './contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport './contrib/smartSelect/browser/smartSelect.js';\nimport './contrib/snippet/browser/snippetController2.js';\nimport './contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport './contrib/suggest/browser/suggestController.js';\nimport './contrib/suggest/browser/suggestInlineCompletions.js';\nimport './contrib/tokenization/browser/tokenization.js';\nimport './contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport './contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport './contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport './contrib/wordHighlighter/browser/wordHighlighter.js';\nimport './contrib/wordOperations/browser/wordOperations.js';\nimport './contrib/wordPartOperations/browser/wordPartOperations.js';\nimport './contrib/readOnlyMessage/browser/contribution.js';\nimport './contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport './contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport './browser/services/contribution.js';\n\n// Load up these strings even in VSCode, even if they are not used\n// in order to get them translated\nimport './common/standaloneStrings.js';\n\nimport '../base/browser/ui/codicons/codiconStyles.js'; // The codicons are defined here and must be loaded\n\n"]}
|
|
@@ -102,7 +102,7 @@ export interface CancellationToken {
|
|
|
102
102
|
*
|
|
103
103
|
* @event
|
|
104
104
|
*/
|
|
105
|
-
readonly onCancellationRequested: (listener: (e:
|
|
105
|
+
readonly onCancellationRequested: (listener: (e: void) => unknown, thisArgs?: unknown, disposables?: IDisposable[]) => IDisposable;
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
108
|
* Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986.
|
|
@@ -4268,9 +4268,9 @@ export namespace editor {
|
|
|
4268
4268
|
export interface IEditorHoverOptions {
|
|
4269
4269
|
/**
|
|
4270
4270
|
* Enable the hover.
|
|
4271
|
-
* Defaults to
|
|
4271
|
+
* Defaults to 'on'.
|
|
4272
4272
|
*/
|
|
4273
|
-
enabled?:
|
|
4273
|
+
enabled?: 'on' | 'off' | 'onKeyboardModifier';
|
|
4274
4274
|
/**
|
|
4275
4275
|
* Delay for showing the hover.
|
|
4276
4276
|
* Defaults to 300.
|
|
@@ -5675,7 +5675,7 @@ export namespace editor {
|
|
|
5675
5675
|
* When set, stacks with other overlay widgets with the same preference,
|
|
5676
5676
|
* in an order determined by the ordinal value.
|
|
5677
5677
|
*/
|
|
5678
|
-
|
|
5678
|
+
stackOrdinal?: number;
|
|
5679
5679
|
}
|
|
5680
5680
|
|
|
5681
5681
|
/**
|
|
@@ -6127,6 +6127,7 @@ export namespace editor {
|
|
|
6127
6127
|
* Fires after the editor completes the operation it fired `onBeginUpdate` for.
|
|
6128
6128
|
*/
|
|
6129
6129
|
readonly onEndUpdate: IEvent<void>;
|
|
6130
|
+
readonly onDidChangeViewZones: IEvent<void>;
|
|
6130
6131
|
/**
|
|
6131
6132
|
* Saves current view state of the editor in a serializable object.
|
|
6132
6133
|
*/
|
|
@@ -6260,6 +6261,10 @@ export namespace editor {
|
|
|
6260
6261
|
* @param command The commands to execute
|
|
6261
6262
|
*/
|
|
6262
6263
|
executeCommands(source: string | null | undefined, commands: (ICommand | null)[]): void;
|
|
6264
|
+
/**
|
|
6265
|
+
* Scroll vertically or horizontally as necessary and reveal the current cursors.
|
|
6266
|
+
*/
|
|
6267
|
+
revealAllCursors(revealHorizontal: boolean, minimalReveal?: boolean): void;
|
|
6263
6268
|
/**
|
|
6264
6269
|
* Get all the decorations on a line (filtering out decorations from other editors).
|
|
6265
6270
|
*/
|
|
@@ -7569,7 +7574,6 @@ export namespace languages {
|
|
|
7569
7574
|
range: IRange;
|
|
7570
7575
|
style: InlineCompletionHintStyle;
|
|
7571
7576
|
content: string;
|
|
7572
|
-
jumpToEdit: boolean;
|
|
7573
7577
|
}
|
|
7574
7578
|
|
|
7575
7579
|
export type IconPath = editor.ThemeIcon;
|
|
@@ -54,13 +54,33 @@ export class GotoLineAction extends EditorAction {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
run(accessor) {
|
|
57
|
-
accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.
|
|
57
|
+
accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
registerEditorAction(GotoLineAction);
|
|
61
61
|
Registry.as(Extensions.Quickaccess).registerQuickAccessProvider({
|
|
62
62
|
ctor: StandaloneGotoLineQuickAccessProvider,
|
|
63
|
-
prefix: StandaloneGotoLineQuickAccessProvider.
|
|
63
|
+
prefix: StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX,
|
|
64
64
|
helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]
|
|
65
65
|
});
|
|
66
|
+
class GotoOffsetAction extends EditorAction {
|
|
67
|
+
static { this.ID = 'editor.action.gotoOffset'; }
|
|
68
|
+
constructor() {
|
|
69
|
+
super({
|
|
70
|
+
id: GotoOffsetAction.ID,
|
|
71
|
+
label: GoToLineNLS.gotoOffsetActionLabel,
|
|
72
|
+
alias: 'Go to Offset...',
|
|
73
|
+
precondition: undefined,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
run(accessor) {
|
|
77
|
+
accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
registerEditorAction(GotoOffsetAction);
|
|
81
|
+
Registry.as(Extensions.Quickaccess).registerQuickAccessProvider({
|
|
82
|
+
ctor: StandaloneGotoLineQuickAccessProvider,
|
|
83
|
+
prefix: StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX,
|
|
84
|
+
helpEntries: [{ description: GoToLineNLS.gotoOffsetActionLabel, commandId: GotoOffsetAction.ID }]
|
|
85
|
+
});
|
|
66
86
|
//# sourceMappingURL=standaloneGotoLineQuickAccess.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.ts","vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;AAEhG,OAAO,EAAE,mCAAmC,EAAE,MAAM,6DAA6D,CAAC;AAClH,OAAO,EAAE,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAC5E,OAAO,EAAwB,UAAU,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAoB,MAAM,sCAAsC,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAE1E,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,mCAAmC;IAI7F,YACqB,aAAkD,EACrD,cAA2D;QAE5E,KAAK,EAAE,CAAC;QAH6B,kBAAa,GAAb,aAAa,CAAoB;QACzB,mBAAc,GAAd,cAAc,CAAiB;QAJ1D,uCAAkC,GAAG,KAAK,CAAC,IAAI,CAAC;IAOnE,CAAC;IAED,IAAc,uBAAuB;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,IAAI,SAAS,CAAC;IAC/D,CAAC;CACD,CAAA;AAdY,qCAAqC;IAK/C,WAAA,kBAAkB,CAAA;IAClB,WAAA,eAAe,CAAA;GANL,qCAAqC,CAcjD;;AAED,MAAM,OAAO,cAAe,SAAQ,YAAY;aAE/B,OAAE,GAAG,wBAAwB,CAAC;IAE9C;QACC,KAAK,CAAC;YACL,EAAE,EAAE,cAAc,CAAC,EAAE;YACrB,KAAK,EAAE,WAAW,CAAC,mBAAmB;YACtC,KAAK,EAAE,sBAAsB;YAC7B,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE;gBACP,MAAM,EAAE,iBAAiB,CAAC,KAAK;gBAC/B,OAAO,EAAE,iDAA6B;gBACtC,GAAG,EAAE,EAAE,OAAO,EAAE,gDAA6B,EAAE;gBAC/C,MAAM,0CAAgC;aACtC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,QAA0B;QAC7B,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;IACjG,CAAC;;AAGF,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAErC,QAAQ,CAAC,EAAE,CAAuB,UAAU,CAAC,WAAW,CAAC,CAAC,2BAA2B,CAAC;IACrF,IAAI,EAAE,qCAAqC;IAC3C,MAAM,EAAE,qCAAqC,CAAC,MAAM;IACpD,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,mBAAmB,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC;CAC7F,CAAC,CAAC","file":"standaloneGotoLineQuickAccess.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 { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\n\nexport class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n\n\tprotected readonly onDidActiveTextEditorControlChange = Event.None;\n\n\tconstructor(\n\t\t@ICodeEditorService private readonly editorService: ICodeEditorService,\n\t\t@IStorageService protected override readonly storageService: IStorageService\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get activeTextEditorControl() {\n\t\treturn this.editorService.getFocusedCodeEditor() ?? undefined;\n\t}\n}\n\nexport class GotoLineAction extends EditorAction {\n\n\tstatic readonly ID = 'editor.action.gotoLine';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: GotoLineAction.ID,\n\t\t\tlabel: GoToLineNLS.gotoLineActionLabel,\n\t\t\talias: 'Go to Line/Column...',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.focus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyG,\n\t\t\t\tmac: { primary: KeyMod.WinCtrl | KeyCode.KeyG },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX);\n\t}\n}\n\nregisterEditorAction(GotoLineAction);\n\nRegistry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({\n\tctor: StandaloneGotoLineQuickAccessProvider,\n\tprefix: StandaloneGotoLineQuickAccessProvider.PREFIX,\n\thelpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n","/*---------------------------------------------------------------------------------------------\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 { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\n\nexport class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n\n\tprotected readonly onDidActiveTextEditorControlChange = Event.None;\n\n\tconstructor(\n\t\t@ICodeEditorService private readonly editorService: ICodeEditorService,\n\t\t@IStorageService protected override readonly storageService: IStorageService\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get activeTextEditorControl() {\n\t\treturn this.editorService.getFocusedCodeEditor() ?? undefined;\n\t}\n}\n\nexport class GotoLineAction extends EditorAction {\n\n\tstatic readonly ID = 'editor.action.gotoLine';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: GotoLineAction.ID,\n\t\t\tlabel: GoToLineNLS.gotoLineActionLabel,\n\t\t\talias: 'Go to Line/Column...',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.focus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyG,\n\t\t\t\tmac: { primary: KeyMod.WinCtrl | KeyCode.KeyG },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX);\n\t}\n}\n\nregisterEditorAction(GotoLineAction);\n\nRegistry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({\n\tctor: StandaloneGotoLineQuickAccessProvider,\n\tprefix: StandaloneGotoLineQuickAccessProvider.PREFIX,\n\thelpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.ts","vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.ts"],"names":[],"mappings":"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","file":"standaloneGotoLineQuickAccess.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 { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\n\nexport class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n\n\tprotected readonly onDidActiveTextEditorControlChange = Event.None;\n\n\tconstructor(\n\t\t@ICodeEditorService private readonly editorService: ICodeEditorService,\n\t\t@IStorageService protected override readonly storageService: IStorageService\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get activeTextEditorControl() {\n\t\treturn this.editorService.getFocusedCodeEditor() ?? undefined;\n\t}\n}\n\nexport class GotoLineAction extends EditorAction {\n\n\tstatic readonly ID = 'editor.action.gotoLine';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: GotoLineAction.ID,\n\t\t\tlabel: GoToLineNLS.gotoLineActionLabel,\n\t\t\talias: 'Go to Line/Column...',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.focus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyG,\n\t\t\t\tmac: { primary: KeyMod.WinCtrl | KeyCode.KeyG },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX);\n\t}\n}\n\nregisterEditorAction(GotoLineAction);\n\nRegistry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({\n\tctor: StandaloneGotoLineQuickAccessProvider,\n\tprefix: StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX,\n\thelpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n\nclass GotoOffsetAction extends EditorAction {\n\n\tstatic readonly ID = 'editor.action.gotoOffset';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: GotoOffsetAction.ID,\n\t\t\tlabel: GoToLineNLS.gotoOffsetActionLabel,\n\t\t\talias: 'Go to Offset...',\n\t\t\tprecondition: undefined,\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX);\n\t}\n}\n\nregisterEditorAction(GotoOffsetAction);\n\nRegistry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({\n\tctor: StandaloneGotoLineQuickAccessProvider,\n\tprefix: StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX,\n\thelpEntries: [{ description: GoToLineNLS.gotoOffsetActionLabel, commandId: GotoOffsetAction.ID }]\n});\n\n","/*---------------------------------------------------------------------------------------------\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 { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\n\nexport class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n\n\tprotected readonly onDidActiveTextEditorControlChange = Event.None;\n\n\tconstructor(\n\t\t@ICodeEditorService private readonly editorService: ICodeEditorService,\n\t\t@IStorageService protected override readonly storageService: IStorageService\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get activeTextEditorControl() {\n\t\treturn this.editorService.getFocusedCodeEditor() ?? undefined;\n\t}\n}\n\nexport class GotoLineAction extends EditorAction {\n\n\tstatic readonly ID = 'editor.action.gotoLine';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: GotoLineAction.ID,\n\t\t\tlabel: GoToLineNLS.gotoLineActionLabel,\n\t\t\talias: 'Go to Line/Column...',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.focus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyG,\n\t\t\t\tmac: { primary: KeyMod.WinCtrl | KeyCode.KeyG },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX);\n\t}\n}\n\nregisterEditorAction(GotoLineAction);\n\nRegistry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({\n\tctor: StandaloneGotoLineQuickAccessProvider,\n\tprefix: StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX,\n\thelpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n\nclass GotoOffsetAction extends EditorAction {\n\n\tstatic readonly ID = 'editor.action.gotoOffset';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: GotoOffsetAction.ID,\n\t\t\tlabel: GoToLineNLS.gotoOffsetActionLabel,\n\t\t\talias: 'Go to Offset...',\n\t\t\tprecondition: undefined,\n\t\t});\n\t}\n\n\trun(accessor: ServicesAccessor): void {\n\t\taccessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX);\n\t}\n}\n\nregisterEditorAction(GotoOffsetAction);\n\nRegistry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({\n\tctor: StandaloneGotoLineQuickAccessProvider,\n\tprefix: StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX,\n\thelpEntries: [{ description: GoToLineNLS.gotoOffsetActionLabel, commandId: GotoOffsetAction.ID }]\n});\n\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { getMonacoEnvironment } from '../../../../base/browser/browser.js';
|
|
6
|
+
import { WebWorkerService } from '../../../../platform/webWorker/browser/webWorkerServiceImpl.js';
|
|
7
|
+
export class StandaloneWebWorkerService extends WebWorkerService {
|
|
8
|
+
_createWorker(descriptor) {
|
|
9
|
+
const monacoEnvironment = getMonacoEnvironment();
|
|
10
|
+
if (monacoEnvironment) {
|
|
11
|
+
if (typeof monacoEnvironment.getWorker === 'function') {
|
|
12
|
+
const worker = monacoEnvironment.getWorker('workerMain.js', descriptor.label);
|
|
13
|
+
if (worker !== undefined) {
|
|
14
|
+
return Promise.resolve(worker);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return super._createWorker(descriptor);
|
|
19
|
+
}
|
|
20
|
+
getWorkerUrl(descriptor) {
|
|
21
|
+
const monacoEnvironment = getMonacoEnvironment();
|
|
22
|
+
if (monacoEnvironment) {
|
|
23
|
+
if (typeof monacoEnvironment.getWorkerUrl === 'function') {
|
|
24
|
+
const workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', descriptor.label);
|
|
25
|
+
if (workerUrl !== undefined) {
|
|
26
|
+
const absoluteUrl = new URL(workerUrl, document.baseURI).toString();
|
|
27
|
+
return absoluteUrl;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (!descriptor.esmModuleLocationBundler) {
|
|
32
|
+
throw new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);
|
|
33
|
+
}
|
|
34
|
+
const url = typeof descriptor.esmModuleLocationBundler === 'function' ? descriptor.esmModuleLocationBundler() : descriptor.esmModuleLocationBundler;
|
|
35
|
+
const urlStr = url.toString();
|
|
36
|
+
return urlStr;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=standaloneWebWorkerService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/standalone/browser/services/standaloneWebWorkerService.ts","vs/editor/standalone/browser/services/standaloneWebWorkerService.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gEAAgE,CAAC;AAElG,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAC5C,aAAa,CAAC,UAA+B;QAC/D,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QACjD,IAAI,iBAAiB,EAAE,CAAC;YACvB,IAAI,OAAO,iBAAiB,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC9E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEQ,YAAY,CAAC,UAA+B;QACpD,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QACjD,IAAI,iBAAiB,EAAE,CAAC;YACvB,IAAI,OAAO,iBAAiB,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBAC1D,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpE,OAAO,WAAW,CAAC;gBACpB,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,UAAU,CAAC,wBAAwB,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACpJ,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IACf,CAAC;CACD","file":"standaloneWebWorkerService.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 { getMonacoEnvironment } from '../../../../base/browser/browser.js';\nimport { WebWorkerDescriptor } from '../../../../platform/webWorker/browser/webWorkerDescriptor.js';\nimport { WebWorkerService } from '../../../../platform/webWorker/browser/webWorkerServiceImpl.js';\n\nexport class StandaloneWebWorkerService extends WebWorkerService {\n\tprotected override _createWorker(descriptor: WebWorkerDescriptor): Promise<Worker> {\n\t\tconst monacoEnvironment = getMonacoEnvironment();\n\t\tif (monacoEnvironment) {\n\t\t\tif (typeof monacoEnvironment.getWorker === 'function') {\n\t\t\t\tconst worker = monacoEnvironment.getWorker('workerMain.js', descriptor.label);\n\t\t\t\tif (worker !== undefined) {\n\t\t\t\t\treturn Promise.resolve(worker);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn super._createWorker(descriptor);\n\t}\n\n\toverride getWorkerUrl(descriptor: WebWorkerDescriptor): string {\n\t\tconst monacoEnvironment = getMonacoEnvironment();\n\t\tif (monacoEnvironment) {\n\t\t\tif (typeof monacoEnvironment.getWorkerUrl === 'function') {\n\t\t\t\tconst workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', descriptor.label);\n\t\t\t\tif (workerUrl !== undefined) {\n\t\t\t\t\tconst absoluteUrl = new URL(workerUrl, document.baseURI).toString();\n\t\t\t\t\treturn absoluteUrl;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!descriptor.esmModuleLocationBundler) {\n\t\t\tthrow new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n\t\t}\n\n\t\tconst url = typeof descriptor.esmModuleLocationBundler === 'function' ? descriptor.esmModuleLocationBundler() : descriptor.esmModuleLocationBundler;\n\t\tconst urlStr = url.toString();\n\t\treturn urlStr;\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\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 { getMonacoEnvironment } from '../../../../base/browser/browser.js';\nimport { WebWorkerDescriptor } from '../../../../platform/webWorker/browser/webWorkerDescriptor.js';\nimport { WebWorkerService } from '../../../../platform/webWorker/browser/webWorkerServiceImpl.js';\n\nexport class StandaloneWebWorkerService extends WebWorkerService {\n\tprotected override _createWorker(descriptor: WebWorkerDescriptor): Promise<Worker> {\n\t\tconst monacoEnvironment = getMonacoEnvironment();\n\t\tif (monacoEnvironment) {\n\t\t\tif (typeof monacoEnvironment.getWorker === 'function') {\n\t\t\t\tconst worker = monacoEnvironment.getWorker('workerMain.js', descriptor.label);\n\t\t\t\tif (worker !== undefined) {\n\t\t\t\t\treturn Promise.resolve(worker);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn super._createWorker(descriptor);\n\t}\n\n\toverride getWorkerUrl(descriptor: WebWorkerDescriptor): string {\n\t\tconst monacoEnvironment = getMonacoEnvironment();\n\t\tif (monacoEnvironment) {\n\t\t\tif (typeof monacoEnvironment.getWorkerUrl === 'function') {\n\t\t\t\tconst workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', descriptor.label);\n\t\t\t\tif (workerUrl !== undefined) {\n\t\t\t\t\tconst absoluteUrl = new URL(workerUrl, document.baseURI).toString();\n\t\t\t\t\treturn absoluteUrl;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!descriptor.esmModuleLocationBundler) {\n\t\t\tthrow new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n\t\t}\n\n\t\tconst url = typeof descriptor.esmModuleLocationBundler === 'function' ? descriptor.esmModuleLocationBundler() : descriptor.esmModuleLocationBundler;\n\t\tconst urlStr = url.toString();\n\t\treturn urlStr;\n\t}\n}\n"]}
|