monaco-editor-core 0.55.1 → 0.56.0-dev-20251122
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 +29 -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/list/rowCache.js +1 -4
- package/esm/vs/base/browser/ui/list/rowCache.js.map +1 -1
- package/esm/vs/base/browser/ui/menu/menu.js +14 -12
- package/esm/vs/base/browser/ui/menu/menu.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 +8 -5
- 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/observables/derivedImpl.js +1 -4
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.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/base/common/worker/webWorker.js +10 -7
- package/esm/vs/base/common/worker/webWorker.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/find/browser/findWidgetSearchHistory.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/replaceWidgetHistory.js.map +1 -1
- 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 +428 -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 +290 -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/inlineEdits/view.css +10 -0
- 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.css +7 -0
- 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/hoverService.js +17 -8
- package/esm/vs/platform/hover/browser/hoverService.js.map +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 +51 -39
- 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 +78 -39
- 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":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/observableCodeEditor.ts","vs/editor/browser/observableCodeEditor.ts"],"names":[],"mappings":"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","file":"observableCodeEditor.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 { equalsIfDefined, itemsEquals } from '../../base/common/equals.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../base/common/lifecycle.js';\nimport { DebugLocation, IObservable, IObservableWithChange, ITransaction, TransactionImpl, autorun, autorunOpts, derived, derivedOpts, derivedWithSetter, observableFromEvent, observableSignal, observableValue, observableValueOpts } from '../../base/common/observable.js';\nimport { EditorOption, FindComputedEditorOptionValueById } from '../common/config/editorOptions.js';\nimport { LineRange } from '../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../common/core/ranges/offsetRange.js';\nimport { Position } from '../common/core/position.js';\nimport { Selection } from '../common/core/selection.js';\nimport { ICursorSelectionChangedEvent } from '../common/cursorEvents.js';\nimport { IModelDeltaDecoration, ITextModel } from '../common/model.js';\nimport { IModelContentChangedEvent } from '../common/textModelEvents.js';\nimport { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition, IEditorMouseEvent, IOverlayWidget, IOverlayWidgetPosition, IPasteEvent } from './editorBrowser.js';\nimport { Point } from '../common/core/2d/point.js';\n\n/**\n * Returns a facade for the code editor that provides observables for various states/events.\n*/\nexport function observableCodeEditor(editor: ICodeEditor): ObservableCodeEditor {\n\treturn ObservableCodeEditor.get(editor);\n}\n\nexport class ObservableCodeEditor extends Disposable {\n\tprivate static readonly _map = new Map<ICodeEditor, ObservableCodeEditor>();\n\n\t/**\n\t * Make sure that editor is not disposed yet!\n\t*/\n\tpublic static get(editor: ICodeEditor): ObservableCodeEditor {\n\t\tlet result = ObservableCodeEditor._map.get(editor);\n\t\tif (!result) {\n\t\t\tresult = new ObservableCodeEditor(editor);\n\t\t\tObservableCodeEditor._map.set(editor, result);\n\t\t\tconst d = editor.onDidDispose(() => {\n\t\t\t\tconst item = ObservableCodeEditor._map.get(editor);\n\t\t\t\tif (item) {\n\t\t\t\t\tObservableCodeEditor._map.delete(editor);\n\t\t\t\t\titem.dispose();\n\t\t\t\t\td.dispose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _updateCounter;\n\tprivate _currentTransaction: TransactionImpl | undefined;\n\n\tprivate _beginUpdate(): void {\n\t\tthis._updateCounter++;\n\t\tif (this._updateCounter === 1) {\n\t\t\tthis._currentTransaction = new TransactionImpl(() => {\n\t\t\t\t/** @description Update editor state */\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _endUpdate(): void {\n\t\tthis._updateCounter--;\n\t\tif (this._updateCounter === 0) {\n\t\t\tconst t = this._currentTransaction!;\n\t\t\tthis._currentTransaction = undefined;\n\t\t\tt.finish();\n\t\t}\n\t}\n\n\tprivate constructor(public readonly editor: ICodeEditor) {\n\t\tsuper();\n\t\tthis._updateCounter = 0;\n\t\tthis._currentTransaction = undefined;\n\t\tthis._model = observableValue(this, this.editor.getModel());\n\t\tthis.model = this._model;\n\t\tthis.isReadonly = observableFromEvent(this, this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.readOnly));\n\t\tthis._versionId = observableValueOpts<number | null, IModelContentChangedEvent | undefined>({ owner: this, lazy: true }, this.editor.getModel()?.getVersionId() ?? null);\n\t\tthis.versionId = this._versionId;\n\t\tthis._selections = observableValueOpts<Selection[] | null, ICursorSelectionChangedEvent | undefined>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Selection.selectionsEqual)), lazy: true },\n\t\t\tthis.editor.getSelections() ?? null\n\t\t);\n\t\tthis.selections = this._selections;\n\t\tthis.positions = derivedOpts<readonly Position[] | null>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Position.equals)) },\n\t\t\treader => this.selections.read(reader)?.map(s => s.getStartPosition()) ?? null\n\t\t);\n\t\tthis.isFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorWidget(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorWidget(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasWidgetFocus());\n\t\tthis.isTextFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorText(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorText(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasTextFocus());\n\t\tthis.inComposition = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidCompositionStart(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\tconst d2 = this.editor.onDidCompositionEnd(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.inComposition);\n\t\tthis.value = derivedWithSetter(this,\n\t\t\treader => { this.versionId.read(reader); return this.model.read(reader)?.getValue() ?? ''; },\n\t\t\t(value, tx) => {\n\t\t\t\tconst model = this.model.get();\n\t\t\t\tif (model !== null) {\n\t\t\t\t\tif (value !== model.getValue()) {\n\t\t\t\t\t\tmodel.setValue(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tthis.valueIsEmpty = derived(this, reader => { this.versionId.read(reader); return this.editor.getModel()?.getValueLength() === 0; });\n\t\tthis.cursorSelection = derivedOpts({ owner: this, equalsFn: equalsIfDefined(Selection.selectionsEqual) }, reader => this.selections.read(reader)?.[0] ?? null);\n\t\tthis.cursorPosition = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => this.selections.read(reader)?.[0]?.getPosition() ?? null);\n\t\tthis.cursorLineNumber = derived<number | null>(this, reader => this.cursorPosition.read(reader)?.lineNumber ?? null);\n\t\tthis.onDidType = observableSignal<string>(this);\n\t\tthis.onDidPaste = observableSignal<IPasteEvent>(this);\n\t\tthis.scrollTop = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollTop());\n\t\tthis.scrollLeft = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollLeft());\n\t\tthis.layoutInfo = observableFromEvent(this.editor.onDidLayoutChange, () => this.editor.getLayoutInfo());\n\t\tthis.layoutInfoContentLeft = this.layoutInfo.map(l => l.contentLeft);\n\t\tthis.layoutInfoDecorationsLeft = this.layoutInfo.map(l => l.decorationsLeft);\n\t\tthis.layoutInfoWidth = this.layoutInfo.map(l => l.width);\n\t\tthis.layoutInfoHeight = this.layoutInfo.map(l => l.height);\n\t\tthis.layoutInfoMinimap = this.layoutInfo.map(l => l.minimap);\n\t\tthis.layoutInfoVerticalScrollbarWidth = this.layoutInfo.map(l => l.verticalScrollbarWidth);\n\t\tthis.contentWidth = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentWidth());\n\t\tthis.contentHeight = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentHeight());\n\n\t\tthis._widgetCounter = 0;\n\t\tthis.openedPeekWidgets = observableValue(this, 0);\n\n\t\tthis._register(this.editor.onBeginUpdate(() => this._beginUpdate()));\n\t\tthis._register(this.editor.onEndUpdate(() => this._endUpdate()));\n\n\t\tthis._register(this.editor.onDidChangeModel(() => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidType((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidType.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidPaste((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidPaste.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeCursorSelection(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis.domNode = derived(reader => {\n\t\t\tthis.model.read(reader);\n\t\t\treturn this.editor.getDomNode();\n\t\t});\n\t}\n\n\tpublic forceUpdate(): void;\n\tpublic forceUpdate<T>(cb: (tx: ITransaction) => T): T;\n\tpublic forceUpdate<T>(cb?: (tx: ITransaction) => T): T {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._forceUpdate();\n\t\t\tif (!cb) { return undefined as T; }\n\t\t\treturn cb(this._currentTransaction!);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate _forceUpdate(): void {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, undefined);\n\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, undefined);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate readonly _model;\n\tpublic readonly model: IObservable<ITextModel | null>;\n\n\tpublic readonly isReadonly;\n\n\tprivate readonly _versionId;\n\tpublic readonly versionId: IObservableWithChange<number | null, IModelContentChangedEvent | undefined>;\n\n\tprivate readonly _selections;\n\tpublic readonly selections: IObservableWithChange<Selection[] | null, ICursorSelectionChangedEvent | undefined>;\n\n\n\tpublic readonly positions;\n\n\tpublic readonly isFocused;\n\n\tpublic readonly isTextFocused;\n\n\tpublic readonly inComposition;\n\n\tpublic readonly value;\n\tpublic readonly valueIsEmpty;\n\tpublic readonly cursorSelection;\n\tpublic readonly cursorPosition;\n\tpublic readonly cursorLineNumber;\n\n\tpublic readonly onDidType;\n\tpublic readonly onDidPaste;\n\n\tpublic readonly scrollTop;\n\tpublic readonly scrollLeft;\n\n\tpublic readonly layoutInfo;\n\tpublic readonly layoutInfoContentLeft;\n\tpublic readonly layoutInfoDecorationsLeft;\n\tpublic readonly layoutInfoWidth;\n\tpublic readonly layoutInfoHeight;\n\tpublic readonly layoutInfoMinimap;\n\tpublic readonly layoutInfoVerticalScrollbarWidth;\n\n\tpublic readonly contentWidth;\n\tpublic readonly contentHeight;\n\n\tpublic readonly domNode;\n\n\tpublic getOption<T extends EditorOption>(id: T, debugLocation = DebugLocation.ofCaller()): IObservable<FindComputedEditorOptionValueById<T>> {\n\t\treturn observableFromEvent(this, cb => this.editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(id)) { cb(undefined); }\n\t\t}), () => this.editor.getOption(id), debugLocation);\n\t}\n\n\tpublic setDecorations(decorations: IObservable<IModelDeltaDecoration[]>): IDisposable {\n\t\tconst d = new DisposableStore();\n\t\tconst decorationsCollection = this.editor.createDecorationsCollection();\n\t\td.add(autorunOpts({ owner: this, debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n\t\t\tconst d = decorations.read(reader);\n\t\t\tdecorationsCollection.set(d);\n\t\t}));\n\t\td.add({\n\t\t\tdispose: () => {\n\t\t\t\tdecorationsCollection.clear();\n\t\t\t}\n\t\t});\n\t\treturn d;\n\t}\n\n\tprivate _widgetCounter;\n\n\tpublic createOverlayWidget(widget: IObservableOverlayWidget): IDisposable {\n\t\tconst overlayWidgetId = 'observableOverlayWidget' + (this._widgetCounter++);\n\t\tconst w: IOverlayWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => overlayWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t\tgetMinContentWidthInPx: () => widget.minContentWidthInPx.get(),\n\t\t};\n\t\tthis.editor.addOverlayWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\twidget.minContentWidthInPx.read(reader);\n\t\t\tthis.editor.layoutOverlayWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeOverlayWidget(w);\n\t\t});\n\t}\n\n\tpublic createContentWidget(widget: IObservableContentWidget): IDisposable {\n\t\tconst contentWidgetId = 'observableContentWidget' + (this._widgetCounter++);\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t});\n\t}\n\n\tpublic observeLineOffsetRange(lineRange: IObservable<LineRange>, store: DisposableStore): IObservable<OffsetRange> {\n\t\tconst start = this.observePosition(lineRange.map(r => new Position(r.startLineNumber, 1)), store);\n\t\tconst end = this.observePosition(lineRange.map(r => new Position(r.endLineNumberExclusive + 1, 1)), store);\n\n\t\treturn derived(reader => {\n\t\t\tstart.read(reader);\n\t\t\tend.read(reader);\n\t\t\tconst range = lineRange.read(reader);\n\t\t\tconst lineCount = this.model.read(reader)?.getLineCount();\n\t\t\tconst s = (\n\t\t\t\t(typeof lineCount !== 'undefined' && range.startLineNumber > lineCount\n\t\t\t\t\t? this.editor.getBottomForLineNumber(lineCount)\n\t\t\t\t\t: this.editor.getTopForLineNumber(range.startLineNumber)\n\t\t\t\t)\n\t\t\t\t- this.scrollTop.read(reader)\n\t\t\t);\n\t\t\tconst e = range.isEmpty ? s : (this.editor.getBottomForLineNumber(range.endLineNumberExclusive - 1) - this.scrollTop.read(reader));\n\t\t\treturn new OffsetRange(s, e);\n\t\t});\n\t}\n\n\tpublic observePosition(position: IObservable<Position | null>, store: DisposableStore): IObservable<Point | null> {\n\t\tlet pos = position.get();\n\t\tconst result = observableValueOpts<Point | null>({ owner: this, debugName: () => `topLeftOfPosition${pos?.toString()}`, equalsFn: equalsIfDefined(Point.equals) }, new Point(0, 0));\n\t\tconst contentWidgetId = `observablePositionWidget` + (this._widgetCounter++);\n\t\tconst domNode = document.createElement('div');\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => domNode,\n\t\t\tgetPosition: () => {\n\t\t\t\treturn pos ? { preference: [ContentWidgetPositionPreference.EXACT], position: position.get() } : null;\n\t\t\t},\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: false,\n\t\t\tafterRender: (position, coordinate) => {\n\t\t\t\tconst model = this._model.get();\n\t\t\t\tif (model && pos && pos.lineNumber > model.getLineCount()) {\n\t\t\t\t\t// the position is after the last line\n\t\t\t\t\tresult.set(new Point(0, this.editor.getBottomForLineNumber(model.getLineCount()) - this.scrollTop.get()), undefined);\n\t\t\t\t} else {\n\t\t\t\t\tresult.set(coordinate ? new Point(coordinate.left, coordinate.top) : null, undefined);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tstore.add(autorun(reader => {\n\t\t\tpos = position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t}));\n\t\tstore.add(toDisposable(() => {\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t}));\n\t\treturn result;\n\t}\n\n\tpublic readonly openedPeekWidgets;\n\n\tisTargetHovered(predicate: (target: IEditorMouseEvent) => boolean, store: DisposableStore): IObservable<boolean> {\n\t\tconst isHovered = observableValue('isInjectedTextHovered', false);\n\t\tstore.add(this.editor.onMouseMove(e => {\n\t\t\tconst val = predicate(e);\n\t\t\tisHovered.set(val, undefined);\n\t\t}));\n\n\t\tstore.add(this.editor.onMouseLeave(E => {\n\t\t\tisHovered.set(false, undefined);\n\t\t}));\n\t\treturn isHovered;\n\t}\n\n\tobserveLineHeightForPosition(position: IObservable<Position> | Position): IObservable<number>;\n\tobserveLineHeightForPosition(position: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForPosition(position: IObservable<Position | null> | Position): IObservable<number | null> {\n\t\treturn derived(reader => {\n\t\t\tconst pos = position instanceof Position ? position : position.read(reader);\n\t\t\tif (pos === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tthis.getOption(EditorOption.lineHeight).read(reader);\n\n\t\t\treturn this.editor.getLineHeightForPosition(pos);\n\t\t});\n\t}\n\n\tobserveLineHeightForLine(lineNumber: IObservable<number> | number): IObservable<number>;\n\tobserveLineHeightForLine(lineNumber: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForLine(lineNumber: IObservable<number | null> | number): IObservable<number | null> {\n\t\tif (typeof lineNumber === 'number') {\n\t\t\treturn this.observeLineHeightForPosition(new Position(lineNumber, 1));\n\t\t}\n\n\t\treturn derived(reader => {\n\t\t\tconst line = lineNumber.read(reader);\n\t\t\tif (line === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn this.observeLineHeightForPosition(new Position(line, 1)).read(reader);\n\t\t});\n\t}\n\n\tobserveLineHeightsForLineRange(lineNumber: IObservable<LineRange> | LineRange): IObservable<number[]> {\n\t\treturn derived(reader => {\n\t\t\tconst range = lineNumber instanceof LineRange ? lineNumber : lineNumber.read(reader);\n\n\t\t\tconst heights: number[] = [];\n\t\t\tfor (let i = range.startLineNumber; i < range.endLineNumberExclusive; i++) {\n\t\t\t\theights.push(this.observeLineHeightForLine(i).read(reader));\n\t\t\t}\n\t\t\treturn heights;\n\t\t});\n\t}\n\n}\n\ninterface IObservableOverlayWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IOverlayWidgetPosition | null>;\n\treadonly minContentWidthInPx: IObservable<number>;\n\tget allowEditorOverflow(): boolean;\n}\n\ninterface IObservableContentWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IContentWidgetPosition | null>;\n\tget allowEditorOverflow(): boolean;\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 { equalsIfDefined, itemsEquals } from '../../base/common/equals.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../base/common/lifecycle.js';\nimport { DebugLocation, IObservable, IObservableWithChange, ITransaction, TransactionImpl, autorun, autorunOpts, derived, derivedOpts, derivedWithSetter, observableFromEvent, observableSignal, observableValue, observableValueOpts } from '../../base/common/observable.js';\nimport { EditorOption, FindComputedEditorOptionValueById } from '../common/config/editorOptions.js';\nimport { LineRange } from '../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../common/core/ranges/offsetRange.js';\nimport { Position } from '../common/core/position.js';\nimport { Selection } from '../common/core/selection.js';\nimport { ICursorSelectionChangedEvent } from '../common/cursorEvents.js';\nimport { IModelDeltaDecoration, ITextModel } from '../common/model.js';\nimport { IModelContentChangedEvent } from '../common/textModelEvents.js';\nimport { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition, IEditorMouseEvent, IOverlayWidget, IOverlayWidgetPosition, IPasteEvent } from './editorBrowser.js';\nimport { Point } from '../common/core/2d/point.js';\n\n/**\n * Returns a facade for the code editor that provides observables for various states/events.\n*/\nexport function observableCodeEditor(editor: ICodeEditor): ObservableCodeEditor {\n\treturn ObservableCodeEditor.get(editor);\n}\n\nexport class ObservableCodeEditor extends Disposable {\n\tprivate static readonly _map = new Map<ICodeEditor, ObservableCodeEditor>();\n\n\t/**\n\t * Make sure that editor is not disposed yet!\n\t*/\n\tpublic static get(editor: ICodeEditor): ObservableCodeEditor {\n\t\tlet result = ObservableCodeEditor._map.get(editor);\n\t\tif (!result) {\n\t\t\tresult = new ObservableCodeEditor(editor);\n\t\t\tObservableCodeEditor._map.set(editor, result);\n\t\t\tconst d = editor.onDidDispose(() => {\n\t\t\t\tconst item = ObservableCodeEditor._map.get(editor);\n\t\t\t\tif (item) {\n\t\t\t\t\tObservableCodeEditor._map.delete(editor);\n\t\t\t\t\titem.dispose();\n\t\t\t\t\td.dispose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _updateCounter;\n\tprivate _currentTransaction: TransactionImpl | undefined;\n\n\tprivate _beginUpdate(): void {\n\t\tthis._updateCounter++;\n\t\tif (this._updateCounter === 1) {\n\t\t\tthis._currentTransaction = new TransactionImpl(() => {\n\t\t\t\t/** @description Update editor state */\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _endUpdate(): void {\n\t\tthis._updateCounter--;\n\t\tif (this._updateCounter === 0) {\n\t\t\tconst t = this._currentTransaction!;\n\t\t\tthis._currentTransaction = undefined;\n\t\t\tt.finish();\n\t\t}\n\t}\n\n\tprivate constructor(public readonly editor: ICodeEditor) {\n\t\tsuper();\n\t\tthis._updateCounter = 0;\n\t\tthis._currentTransaction = undefined;\n\t\tthis._model = observableValue(this, this.editor.getModel());\n\t\tthis.model = this._model;\n\t\tthis.isReadonly = observableFromEvent(this, this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.readOnly));\n\t\tthis._versionId = observableValueOpts<number | null, IModelContentChangedEvent | undefined>({ owner: this, lazy: true }, this.editor.getModel()?.getVersionId() ?? null);\n\t\tthis.versionId = this._versionId;\n\t\tthis._selections = observableValueOpts<Selection[] | null, ICursorSelectionChangedEvent | undefined>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Selection.selectionsEqual)), lazy: true },\n\t\t\tthis.editor.getSelections() ?? null\n\t\t);\n\t\tthis.selections = this._selections;\n\t\tthis.positions = derivedOpts<readonly Position[] | null>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Position.equals)) },\n\t\t\treader => this.selections.read(reader)?.map(s => s.getStartPosition()) ?? null\n\t\t);\n\t\tthis.isFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorWidget(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorWidget(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasWidgetFocus());\n\t\tthis.isTextFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorText(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorText(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasTextFocus());\n\t\tthis.inComposition = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidCompositionStart(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\tconst d2 = this.editor.onDidCompositionEnd(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.inComposition);\n\t\tthis.value = derivedWithSetter(this,\n\t\t\treader => { this.versionId.read(reader); return this.model.read(reader)?.getValue() ?? ''; },\n\t\t\t(value, tx) => {\n\t\t\t\tconst model = this.model.get();\n\t\t\t\tif (model !== null) {\n\t\t\t\t\tif (value !== model.getValue()) {\n\t\t\t\t\t\tmodel.setValue(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tthis.valueIsEmpty = derived(this, reader => { this.versionId.read(reader); return this.editor.getModel()?.getValueLength() === 0; });\n\t\tthis.cursorSelection = derivedOpts({ owner: this, equalsFn: equalsIfDefined(Selection.selectionsEqual) }, reader => this.selections.read(reader)?.[0] ?? null);\n\t\tthis.cursorPosition = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => this.selections.read(reader)?.[0]?.getPosition() ?? null);\n\t\tthis.cursorLineNumber = derived<number | null>(this, reader => this.cursorPosition.read(reader)?.lineNumber ?? null);\n\t\tthis.onDidType = observableSignal<string>(this);\n\t\tthis.onDidPaste = observableSignal<IPasteEvent>(this);\n\t\tthis.scrollTop = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollTop());\n\t\tthis.scrollLeft = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollLeft());\n\t\tthis.layoutInfo = observableFromEvent(this.editor.onDidLayoutChange, () => this.editor.getLayoutInfo());\n\t\tthis.layoutInfoContentLeft = this.layoutInfo.map(l => l.contentLeft);\n\t\tthis.layoutInfoDecorationsLeft = this.layoutInfo.map(l => l.decorationsLeft);\n\t\tthis.layoutInfoWidth = this.layoutInfo.map(l => l.width);\n\t\tthis.layoutInfoHeight = this.layoutInfo.map(l => l.height);\n\t\tthis.layoutInfoMinimap = this.layoutInfo.map(l => l.minimap);\n\t\tthis.layoutInfoVerticalScrollbarWidth = this.layoutInfo.map(l => l.verticalScrollbarWidth);\n\t\tthis.contentWidth = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentWidth());\n\t\tthis.contentHeight = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentHeight());\n\n\t\tthis._widgetCounter = 0;\n\t\tthis.openedPeekWidgets = observableValue(this, 0);\n\n\t\tthis._register(this.editor.onBeginUpdate(() => this._beginUpdate()));\n\t\tthis._register(this.editor.onEndUpdate(() => this._endUpdate()));\n\n\t\tthis._register(this.editor.onDidChangeModel(() => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidType((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidType.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidPaste((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidPaste.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeCursorSelection(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis.domNode = derived(reader => {\n\t\t\tthis.model.read(reader);\n\t\t\treturn this.editor.getDomNode();\n\t\t});\n\t}\n\n\tpublic forceUpdate(): void;\n\tpublic forceUpdate<T>(cb: (tx: ITransaction) => T): T;\n\tpublic forceUpdate<T>(cb?: (tx: ITransaction) => T): T {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._forceUpdate();\n\t\t\tif (!cb) { return undefined as T; }\n\t\t\treturn cb(this._currentTransaction!);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate _forceUpdate(): void {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, undefined);\n\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, undefined);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate readonly _model;\n\tpublic readonly model: IObservable<ITextModel | null>;\n\n\tpublic readonly isReadonly;\n\n\tprivate readonly _versionId;\n\tpublic readonly versionId: IObservableWithChange<number | null, IModelContentChangedEvent | undefined>;\n\n\tprivate readonly _selections;\n\tpublic readonly selections: IObservableWithChange<Selection[] | null, ICursorSelectionChangedEvent | undefined>;\n\n\n\tpublic readonly positions;\n\n\tpublic readonly isFocused;\n\n\tpublic readonly isTextFocused;\n\n\tpublic readonly inComposition;\n\n\tpublic readonly value;\n\tpublic readonly valueIsEmpty;\n\tpublic readonly cursorSelection;\n\tpublic readonly cursorPosition;\n\tpublic readonly cursorLineNumber;\n\n\tpublic readonly onDidType;\n\tpublic readonly onDidPaste;\n\n\tpublic readonly scrollTop;\n\tpublic readonly scrollLeft;\n\n\tpublic readonly layoutInfo;\n\tpublic readonly layoutInfoContentLeft;\n\tpublic readonly layoutInfoDecorationsLeft;\n\tpublic readonly layoutInfoWidth;\n\tpublic readonly layoutInfoHeight;\n\tpublic readonly layoutInfoMinimap;\n\tpublic readonly layoutInfoVerticalScrollbarWidth;\n\n\tpublic readonly contentWidth;\n\tpublic readonly contentHeight;\n\n\tpublic readonly domNode;\n\n\tpublic getOption<T extends EditorOption>(id: T, debugLocation = DebugLocation.ofCaller()): IObservable<FindComputedEditorOptionValueById<T>> {\n\t\treturn observableFromEvent(this, cb => this.editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(id)) { cb(undefined); }\n\t\t}), () => this.editor.getOption(id), debugLocation);\n\t}\n\n\tpublic setDecorations(decorations: IObservable<IModelDeltaDecoration[]>): IDisposable {\n\t\tconst d = new DisposableStore();\n\t\tconst decorationsCollection = this.editor.createDecorationsCollection();\n\t\td.add(autorunOpts({ owner: this, debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n\t\t\tconst d = decorations.read(reader);\n\t\t\tdecorationsCollection.set(d);\n\t\t}));\n\t\td.add({\n\t\t\tdispose: () => {\n\t\t\t\tdecorationsCollection.clear();\n\t\t\t}\n\t\t});\n\t\treturn d;\n\t}\n\n\tprivate _widgetCounter;\n\n\tpublic createOverlayWidget(widget: IObservableOverlayWidget): IDisposable {\n\t\tconst overlayWidgetId = 'observableOverlayWidget' + (this._widgetCounter++);\n\t\tconst w: IOverlayWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => overlayWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t\tgetMinContentWidthInPx: () => widget.minContentWidthInPx.get(),\n\t\t};\n\t\tthis.editor.addOverlayWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\twidget.minContentWidthInPx.read(reader);\n\t\t\tthis.editor.layoutOverlayWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeOverlayWidget(w);\n\t\t});\n\t}\n\n\tpublic createContentWidget(widget: IObservableContentWidget): IDisposable {\n\t\tconst contentWidgetId = 'observableContentWidget' + (this._widgetCounter++);\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t});\n\t}\n\n\tpublic observeLineOffsetRange(lineRange: IObservable<LineRange>, store: DisposableStore): IObservable<OffsetRange> {\n\t\tconst start = this.observePosition(lineRange.map(r => new Position(r.startLineNumber, 1)), store);\n\t\tconst end = this.observePosition(lineRange.map(r => new Position(r.endLineNumberExclusive + 1, 1)), store);\n\n\t\treturn derived(reader => {\n\t\t\tstart.read(reader);\n\t\t\tend.read(reader);\n\t\t\tconst range = lineRange.read(reader);\n\t\t\tconst lineCount = this.model.read(reader)?.getLineCount();\n\t\t\tconst s = (\n\t\t\t\t(typeof lineCount !== 'undefined' && range.startLineNumber > lineCount\n\t\t\t\t\t? this.editor.getBottomForLineNumber(lineCount)\n\t\t\t\t\t: this.editor.getTopForLineNumber(range.startLineNumber)\n\t\t\t\t)\n\t\t\t\t- this.scrollTop.read(reader)\n\t\t\t);\n\t\t\tconst e = range.isEmpty ? s : (this.editor.getBottomForLineNumber(range.endLineNumberExclusive - 1) - this.scrollTop.read(reader));\n\t\t\treturn new OffsetRange(s, e);\n\t\t});\n\t}\n\n\tpublic observePosition(position: IObservable<Position | null>, store: DisposableStore): IObservable<Point | null> {\n\t\tlet pos = position.get();\n\t\tconst result = observableValueOpts<Point | null>({ owner: this, debugName: () => `topLeftOfPosition${pos?.toString()}`, equalsFn: equalsIfDefined(Point.equals) }, new Point(0, 0));\n\t\tconst contentWidgetId = `observablePositionWidget` + (this._widgetCounter++);\n\t\tconst domNode = document.createElement('div');\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => domNode,\n\t\t\tgetPosition: () => {\n\t\t\t\treturn pos ? { preference: [ContentWidgetPositionPreference.EXACT], position: position.get() } : null;\n\t\t\t},\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: false,\n\t\t\tafterRender: (position, coordinate) => {\n\t\t\t\tconst model = this._model.get();\n\t\t\t\tif (model && pos && pos.lineNumber > model.getLineCount()) {\n\t\t\t\t\t// the position is after the last line\n\t\t\t\t\tresult.set(new Point(0, this.editor.getBottomForLineNumber(model.getLineCount()) - this.scrollTop.get()), undefined);\n\t\t\t\t} else {\n\t\t\t\t\tresult.set(coordinate ? new Point(coordinate.left, coordinate.top) : null, undefined);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tstore.add(autorun(reader => {\n\t\t\tpos = position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t}));\n\t\tstore.add(toDisposable(() => {\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t}));\n\t\treturn result;\n\t}\n\n\tpublic readonly openedPeekWidgets;\n\n\tisTargetHovered(predicate: (target: IEditorMouseEvent) => boolean, store: DisposableStore): IObservable<boolean> {\n\t\tconst isHovered = observableValue('isInjectedTextHovered', false);\n\t\tstore.add(this.editor.onMouseMove(e => {\n\t\t\tconst val = predicate(e);\n\t\t\tisHovered.set(val, undefined);\n\t\t}));\n\n\t\tstore.add(this.editor.onMouseLeave(E => {\n\t\t\tisHovered.set(false, undefined);\n\t\t}));\n\t\treturn isHovered;\n\t}\n\n\tobserveLineHeightForPosition(position: IObservable<Position> | Position): IObservable<number>;\n\tobserveLineHeightForPosition(position: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForPosition(position: IObservable<Position | null> | Position): IObservable<number | null> {\n\t\treturn derived(reader => {\n\t\t\tconst pos = position instanceof Position ? position : position.read(reader);\n\t\t\tif (pos === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tthis.getOption(EditorOption.lineHeight).read(reader);\n\n\t\t\treturn this.editor.getLineHeightForPosition(pos);\n\t\t});\n\t}\n\n\tobserveLineHeightForLine(lineNumber: IObservable<number> | number): IObservable<number>;\n\tobserveLineHeightForLine(lineNumber: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForLine(lineNumber: IObservable<number | null> | number): IObservable<number | null> {\n\t\tif (typeof lineNumber === 'number') {\n\t\t\treturn this.observeLineHeightForPosition(new Position(lineNumber, 1));\n\t\t}\n\n\t\treturn derived(reader => {\n\t\t\tconst line = lineNumber.read(reader);\n\t\t\tif (line === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn this.observeLineHeightForPosition(new Position(line, 1)).read(reader);\n\t\t});\n\t}\n\n\tobserveLineHeightsForLineRange(lineNumber: IObservable<LineRange> | LineRange): IObservable<number[]> {\n\t\treturn derived(reader => {\n\t\t\tconst range = lineNumber instanceof LineRange ? lineNumber : lineNumber.read(reader);\n\n\t\t\tconst heights: number[] = [];\n\t\t\tfor (let i = range.startLineNumber; i < range.endLineNumberExclusive; i++) {\n\t\t\t\theights.push(this.observeLineHeightForLine(i).read(reader));\n\t\t\t}\n\t\t\treturn heights;\n\t\t});\n\t}\n\n}\n\ninterface IObservableOverlayWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IOverlayWidgetPosition | null>;\n\treadonly minContentWidthInPx: IObservable<number>;\n\tget allowEditorOverflow(): boolean;\n}\n\ninterface IObservableContentWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IContentWidgetPosition | null>;\n\tget allowEditorOverflow(): boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/observableCodeEditor.ts","vs/editor/browser/observableCodeEditor.ts"],"names":[],"mappings":"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","file":"observableCodeEditor.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 { equalsIfDefined, itemsEquals } from '../../base/common/equals.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../base/common/lifecycle.js';\nimport { DebugLocation, IObservable, IObservableWithChange, IReader, ITransaction, TransactionImpl, autorun, autorunOpts, derived, derivedOpts, derivedWithSetter, observableFromEvent, observableSignal, observableSignalFromEvent, observableValue, observableValueOpts } from '../../base/common/observable.js';\nimport { EditorOption, FindComputedEditorOptionValueById } from '../common/config/editorOptions.js';\nimport { LineRange } from '../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../common/core/ranges/offsetRange.js';\nimport { Position } from '../common/core/position.js';\nimport { Selection } from '../common/core/selection.js';\nimport { ICursorSelectionChangedEvent } from '../common/cursorEvents.js';\nimport { IModelDeltaDecoration, ITextModel } from '../common/model.js';\nimport { IModelContentChangedEvent } from '../common/textModelEvents.js';\nimport { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition, IEditorMouseEvent, IOverlayWidget, IOverlayWidgetPosition, IPasteEvent } from './editorBrowser.js';\nimport { Point } from '../common/core/2d/point.js';\n\n/**\n * Returns a facade for the code editor that provides observables for various states/events.\n*/\nexport function observableCodeEditor(editor: ICodeEditor): ObservableCodeEditor {\n\treturn ObservableCodeEditor.get(editor);\n}\n\nexport class ObservableCodeEditor extends Disposable {\n\tprivate static readonly _map = new Map<ICodeEditor, ObservableCodeEditor>();\n\n\t/**\n\t * Make sure that editor is not disposed yet!\n\t*/\n\tpublic static get(editor: ICodeEditor): ObservableCodeEditor {\n\t\tlet result = ObservableCodeEditor._map.get(editor);\n\t\tif (!result) {\n\t\t\tresult = new ObservableCodeEditor(editor);\n\t\t\tObservableCodeEditor._map.set(editor, result);\n\t\t\tconst d = editor.onDidDispose(() => {\n\t\t\t\tconst item = ObservableCodeEditor._map.get(editor);\n\t\t\t\tif (item) {\n\t\t\t\t\tObservableCodeEditor._map.delete(editor);\n\t\t\t\t\titem.dispose();\n\t\t\t\t\td.dispose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _updateCounter;\n\tprivate _currentTransaction: TransactionImpl | undefined;\n\n\tprivate _beginUpdate(): void {\n\t\tthis._updateCounter++;\n\t\tif (this._updateCounter === 1) {\n\t\t\tthis._currentTransaction = new TransactionImpl(() => {\n\t\t\t\t/** @description Update editor state */\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _endUpdate(): void {\n\t\tthis._updateCounter--;\n\t\tif (this._updateCounter === 0) {\n\t\t\tconst t = this._currentTransaction!;\n\t\t\tthis._currentTransaction = undefined;\n\t\t\tt.finish();\n\t\t}\n\t}\n\n\tprivate constructor(public readonly editor: ICodeEditor) {\n\t\tsuper();\n\t\tthis._updateCounter = 0;\n\t\tthis._currentTransaction = undefined;\n\t\tthis._model = observableValue(this, this.editor.getModel());\n\t\tthis.model = this._model;\n\t\tthis.isReadonly = observableFromEvent(this, this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.readOnly));\n\t\tthis._versionId = observableValueOpts<number | null, IModelContentChangedEvent | undefined>({ owner: this, lazy: true }, this.editor.getModel()?.getVersionId() ?? null);\n\t\tthis.versionId = this._versionId;\n\t\tthis._selections = observableValueOpts<Selection[] | null, ICursorSelectionChangedEvent | undefined>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Selection.selectionsEqual)), lazy: true },\n\t\t\tthis.editor.getSelections() ?? null\n\t\t);\n\t\tthis.selections = this._selections;\n\t\tthis.positions = derivedOpts<readonly Position[] | null>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Position.equals)) },\n\t\t\treader => this.selections.read(reader)?.map(s => s.getStartPosition()) ?? null\n\t\t);\n\t\tthis.isFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorWidget(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorWidget(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasWidgetFocus());\n\t\tthis.isTextFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorText(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorText(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasTextFocus());\n\t\tthis.inComposition = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidCompositionStart(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\tconst d2 = this.editor.onDidCompositionEnd(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.inComposition);\n\t\tthis.value = derivedWithSetter(this,\n\t\t\treader => { this.versionId.read(reader); return this.model.read(reader)?.getValue() ?? ''; },\n\t\t\t(value, tx) => {\n\t\t\t\tconst model = this.model.get();\n\t\t\t\tif (model !== null) {\n\t\t\t\t\tif (value !== model.getValue()) {\n\t\t\t\t\t\tmodel.setValue(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tthis.valueIsEmpty = derived(this, reader => { this.versionId.read(reader); return this.editor.getModel()?.getValueLength() === 0; });\n\t\tthis.cursorSelection = derivedOpts({ owner: this, equalsFn: equalsIfDefined(Selection.selectionsEqual) }, reader => this.selections.read(reader)?.[0] ?? null);\n\t\tthis.cursorPosition = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => this.selections.read(reader)?.[0]?.getPosition() ?? null);\n\t\tthis.cursorLineNumber = derived<number | null>(this, reader => this.cursorPosition.read(reader)?.lineNumber ?? null);\n\t\tthis.onDidType = observableSignal<string>(this);\n\t\tthis.onDidPaste = observableSignal<IPasteEvent>(this);\n\t\tthis.scrollTop = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollTop());\n\t\tthis.scrollLeft = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollLeft());\n\t\tthis.layoutInfo = observableFromEvent(this.editor.onDidLayoutChange, () => this.editor.getLayoutInfo());\n\t\tthis.layoutInfoContentLeft = this.layoutInfo.map(l => l.contentLeft);\n\t\tthis.layoutInfoDecorationsLeft = this.layoutInfo.map(l => l.decorationsLeft);\n\t\tthis.layoutInfoWidth = this.layoutInfo.map(l => l.width);\n\t\tthis.layoutInfoHeight = this.layoutInfo.map(l => l.height);\n\t\tthis.layoutInfoMinimap = this.layoutInfo.map(l => l.minimap);\n\t\tthis.layoutInfoVerticalScrollbarWidth = this.layoutInfo.map(l => l.verticalScrollbarWidth);\n\t\tthis.contentWidth = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentWidth());\n\t\tthis.contentHeight = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentHeight());\n\t\tthis._onDidChangeViewZones = observableSignalFromEvent(this, this.editor.onDidChangeViewZones);\n\t\tthis._onDidHiddenAreasChanged = observableSignalFromEvent(this, this.editor.onDidChangeHiddenAreas);\n\t\tthis._onDidLineHeightChanged = observableSignalFromEvent(this, this.editor.onDidChangeLineHeight);\n\n\t\tthis._widgetCounter = 0;\n\t\tthis.openedPeekWidgets = observableValue(this, 0);\n\n\t\tthis._register(this.editor.onBeginUpdate(() => this._beginUpdate()));\n\t\tthis._register(this.editor.onEndUpdate(() => this._endUpdate()));\n\n\t\tthis._register(this.editor.onDidChangeModel(() => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidType((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidType.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidPaste((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidPaste.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeCursorSelection(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis.domNode = derived(reader => {\n\t\t\tthis.model.read(reader);\n\t\t\treturn this.editor.getDomNode();\n\t\t});\n\t}\n\n\tpublic forceUpdate(): void;\n\tpublic forceUpdate<T>(cb: (tx: ITransaction) => T): T;\n\tpublic forceUpdate<T>(cb?: (tx: ITransaction) => T): T {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._forceUpdate();\n\t\t\tif (!cb) { return undefined as T; }\n\t\t\treturn cb(this._currentTransaction!);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate _forceUpdate(): void {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, undefined);\n\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, undefined);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate readonly _model;\n\tpublic readonly model: IObservable<ITextModel | null>;\n\n\tpublic readonly isReadonly;\n\n\tprivate readonly _versionId;\n\tpublic readonly versionId: IObservableWithChange<number | null, IModelContentChangedEvent | undefined>;\n\n\tprivate readonly _selections;\n\tpublic readonly selections: IObservableWithChange<Selection[] | null, ICursorSelectionChangedEvent | undefined>;\n\n\n\tpublic readonly positions;\n\n\tpublic readonly isFocused;\n\n\tpublic readonly isTextFocused;\n\n\tpublic readonly inComposition;\n\n\tpublic readonly value;\n\tpublic readonly valueIsEmpty;\n\tpublic readonly cursorSelection;\n\tpublic readonly cursorPosition;\n\tpublic readonly cursorLineNumber;\n\n\tpublic readonly onDidType;\n\tpublic readonly onDidPaste;\n\n\tpublic readonly scrollTop;\n\tpublic readonly scrollLeft;\n\n\tpublic readonly layoutInfo;\n\tpublic readonly layoutInfoContentLeft;\n\tpublic readonly layoutInfoDecorationsLeft;\n\tpublic readonly layoutInfoWidth;\n\tpublic readonly layoutInfoHeight;\n\tpublic readonly layoutInfoMinimap;\n\tpublic readonly layoutInfoVerticalScrollbarWidth;\n\n\tpublic readonly contentWidth;\n\tpublic readonly contentHeight;\n\n\tpublic readonly domNode;\n\n\tpublic getOption<T extends EditorOption>(id: T, debugLocation = DebugLocation.ofCaller()): IObservable<FindComputedEditorOptionValueById<T>> {\n\t\treturn observableFromEvent(this, cb => this.editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(id)) { cb(undefined); }\n\t\t}), () => this.editor.getOption(id), debugLocation);\n\t}\n\n\tpublic setDecorations(decorations: IObservable<IModelDeltaDecoration[]>): IDisposable {\n\t\tconst d = new DisposableStore();\n\t\tconst decorationsCollection = this.editor.createDecorationsCollection();\n\t\td.add(autorunOpts({ owner: this, debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n\t\t\tconst d = decorations.read(reader);\n\t\t\tdecorationsCollection.set(d);\n\t\t}));\n\t\td.add({\n\t\t\tdispose: () => {\n\t\t\t\tdecorationsCollection.clear();\n\t\t\t}\n\t\t});\n\t\treturn d;\n\t}\n\n\tprivate _widgetCounter;\n\n\tpublic createOverlayWidget(widget: IObservableOverlayWidget): IDisposable {\n\t\tconst overlayWidgetId = 'observableOverlayWidget' + (this._widgetCounter++);\n\t\tconst w: IOverlayWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => overlayWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t\tgetMinContentWidthInPx: () => widget.minContentWidthInPx.get(),\n\t\t};\n\t\tthis.editor.addOverlayWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\twidget.minContentWidthInPx.read(reader);\n\t\t\tthis.editor.layoutOverlayWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeOverlayWidget(w);\n\t\t});\n\t}\n\n\tpublic createContentWidget(widget: IObservableContentWidget): IDisposable {\n\t\tconst contentWidgetId = 'observableContentWidget' + (this._widgetCounter++);\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t});\n\t}\n\n\tpublic observeLineOffsetRange(lineRange: IObservable<LineRange>, store: DisposableStore): IObservable<OffsetRange> {\n\t\tconst start = this.observePosition(lineRange.map(r => new Position(r.startLineNumber, 1)), store);\n\t\tconst end = this.observePosition(lineRange.map(r => new Position(r.endLineNumberExclusive + 1, 1)), store);\n\n\t\treturn derived(reader => {\n\t\t\tstart.read(reader);\n\t\t\tend.read(reader);\n\t\t\tconst range = lineRange.read(reader);\n\t\t\tconst lineCount = this.model.read(reader)?.getLineCount();\n\t\t\tconst s = (\n\t\t\t\t(typeof lineCount !== 'undefined' && range.startLineNumber > lineCount\n\t\t\t\t\t? this.editor.getBottomForLineNumber(lineCount)\n\t\t\t\t\t: this.editor.getTopForLineNumber(range.startLineNumber)\n\t\t\t\t)\n\t\t\t\t- this.scrollTop.read(reader)\n\t\t\t);\n\t\t\tconst e = range.isEmpty ? s : (this.editor.getBottomForLineNumber(range.endLineNumberExclusive - 1) - this.scrollTop.read(reader));\n\t\t\treturn new OffsetRange(s, e);\n\t\t});\n\t}\n\n\t/**\n\t * Uses an approximation if the exact position cannot be determined.\n\t */\n\tgetLeftOfPosition(position: Position, reader: IReader | undefined): number {\n\t\tthis.layoutInfo.read(reader);\n\t\tthis.value.read(reader);\n\n\t\tlet offset = this.editor.getOffsetForColumn(position.lineNumber, position.column);\n\t\tif (offset === -1) {\n\t\t\t// approximation\n\t\t\tconst typicalHalfwidthCharacterWidth = this.editor.getOption(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t\t\tconst approximation = position.column * typicalHalfwidthCharacterWidth;\n\t\t\toffset = approximation;\n\t\t}\n\t\treturn offset;\n\t}\n\n\tpublic observePosition(position: IObservable<Position | null>, store: DisposableStore): IObservable<Point | null> {\n\t\tlet pos = position.get();\n\t\tconst result = observableValueOpts<Point | null>({ owner: this, debugName: () => `topLeftOfPosition${pos?.toString()}`, equalsFn: equalsIfDefined(Point.equals) }, new Point(0, 0));\n\t\tconst contentWidgetId = `observablePositionWidget` + (this._widgetCounter++);\n\t\tconst domNode = document.createElement('div');\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => domNode,\n\t\t\tgetPosition: () => {\n\t\t\t\treturn pos ? { preference: [ContentWidgetPositionPreference.EXACT], position: position.get() } : null;\n\t\t\t},\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: false,\n\t\t\tafterRender: (position, coordinate) => {\n\t\t\t\tconst model = this._model.get();\n\t\t\t\tif (model && pos && pos.lineNumber > model.getLineCount()) {\n\t\t\t\t\t// the position is after the last line\n\t\t\t\t\tresult.set(new Point(0, this.editor.getBottomForLineNumber(model.getLineCount()) - this.scrollTop.get()), undefined);\n\t\t\t\t} else {\n\t\t\t\t\tresult.set(coordinate ? new Point(coordinate.left, coordinate.top) : null, undefined);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tstore.add(autorun(reader => {\n\t\t\tpos = position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t}));\n\t\tstore.add(toDisposable(() => {\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t}));\n\t\treturn result;\n\t}\n\n\tpublic readonly openedPeekWidgets;\n\n\tisTargetHovered(predicate: (target: IEditorMouseEvent) => boolean, store: DisposableStore): IObservable<boolean> {\n\t\tconst isHovered = observableValue('isInjectedTextHovered', false);\n\t\tstore.add(this.editor.onMouseMove(e => {\n\t\t\tconst val = predicate(e);\n\t\t\tisHovered.set(val, undefined);\n\t\t}));\n\n\t\tstore.add(this.editor.onMouseLeave(E => {\n\t\t\tisHovered.set(false, undefined);\n\t\t}));\n\t\treturn isHovered;\n\t}\n\n\tobserveLineHeightForPosition(position: IObservable<Position> | Position): IObservable<number>;\n\tobserveLineHeightForPosition(position: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForPosition(position: IObservable<Position | null> | Position): IObservable<number | null> {\n\t\treturn derived(reader => {\n\t\t\tconst pos = position instanceof Position ? position : position.read(reader);\n\t\t\tif (pos === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tthis.getOption(EditorOption.lineHeight).read(reader);\n\n\t\t\treturn this.editor.getLineHeightForPosition(pos);\n\t\t});\n\t}\n\n\tobserveLineHeightForLine(lineNumber: IObservable<number> | number): IObservable<number>;\n\tobserveLineHeightForLine(lineNumber: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForLine(lineNumber: IObservable<number | null> | number): IObservable<number | null> {\n\t\tif (typeof lineNumber === 'number') {\n\t\t\treturn this.observeLineHeightForPosition(new Position(lineNumber, 1));\n\t\t}\n\n\t\treturn derived(reader => {\n\t\t\tconst line = lineNumber.read(reader);\n\t\t\tif (line === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn this.observeLineHeightForPosition(new Position(line, 1)).read(reader);\n\t\t});\n\t}\n\n\tobserveLineHeightsForLineRange(lineNumber: IObservable<LineRange> | LineRange): IObservable<number[]> {\n\t\treturn derived(reader => {\n\t\t\tconst range = lineNumber instanceof LineRange ? lineNumber : lineNumber.read(reader);\n\n\t\t\tconst heights: number[] = [];\n\t\t\tfor (let i = range.startLineNumber; i < range.endLineNumberExclusive; i++) {\n\t\t\t\theights.push(this.observeLineHeightForLine(i).read(reader));\n\t\t\t}\n\t\t\treturn heights;\n\t\t});\n\t}\n\n\tprivate readonly _onDidChangeViewZones;\n\tprivate readonly _onDidHiddenAreasChanged;\n\tprivate readonly _onDidLineHeightChanged;\n\n\t/**\n\t * Get the vertical position (top offset) for the line's bottom w.r.t. to the first line.\n\t */\n\tobserveTopForLineNumber(lineNumber: number): IObservable<number> {\n\t\treturn derived(reader => {\n\t\t\tthis.layoutInfo.read(reader);\n\t\t\tthis._onDidChangeViewZones.read(reader);\n\t\t\tthis._onDidHiddenAreasChanged.read(reader);\n\t\t\tthis._onDidLineHeightChanged.read(reader);\n\t\t\tthis._versionId.read(reader);\n\t\t\treturn this.editor.getTopForLineNumber(lineNumber);\n\t\t});\n\t}\n}\n\ninterface IObservableOverlayWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IOverlayWidgetPosition | null>;\n\treadonly minContentWidthInPx: IObservable<number>;\n\tget allowEditorOverflow(): boolean;\n}\n\ninterface IObservableContentWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IContentWidgetPosition | null>;\n\tget allowEditorOverflow(): boolean;\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 { equalsIfDefined, itemsEquals } from '../../base/common/equals.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../base/common/lifecycle.js';\nimport { DebugLocation, IObservable, IObservableWithChange, IReader, ITransaction, TransactionImpl, autorun, autorunOpts, derived, derivedOpts, derivedWithSetter, observableFromEvent, observableSignal, observableSignalFromEvent, observableValue, observableValueOpts } from '../../base/common/observable.js';\nimport { EditorOption, FindComputedEditorOptionValueById } from '../common/config/editorOptions.js';\nimport { LineRange } from '../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../common/core/ranges/offsetRange.js';\nimport { Position } from '../common/core/position.js';\nimport { Selection } from '../common/core/selection.js';\nimport { ICursorSelectionChangedEvent } from '../common/cursorEvents.js';\nimport { IModelDeltaDecoration, ITextModel } from '../common/model.js';\nimport { IModelContentChangedEvent } from '../common/textModelEvents.js';\nimport { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition, IEditorMouseEvent, IOverlayWidget, IOverlayWidgetPosition, IPasteEvent } from './editorBrowser.js';\nimport { Point } from '../common/core/2d/point.js';\n\n/**\n * Returns a facade for the code editor that provides observables for various states/events.\n*/\nexport function observableCodeEditor(editor: ICodeEditor): ObservableCodeEditor {\n\treturn ObservableCodeEditor.get(editor);\n}\n\nexport class ObservableCodeEditor extends Disposable {\n\tprivate static readonly _map = new Map<ICodeEditor, ObservableCodeEditor>();\n\n\t/**\n\t * Make sure that editor is not disposed yet!\n\t*/\n\tpublic static get(editor: ICodeEditor): ObservableCodeEditor {\n\t\tlet result = ObservableCodeEditor._map.get(editor);\n\t\tif (!result) {\n\t\t\tresult = new ObservableCodeEditor(editor);\n\t\t\tObservableCodeEditor._map.set(editor, result);\n\t\t\tconst d = editor.onDidDispose(() => {\n\t\t\t\tconst item = ObservableCodeEditor._map.get(editor);\n\t\t\t\tif (item) {\n\t\t\t\t\tObservableCodeEditor._map.delete(editor);\n\t\t\t\t\titem.dispose();\n\t\t\t\t\td.dispose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _updateCounter;\n\tprivate _currentTransaction: TransactionImpl | undefined;\n\n\tprivate _beginUpdate(): void {\n\t\tthis._updateCounter++;\n\t\tif (this._updateCounter === 1) {\n\t\t\tthis._currentTransaction = new TransactionImpl(() => {\n\t\t\t\t/** @description Update editor state */\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _endUpdate(): void {\n\t\tthis._updateCounter--;\n\t\tif (this._updateCounter === 0) {\n\t\t\tconst t = this._currentTransaction!;\n\t\t\tthis._currentTransaction = undefined;\n\t\t\tt.finish();\n\t\t}\n\t}\n\n\tprivate constructor(public readonly editor: ICodeEditor) {\n\t\tsuper();\n\t\tthis._updateCounter = 0;\n\t\tthis._currentTransaction = undefined;\n\t\tthis._model = observableValue(this, this.editor.getModel());\n\t\tthis.model = this._model;\n\t\tthis.isReadonly = observableFromEvent(this, this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.readOnly));\n\t\tthis._versionId = observableValueOpts<number | null, IModelContentChangedEvent | undefined>({ owner: this, lazy: true }, this.editor.getModel()?.getVersionId() ?? null);\n\t\tthis.versionId = this._versionId;\n\t\tthis._selections = observableValueOpts<Selection[] | null, ICursorSelectionChangedEvent | undefined>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Selection.selectionsEqual)), lazy: true },\n\t\t\tthis.editor.getSelections() ?? null\n\t\t);\n\t\tthis.selections = this._selections;\n\t\tthis.positions = derivedOpts<readonly Position[] | null>(\n\t\t\t{ owner: this, equalsFn: equalsIfDefined(itemsEquals(Position.equals)) },\n\t\t\treader => this.selections.read(reader)?.map(s => s.getStartPosition()) ?? null\n\t\t);\n\t\tthis.isFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorWidget(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorWidget(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasWidgetFocus());\n\t\tthis.isTextFocused = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidFocusEditorText(e);\n\t\t\tconst d2 = this.editor.onDidBlurEditorText(e);\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.hasTextFocus());\n\t\tthis.inComposition = observableFromEvent(this, e => {\n\t\t\tconst d1 = this.editor.onDidCompositionStart(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\tconst d2 = this.editor.onDidCompositionEnd(() => {\n\t\t\t\te(undefined);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdispose() {\n\t\t\t\t\td1.dispose();\n\t\t\t\t\td2.dispose();\n\t\t\t\t}\n\t\t\t};\n\t\t}, () => this.editor.inComposition);\n\t\tthis.value = derivedWithSetter(this,\n\t\t\treader => { this.versionId.read(reader); return this.model.read(reader)?.getValue() ?? ''; },\n\t\t\t(value, tx) => {\n\t\t\t\tconst model = this.model.get();\n\t\t\t\tif (model !== null) {\n\t\t\t\t\tif (value !== model.getValue()) {\n\t\t\t\t\t\tmodel.setValue(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tthis.valueIsEmpty = derived(this, reader => { this.versionId.read(reader); return this.editor.getModel()?.getValueLength() === 0; });\n\t\tthis.cursorSelection = derivedOpts({ owner: this, equalsFn: equalsIfDefined(Selection.selectionsEqual) }, reader => this.selections.read(reader)?.[0] ?? null);\n\t\tthis.cursorPosition = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => this.selections.read(reader)?.[0]?.getPosition() ?? null);\n\t\tthis.cursorLineNumber = derived<number | null>(this, reader => this.cursorPosition.read(reader)?.lineNumber ?? null);\n\t\tthis.onDidType = observableSignal<string>(this);\n\t\tthis.onDidPaste = observableSignal<IPasteEvent>(this);\n\t\tthis.scrollTop = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollTop());\n\t\tthis.scrollLeft = observableFromEvent(this.editor.onDidScrollChange, () => this.editor.getScrollLeft());\n\t\tthis.layoutInfo = observableFromEvent(this.editor.onDidLayoutChange, () => this.editor.getLayoutInfo());\n\t\tthis.layoutInfoContentLeft = this.layoutInfo.map(l => l.contentLeft);\n\t\tthis.layoutInfoDecorationsLeft = this.layoutInfo.map(l => l.decorationsLeft);\n\t\tthis.layoutInfoWidth = this.layoutInfo.map(l => l.width);\n\t\tthis.layoutInfoHeight = this.layoutInfo.map(l => l.height);\n\t\tthis.layoutInfoMinimap = this.layoutInfo.map(l => l.minimap);\n\t\tthis.layoutInfoVerticalScrollbarWidth = this.layoutInfo.map(l => l.verticalScrollbarWidth);\n\t\tthis.contentWidth = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentWidth());\n\t\tthis.contentHeight = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentHeight());\n\t\tthis._onDidChangeViewZones = observableSignalFromEvent(this, this.editor.onDidChangeViewZones);\n\t\tthis._onDidHiddenAreasChanged = observableSignalFromEvent(this, this.editor.onDidChangeHiddenAreas);\n\t\tthis._onDidLineHeightChanged = observableSignalFromEvent(this, this.editor.onDidChangeLineHeight);\n\n\t\tthis._widgetCounter = 0;\n\t\tthis.openedPeekWidgets = observableValue(this, 0);\n\n\t\tthis._register(this.editor.onBeginUpdate(() => this._beginUpdate()));\n\t\tthis._register(this.editor.onEndUpdate(() => this._endUpdate()));\n\n\t\tthis._register(this.editor.onDidChangeModel(() => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidType((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidType.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidPaste((e) => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._forceUpdate();\n\t\t\t\tthis.onDidPaste.trigger(this._currentTransaction, e);\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeCursorSelection(e => {\n\t\t\tthis._beginUpdate();\n\t\t\ttry {\n\t\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, e);\n\t\t\t\tthis._forceUpdate();\n\t\t\t} finally {\n\t\t\t\tthis._endUpdate();\n\t\t\t}\n\t\t}));\n\n\t\tthis.domNode = derived(reader => {\n\t\t\tthis.model.read(reader);\n\t\t\treturn this.editor.getDomNode();\n\t\t});\n\t}\n\n\tpublic forceUpdate(): void;\n\tpublic forceUpdate<T>(cb: (tx: ITransaction) => T): T;\n\tpublic forceUpdate<T>(cb?: (tx: ITransaction) => T): T {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._forceUpdate();\n\t\t\tif (!cb) { return undefined as T; }\n\t\t\treturn cb(this._currentTransaction!);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate _forceUpdate(): void {\n\t\tthis._beginUpdate();\n\t\ttry {\n\t\t\tthis._model.set(this.editor.getModel(), this._currentTransaction);\n\t\t\tthis._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, undefined);\n\t\t\tthis._selections.set(this.editor.getSelections(), this._currentTransaction, undefined);\n\t\t} finally {\n\t\t\tthis._endUpdate();\n\t\t}\n\t}\n\n\tprivate readonly _model;\n\tpublic readonly model: IObservable<ITextModel | null>;\n\n\tpublic readonly isReadonly;\n\n\tprivate readonly _versionId;\n\tpublic readonly versionId: IObservableWithChange<number | null, IModelContentChangedEvent | undefined>;\n\n\tprivate readonly _selections;\n\tpublic readonly selections: IObservableWithChange<Selection[] | null, ICursorSelectionChangedEvent | undefined>;\n\n\n\tpublic readonly positions;\n\n\tpublic readonly isFocused;\n\n\tpublic readonly isTextFocused;\n\n\tpublic readonly inComposition;\n\n\tpublic readonly value;\n\tpublic readonly valueIsEmpty;\n\tpublic readonly cursorSelection;\n\tpublic readonly cursorPosition;\n\tpublic readonly cursorLineNumber;\n\n\tpublic readonly onDidType;\n\tpublic readonly onDidPaste;\n\n\tpublic readonly scrollTop;\n\tpublic readonly scrollLeft;\n\n\tpublic readonly layoutInfo;\n\tpublic readonly layoutInfoContentLeft;\n\tpublic readonly layoutInfoDecorationsLeft;\n\tpublic readonly layoutInfoWidth;\n\tpublic readonly layoutInfoHeight;\n\tpublic readonly layoutInfoMinimap;\n\tpublic readonly layoutInfoVerticalScrollbarWidth;\n\n\tpublic readonly contentWidth;\n\tpublic readonly contentHeight;\n\n\tpublic readonly domNode;\n\n\tpublic getOption<T extends EditorOption>(id: T, debugLocation = DebugLocation.ofCaller()): IObservable<FindComputedEditorOptionValueById<T>> {\n\t\treturn observableFromEvent(this, cb => this.editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(id)) { cb(undefined); }\n\t\t}), () => this.editor.getOption(id), debugLocation);\n\t}\n\n\tpublic setDecorations(decorations: IObservable<IModelDeltaDecoration[]>): IDisposable {\n\t\tconst d = new DisposableStore();\n\t\tconst decorationsCollection = this.editor.createDecorationsCollection();\n\t\td.add(autorunOpts({ owner: this, debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n\t\t\tconst d = decorations.read(reader);\n\t\t\tdecorationsCollection.set(d);\n\t\t}));\n\t\td.add({\n\t\t\tdispose: () => {\n\t\t\t\tdecorationsCollection.clear();\n\t\t\t}\n\t\t});\n\t\treturn d;\n\t}\n\n\tprivate _widgetCounter;\n\n\tpublic createOverlayWidget(widget: IObservableOverlayWidget): IDisposable {\n\t\tconst overlayWidgetId = 'observableOverlayWidget' + (this._widgetCounter++);\n\t\tconst w: IOverlayWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => overlayWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t\tgetMinContentWidthInPx: () => widget.minContentWidthInPx.get(),\n\t\t};\n\t\tthis.editor.addOverlayWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\twidget.minContentWidthInPx.read(reader);\n\t\t\tthis.editor.layoutOverlayWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeOverlayWidget(w);\n\t\t});\n\t}\n\n\tpublic createContentWidget(widget: IObservableContentWidget): IDisposable {\n\t\tconst contentWidgetId = 'observableContentWidget' + (this._widgetCounter++);\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => widget.domNode,\n\t\t\tgetPosition: () => widget.position.get(),\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: widget.allowEditorOverflow,\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tconst d = autorun(reader => {\n\t\t\twidget.position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t});\n\t\treturn toDisposable(() => {\n\t\t\td.dispose();\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t});\n\t}\n\n\tpublic observeLineOffsetRange(lineRange: IObservable<LineRange>, store: DisposableStore): IObservable<OffsetRange> {\n\t\tconst start = this.observePosition(lineRange.map(r => new Position(r.startLineNumber, 1)), store);\n\t\tconst end = this.observePosition(lineRange.map(r => new Position(r.endLineNumberExclusive + 1, 1)), store);\n\n\t\treturn derived(reader => {\n\t\t\tstart.read(reader);\n\t\t\tend.read(reader);\n\t\t\tconst range = lineRange.read(reader);\n\t\t\tconst lineCount = this.model.read(reader)?.getLineCount();\n\t\t\tconst s = (\n\t\t\t\t(typeof lineCount !== 'undefined' && range.startLineNumber > lineCount\n\t\t\t\t\t? this.editor.getBottomForLineNumber(lineCount)\n\t\t\t\t\t: this.editor.getTopForLineNumber(range.startLineNumber)\n\t\t\t\t)\n\t\t\t\t- this.scrollTop.read(reader)\n\t\t\t);\n\t\t\tconst e = range.isEmpty ? s : (this.editor.getBottomForLineNumber(range.endLineNumberExclusive - 1) - this.scrollTop.read(reader));\n\t\t\treturn new OffsetRange(s, e);\n\t\t});\n\t}\n\n\t/**\n\t * Uses an approximation if the exact position cannot be determined.\n\t */\n\tgetLeftOfPosition(position: Position, reader: IReader | undefined): number {\n\t\tthis.layoutInfo.read(reader);\n\t\tthis.value.read(reader);\n\n\t\tlet offset = this.editor.getOffsetForColumn(position.lineNumber, position.column);\n\t\tif (offset === -1) {\n\t\t\t// approximation\n\t\t\tconst typicalHalfwidthCharacterWidth = this.editor.getOption(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t\t\tconst approximation = position.column * typicalHalfwidthCharacterWidth;\n\t\t\toffset = approximation;\n\t\t}\n\t\treturn offset;\n\t}\n\n\tpublic observePosition(position: IObservable<Position | null>, store: DisposableStore): IObservable<Point | null> {\n\t\tlet pos = position.get();\n\t\tconst result = observableValueOpts<Point | null>({ owner: this, debugName: () => `topLeftOfPosition${pos?.toString()}`, equalsFn: equalsIfDefined(Point.equals) }, new Point(0, 0));\n\t\tconst contentWidgetId = `observablePositionWidget` + (this._widgetCounter++);\n\t\tconst domNode = document.createElement('div');\n\t\tconst w: IContentWidget = {\n\t\t\tgetDomNode: () => domNode,\n\t\t\tgetPosition: () => {\n\t\t\t\treturn pos ? { preference: [ContentWidgetPositionPreference.EXACT], position: position.get() } : null;\n\t\t\t},\n\t\t\tgetId: () => contentWidgetId,\n\t\t\tallowEditorOverflow: false,\n\t\t\tafterRender: (position, coordinate) => {\n\t\t\t\tconst model = this._model.get();\n\t\t\t\tif (model && pos && pos.lineNumber > model.getLineCount()) {\n\t\t\t\t\t// the position is after the last line\n\t\t\t\t\tresult.set(new Point(0, this.editor.getBottomForLineNumber(model.getLineCount()) - this.scrollTop.get()), undefined);\n\t\t\t\t} else {\n\t\t\t\t\tresult.set(coordinate ? new Point(coordinate.left, coordinate.top) : null, undefined);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.editor.addContentWidget(w);\n\t\tstore.add(autorun(reader => {\n\t\t\tpos = position.read(reader);\n\t\t\tthis.editor.layoutContentWidget(w);\n\t\t}));\n\t\tstore.add(toDisposable(() => {\n\t\t\tthis.editor.removeContentWidget(w);\n\t\t}));\n\t\treturn result;\n\t}\n\n\tpublic readonly openedPeekWidgets;\n\n\tisTargetHovered(predicate: (target: IEditorMouseEvent) => boolean, store: DisposableStore): IObservable<boolean> {\n\t\tconst isHovered = observableValue('isInjectedTextHovered', false);\n\t\tstore.add(this.editor.onMouseMove(e => {\n\t\t\tconst val = predicate(e);\n\t\t\tisHovered.set(val, undefined);\n\t\t}));\n\n\t\tstore.add(this.editor.onMouseLeave(E => {\n\t\t\tisHovered.set(false, undefined);\n\t\t}));\n\t\treturn isHovered;\n\t}\n\n\tobserveLineHeightForPosition(position: IObservable<Position> | Position): IObservable<number>;\n\tobserveLineHeightForPosition(position: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForPosition(position: IObservable<Position | null> | Position): IObservable<number | null> {\n\t\treturn derived(reader => {\n\t\t\tconst pos = position instanceof Position ? position : position.read(reader);\n\t\t\tif (pos === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tthis.getOption(EditorOption.lineHeight).read(reader);\n\n\t\t\treturn this.editor.getLineHeightForPosition(pos);\n\t\t});\n\t}\n\n\tobserveLineHeightForLine(lineNumber: IObservable<number> | number): IObservable<number>;\n\tobserveLineHeightForLine(lineNumber: IObservable<null>): IObservable<null>;\n\tobserveLineHeightForLine(lineNumber: IObservable<number | null> | number): IObservable<number | null> {\n\t\tif (typeof lineNumber === 'number') {\n\t\t\treturn this.observeLineHeightForPosition(new Position(lineNumber, 1));\n\t\t}\n\n\t\treturn derived(reader => {\n\t\t\tconst line = lineNumber.read(reader);\n\t\t\tif (line === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn this.observeLineHeightForPosition(new Position(line, 1)).read(reader);\n\t\t});\n\t}\n\n\tobserveLineHeightsForLineRange(lineNumber: IObservable<LineRange> | LineRange): IObservable<number[]> {\n\t\treturn derived(reader => {\n\t\t\tconst range = lineNumber instanceof LineRange ? lineNumber : lineNumber.read(reader);\n\n\t\t\tconst heights: number[] = [];\n\t\t\tfor (let i = range.startLineNumber; i < range.endLineNumberExclusive; i++) {\n\t\t\t\theights.push(this.observeLineHeightForLine(i).read(reader));\n\t\t\t}\n\t\t\treturn heights;\n\t\t});\n\t}\n\n\tprivate readonly _onDidChangeViewZones;\n\tprivate readonly _onDidHiddenAreasChanged;\n\tprivate readonly _onDidLineHeightChanged;\n\n\t/**\n\t * Get the vertical position (top offset) for the line's bottom w.r.t. to the first line.\n\t */\n\tobserveTopForLineNumber(lineNumber: number): IObservable<number> {\n\t\treturn derived(reader => {\n\t\t\tthis.layoutInfo.read(reader);\n\t\t\tthis._onDidChangeViewZones.read(reader);\n\t\t\tthis._onDidHiddenAreasChanged.read(reader);\n\t\t\tthis._onDidLineHeightChanged.read(reader);\n\t\t\tthis._versionId.read(reader);\n\t\t\treturn this.editor.getTopForLineNumber(lineNumber);\n\t\t});\n\t}\n}\n\ninterface IObservableOverlayWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IOverlayWidgetPosition | null>;\n\treadonly minContentWidthInPx: IObservable<number>;\n\tget allowEditorOverflow(): boolean;\n}\n\ninterface IObservableContentWidget {\n\tget domNode(): HTMLElement;\n\treadonly position: IObservable<IContentWidgetPosition | null>;\n\tget allowEditorOverflow(): boolean;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
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 { registerSingleton } from '../../../platform/instantiation/common/extensions.js';
|
|
6
|
+
import { IEditorWorkerService } from '../../common/services/editorWorker.js';
|
|
7
|
+
import { EditorWorkerService } from './editorWorkerService.js';
|
|
8
|
+
registerSingleton(IEditorWorkerService, EditorWorkerService, 0 /* InstantiationType.Eager */);
|
|
9
|
+
//# sourceMappingURL=contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/services/contribution.ts","vs/editor/browser/services/contribution.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,iBAAiB,EAAqB,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,iBAAiB,CAAC,oBAAoB,EAAE,mBAAmB,kCAAqG,CAAC","file":"contribution.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 { registerSingleton, InstantiationType } from '../../../platform/instantiation/common/extensions.js';\nimport { IEditorWorkerService } from '../../common/services/editorWorker.js';\nimport { EditorWorkerService } from './editorWorkerService.js';\n\nregisterSingleton(IEditorWorkerService, EditorWorkerService, InstantiationType.Eager /* registers link detection and word based suggestions for any document */);\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 { registerSingleton, InstantiationType } from '../../../platform/instantiation/common/extensions.js';\nimport { IEditorWorkerService } from '../../common/services/editorWorker.js';\nimport { EditorWorkerService } from './editorWorkerService.js';\n\nregisterSingleton(IEditorWorkerService, EditorWorkerService, InstantiationType.Eager /* registers link detection and word based suggestions for any document */);\n"]}
|
|
@@ -14,7 +14,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
import { timeout } from '../../../base/common/async.js';
|
|
15
15
|
import { Disposable } from '../../../base/common/lifecycle.js';
|
|
16
16
|
import { logOnceWebWorkerWarning } from '../../../base/common/worker/webWorker.js';
|
|
17
|
-
import {
|
|
17
|
+
import { WebWorkerDescriptor } from '../../../platform/webWorker/browser/webWorkerDescriptor.js';
|
|
18
|
+
import { IWebWorkerService } from '../../../platform/webWorker/browser/webWorkerService.js';
|
|
18
19
|
import { Range } from '../../common/core/range.js';
|
|
19
20
|
import { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';
|
|
20
21
|
import { EditorWorker } from '../../common/services/editorWebWorker.js';
|
|
@@ -32,6 +33,7 @@ import { mainWindow } from '../../../base/browser/window.js';
|
|
|
32
33
|
import { WindowIntervalTimer } from '../../../base/browser/dom.js';
|
|
33
34
|
import { WorkerTextModelSyncClient } from '../../common/services/textModelSync/textModelSync.impl.js';
|
|
34
35
|
import { EditorWorkerHost } from '../../common/services/editorWorkerHost.js';
|
|
36
|
+
import { FileAccess } from '../../../base/common/network.js';
|
|
35
37
|
/**
|
|
36
38
|
* Stop the worker if it was not needed for 5 min.
|
|
37
39
|
*/
|
|
@@ -47,11 +49,17 @@ function canSyncModel(modelService, resource) {
|
|
|
47
49
|
return true;
|
|
48
50
|
}
|
|
49
51
|
let EditorWorkerService = class EditorWorkerService extends Disposable {
|
|
50
|
-
constructor(
|
|
52
|
+
constructor(modelService, configurationService, logService, _languageConfigurationService, languageFeaturesService, _webWorkerService) {
|
|
51
53
|
super();
|
|
52
54
|
this._languageConfigurationService = _languageConfigurationService;
|
|
55
|
+
this._webWorkerService = _webWorkerService;
|
|
53
56
|
this._modelService = modelService;
|
|
54
|
-
|
|
57
|
+
const workerDescriptor = new WebWorkerDescriptor({
|
|
58
|
+
esmModuleLocation: () => FileAccess.asBrowserUri('vs/editor/common/services/editorWebWorkerMain.js'),
|
|
59
|
+
esmModuleLocationBundler: () => new URL('../../common/services/editorWebWorkerMain.js?workerModule', import.meta.url),
|
|
60
|
+
label: 'editorWorkerService'
|
|
61
|
+
});
|
|
62
|
+
this._workerManager = this._register(new WorkerManager(workerDescriptor, this._modelService, this._webWorkerService));
|
|
55
63
|
this._logService = logService;
|
|
56
64
|
// register default link-provider and default completions-provider
|
|
57
65
|
this._register(languageFeaturesService.linkProvider.register({ language: '*', hasAccessToAllModels: true }, {
|
|
@@ -150,11 +158,12 @@ let EditorWorkerService = class EditorWorkerService extends Disposable {
|
|
|
150
158
|
}
|
|
151
159
|
};
|
|
152
160
|
EditorWorkerService = __decorate([
|
|
153
|
-
__param(
|
|
154
|
-
__param(
|
|
155
|
-
__param(
|
|
156
|
-
__param(
|
|
157
|
-
__param(
|
|
161
|
+
__param(0, IModelService),
|
|
162
|
+
__param(1, ITextResourceConfigurationService),
|
|
163
|
+
__param(2, ILogService),
|
|
164
|
+
__param(3, ILanguageConfigurationService),
|
|
165
|
+
__param(4, ILanguageFeaturesService),
|
|
166
|
+
__param(5, IWebWorkerService)
|
|
158
167
|
], EditorWorkerService);
|
|
159
168
|
export { EditorWorkerService };
|
|
160
169
|
class WordBasedCompletionItemProvider {
|
|
@@ -220,10 +229,11 @@ class WordBasedCompletionItemProvider {
|
|
|
220
229
|
}
|
|
221
230
|
}
|
|
222
231
|
let WorkerManager = class WorkerManager extends Disposable {
|
|
223
|
-
constructor(_workerDescriptor, modelService) {
|
|
232
|
+
constructor(_workerDescriptor, modelService, webWorkerService) {
|
|
224
233
|
super();
|
|
225
234
|
this._workerDescriptor = _workerDescriptor;
|
|
226
235
|
this._modelService = modelService;
|
|
236
|
+
this._webWorkerService = webWorkerService;
|
|
227
237
|
this._editorWorkerClient = null;
|
|
228
238
|
this._lastWorkerUsedTime = (new Date()).getTime();
|
|
229
239
|
const stopWorkerInterval = this._register(new WindowIntervalTimer());
|
|
@@ -267,13 +277,14 @@ let WorkerManager = class WorkerManager extends Disposable {
|
|
|
267
277
|
withWorker() {
|
|
268
278
|
this._lastWorkerUsedTime = (new Date()).getTime();
|
|
269
279
|
if (!this._editorWorkerClient) {
|
|
270
|
-
this._editorWorkerClient = new EditorWorkerClient(this._workerDescriptor, false, this._modelService);
|
|
280
|
+
this._editorWorkerClient = new EditorWorkerClient(this._workerDescriptor, false, this._modelService, this._webWorkerService);
|
|
271
281
|
}
|
|
272
282
|
return Promise.resolve(this._editorWorkerClient);
|
|
273
283
|
}
|
|
274
284
|
};
|
|
275
285
|
WorkerManager = __decorate([
|
|
276
|
-
__param(1, IModelService)
|
|
286
|
+
__param(1, IModelService),
|
|
287
|
+
__param(2, IWebWorkerService)
|
|
277
288
|
], WorkerManager);
|
|
278
289
|
class SynchronousWorkerClient {
|
|
279
290
|
constructor(instance) {
|
|
@@ -288,11 +299,12 @@ class SynchronousWorkerClient {
|
|
|
288
299
|
}
|
|
289
300
|
}
|
|
290
301
|
let EditorWorkerClient = class EditorWorkerClient extends Disposable {
|
|
291
|
-
constructor(_workerDescriptorOrWorker, keepIdleModels, modelService) {
|
|
302
|
+
constructor(_workerDescriptorOrWorker, keepIdleModels, modelService, webWorkerService) {
|
|
292
303
|
super();
|
|
293
304
|
this._workerDescriptorOrWorker = _workerDescriptorOrWorker;
|
|
294
305
|
this._disposed = false;
|
|
295
306
|
this._modelService = modelService;
|
|
307
|
+
this._webWorkerService = webWorkerService;
|
|
296
308
|
this._keepIdleModels = keepIdleModels;
|
|
297
309
|
this._worker = null;
|
|
298
310
|
this._modelManager = null;
|
|
@@ -304,7 +316,7 @@ let EditorWorkerClient = class EditorWorkerClient extends Disposable {
|
|
|
304
316
|
_getOrCreateWorker() {
|
|
305
317
|
if (!this._worker) {
|
|
306
318
|
try {
|
|
307
|
-
this._worker = this._register(
|
|
319
|
+
this._worker = this._register(this._webWorkerService.createWorkerClient(this._workerDescriptorOrWorker));
|
|
308
320
|
EditorWorkerHost.setChannel(this._worker, this._createEditorWorkerHost());
|
|
309
321
|
}
|
|
310
322
|
catch (err) {
|
|
@@ -360,7 +372,8 @@ let EditorWorkerClient = class EditorWorkerClient extends Disposable {
|
|
|
360
372
|
}
|
|
361
373
|
};
|
|
362
374
|
EditorWorkerClient = __decorate([
|
|
363
|
-
__param(2, IModelService)
|
|
375
|
+
__param(2, IModelService),
|
|
376
|
+
__param(3, IWebWorkerService)
|
|
364
377
|
], EditorWorkerClient);
|
|
365
378
|
export { EditorWorkerClient };
|
|
366
379
|
//# sourceMappingURL=editorWorkerService.js.map
|