monaco-editor-core 0.55.0 → 0.56.0-dev-20251121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +2 -2
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +2 -2
- package/esm/nls.messages.pt-br.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +27 -8
- package/esm/vs/base/browser/dom.js +31 -34
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/dompurify/dompurify.js +0 -1
- package/esm/vs/base/browser/keyboardEvent.js +3 -3
- package/esm/vs/base/browser/keyboardEvent.js.map +1 -1
- package/esm/vs/base/browser/markdownRenderer.js +5 -2
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/pixelRatio.js +5 -5
- package/esm/vs/base/browser/pixelRatio.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js +1 -1
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionbar.js +3 -0
- package/esm/vs/base/browser/ui/actionbar/actionbar.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +7 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js.map +1 -1
- package/esm/vs/base/browser/ui/hover/hoverWidget.css +0 -13
- package/esm/vs/base/browser/ui/inputbox/inputBox.js +7 -0
- package/esm/vs/base/browser/ui/inputbox/inputBox.js.map +1 -1
- package/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css +4 -2
- package/esm/vs/base/browser/ui/list/listView.js +7 -2
- package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBox.js +4 -0
- package/esm/vs/base/browser/ui/selectBox/selectBox.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css +12 -32
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js +8 -18
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js.map +1 -1
- package/esm/vs/base/browser/ui/toolbar/toolbar.js +41 -14
- package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js +11 -0
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +1 -0
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
- package/esm/vs/base/common/arrays.js +10 -0
- package/esm/vs/base/common/arrays.js.map +1 -1
- package/esm/vs/base/common/async.js +34 -0
- package/esm/vs/base/common/async.js.map +1 -1
- package/esm/vs/base/common/buffer.js +1 -1
- package/esm/vs/base/common/buffer.js.map +1 -1
- package/esm/vs/base/common/cancellation.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +3 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/collections.js.map +1 -1
- package/esm/vs/base/common/equals.js.map +1 -1
- package/esm/vs/base/common/event.js +32 -15
- package/esm/vs/base/common/event.js.map +1 -1
- package/esm/vs/base/common/filters.js +22 -3
- package/esm/vs/base/common/filters.js.map +1 -1
- package/esm/vs/base/common/hotReload.js +2 -2
- package/esm/vs/base/common/hotReload.js.map +1 -1
- package/esm/vs/base/common/iterator.js +1 -1
- package/esm/vs/base/common/iterator.js.map +1 -1
- package/esm/vs/base/common/keyCodes.js +7 -6
- package/esm/vs/base/common/keyCodes.js.map +1 -1
- package/esm/vs/base/common/linkedList.js.map +1 -1
- package/esm/vs/base/common/map.js.map +1 -1
- package/esm/vs/base/common/marked/marked.js +0 -1
- package/esm/vs/base/common/network.js +26 -1
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/normalization.js +19 -6
- package/esm/vs/base/common/normalization.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugLocation.js +1 -2
- package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugName.js +0 -1
- package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/esm/vs/base/common/observableInternal/index.js +4 -4
- package/esm/vs/base/common/observableInternal/index.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +38 -10
- package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/baseObservable.js +3 -3
- package/esm/vs/base/common/observableInternal/observables/baseObservable.js.map +1 -1
- package/esm/vs/base/common/observableInternal/utils/utils.js +46 -5
- package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
- package/esm/vs/base/common/path.js +1 -0
- package/esm/vs/base/common/path.js.map +1 -1
- package/esm/vs/base/common/strings.js +27 -19
- package/esm/vs/base/common/strings.js.map +1 -1
- package/esm/vs/editor/browser/config/elementSizeObserver.js +5 -5
- package/esm/vs/editor/browser/config/elementSizeObserver.js.map +1 -1
- package/esm/vs/editor/browser/config/fontMeasurements.js.map +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js +6 -0
- package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
- package/esm/vs/editor/browser/config/tabFocus.js +4 -2
- package/esm/vs/editor/browser/config/tabFocus.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +8 -0
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js +1 -2
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/observableCodeEditor.js +32 -1
- package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
- package/esm/vs/editor/browser/services/contribution.js +9 -0
- package/esm/vs/editor/browser/services/contribution.js.map +1 -0
- package/esm/vs/editor/browser/services/editorWorkerService.js +27 -14
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js +5 -1
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js.map +1 -1
- package/esm/vs/editor/browser/view/renderingContext.js +1 -1
- package/esm/vs/editor/browser/view/renderingContext.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +10 -3
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +3 -4
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +1 -1
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +4 -2
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js +1 -3
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js +2 -1
- package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +6 -18
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +0 -7
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +7 -2
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js.map +1 -1
- package/esm/vs/editor/common/commands/replaceCommand.js +2 -2
- package/esm/vs/editor/common/commands/replaceCommand.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +374 -360
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/2d/rect.js +7 -0
- package/esm/vs/editor/common/core/2d/rect.js.map +1 -1
- package/esm/vs/editor/common/core/2d/size.js +20 -0
- package/esm/vs/editor/common/core/2d/size.js.map +1 -0
- package/esm/vs/editor/common/core/editorColorRegistry.js +69 -68
- package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
- package/esm/vs/editor/common/core/ranges/offsetRange.js +9 -0
- package/esm/vs/editor/common/core/ranges/offsetRange.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorContextKeys.js +47 -47
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/services/languagesAssociations.js +6 -8
- package/esm/vs/editor/common/services/languagesAssociations.js.map +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +11 -10
- package/esm/vs/editor/common/standaloneStrings.js.map +1 -1
- package/esm/vs/editor/common/textModelEditSource.js +1 -1
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelens.js.map +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js +14 -0
- package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +17 -17
- package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/format.js +21 -6
- package/esm/vs/editor/contrib/format/browser/format.js.map +1 -1
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js +5 -10
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js +11 -6
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverUtils.js +24 -0
- package/esm/vs/editor/contrib/hover/browser/hoverUtils.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +18 -16
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +42 -37
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +3 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +54 -43
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +74 -48
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +8 -36
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js +10 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +105 -119
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +8 -36
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js +95 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +17 -9
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +415 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +253 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js +103 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js +32 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +44 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +181 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -0
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -31
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +2 -2
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +18 -13
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +12 -12
- package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +29 -29
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +4 -4
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/esm/vs/editor/editor.all.js +1 -0
- package/esm/vs/editor/editor.all.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +9 -5
- package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js +22 -2
- package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js +39 -0
- package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js.map +1 -0
- package/esm/vs/editor/standalone/browser/standaloneEditor.js +2 -1
- package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneServices.js +3 -21
- package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js +4 -4
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +7 -9
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/actions.js +2 -0
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configuration.js +5 -4
- package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationModels.js +21 -10
- package/esm/vs/platform/configuration/common/configurationModels.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurations.js.map +1 -1
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +3 -3
- package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/contextview/browser/contextViewService.js.map +1 -1
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +11 -32
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/media/quickInput.css +9 -3
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +35 -14
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js +4 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +71 -40
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +21 -8
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
- package/esm/vs/platform/telemetry/common/gdprTypings.js.map +1 -1
- package/esm/vs/platform/telemetry/common/telemetry.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/editorColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/miscColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js +12 -0
- package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js.map +1 -0
- package/esm/vs/platform/webWorker/browser/webWorkerService.js +7 -0
- package/esm/vs/platform/webWorker/browser/webWorkerService.js.map +1 -0
- package/esm/vs/{base/browser/webWorkerFactory.js → platform/webWorker/browser/webWorkerServiceImpl.js} +47 -66
- package/esm/vs/platform/webWorker/browser/webWorkerServiceImpl.js.map +1 -0
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/monaco.d.ts +9 -5
- package/package.json +2 -2
- package/version.txt +1 -1
- 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
|
@@ -77,7 +77,7 @@ export class ViewOverlayWidgets extends ViewPart {
|
|
|
77
77
|
setWidgetPosition(widget, position) {
|
|
78
78
|
const widgetData = this._widgets[widget.getId()];
|
|
79
79
|
const preference = position ? position.preference : null;
|
|
80
|
-
const stack = position?.
|
|
80
|
+
const stack = position?.stackOrdinal;
|
|
81
81
|
if (widgetData.preference === preference && widgetData.stack === stack) {
|
|
82
82
|
this._updateMaxMinWidth();
|
|
83
83
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts","vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts"],"names":[],"mappings":"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","file":"overlayWidgets.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 './overlayWidgets.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverlayWidget, IOverlayWidgetPosition, IOverlayWidgetPositionCoordinates, OverlayWidgetPositionPreference } from '../../editorBrowser.js';\nimport { PartFingerprint, PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport * as dom from '../../../../base/browser/dom.js';\n\n\ninterface IWidgetData {\n\twidget: IOverlayWidget;\n\tpreference: OverlayWidgetPositionPreference | IOverlayWidgetPositionCoordinates | null;\n\tstack?: number;\n\tdomNode: FastDomNode<HTMLElement>;\n}\n\ninterface IWidgetMap {\n\t[key: string]: IWidgetData;\n}\n\n/*\n * This view part for rendering the overlay widgets, which are\n * floating widgets positioned based on the editor's viewport,\n * such as the find widget.\n */\nexport class ViewOverlayWidgets extends ViewPart {\n\n\tprivate readonly _viewDomNode: FastDomNode<HTMLElement>;\n\tprivate _widgets: IWidgetMap;\n\tprivate _viewDomNodeRect: dom.IDomNodePagePosition;\n\tprivate readonly _domNode: FastDomNode<HTMLElement>;\n\tpublic readonly overflowingOverlayWidgetsDomNode: FastDomNode<HTMLElement>;\n\tprivate _verticalScrollbarWidth: number;\n\tprivate _minimapWidth: number;\n\tprivate _horizontalScrollbarHeight: number;\n\tprivate _editorHeight: number;\n\tprivate _editorWidth: number;\n\n\tconstructor(context: ViewContext, viewDomNode: FastDomNode<HTMLElement>) {\n\t\tsuper(context);\n\t\tthis._viewDomNode = viewDomNode;\n\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._widgets = {};\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\tthis._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n\n\t\tthis._domNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this._domNode, PartFingerprint.OverlayWidgets);\n\t\tthis._domNode.setClassName('overlayWidgets');\n\n\t\tthis.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this.overflowingOverlayWidgetsDomNode, PartFingerprint.OverflowingOverlayWidgets);\n\t\tthis.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis._widgets = {};\n\t}\n\n\tpublic getDomNode(): FastDomNode<HTMLElement> {\n\t\treturn this._domNode;\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tprivate _widgetCanOverflow(widget: IOverlayWidget): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst allowOverflow = options.get(EditorOption.allowOverflow);\n\t\treturn (widget.allowEditorOverflow || false) && allowOverflow;\n\t}\n\n\tpublic addWidget(widget: IOverlayWidget): void {\n\t\tconst domNode = createFastDomNode(widget.getDomNode());\n\n\t\tthis._widgets[widget.getId()] = {\n\t\t\twidget: widget,\n\t\t\tpreference: null,\n\t\t\tdomNode: domNode\n\t\t};\n\n\t\t// This is sync because a widget wants to be in the dom\n\t\tdomNode.setPosition('absolute');\n\t\tdomNode.setAttribute('widgetId', widget.getId());\n\n\t\tif (this._widgetCanOverflow(widget)) {\n\t\t\tthis.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n\t\t} else {\n\t\t\tthis._domNode.appendChild(domNode);\n\t\t}\n\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\t}\n\n\tpublic setWidgetPosition(widget: IOverlayWidget, position: IOverlayWidgetPosition | null): boolean {\n\t\tconst widgetData = this._widgets[widget.getId()];\n\t\tconst preference = position ? position.preference : null;\n\t\tconst stack = position?.stackOridinal;\n\t\tif (widgetData.preference === preference && widgetData.stack === stack) {\n\t\t\tthis._updateMaxMinWidth();\n\t\t\treturn false;\n\t\t}\n\n\t\twidgetData.preference = preference;\n\t\twidgetData.stack = stack;\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\n\t\treturn true;\n\t}\n\n\tpublic removeWidget(widget: IOverlayWidget): void {\n\t\tconst widgetId = widget.getId();\n\t\tif (this._widgets.hasOwnProperty(widgetId)) {\n\t\t\tconst widgetData = this._widgets[widgetId];\n\t\t\tconst domNode = widgetData.domNode.domNode;\n\t\t\tdelete this._widgets[widgetId];\n\n\t\t\tdomNode.remove();\n\t\t\tthis.setShouldRender();\n\t\t\tthis._updateMaxMinWidth();\n\t\t}\n\t}\n\n\tprivate _updateMaxMinWidth(): void {\n\t\tlet maxMinWidth = 0;\n\t\tconst keys = Object.keys(this._widgets);\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tconst widget = this._widgets[widgetId];\n\t\t\tconst widgetMinWidthInPx = widget.widget.getMinContentWidthInPx?.();\n\t\t\tif (typeof widgetMinWidthInPx !== 'undefined') {\n\t\t\t\tmaxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n\t\t\t}\n\t\t}\n\t\tthis._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n\t}\n\n\tprivate _renderWidget(widgetData: IWidgetData, stackCoordinates: number[]): void {\n\t\tconst domNode = widgetData.domNode;\n\n\t\tif (widgetData.preference === null) {\n\t\t\tdomNode.setTop('');\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxRight = (2 * this._verticalScrollbarWidth) + this._minimapWidth;\n\t\tif (widgetData.preference === OverlayWidgetPositionPreference.TOP_RIGHT_CORNER || widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\tif (widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\t\tconst widgetHeight = domNode.domNode.clientHeight;\n\t\t\t\tdomNode.setTop((this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight));\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[widgetData.preference]);\n\t\t\t\tstackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n\t\t\t} else {\n\t\t\t\tdomNode.setRight(maxRight);\n\t\t\t}\n\t\t} else if (widgetData.preference === OverlayWidgetPositionPreference.TOP_CENTER) {\n\t\t\tdomNode.domNode.style.right = '50%';\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER]);\n\t\t\t\tstackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER] += domNode.domNode.clientHeight;\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\t\t} else {\n\t\t\tconst { top, left } = widgetData.preference;\n\t\t\tconst fixedOverflowWidgets = this._context.configuration.options.get(EditorOption.fixedOverflowWidgets);\n\t\t\tif (fixedOverflowWidgets && this._widgetCanOverflow(widgetData.widget)) {\n\t\t\t\t// top, left are computed relative to the editor and we need them relative to the page\n\t\t\t\tconst editorBoundingBox = this._viewDomNodeRect;\n\t\t\t\tdomNode.setTop(top + editorBoundingBox.top);\n\t\t\t\tdomNode.setLeft(left + editorBoundingBox.left);\n\t\t\t\tdomNode.setPosition('fixed');\n\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(top);\n\t\t\t\tdomNode.setLeft(left);\n\t\t\t\tdomNode.setPosition('absolute');\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\tthis._viewDomNodeRect = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\t\tthis._domNode.setWidth(this._editorWidth);\n\n\t\tconst keys = Object.keys(this._widgets);\n\t\tconst stackCoordinates = Array.from({ length: OverlayWidgetPositionPreference.TOP_CENTER + 1 }, () => 0);\n\t\tkeys.sort((a, b) => (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tthis._renderWidget(this._widgets[widgetId], stackCoordinates);\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport './overlayWidgets.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverlayWidget, IOverlayWidgetPosition, IOverlayWidgetPositionCoordinates, OverlayWidgetPositionPreference } from '../../editorBrowser.js';\nimport { PartFingerprint, PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport * as dom from '../../../../base/browser/dom.js';\n\n\ninterface IWidgetData {\n\twidget: IOverlayWidget;\n\tpreference: OverlayWidgetPositionPreference | IOverlayWidgetPositionCoordinates | null;\n\tstack?: number;\n\tdomNode: FastDomNode<HTMLElement>;\n}\n\ninterface IWidgetMap {\n\t[key: string]: IWidgetData;\n}\n\n/*\n * This view part for rendering the overlay widgets, which are\n * floating widgets positioned based on the editor's viewport,\n * such as the find widget.\n */\nexport class ViewOverlayWidgets extends ViewPart {\n\n\tprivate readonly _viewDomNode: FastDomNode<HTMLElement>;\n\tprivate _widgets: IWidgetMap;\n\tprivate _viewDomNodeRect: dom.IDomNodePagePosition;\n\tprivate readonly _domNode: FastDomNode<HTMLElement>;\n\tpublic readonly overflowingOverlayWidgetsDomNode: FastDomNode<HTMLElement>;\n\tprivate _verticalScrollbarWidth: number;\n\tprivate _minimapWidth: number;\n\tprivate _horizontalScrollbarHeight: number;\n\tprivate _editorHeight: number;\n\tprivate _editorWidth: number;\n\n\tconstructor(context: ViewContext, viewDomNode: FastDomNode<HTMLElement>) {\n\t\tsuper(context);\n\t\tthis._viewDomNode = viewDomNode;\n\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._widgets = {};\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\tthis._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n\n\t\tthis._domNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this._domNode, PartFingerprint.OverlayWidgets);\n\t\tthis._domNode.setClassName('overlayWidgets');\n\n\t\tthis.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this.overflowingOverlayWidgetsDomNode, PartFingerprint.OverflowingOverlayWidgets);\n\t\tthis.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis._widgets = {};\n\t}\n\n\tpublic getDomNode(): FastDomNode<HTMLElement> {\n\t\treturn this._domNode;\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tprivate _widgetCanOverflow(widget: IOverlayWidget): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst allowOverflow = options.get(EditorOption.allowOverflow);\n\t\treturn (widget.allowEditorOverflow || false) && allowOverflow;\n\t}\n\n\tpublic addWidget(widget: IOverlayWidget): void {\n\t\tconst domNode = createFastDomNode(widget.getDomNode());\n\n\t\tthis._widgets[widget.getId()] = {\n\t\t\twidget: widget,\n\t\t\tpreference: null,\n\t\t\tdomNode: domNode\n\t\t};\n\n\t\t// This is sync because a widget wants to be in the dom\n\t\tdomNode.setPosition('absolute');\n\t\tdomNode.setAttribute('widgetId', widget.getId());\n\n\t\tif (this._widgetCanOverflow(widget)) {\n\t\t\tthis.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n\t\t} else {\n\t\t\tthis._domNode.appendChild(domNode);\n\t\t}\n\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\t}\n\n\tpublic setWidgetPosition(widget: IOverlayWidget, position: IOverlayWidgetPosition | null): boolean {\n\t\tconst widgetData = this._widgets[widget.getId()];\n\t\tconst preference = position ? position.preference : null;\n\t\tconst stack = position?.stackOridinal;\n\t\tif (widgetData.preference === preference && widgetData.stack === stack) {\n\t\t\tthis._updateMaxMinWidth();\n\t\t\treturn false;\n\t\t}\n\n\t\twidgetData.preference = preference;\n\t\twidgetData.stack = stack;\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\n\t\treturn true;\n\t}\n\n\tpublic removeWidget(widget: IOverlayWidget): void {\n\t\tconst widgetId = widget.getId();\n\t\tif (this._widgets.hasOwnProperty(widgetId)) {\n\t\t\tconst widgetData = this._widgets[widgetId];\n\t\t\tconst domNode = widgetData.domNode.domNode;\n\t\t\tdelete this._widgets[widgetId];\n\n\t\t\tdomNode.remove();\n\t\t\tthis.setShouldRender();\n\t\t\tthis._updateMaxMinWidth();\n\t\t}\n\t}\n\n\tprivate _updateMaxMinWidth(): void {\n\t\tlet maxMinWidth = 0;\n\t\tconst keys = Object.keys(this._widgets);\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tconst widget = this._widgets[widgetId];\n\t\t\tconst widgetMinWidthInPx = widget.widget.getMinContentWidthInPx?.();\n\t\t\tif (typeof widgetMinWidthInPx !== 'undefined') {\n\t\t\t\tmaxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n\t\t\t}\n\t\t}\n\t\tthis._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n\t}\n\n\tprivate _renderWidget(widgetData: IWidgetData, stackCoordinates: number[]): void {\n\t\tconst domNode = widgetData.domNode;\n\n\t\tif (widgetData.preference === null) {\n\t\t\tdomNode.setTop('');\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxRight = (2 * this._verticalScrollbarWidth) + this._minimapWidth;\n\t\tif (widgetData.preference === OverlayWidgetPositionPreference.TOP_RIGHT_CORNER || widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\tif (widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\t\tconst widgetHeight = domNode.domNode.clientHeight;\n\t\t\t\tdomNode.setTop((this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight));\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[widgetData.preference]);\n\t\t\t\tstackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n\t\t\t} else {\n\t\t\t\tdomNode.setRight(maxRight);\n\t\t\t}\n\t\t} else if (widgetData.preference === OverlayWidgetPositionPreference.TOP_CENTER) {\n\t\t\tdomNode.domNode.style.right = '50%';\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER]);\n\t\t\t\tstackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER] += domNode.domNode.clientHeight;\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\t\t} else {\n\t\t\tconst { top, left } = widgetData.preference;\n\t\t\tconst fixedOverflowWidgets = this._context.configuration.options.get(EditorOption.fixedOverflowWidgets);\n\t\t\tif (fixedOverflowWidgets && this._widgetCanOverflow(widgetData.widget)) {\n\t\t\t\t// top, left are computed relative to the editor and we need them relative to the page\n\t\t\t\tconst editorBoundingBox = this._viewDomNodeRect;\n\t\t\t\tdomNode.setTop(top + editorBoundingBox.top);\n\t\t\t\tdomNode.setLeft(left + editorBoundingBox.left);\n\t\t\t\tdomNode.setPosition('fixed');\n\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(top);\n\t\t\t\tdomNode.setLeft(left);\n\t\t\t\tdomNode.setPosition('absolute');\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\tthis._viewDomNodeRect = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\t\tthis._domNode.setWidth(this._editorWidth);\n\n\t\tconst keys = Object.keys(this._widgets);\n\t\tconst stackCoordinates = Array.from({ length: OverlayWidgetPositionPreference.TOP_CENTER + 1 }, () => 0);\n\t\tkeys.sort((a, b) => (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tthis._renderWidget(this._widgets[widgetId], stackCoordinates);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts","vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts"],"names":[],"mappings":"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","file":"overlayWidgets.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 './overlayWidgets.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverlayWidget, IOverlayWidgetPosition, IOverlayWidgetPositionCoordinates, OverlayWidgetPositionPreference } from '../../editorBrowser.js';\nimport { PartFingerprint, PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport * as dom from '../../../../base/browser/dom.js';\n\n\ninterface IWidgetData {\n\twidget: IOverlayWidget;\n\tpreference: OverlayWidgetPositionPreference | IOverlayWidgetPositionCoordinates | null;\n\tstack?: number;\n\tdomNode: FastDomNode<HTMLElement>;\n}\n\ninterface IWidgetMap {\n\t[key: string]: IWidgetData;\n}\n\n/*\n * This view part for rendering the overlay widgets, which are\n * floating widgets positioned based on the editor's viewport,\n * such as the find widget.\n */\nexport class ViewOverlayWidgets extends ViewPart {\n\n\tprivate readonly _viewDomNode: FastDomNode<HTMLElement>;\n\tprivate _widgets: IWidgetMap;\n\tprivate _viewDomNodeRect: dom.IDomNodePagePosition;\n\tprivate readonly _domNode: FastDomNode<HTMLElement>;\n\tpublic readonly overflowingOverlayWidgetsDomNode: FastDomNode<HTMLElement>;\n\tprivate _verticalScrollbarWidth: number;\n\tprivate _minimapWidth: number;\n\tprivate _horizontalScrollbarHeight: number;\n\tprivate _editorHeight: number;\n\tprivate _editorWidth: number;\n\n\tconstructor(context: ViewContext, viewDomNode: FastDomNode<HTMLElement>) {\n\t\tsuper(context);\n\t\tthis._viewDomNode = viewDomNode;\n\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._widgets = {};\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\tthis._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n\n\t\tthis._domNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this._domNode, PartFingerprint.OverlayWidgets);\n\t\tthis._domNode.setClassName('overlayWidgets');\n\n\t\tthis.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this.overflowingOverlayWidgetsDomNode, PartFingerprint.OverflowingOverlayWidgets);\n\t\tthis.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis._widgets = {};\n\t}\n\n\tpublic getDomNode(): FastDomNode<HTMLElement> {\n\t\treturn this._domNode;\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tprivate _widgetCanOverflow(widget: IOverlayWidget): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst allowOverflow = options.get(EditorOption.allowOverflow);\n\t\treturn (widget.allowEditorOverflow || false) && allowOverflow;\n\t}\n\n\tpublic addWidget(widget: IOverlayWidget): void {\n\t\tconst domNode = createFastDomNode(widget.getDomNode());\n\n\t\tthis._widgets[widget.getId()] = {\n\t\t\twidget: widget,\n\t\t\tpreference: null,\n\t\t\tdomNode: domNode\n\t\t};\n\n\t\t// This is sync because a widget wants to be in the dom\n\t\tdomNode.setPosition('absolute');\n\t\tdomNode.setAttribute('widgetId', widget.getId());\n\n\t\tif (this._widgetCanOverflow(widget)) {\n\t\t\tthis.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n\t\t} else {\n\t\t\tthis._domNode.appendChild(domNode);\n\t\t}\n\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\t}\n\n\tpublic setWidgetPosition(widget: IOverlayWidget, position: IOverlayWidgetPosition | null): boolean {\n\t\tconst widgetData = this._widgets[widget.getId()];\n\t\tconst preference = position ? position.preference : null;\n\t\tconst stack = position?.stackOrdinal;\n\t\tif (widgetData.preference === preference && widgetData.stack === stack) {\n\t\t\tthis._updateMaxMinWidth();\n\t\t\treturn false;\n\t\t}\n\n\t\twidgetData.preference = preference;\n\t\twidgetData.stack = stack;\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\n\t\treturn true;\n\t}\n\n\tpublic removeWidget(widget: IOverlayWidget): void {\n\t\tconst widgetId = widget.getId();\n\t\tif (this._widgets.hasOwnProperty(widgetId)) {\n\t\t\tconst widgetData = this._widgets[widgetId];\n\t\t\tconst domNode = widgetData.domNode.domNode;\n\t\t\tdelete this._widgets[widgetId];\n\n\t\t\tdomNode.remove();\n\t\t\tthis.setShouldRender();\n\t\t\tthis._updateMaxMinWidth();\n\t\t}\n\t}\n\n\tprivate _updateMaxMinWidth(): void {\n\t\tlet maxMinWidth = 0;\n\t\tconst keys = Object.keys(this._widgets);\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tconst widget = this._widgets[widgetId];\n\t\t\tconst widgetMinWidthInPx = widget.widget.getMinContentWidthInPx?.();\n\t\t\tif (typeof widgetMinWidthInPx !== 'undefined') {\n\t\t\t\tmaxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n\t\t\t}\n\t\t}\n\t\tthis._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n\t}\n\n\tprivate _renderWidget(widgetData: IWidgetData, stackCoordinates: number[]): void {\n\t\tconst domNode = widgetData.domNode;\n\n\t\tif (widgetData.preference === null) {\n\t\t\tdomNode.setTop('');\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxRight = (2 * this._verticalScrollbarWidth) + this._minimapWidth;\n\t\tif (widgetData.preference === OverlayWidgetPositionPreference.TOP_RIGHT_CORNER || widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\tif (widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\t\tconst widgetHeight = domNode.domNode.clientHeight;\n\t\t\t\tdomNode.setTop((this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight));\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[widgetData.preference]);\n\t\t\t\tstackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n\t\t\t} else {\n\t\t\t\tdomNode.setRight(maxRight);\n\t\t\t}\n\t\t} else if (widgetData.preference === OverlayWidgetPositionPreference.TOP_CENTER) {\n\t\t\tdomNode.domNode.style.right = '50%';\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER]);\n\t\t\t\tstackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER] += domNode.domNode.clientHeight;\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\t\t} else {\n\t\t\tconst { top, left } = widgetData.preference;\n\t\t\tconst fixedOverflowWidgets = this._context.configuration.options.get(EditorOption.fixedOverflowWidgets);\n\t\t\tif (fixedOverflowWidgets && this._widgetCanOverflow(widgetData.widget)) {\n\t\t\t\t// top, left are computed relative to the editor and we need them relative to the page\n\t\t\t\tconst editorBoundingBox = this._viewDomNodeRect;\n\t\t\t\tdomNode.setTop(top + editorBoundingBox.top);\n\t\t\t\tdomNode.setLeft(left + editorBoundingBox.left);\n\t\t\t\tdomNode.setPosition('fixed');\n\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(top);\n\t\t\t\tdomNode.setLeft(left);\n\t\t\t\tdomNode.setPosition('absolute');\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\tthis._viewDomNodeRect = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\t\tthis._domNode.setWidth(this._editorWidth);\n\n\t\tconst keys = Object.keys(this._widgets);\n\t\tconst stackCoordinates = Array.from({ length: OverlayWidgetPositionPreference.TOP_CENTER + 1 }, () => 0);\n\t\tkeys.sort((a, b) => (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tthis._renderWidget(this._widgets[widgetId], stackCoordinates);\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport './overlayWidgets.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverlayWidget, IOverlayWidgetPosition, IOverlayWidgetPositionCoordinates, OverlayWidgetPositionPreference } from '../../editorBrowser.js';\nimport { PartFingerprint, PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport * as dom from '../../../../base/browser/dom.js';\n\n\ninterface IWidgetData {\n\twidget: IOverlayWidget;\n\tpreference: OverlayWidgetPositionPreference | IOverlayWidgetPositionCoordinates | null;\n\tstack?: number;\n\tdomNode: FastDomNode<HTMLElement>;\n}\n\ninterface IWidgetMap {\n\t[key: string]: IWidgetData;\n}\n\n/*\n * This view part for rendering the overlay widgets, which are\n * floating widgets positioned based on the editor's viewport,\n * such as the find widget.\n */\nexport class ViewOverlayWidgets extends ViewPart {\n\n\tprivate readonly _viewDomNode: FastDomNode<HTMLElement>;\n\tprivate _widgets: IWidgetMap;\n\tprivate _viewDomNodeRect: dom.IDomNodePagePosition;\n\tprivate readonly _domNode: FastDomNode<HTMLElement>;\n\tpublic readonly overflowingOverlayWidgetsDomNode: FastDomNode<HTMLElement>;\n\tprivate _verticalScrollbarWidth: number;\n\tprivate _minimapWidth: number;\n\tprivate _horizontalScrollbarHeight: number;\n\tprivate _editorHeight: number;\n\tprivate _editorWidth: number;\n\n\tconstructor(context: ViewContext, viewDomNode: FastDomNode<HTMLElement>) {\n\t\tsuper(context);\n\t\tthis._viewDomNode = viewDomNode;\n\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._widgets = {};\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\tthis._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n\n\t\tthis._domNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this._domNode, PartFingerprint.OverlayWidgets);\n\t\tthis._domNode.setClassName('overlayWidgets');\n\n\t\tthis.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));\n\t\tPartFingerprints.write(this.overflowingOverlayWidgetsDomNode, PartFingerprint.OverflowingOverlayWidgets);\n\t\tthis.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis._widgets = {};\n\t}\n\n\tpublic getDomNode(): FastDomNode<HTMLElement> {\n\t\treturn this._domNode;\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tthis._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n\t\tthis._minimapWidth = layoutInfo.minimap.minimapWidth;\n\t\tthis._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n\t\tthis._editorHeight = layoutInfo.height;\n\t\tthis._editorWidth = layoutInfo.width;\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tprivate _widgetCanOverflow(widget: IOverlayWidget): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst allowOverflow = options.get(EditorOption.allowOverflow);\n\t\treturn (widget.allowEditorOverflow || false) && allowOverflow;\n\t}\n\n\tpublic addWidget(widget: IOverlayWidget): void {\n\t\tconst domNode = createFastDomNode(widget.getDomNode());\n\n\t\tthis._widgets[widget.getId()] = {\n\t\t\twidget: widget,\n\t\t\tpreference: null,\n\t\t\tdomNode: domNode\n\t\t};\n\n\t\t// This is sync because a widget wants to be in the dom\n\t\tdomNode.setPosition('absolute');\n\t\tdomNode.setAttribute('widgetId', widget.getId());\n\n\t\tif (this._widgetCanOverflow(widget)) {\n\t\t\tthis.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n\t\t} else {\n\t\t\tthis._domNode.appendChild(domNode);\n\t\t}\n\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\t}\n\n\tpublic setWidgetPosition(widget: IOverlayWidget, position: IOverlayWidgetPosition | null): boolean {\n\t\tconst widgetData = this._widgets[widget.getId()];\n\t\tconst preference = position ? position.preference : null;\n\t\tconst stack = position?.stackOrdinal;\n\t\tif (widgetData.preference === preference && widgetData.stack === stack) {\n\t\t\tthis._updateMaxMinWidth();\n\t\t\treturn false;\n\t\t}\n\n\t\twidgetData.preference = preference;\n\t\twidgetData.stack = stack;\n\t\tthis.setShouldRender();\n\t\tthis._updateMaxMinWidth();\n\n\t\treturn true;\n\t}\n\n\tpublic removeWidget(widget: IOverlayWidget): void {\n\t\tconst widgetId = widget.getId();\n\t\tif (this._widgets.hasOwnProperty(widgetId)) {\n\t\t\tconst widgetData = this._widgets[widgetId];\n\t\t\tconst domNode = widgetData.domNode.domNode;\n\t\t\tdelete this._widgets[widgetId];\n\n\t\t\tdomNode.remove();\n\t\t\tthis.setShouldRender();\n\t\t\tthis._updateMaxMinWidth();\n\t\t}\n\t}\n\n\tprivate _updateMaxMinWidth(): void {\n\t\tlet maxMinWidth = 0;\n\t\tconst keys = Object.keys(this._widgets);\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tconst widget = this._widgets[widgetId];\n\t\t\tconst widgetMinWidthInPx = widget.widget.getMinContentWidthInPx?.();\n\t\t\tif (typeof widgetMinWidthInPx !== 'undefined') {\n\t\t\t\tmaxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n\t\t\t}\n\t\t}\n\t\tthis._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n\t}\n\n\tprivate _renderWidget(widgetData: IWidgetData, stackCoordinates: number[]): void {\n\t\tconst domNode = widgetData.domNode;\n\n\t\tif (widgetData.preference === null) {\n\t\t\tdomNode.setTop('');\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxRight = (2 * this._verticalScrollbarWidth) + this._minimapWidth;\n\t\tif (widgetData.preference === OverlayWidgetPositionPreference.TOP_RIGHT_CORNER || widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\tif (widgetData.preference === OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {\n\t\t\t\tconst widgetHeight = domNode.domNode.clientHeight;\n\t\t\t\tdomNode.setTop((this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight));\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[widgetData.preference]);\n\t\t\t\tstackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n\t\t\t} else {\n\t\t\t\tdomNode.setRight(maxRight);\n\t\t\t}\n\t\t} else if (widgetData.preference === OverlayWidgetPositionPreference.TOP_CENTER) {\n\t\t\tdomNode.domNode.style.right = '50%';\n\t\t\tif (widgetData.stack !== undefined) {\n\t\t\t\tdomNode.setTop(stackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER]);\n\t\t\t\tstackCoordinates[OverlayWidgetPositionPreference.TOP_CENTER] += domNode.domNode.clientHeight;\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(0);\n\t\t\t}\n\t\t} else {\n\t\t\tconst { top, left } = widgetData.preference;\n\t\t\tconst fixedOverflowWidgets = this._context.configuration.options.get(EditorOption.fixedOverflowWidgets);\n\t\t\tif (fixedOverflowWidgets && this._widgetCanOverflow(widgetData.widget)) {\n\t\t\t\t// top, left are computed relative to the editor and we need them relative to the page\n\t\t\t\tconst editorBoundingBox = this._viewDomNodeRect;\n\t\t\t\tdomNode.setTop(top + editorBoundingBox.top);\n\t\t\t\tdomNode.setLeft(left + editorBoundingBox.left);\n\t\t\t\tdomNode.setPosition('fixed');\n\n\t\t\t} else {\n\t\t\t\tdomNode.setTop(top);\n\t\t\t\tdomNode.setLeft(left);\n\t\t\t\tdomNode.setPosition('absolute');\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\tthis._viewDomNodeRect = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\t\tthis._domNode.setWidth(this._editorWidth);\n\n\t\tconst keys = Object.keys(this._widgets);\n\t\tconst stackCoordinates = Array.from({ length: OverlayWidgetPositionPreference.TOP_CENTER + 1 }, () => 0);\n\t\tkeys.sort((a, b) => (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n\n\t\tfor (let i = 0, len = keys.length; i < len; i++) {\n\t\t\tconst widgetId = keys[i];\n\t\t\tthis._renderWidget(this._widgets[widgetId], stackCoordinates);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -101,7 +101,7 @@ export class OverviewRuler extends ViewEventHandler {
|
|
|
101
101
|
return true;
|
|
102
102
|
}
|
|
103
103
|
_renderOneLane(ctx, colorZones, id2Color, width) {
|
|
104
|
-
let currentColorId = 0;
|
|
104
|
+
let currentColorId = 0; // will never match a real color id which is > 0
|
|
105
105
|
let currentFrom = 0;
|
|
106
106
|
let currentTo = 0;
|
|
107
107
|
for (const zone of colorZones) {
|
|
@@ -109,7 +109,9 @@ export class OverviewRuler extends ViewEventHandler {
|
|
|
109
109
|
const zoneFrom = zone.from;
|
|
110
110
|
const zoneTo = zone.to;
|
|
111
111
|
if (zoneColorId !== currentColorId) {
|
|
112
|
-
|
|
112
|
+
if (currentColorId !== 0) {
|
|
113
|
+
ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);
|
|
114
|
+
}
|
|
113
115
|
currentColorId = zoneColorId;
|
|
114
116
|
ctx.fillStyle = id2Color[currentColorId];
|
|
115
117
|
currentFrom = zoneFrom;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts","vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts"],"names":[],"mappings":"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","file":"overviewRuler.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 { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverviewRuler } from '../../editorBrowser.js';\nimport { OverviewRulerPosition, EditorOption } from '../../../common/config/editorOptions.js';\nimport { ColorZone, OverviewRulerZone, OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { ViewEventHandler } from '../../../common/viewEventHandler.js';\n\n/**\n * The overview ruler appears underneath the editor scroll bar and shows things\n * like the cursor, various decorations, etc.\n */\nexport class OverviewRuler extends ViewEventHandler implements IOverviewRuler {\n\n\tprivate readonly _context: ViewContext;\n\tprivate readonly _domNode: FastDomNode<HTMLCanvasElement>;\n\tprivate readonly _zoneManager: OverviewZoneManager;\n\n\tconstructor(context: ViewContext, cssClassName: string) {\n\t\tsuper();\n\t\tthis._context = context;\n\t\tconst options = this._context.configuration.options;\n\n\t\tthis._domNode = createFastDomNode(document.createElement('canvas'));\n\t\tthis._domNode.setClassName(cssClassName);\n\t\tthis._domNode.setPosition('absolute');\n\t\tthis._domNode.setLayerHinting(true);\n\t\tthis._domNode.setContain('strict');\n\n\t\tthis._zoneManager = new OverviewZoneManager((lineNumber: number) => this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n\t\tthis._zoneManager.setDOMWidth(0);\n\t\tthis._zoneManager.setDOMHeight(0);\n\t\tthis._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\n\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\n\t\tthis._context.addEventHandler(this);\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._context.removeEventHandler(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\n\t\tif (e.hasChanged(EditorOption.lineHeight)) {\n\t\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\t\t\tthis._render();\n\t\t}\n\n\t\tif (e.hasChanged(EditorOption.pixelRatio)) {\n\t\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\t\t\tthis._render();\n\t\t}\n\n\t\treturn true;\n\t}\n\tpublic override onFlushed(e: viewEvents.ViewFlushedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\tif (e.scrollHeightChanged) {\n\t\t\tthis._zoneManager.setOuterHeight(e.scrollHeight);\n\t\t\tthis._render();\n\t\t}\n\t\treturn true;\n\t}\n\tpublic override onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode.domNode;\n\t}\n\n\tpublic setLayout(position: OverviewRulerPosition): void {\n\t\tthis._domNode.setTop(position.top);\n\t\tthis._domNode.setRight(position.right);\n\n\t\tlet hasChanged = false;\n\t\thasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n\t\thasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n\n\t\tif (hasChanged) {\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\n\t\t\tthis._render();\n\t\t}\n\t}\n\n\tpublic setZones(zones: OverviewRulerZone[]): void {\n\t\tthis._zoneManager.setZones(zones);\n\t\tthis._render();\n\t}\n\n\tprivate _render(): boolean {\n\t\tif (this._zoneManager.getOuterHeight() === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst width = this._zoneManager.getCanvasWidth();\n\t\tconst height = this._zoneManager.getCanvasHeight();\n\n\t\tconst colorZones = this._zoneManager.resolveColorZones();\n\t\tconst id2Color = this._zoneManager.getId2Color();\n\n\t\tconst ctx = this._domNode.domNode.getContext('2d')!;\n\t\tctx.clearRect(0, 0, width, height);\n\t\tif (colorZones.length > 0) {\n\t\t\tthis._renderOneLane(ctx, colorZones, id2Color, width);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _renderOneLane(ctx: CanvasRenderingContext2D, colorZones: ColorZone[], id2Color: string[], width: number): void {\n\n\t\tlet currentColorId = 0;\n\t\tlet currentFrom = 0;\n\t\tlet currentTo = 0;\n\n\t\tfor (const zone of colorZones) {\n\n\t\t\tconst zoneColorId = zone.colorId;\n\t\t\tconst zoneFrom = zone.from;\n\t\t\tconst zoneTo = zone.to;\n\n\t\t\tif (zoneColorId !== currentColorId) {\n\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\n\t\t\t\tcurrentColorId = zoneColorId;\n\t\t\t\tctx.fillStyle = id2Color[currentColorId];\n\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\tcurrentTo = zoneTo;\n\t\t\t} else {\n\t\t\t\tif (currentTo >= zoneFrom) {\n\t\t\t\t\tcurrentTo = Math.max(currentTo, zoneTo);\n\t\t\t\t} else {\n\t\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\t\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\t\tcurrentTo = zoneTo;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverviewRuler } from '../../editorBrowser.js';\nimport { OverviewRulerPosition, EditorOption } from '../../../common/config/editorOptions.js';\nimport { ColorZone, OverviewRulerZone, OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { ViewEventHandler } from '../../../common/viewEventHandler.js';\n\n/**\n * The overview ruler appears underneath the editor scroll bar and shows things\n * like the cursor, various decorations, etc.\n */\nexport class OverviewRuler extends ViewEventHandler implements IOverviewRuler {\n\n\tprivate readonly _context: ViewContext;\n\tprivate readonly _domNode: FastDomNode<HTMLCanvasElement>;\n\tprivate readonly _zoneManager: OverviewZoneManager;\n\n\tconstructor(context: ViewContext, cssClassName: string) {\n\t\tsuper();\n\t\tthis._context = context;\n\t\tconst options = this._context.configuration.options;\n\n\t\tthis._domNode = createFastDomNode(document.createElement('canvas'));\n\t\tthis._domNode.setClassName(cssClassName);\n\t\tthis._domNode.setPosition('absolute');\n\t\tthis._domNode.setLayerHinting(true);\n\t\tthis._domNode.setContain('strict');\n\n\t\tthis._zoneManager = new OverviewZoneManager((lineNumber: number) => this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n\t\tthis._zoneManager.setDOMWidth(0);\n\t\tthis._zoneManager.setDOMHeight(0);\n\t\tthis._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\n\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\n\t\tthis._context.addEventHandler(this);\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._context.removeEventHandler(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\n\t\tif (e.hasChanged(EditorOption.lineHeight)) {\n\t\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\t\t\tthis._render();\n\t\t}\n\n\t\tif (e.hasChanged(EditorOption.pixelRatio)) {\n\t\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\t\t\tthis._render();\n\t\t}\n\n\t\treturn true;\n\t}\n\tpublic override onFlushed(e: viewEvents.ViewFlushedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\tif (e.scrollHeightChanged) {\n\t\t\tthis._zoneManager.setOuterHeight(e.scrollHeight);\n\t\t\tthis._render();\n\t\t}\n\t\treturn true;\n\t}\n\tpublic override onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode.domNode;\n\t}\n\n\tpublic setLayout(position: OverviewRulerPosition): void {\n\t\tthis._domNode.setTop(position.top);\n\t\tthis._domNode.setRight(position.right);\n\n\t\tlet hasChanged = false;\n\t\thasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n\t\thasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n\n\t\tif (hasChanged) {\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\n\t\t\tthis._render();\n\t\t}\n\t}\n\n\tpublic setZones(zones: OverviewRulerZone[]): void {\n\t\tthis._zoneManager.setZones(zones);\n\t\tthis._render();\n\t}\n\n\tprivate _render(): boolean {\n\t\tif (this._zoneManager.getOuterHeight() === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst width = this._zoneManager.getCanvasWidth();\n\t\tconst height = this._zoneManager.getCanvasHeight();\n\n\t\tconst colorZones = this._zoneManager.resolveColorZones();\n\t\tconst id2Color = this._zoneManager.getId2Color();\n\n\t\tconst ctx = this._domNode.domNode.getContext('2d')!;\n\t\tctx.clearRect(0, 0, width, height);\n\t\tif (colorZones.length > 0) {\n\t\t\tthis._renderOneLane(ctx, colorZones, id2Color, width);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _renderOneLane(ctx: CanvasRenderingContext2D, colorZones: ColorZone[], id2Color: string[], width: number): void {\n\n\t\tlet currentColorId = 0;\n\t\tlet currentFrom = 0;\n\t\tlet currentTo = 0;\n\n\t\tfor (const zone of colorZones) {\n\n\t\t\tconst zoneColorId = zone.colorId;\n\t\t\tconst zoneFrom = zone.from;\n\t\t\tconst zoneTo = zone.to;\n\n\t\t\tif (zoneColorId !== currentColorId) {\n\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\n\t\t\t\tcurrentColorId = zoneColorId;\n\t\t\t\tctx.fillStyle = id2Color[currentColorId];\n\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\tcurrentTo = zoneTo;\n\t\t\t} else {\n\t\t\t\tif (currentTo >= zoneFrom) {\n\t\t\t\t\tcurrentTo = Math.max(currentTo, zoneTo);\n\t\t\t\t} else {\n\t\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\t\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\t\tcurrentTo = zoneTo;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts","vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts"],"names":[],"mappings":"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","file":"overviewRuler.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 { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverviewRuler } from '../../editorBrowser.js';\nimport { OverviewRulerPosition, EditorOption } from '../../../common/config/editorOptions.js';\nimport { ColorZone, OverviewRulerZone, OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { ViewEventHandler } from '../../../common/viewEventHandler.js';\n\n/**\n * The overview ruler appears underneath the editor scroll bar and shows things\n * like the cursor, various decorations, etc.\n */\nexport class OverviewRuler extends ViewEventHandler implements IOverviewRuler {\n\n\tprivate readonly _context: ViewContext;\n\tprivate readonly _domNode: FastDomNode<HTMLCanvasElement>;\n\tprivate readonly _zoneManager: OverviewZoneManager;\n\n\tconstructor(context: ViewContext, cssClassName: string) {\n\t\tsuper();\n\t\tthis._context = context;\n\t\tconst options = this._context.configuration.options;\n\n\t\tthis._domNode = createFastDomNode(document.createElement('canvas'));\n\t\tthis._domNode.setClassName(cssClassName);\n\t\tthis._domNode.setPosition('absolute');\n\t\tthis._domNode.setLayerHinting(true);\n\t\tthis._domNode.setContain('strict');\n\n\t\tthis._zoneManager = new OverviewZoneManager((lineNumber: number) => this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n\t\tthis._zoneManager.setDOMWidth(0);\n\t\tthis._zoneManager.setDOMHeight(0);\n\t\tthis._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\n\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\n\t\tthis._context.addEventHandler(this);\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._context.removeEventHandler(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\n\t\tif (e.hasChanged(EditorOption.lineHeight)) {\n\t\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\t\t\tthis._render();\n\t\t}\n\n\t\tif (e.hasChanged(EditorOption.pixelRatio)) {\n\t\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\t\t\tthis._render();\n\t\t}\n\n\t\treturn true;\n\t}\n\tpublic override onFlushed(e: viewEvents.ViewFlushedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\tif (e.scrollHeightChanged) {\n\t\t\tthis._zoneManager.setOuterHeight(e.scrollHeight);\n\t\t\tthis._render();\n\t\t}\n\t\treturn true;\n\t}\n\tpublic override onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode.domNode;\n\t}\n\n\tpublic setLayout(position: OverviewRulerPosition): void {\n\t\tthis._domNode.setTop(position.top);\n\t\tthis._domNode.setRight(position.right);\n\n\t\tlet hasChanged = false;\n\t\thasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n\t\thasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n\n\t\tif (hasChanged) {\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\n\t\t\tthis._render();\n\t\t}\n\t}\n\n\tpublic setZones(zones: OverviewRulerZone[]): void {\n\t\tthis._zoneManager.setZones(zones);\n\t\tthis._render();\n\t}\n\n\tprivate _render(): boolean {\n\t\tif (this._zoneManager.getOuterHeight() === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst width = this._zoneManager.getCanvasWidth();\n\t\tconst height = this._zoneManager.getCanvasHeight();\n\n\t\tconst colorZones = this._zoneManager.resolveColorZones();\n\t\tconst id2Color = this._zoneManager.getId2Color();\n\n\t\tconst ctx = this._domNode.domNode.getContext('2d')!;\n\t\tctx.clearRect(0, 0, width, height);\n\t\tif (colorZones.length > 0) {\n\t\t\tthis._renderOneLane(ctx, colorZones, id2Color, width);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _renderOneLane(ctx: CanvasRenderingContext2D, colorZones: ColorZone[], id2Color: string[], width: number): void {\n\n\t\tlet currentColorId = 0; // will never match a real color id which is > 0\n\t\tlet currentFrom = 0;\n\t\tlet currentTo = 0;\n\n\t\tfor (const zone of colorZones) {\n\n\t\t\tconst zoneColorId = zone.colorId;\n\t\t\tconst zoneFrom = zone.from;\n\t\t\tconst zoneTo = zone.to;\n\n\t\t\tif (zoneColorId !== currentColorId) {\n\t\t\t\tif (currentColorId !== 0) {\n\t\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\t\t\t\t}\n\n\t\t\t\tcurrentColorId = zoneColorId;\n\t\t\t\tctx.fillStyle = id2Color[currentColorId];\n\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\tcurrentTo = zoneTo;\n\t\t\t} else {\n\t\t\t\tif (currentTo >= zoneFrom) {\n\t\t\t\t\tcurrentTo = Math.max(currentTo, zoneTo);\n\t\t\t\t} else {\n\t\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\t\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\t\tcurrentTo = zoneTo;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { IOverviewRuler } from '../../editorBrowser.js';\nimport { OverviewRulerPosition, EditorOption } from '../../../common/config/editorOptions.js';\nimport { ColorZone, OverviewRulerZone, OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { ViewEventHandler } from '../../../common/viewEventHandler.js';\n\n/**\n * The overview ruler appears underneath the editor scroll bar and shows things\n * like the cursor, various decorations, etc.\n */\nexport class OverviewRuler extends ViewEventHandler implements IOverviewRuler {\n\n\tprivate readonly _context: ViewContext;\n\tprivate readonly _domNode: FastDomNode<HTMLCanvasElement>;\n\tprivate readonly _zoneManager: OverviewZoneManager;\n\n\tconstructor(context: ViewContext, cssClassName: string) {\n\t\tsuper();\n\t\tthis._context = context;\n\t\tconst options = this._context.configuration.options;\n\n\t\tthis._domNode = createFastDomNode(document.createElement('canvas'));\n\t\tthis._domNode.setClassName(cssClassName);\n\t\tthis._domNode.setPosition('absolute');\n\t\tthis._domNode.setLayerHinting(true);\n\t\tthis._domNode.setContain('strict');\n\n\t\tthis._zoneManager = new OverviewZoneManager((lineNumber: number) => this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n\t\tthis._zoneManager.setDOMWidth(0);\n\t\tthis._zoneManager.setDOMHeight(0);\n\t\tthis._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\n\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\n\t\tthis._context.addEventHandler(this);\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._context.removeEventHandler(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ---- begin view event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\n\t\tif (e.hasChanged(EditorOption.lineHeight)) {\n\t\t\tthis._zoneManager.setLineHeight(options.get(EditorOption.lineHeight));\n\t\t\tthis._render();\n\t\t}\n\n\t\tif (e.hasChanged(EditorOption.pixelRatio)) {\n\t\t\tthis._zoneManager.setPixelRatio(options.get(EditorOption.pixelRatio));\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\t\t\tthis._render();\n\t\t}\n\n\t\treturn true;\n\t}\n\tpublic override onFlushed(e: viewEvents.ViewFlushedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\tif (e.scrollHeightChanged) {\n\t\t\tthis._zoneManager.setOuterHeight(e.scrollHeight);\n\t\t\tthis._render();\n\t\t}\n\t\treturn true;\n\t}\n\tpublic override onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {\n\t\tthis._render();\n\t\treturn true;\n\t}\n\n\t// ---- end view event handlers\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode.domNode;\n\t}\n\n\tpublic setLayout(position: OverviewRulerPosition): void {\n\t\tthis._domNode.setTop(position.top);\n\t\tthis._domNode.setRight(position.right);\n\n\t\tlet hasChanged = false;\n\t\thasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n\t\thasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n\n\t\tif (hasChanged) {\n\t\t\tthis._domNode.setWidth(this._zoneManager.getDOMWidth());\n\t\t\tthis._domNode.setHeight(this._zoneManager.getDOMHeight());\n\t\t\tthis._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n\t\t\tthis._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n\n\t\t\tthis._render();\n\t\t}\n\t}\n\n\tpublic setZones(zones: OverviewRulerZone[]): void {\n\t\tthis._zoneManager.setZones(zones);\n\t\tthis._render();\n\t}\n\n\tprivate _render(): boolean {\n\t\tif (this._zoneManager.getOuterHeight() === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst width = this._zoneManager.getCanvasWidth();\n\t\tconst height = this._zoneManager.getCanvasHeight();\n\n\t\tconst colorZones = this._zoneManager.resolveColorZones();\n\t\tconst id2Color = this._zoneManager.getId2Color();\n\n\t\tconst ctx = this._domNode.domNode.getContext('2d')!;\n\t\tctx.clearRect(0, 0, width, height);\n\t\tif (colorZones.length > 0) {\n\t\t\tthis._renderOneLane(ctx, colorZones, id2Color, width);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _renderOneLane(ctx: CanvasRenderingContext2D, colorZones: ColorZone[], id2Color: string[], width: number): void {\n\n\t\tlet currentColorId = 0; // will never match a real color id which is > 0\n\t\tlet currentFrom = 0;\n\t\tlet currentTo = 0;\n\n\t\tfor (const zone of colorZones) {\n\n\t\t\tconst zoneColorId = zone.colorId;\n\t\t\tconst zoneFrom = zone.from;\n\t\t\tconst zoneTo = zone.to;\n\n\t\t\tif (zoneColorId !== currentColorId) {\n\t\t\t\tif (currentColorId !== 0) {\n\t\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\t\t\t\t}\n\n\t\t\t\tcurrentColorId = zoneColorId;\n\t\t\t\tctx.fillStyle = id2Color[currentColorId];\n\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\tcurrentTo = zoneTo;\n\t\t\t} else {\n\t\t\t\tif (currentTo >= zoneFrom) {\n\t\t\t\t\tcurrentTo = Math.max(currentTo, zoneTo);\n\t\t\t\t} else {\n\t\t\t\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\t\t\t\t\tcurrentFrom = zoneFrom;\n\t\t\t\t\tcurrentTo = zoneTo;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n\n\t}\n}\n"]}
|
|
@@ -46,13 +46,11 @@ export class Rulers extends ViewPart {
|
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
if (currentCount < desiredCount) {
|
|
49
|
-
const { tabSize } = this._context.viewModel.model.getOptions();
|
|
50
|
-
const rulerWidth = tabSize;
|
|
51
49
|
let addCount = desiredCount - currentCount;
|
|
52
50
|
while (addCount > 0) {
|
|
53
51
|
const node = createFastDomNode(document.createElement('div'));
|
|
54
52
|
node.setClassName('view-ruler');
|
|
55
|
-
node.setWidth(
|
|
53
|
+
node.setWidth('1px');
|
|
56
54
|
this.domNode.appendChild(node);
|
|
57
55
|
this._renderedRulers.push(node);
|
|
58
56
|
addCount--;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/rulers/rulers.ts","vs/editor/browser/viewParts/rulers/rulers.ts"],"names":[],"mappings":"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","file":"rulers.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 './rulers.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption, IRulerOption } from '../../../common/config/editorOptions.js';\n\n/**\n * Rulers are vertical lines that appear at certain columns in the editor. There can be >= 0 rulers\n * at a time.\n */\nexport class Rulers extends ViewPart {\n\n\tpublic domNode: FastDomNode<HTMLElement>;\n\tprivate readonly _renderedRulers: FastDomNode<HTMLElement>[];\n\tprivate _rulers: IRulerOption[];\n\tprivate _typicalHalfwidthCharacterWidth: number;\n\n\tconstructor(context: ViewContext) {\n\t\tsuper(context);\n\t\tthis.domNode = createFastDomNode<HTMLElement>(document.createElement('div'));\n\t\tthis.domNode.setAttribute('role', 'presentation');\n\t\tthis.domNode.setAttribute('aria-hidden', 'true');\n\t\tthis.domNode.setClassName('view-rulers');\n\t\tthis._renderedRulers = [];\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t}\n\n\t// --- begin event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\treturn e.scrollHeightChanged;\n\t}\n\n\t// --- end event handlers\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\t// Nothing to read\n\t}\n\n\tprivate _ensureRulersCount(): void {\n\t\tconst currentCount = this._renderedRulers.length;\n\t\tconst desiredCount = this._rulers.length;\n\n\t\tif (currentCount === desiredCount) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentCount < desiredCount) {\n\t\t\tconst { tabSize } = this._context.viewModel.model.getOptions();\n\t\t\tconst rulerWidth = tabSize;\n\t\t\tlet addCount = desiredCount - currentCount;\n\t\t\twhile (addCount > 0) {\n\t\t\t\tconst node = createFastDomNode(document.createElement('div'));\n\t\t\t\tnode.setClassName('view-ruler');\n\t\t\t\tnode.setWidth(rulerWidth);\n\t\t\t\tthis.domNode.appendChild(node);\n\t\t\t\tthis._renderedRulers.push(node);\n\t\t\t\taddCount--;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tlet removeCount = currentCount - desiredCount;\n\t\twhile (removeCount > 0) {\n\t\t\tconst node = this._renderedRulers.pop()!;\n\t\t\tthis.domNode.removeChild(node);\n\t\t\tremoveCount--;\n\t\t}\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\n\t\tthis._ensureRulersCount();\n\n\t\tfor (let i = 0, len = this._rulers.length; i < len; i++) {\n\t\t\tconst node = this._renderedRulers[i];\n\t\t\tconst ruler = this._rulers[i];\n\n\t\t\tnode.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n\t\t\tnode.setHeight(Math.min(ctx.scrollHeight, 1000000));\n\t\t\tnode.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport './rulers.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption, IRulerOption } from '../../../common/config/editorOptions.js';\n\n/**\n * Rulers are vertical lines that appear at certain columns in the editor. There can be >= 0 rulers\n * at a time.\n */\nexport class Rulers extends ViewPart {\n\n\tpublic domNode: FastDomNode<HTMLElement>;\n\tprivate readonly _renderedRulers: FastDomNode<HTMLElement>[];\n\tprivate _rulers: IRulerOption[];\n\tprivate _typicalHalfwidthCharacterWidth: number;\n\n\tconstructor(context: ViewContext) {\n\t\tsuper(context);\n\t\tthis.domNode = createFastDomNode<HTMLElement>(document.createElement('div'));\n\t\tthis.domNode.setAttribute('role', 'presentation');\n\t\tthis.domNode.setAttribute('aria-hidden', 'true');\n\t\tthis.domNode.setClassName('view-rulers');\n\t\tthis._renderedRulers = [];\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t}\n\n\t// --- begin event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\treturn e.scrollHeightChanged;\n\t}\n\n\t// --- end event handlers\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\t// Nothing to read\n\t}\n\n\tprivate _ensureRulersCount(): void {\n\t\tconst currentCount = this._renderedRulers.length;\n\t\tconst desiredCount = this._rulers.length;\n\n\t\tif (currentCount === desiredCount) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentCount < desiredCount) {\n\t\t\tconst { tabSize } = this._context.viewModel.model.getOptions();\n\t\t\tconst rulerWidth = tabSize;\n\t\t\tlet addCount = desiredCount - currentCount;\n\t\t\twhile (addCount > 0) {\n\t\t\t\tconst node = createFastDomNode(document.createElement('div'));\n\t\t\t\tnode.setClassName('view-ruler');\n\t\t\t\tnode.setWidth(rulerWidth);\n\t\t\t\tthis.domNode.appendChild(node);\n\t\t\t\tthis._renderedRulers.push(node);\n\t\t\t\taddCount--;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tlet removeCount = currentCount - desiredCount;\n\t\twhile (removeCount > 0) {\n\t\t\tconst node = this._renderedRulers.pop()!;\n\t\t\tthis.domNode.removeChild(node);\n\t\t\tremoveCount--;\n\t\t}\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\n\t\tthis._ensureRulersCount();\n\n\t\tfor (let i = 0, len = this._rulers.length; i < len; i++) {\n\t\t\tconst node = this._renderedRulers[i];\n\t\t\tconst ruler = this._rulers[i];\n\n\t\t\tnode.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n\t\t\tnode.setHeight(Math.min(ctx.scrollHeight, 1000000));\n\t\t\tnode.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/rulers/rulers.ts","vs/editor/browser/viewParts/rulers/rulers.ts"],"names":[],"mappings":"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","file":"rulers.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 './rulers.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption, IRulerOption } from '../../../common/config/editorOptions.js';\n\n/**\n * Rulers are vertical lines that appear at certain columns in the editor. There can be >= 0 rulers\n * at a time.\n */\nexport class Rulers extends ViewPart {\n\n\tpublic domNode: FastDomNode<HTMLElement>;\n\tprivate readonly _renderedRulers: FastDomNode<HTMLElement>[];\n\tprivate _rulers: IRulerOption[];\n\tprivate _typicalHalfwidthCharacterWidth: number;\n\n\tconstructor(context: ViewContext) {\n\t\tsuper(context);\n\t\tthis.domNode = createFastDomNode<HTMLElement>(document.createElement('div'));\n\t\tthis.domNode.setAttribute('role', 'presentation');\n\t\tthis.domNode.setAttribute('aria-hidden', 'true');\n\t\tthis.domNode.setClassName('view-rulers');\n\t\tthis._renderedRulers = [];\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t}\n\n\t// --- begin event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\treturn e.scrollHeightChanged;\n\t}\n\n\t// --- end event handlers\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\t// Nothing to read\n\t}\n\n\tprivate _ensureRulersCount(): void {\n\t\tconst currentCount = this._renderedRulers.length;\n\t\tconst desiredCount = this._rulers.length;\n\n\t\tif (currentCount === desiredCount) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentCount < desiredCount) {\n\t\t\tlet addCount = desiredCount - currentCount;\n\t\t\twhile (addCount > 0) {\n\t\t\t\tconst node = createFastDomNode(document.createElement('div'));\n\t\t\t\tnode.setClassName('view-ruler');\n\t\t\t\tnode.setWidth('1px');\n\t\t\t\tthis.domNode.appendChild(node);\n\t\t\t\tthis._renderedRulers.push(node);\n\t\t\t\taddCount--;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tlet removeCount = currentCount - desiredCount;\n\t\twhile (removeCount > 0) {\n\t\t\tconst node = this._renderedRulers.pop()!;\n\t\t\tthis.domNode.removeChild(node);\n\t\t\tremoveCount--;\n\t\t}\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\n\t\tthis._ensureRulersCount();\n\n\t\tfor (let i = 0, len = this._rulers.length; i < len; i++) {\n\t\t\tconst node = this._renderedRulers[i];\n\t\t\tconst ruler = this._rulers[i];\n\n\t\t\tnode.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n\t\t\tnode.setHeight(Math.min(ctx.scrollHeight, 1000000));\n\t\t\tnode.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport './rulers.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption, IRulerOption } from '../../../common/config/editorOptions.js';\n\n/**\n * Rulers are vertical lines that appear at certain columns in the editor. There can be >= 0 rulers\n * at a time.\n */\nexport class Rulers extends ViewPart {\n\n\tpublic domNode: FastDomNode<HTMLElement>;\n\tprivate readonly _renderedRulers: FastDomNode<HTMLElement>[];\n\tprivate _rulers: IRulerOption[];\n\tprivate _typicalHalfwidthCharacterWidth: number;\n\n\tconstructor(context: ViewContext) {\n\t\tsuper(context);\n\t\tthis.domNode = createFastDomNode<HTMLElement>(document.createElement('div'));\n\t\tthis.domNode.setAttribute('role', 'presentation');\n\t\tthis.domNode.setAttribute('aria-hidden', 'true');\n\t\tthis.domNode.setClassName('view-rulers');\n\t\tthis._renderedRulers = [];\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t}\n\n\t// --- begin event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tthis._rulers = options.get(EditorOption.rulers);\n\t\tthis._typicalHalfwidthCharacterWidth = options.get(EditorOption.fontInfo).typicalHalfwidthCharacterWidth;\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\treturn e.scrollHeightChanged;\n\t}\n\n\t// --- end event handlers\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\t// Nothing to read\n\t}\n\n\tprivate _ensureRulersCount(): void {\n\t\tconst currentCount = this._renderedRulers.length;\n\t\tconst desiredCount = this._rulers.length;\n\n\t\tif (currentCount === desiredCount) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentCount < desiredCount) {\n\t\t\tlet addCount = desiredCount - currentCount;\n\t\t\twhile (addCount > 0) {\n\t\t\t\tconst node = createFastDomNode(document.createElement('div'));\n\t\t\t\tnode.setClassName('view-ruler');\n\t\t\t\tnode.setWidth('1px');\n\t\t\t\tthis.domNode.appendChild(node);\n\t\t\t\tthis._renderedRulers.push(node);\n\t\t\t\taddCount--;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tlet removeCount = currentCount - desiredCount;\n\t\twhile (removeCount > 0) {\n\t\t\tconst node = this._renderedRulers.pop()!;\n\t\t\tthis.domNode.removeChild(node);\n\t\t\tremoveCount--;\n\t\t}\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\n\t\tthis._ensureRulersCount();\n\n\t\tfor (let i = 0, len = this._rulers.length; i < len; i++) {\n\t\t\tconst node = this._renderedRulers[i];\n\t\t\tconst ruler = this._rulers[i];\n\n\t\t\tnode.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n\t\t\tnode.setHeight(Math.min(ctx.scrollHeight, 1000000));\n\t\t\tnode.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -36,7 +36,7 @@ export class ScrollDecorationViewPart extends ViewPart {
|
|
|
36
36
|
_updateWidth() {
|
|
37
37
|
const options = this._context.configuration.options;
|
|
38
38
|
const layoutInfo = options.get(165 /* EditorOption.layoutInfo */);
|
|
39
|
-
if (layoutInfo.minimap.renderMinimap === 0 || (layoutInfo.minimap.minimapWidth > 0 && layoutInfo.minimap.minimapLeft === 0)) {
|
|
39
|
+
if (layoutInfo.minimap.renderMinimap === 0 /* RenderMinimap.None */ || (layoutInfo.minimap.minimapWidth > 0 && layoutInfo.minimap.minimapLeft === 0)) {
|
|
40
40
|
this._width = layoutInfo.width;
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts","vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,wBAAwB,CAAC;AAChC,OAAO,EAAe,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOlD,MAAM,OAAO,wBAAyB,SAAQ,QAAQ;IAQrD,YAAY,OAAoB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,kCAAwB,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAEe,OAAO;QACtB,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,iBAAiB;QACxB,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;YACjC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,UAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEO,YAAY;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,mCAAyB,CAAC;QAExD,IAAI,UAAU,CAAC,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts","vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts"],"names":[],"mappings":"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","file":"scrollDecoration.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 './scrollDecoration.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption, RenderMinimap } from '../../../common/config/editorOptions.js';\n\n\nexport class ScrollDecorationViewPart extends ViewPart {\n\n\tprivate readonly _domNode: FastDomNode<HTMLElement>;\n\tprivate _scrollTop: number;\n\tprivate _width: number;\n\tprivate _shouldShow: boolean;\n\tprivate _useShadows: boolean;\n\n\tconstructor(context: ViewContext) {\n\t\tsuper(context);\n\n\t\tthis._scrollTop = 0;\n\t\tthis._width = 0;\n\t\tthis._updateWidth();\n\t\tthis._shouldShow = false;\n\t\tconst options = this._context.configuration.options;\n\t\tconst scrollbar = options.get(EditorOption.scrollbar);\n\t\tthis._useShadows = scrollbar.useShadows;\n\t\tthis._domNode = createFastDomNode(document.createElement('div'));\n\t\tthis._domNode.setAttribute('role', 'presentation');\n\t\tthis._domNode.setAttribute('aria-hidden', 'true');\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t}\n\n\tprivate _updateShouldShow(): boolean {\n\t\tconst newShouldShow = (this._useShadows && this._scrollTop > 0);\n\t\tif (this._shouldShow !== newShouldShow) {\n\t\t\tthis._shouldShow = newShouldShow;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic getDomNode(): FastDomNode<HTMLElement> {\n\t\treturn this._domNode;\n\t}\n\n\tprivate _updateWidth(): void {\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tif (layoutInfo.minimap.renderMinimap === RenderMinimap.None || (layoutInfo.minimap.minimapWidth > 0 && layoutInfo.minimap.minimapLeft === 0)) {\n\t\t\tthis._width = layoutInfo.width;\n\t\t} else {\n\t\t\tthis._width = layoutInfo.width - layoutInfo.verticalScrollbarWidth;\n\t\t}\n\t}\n\n\t// --- begin event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst scrollbar = options.get(EditorOption.scrollbar);\n\t\tthis._useShadows = scrollbar.useShadows;\n\t\tthis._updateWidth();\n\t\tthis._updateShouldShow();\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\tthis._scrollTop = e.scrollTop;\n\t\treturn this._updateShouldShow();\n\t}\n\n\t// --- end event handlers\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\t// Nothing to read\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\t\tthis._domNode.setWidth(this._width);\n\t\tthis._domNode.setClassName(this._shouldShow ? 'scroll-decoration' : '');\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport './scrollDecoration.css';\nimport { FastDomNode, createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { RenderingContext, RestrictedRenderingContext } from '../../view/renderingContext.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport * as viewEvents from '../../../common/viewEvents.js';\nimport { EditorOption, RenderMinimap } from '../../../common/config/editorOptions.js';\n\n\nexport class ScrollDecorationViewPart extends ViewPart {\n\n\tprivate readonly _domNode: FastDomNode<HTMLElement>;\n\tprivate _scrollTop: number;\n\tprivate _width: number;\n\tprivate _shouldShow: boolean;\n\tprivate _useShadows: boolean;\n\n\tconstructor(context: ViewContext) {\n\t\tsuper(context);\n\n\t\tthis._scrollTop = 0;\n\t\tthis._width = 0;\n\t\tthis._updateWidth();\n\t\tthis._shouldShow = false;\n\t\tconst options = this._context.configuration.options;\n\t\tconst scrollbar = options.get(EditorOption.scrollbar);\n\t\tthis._useShadows = scrollbar.useShadows;\n\t\tthis._domNode = createFastDomNode(document.createElement('div'));\n\t\tthis._domNode.setAttribute('role', 'presentation');\n\t\tthis._domNode.setAttribute('aria-hidden', 'true');\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t}\n\n\tprivate _updateShouldShow(): boolean {\n\t\tconst newShouldShow = (this._useShadows && this._scrollTop > 0);\n\t\tif (this._shouldShow !== newShouldShow) {\n\t\t\tthis._shouldShow = newShouldShow;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic getDomNode(): FastDomNode<HTMLElement> {\n\t\treturn this._domNode;\n\t}\n\n\tprivate _updateWidth(): void {\n\t\tconst options = this._context.configuration.options;\n\t\tconst layoutInfo = options.get(EditorOption.layoutInfo);\n\n\t\tif (layoutInfo.minimap.renderMinimap === RenderMinimap.None || (layoutInfo.minimap.minimapWidth > 0 && layoutInfo.minimap.minimapLeft === 0)) {\n\t\t\tthis._width = layoutInfo.width;\n\t\t} else {\n\t\t\tthis._width = layoutInfo.width - layoutInfo.verticalScrollbarWidth;\n\t\t}\n\t}\n\n\t// --- begin event handlers\n\n\tpublic override onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {\n\t\tconst options = this._context.configuration.options;\n\t\tconst scrollbar = options.get(EditorOption.scrollbar);\n\t\tthis._useShadows = scrollbar.useShadows;\n\t\tthis._updateWidth();\n\t\tthis._updateShouldShow();\n\t\treturn true;\n\t}\n\tpublic override onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {\n\t\tthis._scrollTop = e.scrollTop;\n\t\treturn this._updateShouldShow();\n\t}\n\n\t// --- end event handlers\n\n\tpublic prepareRender(ctx: RenderingContext): void {\n\t\t// Nothing to read\n\t}\n\n\tpublic render(ctx: RestrictedRenderingContext): void {\n\t\tthis._domNode.setWidth(this._width);\n\t\tthis._domNode.setClassName(this._shouldShow ? 'scroll-decoration' : '');\n\t}\n}\n"]}
|
|
@@ -12,7 +12,8 @@ export class DomReadingContext {
|
|
|
12
12
|
const rect = this._domNode.getBoundingClientRect();
|
|
13
13
|
this.markDidDomLayout();
|
|
14
14
|
this._clientRectDeltaLeft = rect.left;
|
|
15
|
-
|
|
15
|
+
const offsetWidth = this._domNode.offsetWidth;
|
|
16
|
+
this._clientRectScale = offsetWidth > 0 ? rect.width / offsetWidth : 1;
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
get clientRectDeltaLeft() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/viewLines/domReadingContext.ts","vs/editor/browser/viewParts/viewLines/domReadingContext.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,MAAM,OAAO,iBAAiB;IAO7B,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/viewParts/viewLines/domReadingContext.ts","vs/editor/browser/viewParts/viewLines/domReadingContext.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,MAAM,OAAO,iBAAiB;IAO7B,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9C,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;IAED,IAAW,mBAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAClC,CAAC;IAED,IAAW,eAAe;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAED,YACkB,QAAqB,EACtB,OAAoB;QADnB,aAAQ,GAAR,QAAQ,CAAa;QACtB,YAAO,GAAP,OAAO,CAAa;QApC7B,kBAAa,GAAY,KAAK,CAAC;QAC/B,yBAAoB,GAAW,CAAC,CAAC;QACjC,qBAAgB,GAAW,CAAC,CAAC;QAC7B,oBAAe,GAAY,KAAK,CAAC;IAmCzC,CAAC;IAEM,gBAAgB;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,CAAC;CACD","file":"domReadingContext.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\nexport class DomReadingContext {\n\n\tprivate _didDomLayout: boolean = false;\n\tprivate _clientRectDeltaLeft: number = 0;\n\tprivate _clientRectScale: number = 1;\n\tprivate _clientRectRead: boolean = false;\n\n\tpublic get didDomLayout(): boolean {\n\t\treturn this._didDomLayout;\n\t}\n\n\tprivate readClientRect(): void {\n\t\tif (!this._clientRectRead) {\n\t\t\tthis._clientRectRead = true;\n\t\t\tconst rect = this._domNode.getBoundingClientRect();\n\t\t\tthis.markDidDomLayout();\n\t\t\tthis._clientRectDeltaLeft = rect.left;\n\t\t\tconst offsetWidth = this._domNode.offsetWidth;\n\t\t\tthis._clientRectScale = offsetWidth > 0 ? rect.width / offsetWidth : 1;\n\t\t}\n\t}\n\n\tpublic get clientRectDeltaLeft(): number {\n\t\tif (!this._clientRectRead) {\n\t\t\tthis.readClientRect();\n\t\t}\n\t\treturn this._clientRectDeltaLeft;\n\t}\n\n\tpublic get clientRectScale(): number {\n\t\tif (!this._clientRectRead) {\n\t\t\tthis.readClientRect();\n\t\t}\n\t\treturn this._clientRectScale;\n\t}\n\n\tconstructor(\n\t\tprivate readonly _domNode: HTMLElement,\n\t\tpublic readonly endNode: HTMLElement\n\t) {\n\t}\n\n\tpublic markDidDomLayout(): void {\n\t\tthis._didDomLayout = true;\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport class DomReadingContext {\n\n\tprivate _didDomLayout: boolean = false;\n\tprivate _clientRectDeltaLeft: number = 0;\n\tprivate _clientRectScale: number = 1;\n\tprivate _clientRectRead: boolean = false;\n\n\tpublic get didDomLayout(): boolean {\n\t\treturn this._didDomLayout;\n\t}\n\n\tprivate readClientRect(): void {\n\t\tif (!this._clientRectRead) {\n\t\t\tthis._clientRectRead = true;\n\t\t\tconst rect = this._domNode.getBoundingClientRect();\n\t\t\tthis.markDidDomLayout();\n\t\t\tthis._clientRectDeltaLeft = rect.left;\n\t\t\tconst offsetWidth = this._domNode.offsetWidth;\n\t\t\tthis._clientRectScale = offsetWidth > 0 ? rect.width / offsetWidth : 1;\n\t\t}\n\t}\n\n\tpublic get clientRectDeltaLeft(): number {\n\t\tif (!this._clientRectRead) {\n\t\t\tthis.readClientRect();\n\t\t}\n\t\treturn this._clientRectDeltaLeft;\n\t}\n\n\tpublic get clientRectScale(): number {\n\t\tif (!this._clientRectRead) {\n\t\t\tthis.readClientRect();\n\t\t}\n\t\treturn this._clientRectScale;\n\t}\n\n\tconstructor(\n\t\tprivate readonly _domNode: HTMLElement,\n\t\tpublic readonly endNode: HTMLElement\n\t) {\n\t}\n\n\tpublic markDidDomLayout(): void {\n\t\tthis._didDomLayout = true;\n\t}\n}\n"]}
|
|
@@ -165,12 +165,10 @@ export class ViewLines extends ViewPart {
|
|
|
165
165
|
return r;
|
|
166
166
|
}
|
|
167
167
|
onDecorationsChanged(e) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
this._visibleLines.getVisibleLine(lineNumber).onDecorationsChanged();
|
|
173
|
-
}
|
|
168
|
+
const rendStartLineNumber = this._visibleLines.getStartLineNumber();
|
|
169
|
+
const rendEndLineNumber = this._visibleLines.getEndLineNumber();
|
|
170
|
+
for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {
|
|
171
|
+
this._visibleLines.getVisibleLine(lineNumber).onDecorationsChanged();
|
|
174
172
|
}
|
|
175
173
|
return true;
|
|
176
174
|
}
|
|
@@ -236,7 +234,7 @@ export class ViewLines extends ViewPart {
|
|
|
236
234
|
}
|
|
237
235
|
}
|
|
238
236
|
this.domNode.setWidth(e.scrollWidth);
|
|
239
|
-
return this._visibleLines.onScrollChanged(e) ||
|
|
237
|
+
return this._visibleLines.onScrollChanged(e) || e.scrollTopChanged || e.scrollLeftChanged;
|
|
240
238
|
}
|
|
241
239
|
onTokensChanged(e) {
|
|
242
240
|
return this._visibleLines.onTokensChanged(e);
|
|
@@ -318,11 +316,6 @@ export class ViewLines extends ViewPart {
|
|
|
318
316
|
return result;
|
|
319
317
|
}
|
|
320
318
|
linesVisibleRangesForRange(_range, includeNewLines) {
|
|
321
|
-
if (this.shouldRender()) {
|
|
322
|
-
// Cannot read from the DOM because it is dirty
|
|
323
|
-
// i.e. the model & the dom are out of sync, so I'd be reading something stale
|
|
324
|
-
return null;
|
|
325
|
-
}
|
|
326
319
|
const originalEndLineNumber = _range.endLineNumber;
|
|
327
320
|
const range = Range.intersectRanges(_range, this._lastRenderedData.getCurrentVisibleRange());
|
|
328
321
|
if (!range) {
|
|
@@ -369,11 +362,6 @@ export class ViewLines extends ViewPart {
|
|
|
369
362
|
return visibleRanges;
|
|
370
363
|
}
|
|
371
364
|
_visibleRangesForLineRange(lineNumber, startColumn, endColumn) {
|
|
372
|
-
if (this.shouldRender()) {
|
|
373
|
-
// Cannot read from the DOM because it is dirty
|
|
374
|
-
// i.e. the model & the dom are out of sync, so I'd be reading something stale
|
|
375
|
-
return null;
|
|
376
|
-
}
|
|
377
365
|
if (lineNumber < this._visibleLines.getStartLineNumber() || lineNumber > this._visibleLines.getEndLineNumber()) {
|
|
378
366
|
return null;
|
|
379
367
|
}
|
|
@@ -416,7 +404,7 @@ export class ViewLines extends ViewPart {
|
|
|
416
404
|
// only proceed if we just did a layout
|
|
417
405
|
return;
|
|
418
406
|
}
|
|
419
|
-
if (this._asyncUpdateLineWidths.isScheduled()) {
|
|
407
|
+
if (!this._asyncUpdateLineWidths.isScheduled()) {
|
|
420
408
|
// reading widths is not scheduled => widths are up-to-date
|
|
421
409
|
return;
|
|
422
410
|
}
|