monaco-editor-core 0.57.0 → 0.58.0-dev-20261104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +2 -2
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +2 -2
- package/esm/nls.messages.pt-br.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +38 -6
- package/esm/vs/base/browser/browser.js +8 -0
- package/esm/vs/base/browser/browser.js.map +1 -1
- package/esm/vs/base/browser/contextmenu.js +8 -1
- package/esm/vs/base/browser/contextmenu.js.map +1 -1
- package/esm/vs/base/browser/dom.js +34 -5
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/dompurify/dompurify.js +2457 -2640
- package/esm/vs/base/browser/markdownRenderer.js +48 -21
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/pixelRatio.js +3 -2
- package/esm/vs/base/browser/pixelRatio.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionViewItems.js +5 -2
- package/esm/vs/base/browser/ui/actionbar/actionViewItems.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionbar.js +7 -2
- package/esm/vs/base/browser/ui/actionbar/actionbar.js.map +1 -1
- package/esm/vs/base/browser/ui/animations/animations.js +68 -40
- package/esm/vs/base/browser/ui/animations/animations.js.map +1 -1
- package/esm/vs/base/browser/ui/button/button.js +7 -0
- package/esm/vs/base/browser/ui/button/button.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/contextview/contextview.css +15 -0
- package/esm/vs/base/browser/ui/contextview/contextview.js +266 -40
- package/esm/vs/base/browser/ui/contextview/contextview.js.map +1 -1
- package/esm/vs/base/browser/ui/contextview/windowControlsOverlay.js +72 -0
- package/esm/vs/base/browser/ui/contextview/windowControlsOverlay.js.map +1 -0
- package/esm/vs/base/browser/ui/dialog/dialog.css +5 -0
- package/esm/vs/base/browser/ui/dropdown/dropdown.js +2 -1
- package/esm/vs/base/browser/ui/dropdown/dropdown.js.map +1 -1
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js.map +1 -1
- package/esm/vs/base/browser/ui/hover/hover.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listView.js +87 -15
- package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listWidget.js +37 -15
- package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
- package/esm/vs/base/browser/ui/menu/menu.js +189 -52
- package/esm/vs/base/browser/ui/menu/menu.js.map +1 -1
- package/esm/vs/base/browser/ui/radio/radio.css +11 -0
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +2 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBox.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js +14 -8
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js.map +1 -1
- package/esm/vs/base/browser/ui/splitview/splitview.js +11 -7
- package/esm/vs/base/browser/ui/splitview/splitview.js.map +1 -1
- package/esm/vs/base/browser/ui/toggle/switch.css +16 -7
- package/esm/vs/base/browser/ui/toggle/switch.js +9 -6
- package/esm/vs/base/browser/ui/toggle/switch.js.map +1 -1
- package/esm/vs/base/browser/ui/toolbar/toolbar.css +1 -2
- package/esm/vs/base/browser/ui/toolbar/toolbar.js +85 -38
- package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js +48 -9
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +10 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTree.js +3 -0
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
- package/esm/vs/base/common/actions.js +8 -2
- package/esm/vs/base/common/actions.js.map +1 -1
- package/esm/vs/base/common/arrays.js +4 -4
- package/esm/vs/base/common/arrays.js.map +1 -1
- package/esm/vs/base/common/async.js +12 -8
- package/esm/vs/base/common/async.js.map +1 -1
- package/esm/vs/base/common/cancellation.js +25 -0
- package/esm/vs/base/common/cancellation.js.map +1 -1
- package/esm/vs/base/common/codicons.js +2 -0
- package/esm/vs/base/common/codicons.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +2 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/color.js +1 -1
- package/esm/vs/base/common/color.js.map +1 -1
- package/esm/vs/base/common/diff/diff.js +60 -1
- package/esm/vs/base/common/diff/diff.js.map +1 -1
- package/esm/vs/base/common/event.js +1 -1
- package/esm/vs/base/common/event.js.map +1 -1
- package/esm/vs/base/common/glob.js +1 -0
- package/esm/vs/base/common/glob.js.map +1 -1
- package/esm/vs/base/common/htmlContent.js +74 -12
- package/esm/vs/base/common/htmlContent.js.map +1 -1
- package/esm/vs/base/common/json.js +19 -0
- package/esm/vs/base/common/json.js.map +1 -0
- package/esm/vs/base/common/network.js +16 -0
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/resources.js +14 -2
- package/esm/vs/base/common/resources.js.map +1 -1
- package/esm/vs/base/common/strings.js +1 -1
- package/esm/vs/base/common/strings.js.map +1 -1
- package/esm/vs/base/common/uri.js +2 -2
- package/esm/vs/base/common/uri.js.map +1 -1
- package/esm/vs/editor/browser/config/editorConfiguration.js +1 -1
- package/esm/vs/editor/browser/config/fontMeasurements.js +19 -6
- package/esm/vs/editor/browser/config/fontMeasurements.js.map +1 -1
- package/esm/vs/editor/browser/controller/dragScrolling.js +3 -3
- package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js +11 -5
- package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +8 -38
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/screenReaderContentRich.js +3 -3
- package/esm/vs/editor/browser/controller/editContext/native/screenReaderSupport.js +6 -6
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +12 -10
- package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js +7 -7
- package/esm/vs/editor/browser/controller/mouseTarget.js +3 -3
- package/esm/vs/editor/browser/coreCommands.js +2 -2
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/editorMarkdownSanitizer.js +19 -0
- package/esm/vs/editor/browser/editorMarkdownSanitizer.js.map +1 -0
- package/esm/vs/editor/browser/gpu/rectangleRenderer.js +1 -1
- package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -1
- package/esm/vs/editor/browser/observableCodeEditor.js +1 -1
- package/esm/vs/editor/browser/services/editorWorkerService.js +3 -2
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js +6 -2
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js +34 -11
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js.map +1 -1
- package/esm/vs/editor/browser/view/viewController.js +7 -7
- package/esm/vs/editor/browser/view/viewController.js.map +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js +1 -1
- package/esm/vs/editor/browser/view/viewOverlays.js +4 -4
- package/esm/vs/editor/browser/view.js +5 -5
- package/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js +1 -1
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +11 -3
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +6 -6
- package/esm/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +12 -12
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +9 -2
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.js +2 -2
- package/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js +2 -2
- package/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js +2 -2
- package/esm/vs/editor/browser/viewParts/margin/margin.js +2 -2
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js +6 -6
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +9 -2
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js +5 -5
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +3 -3
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js +2 -2
- package/esm/vs/editor/browser/viewParts/rulersGpu/rulersGpu.js +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +3 -3
- package/esm/vs/editor/browser/viewParts/selections/selections.js +2 -2
- package/esm/vs/editor/browser/viewParts/viewCursors/viewCursor.js +2 -2
- package/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js +6 -6
- package/esm/vs/editor/browser/viewParts/viewLines/viewLineOptions.js +5 -5
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +11 -11
- package/esm/vs/editor/browser/viewParts/viewLinesGpu/viewLinesGpu.js +1 -1
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +4 -4
- package/esm/vs/editor/browser/viewParts/wordWrapIndicator/wordWrapIndicator.js +2 -2
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +22 -21
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/commands.js +12 -12
- package/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js +18 -18
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +3 -3
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +10 -10
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +4 -4
- package/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js +21 -3
- package/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +10 -10
- package/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
- package/esm/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollLayout.js +2 -2
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollLayout.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollView.js +21 -2
- package/esm/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollView.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -2
- package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +11 -3
- package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.js +1 -0
- package/esm/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.js.map +1 -1
- package/esm/vs/editor/common/commands/columnSelectionPasteCommand.js +64 -0
- package/esm/vs/editor/common/commands/columnSelectionPasteCommand.js.map +1 -0
- package/esm/vs/editor/common/config/editorConfigurationSchema.js +68 -58
- package/esm/vs/editor/common/config/editorConfigurationSchema.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +560 -500
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/editorColorRegistry.js +71 -71
- package/esm/vs/editor/common/core/edits/textEdit.js +16 -0
- package/esm/vs/editor/common/core/edits/textEdit.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursor.js +20 -10
- package/esm/vs/editor/common/cursor/cursor.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorTypeEditOperations.js +67 -14
- package/esm/vs/editor/common/cursor/cursorTypeEditOperations.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorTypeOperations.js +2 -2
- package/esm/vs/editor/common/cursor/cursorTypeOperations.js.map +1 -1
- package/esm/vs/editor/common/cursorCommon.js +22 -21
- package/esm/vs/editor/common/cursorCommon.js.map +1 -1
- package/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js +21 -8
- package/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js.map +1 -1
- package/esm/vs/editor/common/diff/documentDiffProvider.js.map +1 -1
- package/esm/vs/editor/common/diff/externalLinesDiffComputer.js +38 -26
- package/esm/vs/editor/common/diff/externalLinesDiffComputer.js.map +1 -1
- package/esm/vs/editor/common/diff/rangeMapping.js +11 -1
- package/esm/vs/editor/common/diff/rangeMapping.js.map +1 -1
- package/esm/vs/editor/common/diff/verifyLinesDiff.js +28 -0
- package/esm/vs/editor/common/diff/verifyLinesDiff.js.map +1 -0
- package/esm/vs/editor/common/editorContextKeys.js +53 -53
- package/esm/vs/editor/common/languages/languageConfiguration.js +8 -0
- package/esm/vs/editor/common/languages/languageConfiguration.js.map +1 -1
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/services/editorWebWorker.js +27 -6
- package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
- package/esm/vs/editor/common/services/editorWorker.js.map +1 -1
- package/esm/vs/editor/common/services/languageService.js +6 -4
- package/esm/vs/editor/common/services/languageService.js.map +1 -1
- package/esm/vs/editor/common/services/markerDecorationsService.js +21 -2
- package/esm/vs/editor/common/services/markerDecorationsService.js.map +1 -1
- package/esm/vs/editor/common/standalone/standaloneEnums.js +100 -97
- package/esm/vs/editor/common/standalone/standaloneEnums.js.map +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +11 -11
- package/esm/vs/editor/common/textModelEditSource.js +9 -0
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLayout.js +16 -16
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +1 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js +19 -19
- package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +9 -9
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +23 -20
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js.map +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/codeActionModel.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +25 -10
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerContribution.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +3 -3
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +17 -17
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +39 -39
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/pasteEditSession.js +19 -0
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/pasteEditSession.js.map +1 -0
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +26 -18
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js.map +1 -1
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +18 -18
- package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findModel.js +6 -6
- package/esm/vs/editor/contrib/find/browser/findWidget.js +40 -40
- package/esm/vs/editor/contrib/find/browser/findWidget.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/folding.js +23 -23
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +2 -2
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +4 -4
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js.map +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js +9 -3
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js +2 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +10 -8
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +6 -6
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +5 -5
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +9 -9
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js +3 -3
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +7 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +6 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +7 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +3 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -32
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +5 -4
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js.map +1 -1
- package/esm/vs/editor/contrib/links/browser/links.js +16 -15
- package/esm/vs/editor/contrib/links/browser/links.js.map +1 -1
- package/esm/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js +1 -1
- package/esm/vs/editor/contrib/message/browser/messageController.js +16 -12
- package/esm/vs/editor/contrib/message/browser/messageController.js.map +1 -1
- package/esm/vs/editor/contrib/middleScroll/browser/middleScrollController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +91 -55
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js +3 -3
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +6 -4
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderTextContribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +12 -12
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +3 -3
- package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js +6 -6
- package/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +23 -13
- package/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js.map +1 -1
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +5 -5
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +5 -5
- package/esm/vs/editor/contrib/snippet/browser/snippetSession.js +2 -2
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +10 -8
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js +2 -2
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +6 -6
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +15 -15
- package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestModel.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +27 -27
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +8 -6
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +5 -5
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +3 -3
- package/esm/vs/editor/contrib/suggest/browser/wordDistance.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +27 -27
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js +1 -1
- package/esm/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js.map +1 -1
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +50 -14
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +6 -6
- package/esm/vs/editor/editor.api.d.ts +133 -98
- package/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js +1 -1
- package/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +5 -3
- package/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js +15 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
- package/esm/vs/nls.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +72 -66
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js.map +1 -1
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +434 -136
- package/esm/vs/platform/actionWidget/browser/actionList.js.map +1 -1
- package/esm/vs/platform/actionWidget/browser/actionWidget.css +74 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +24 -26
- package/esm/vs/platform/actionWidget/browser/actionWidget.js.map +1 -1
- package/esm/vs/platform/actionWidget/browser/actionWidgetMotion.js +16 -0
- package/esm/vs/platform/actionWidget/browser/actionWidgetMotion.js.map +1 -0
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +15 -17
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
- package/esm/vs/platform/actions/browser/toolbar.js +25 -12
- package/esm/vs/platform/actions/browser/toolbar.js.map +1 -1
- package/esm/vs/platform/actions/common/actions.js +4 -2
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +15 -8
- package/esm/vs/platform/actions/common/menuService.js.map +1 -1
- package/esm/vs/platform/configuration/common/configuration.js +3 -1
- package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationModels.js +16 -11
- package/esm/vs/platform/configuration/common/configurationModels.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationRegistry.js +29 -27
- package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurations.js +13 -1
- package/esm/vs/platform/configuration/common/configurations.js.map +1 -1
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +2 -2
- package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +28 -14
- package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkeys.js +10 -10
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/contextview/browser/contextMenuHandler.js +17 -4
- package/esm/vs/platform/contextview/browser/contextMenuHandler.js.map +1 -1
- package/esm/vs/platform/contextview/browser/contextMenuService.js +1 -1
- package/esm/vs/platform/contextview/browser/contextMenuService.js.map +1 -1
- package/esm/vs/platform/contextview/browser/contextView.js.map +1 -1
- package/esm/vs/platform/contextview/browser/contextViewService.js +7 -2
- package/esm/vs/platform/contextview/browser/contextViewService.js.map +1 -1
- package/esm/vs/platform/editor/common/editor.js +17 -0
- package/esm/vs/platform/editor/common/editor.js.map +1 -1
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverService.js +6 -3
- package/esm/vs/platform/hover/browser/hoverService.js.map +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +38 -6
- package/esm/vs/platform/hover/browser/hoverWidget.js.map +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +32 -5
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +5 -5
- package/esm/vs/platform/keybinding/common/keybindingResolver.js +1 -1
- package/esm/vs/platform/keybinding/common/keybindingResolver.js.map +1 -1
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/markers/common/markerService.js +11 -8
- package/esm/vs/platform/markers/common/markerService.js.map +1 -1
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/markers/common/markers.js.map +1 -1
- package/esm/vs/platform/notification/common/notification.js.map +1 -1
- package/esm/vs/platform/notification/common/notificationMessage.js +37 -0
- package/esm/vs/platform/notification/common/notificationMessage.js.map +1 -0
- package/esm/vs/platform/opener/common/opener.js.map +1 -1
- package/esm/vs/platform/progress/common/progress.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/media/quickInput.css +33 -2
- package/esm/vs/platform/quickinput/browser/quickAccess.js +7 -4
- package/esm/vs/platform/quickinput/browser/quickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +65 -15
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js +96 -90
- package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputService.js +5 -7
- package/esm/vs/platform/quickinput/browser/quickInputService.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickTree.js +1 -1
- package/esm/vs/platform/quickinput/common/quickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
- package/esm/vs/platform/storage/common/storage.js.map +1 -1
- package/esm/vs/platform/theme/common/colorRegistry.js +1 -0
- package/esm/vs/platform/theme/common/colorRegistry.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +11 -3
- package/esm/vs/platform/theme/common/colorUtils.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/baseColors.js +19 -19
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -9
- package/esm/vs/platform/theme/common/colors/chartsColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/confettiColors.js +14 -0
- package/esm/vs/platform/theme/common/colors/confettiColors.js.map +1 -0
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +48 -48
- package/esm/vs/platform/theme/common/colors/inputColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +13 -13
- package/esm/vs/platform/theme/common/colors/minimapColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +10 -10
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/monaco.d.ts +133 -98
- package/package.json +3 -3
- package/version.txt +1 -1
|
@@ -9,78 +9,78 @@ import { registerThemingParticipant } from '../../../platform/theme/common/theme
|
|
|
9
9
|
/**
|
|
10
10
|
* Definition of the editor colors
|
|
11
11
|
*/
|
|
12
|
-
export const editorLineHighlight = registerColor('editor.lineHighlightBackground', null, nls.localize(
|
|
13
|
-
export const editorInactiveLineHighlight = registerColor('editor.inactiveLineHighlightBackground', editorLineHighlight, nls.localize(
|
|
14
|
-
export const editorLineHighlightBorder = registerColor('editor.lineHighlightBorder', { dark: '#282828', light: '#eeeeee', hcDark: '#f38518', hcLight: contrastBorder }, nls.localize(
|
|
15
|
-
export const editorRangeHighlight = registerColor('editor.rangeHighlightBackground', { dark: '#ffffff0b', light: '#fdff0033', hcDark: null, hcLight: null }, nls.localize(
|
|
16
|
-
export const editorRangeHighlightBorder = registerColor('editor.rangeHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(
|
|
17
|
-
export const editorSymbolHighlight = registerColor('editor.symbolHighlightBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, nls.localize(
|
|
18
|
-
export const editorSymbolHighlightBorder = registerColor('editor.symbolHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(
|
|
19
|
-
export const editorCursorForeground = registerColor('editorCursor.foreground', { dark: '#AEAFAD', light: Color.black, hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize(
|
|
20
|
-
export const editorCursorBackground = registerColor('editorCursor.background', null, nls.localize(
|
|
21
|
-
export const editorMultiCursorPrimaryForeground = registerColor('editorMultiCursor.primary.foreground', editorCursorForeground, nls.localize(
|
|
22
|
-
export const editorMultiCursorPrimaryBackground = registerColor('editorMultiCursor.primary.background', editorCursorBackground, nls.localize(
|
|
23
|
-
export const editorMultiCursorSecondaryForeground = registerColor('editorMultiCursor.secondary.foreground', editorCursorForeground, nls.localize(
|
|
24
|
-
export const editorMultiCursorSecondaryBackground = registerColor('editorMultiCursor.secondary.background', editorCursorBackground, nls.localize(
|
|
25
|
-
export const editorWhitespaces = registerColor('editorWhitespace.foreground', { dark: '#e3e4e229', light: '#33333333', hcDark: '#e3e4e229', hcLight: '#CCCCCC' }, nls.localize(
|
|
26
|
-
export const editorWordWrapIndicator = registerColor('editorWordWrapIndicator.foreground', editorWhitespaces, nls.localize(
|
|
27
|
-
export const editorLineNumbers = registerColor('editorLineNumber.foreground', { dark: '#858585', light: '#237893', hcDark: Color.white, hcLight: '#292929' }, nls.localize(
|
|
28
|
-
export const deprecatedEditorIndentGuides = registerColor('editorIndentGuide.background', editorWhitespaces, nls.localize(
|
|
29
|
-
export const deprecatedEditorActiveIndentGuides = registerColor('editorIndentGuide.activeBackground', editorWhitespaces, nls.localize(
|
|
30
|
-
export const editorIndentGuide1 = registerColor('editorIndentGuide.background1', deprecatedEditorIndentGuides, nls.localize(
|
|
31
|
-
export const editorIndentGuide2 = registerColor('editorIndentGuide.background2', '#00000000', nls.localize(
|
|
32
|
-
export const editorIndentGuide3 = registerColor('editorIndentGuide.background3', '#00000000', nls.localize(
|
|
33
|
-
export const editorIndentGuide4 = registerColor('editorIndentGuide.background4', '#00000000', nls.localize(
|
|
34
|
-
export const editorIndentGuide5 = registerColor('editorIndentGuide.background5', '#00000000', nls.localize(
|
|
35
|
-
export const editorIndentGuide6 = registerColor('editorIndentGuide.background6', '#00000000', nls.localize(
|
|
36
|
-
export const editorActiveIndentGuide1 = registerColor('editorIndentGuide.activeBackground1', deprecatedEditorActiveIndentGuides, nls.localize(
|
|
37
|
-
export const editorActiveIndentGuide2 = registerColor('editorIndentGuide.activeBackground2', '#00000000', nls.localize(
|
|
38
|
-
export const editorActiveIndentGuide3 = registerColor('editorIndentGuide.activeBackground3', '#00000000', nls.localize(
|
|
39
|
-
export const editorActiveIndentGuide4 = registerColor('editorIndentGuide.activeBackground4', '#00000000', nls.localize(
|
|
40
|
-
export const editorActiveIndentGuide5 = registerColor('editorIndentGuide.activeBackground5', '#00000000', nls.localize(
|
|
41
|
-
export const editorActiveIndentGuide6 = registerColor('editorIndentGuide.activeBackground6', '#00000000', nls.localize(
|
|
42
|
-
const deprecatedEditorActiveLineNumber = registerColor('editorActiveLineNumber.foreground', { dark: '#c6c6c6', light: '#0B216F', hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(
|
|
43
|
-
export const editorActiveLineNumber = registerColor('editorLineNumber.activeForeground', deprecatedEditorActiveLineNumber, nls.localize(
|
|
44
|
-
export const editorDimmedLineNumber = registerColor('editorLineNumber.dimmedForeground', null, nls.localize(
|
|
45
|
-
export const editorRuler = registerColor('editorRuler.foreground', { dark: '#5A5A5A', light: Color.lightgrey, hcDark: Color.white, hcLight: '#292929' }, nls.localize(
|
|
46
|
-
export const editorCodeLensForeground = registerColor('editorCodeLens.foreground', { dark: '#999999', light: '#919191', hcDark: '#999999', hcLight: '#292929' }, nls.localize(
|
|
47
|
-
export const editorBracketMatchBackground = registerColor('editorBracketMatch.background', { dark: '#0064001a', light: '#0064001a', hcDark: '#0064001a', hcLight: '#0000' }, nls.localize(
|
|
48
|
-
export const editorBracketMatchBorder = registerColor('editorBracketMatch.border', { dark: '#888', light: '#B9B9B9', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize(
|
|
49
|
-
export const editorBracketMatchForeground = registerColor('editorBracketMatch.foreground', null, nls.localize(
|
|
50
|
-
export const editorOverviewRulerBorder = registerColor('editorOverviewRuler.border', { dark: '#7f7f7f4d', light: '#7f7f7f4d', hcDark: '#7f7f7f4d', hcLight: '#666666' }, nls.localize(
|
|
51
|
-
export const editorOverviewRulerBackground = registerColor('editorOverviewRuler.background', null, nls.localize(
|
|
52
|
-
export const editorGutter = registerColor('editorGutter.background', editorBackground, nls.localize(
|
|
53
|
-
export const editorUnnecessaryCodeBorder = registerColor('editorUnnecessaryCode.border', { dark: null, light: null, hcDark: Color.fromHex('#fff').transparent(0.8), hcLight: contrastBorder }, nls.localize(
|
|
54
|
-
export const editorUnnecessaryCodeOpacity = registerColor('editorUnnecessaryCode.opacity', { dark: Color.fromHex('#000a'), light: Color.fromHex('#0007'), hcDark: null, hcLight: null }, nls.localize(
|
|
55
|
-
export const ghostTextBorder = registerColor('editorGhostText.border', { dark: null, light: null, hcDark: Color.fromHex('#fff').transparent(0.8), hcLight: Color.fromHex('#292929').transparent(0.8) }, nls.localize(
|
|
56
|
-
export const ghostTextForeground = registerColor('editorGhostText.foreground', { dark: Color.fromHex('#ffffff56'), light: Color.fromHex('#0007'), hcDark: null, hcLight: null }, nls.localize(
|
|
57
|
-
export const ghostTextBackground = registerColor('editorGhostText.background', null, nls.localize(
|
|
12
|
+
export const editorLineHighlight = registerColor('editor.lineHighlightBackground', null, nls.localize(658, 'Background color for the highlight of line at the cursor position.'));
|
|
13
|
+
export const editorInactiveLineHighlight = registerColor('editor.inactiveLineHighlightBackground', editorLineHighlight, nls.localize(659, 'Background color for the highlight of line at the cursor position when the editor is not focused.'));
|
|
14
|
+
export const editorLineHighlightBorder = registerColor('editor.lineHighlightBorder', { dark: '#282828', light: '#eeeeee', hcDark: '#f38518', hcLight: contrastBorder }, nls.localize(660, 'Background color for the border around the line at the cursor position.'));
|
|
15
|
+
export const editorRangeHighlight = registerColor('editor.rangeHighlightBackground', { dark: '#ffffff0b', light: '#fdff0033', hcDark: null, hcLight: null }, nls.localize(661, 'Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
16
|
+
export const editorRangeHighlightBorder = registerColor('editor.rangeHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(662, 'Background color of the border around highlighted ranges.'));
|
|
17
|
+
export const editorSymbolHighlight = registerColor('editor.symbolHighlightBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, nls.localize(663, 'Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
18
|
+
export const editorSymbolHighlightBorder = registerColor('editor.symbolHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(664, 'Background color of the border around highlighted symbols.'));
|
|
19
|
+
export const editorCursorForeground = registerColor('editorCursor.foreground', { dark: '#AEAFAD', light: Color.black, hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize(665, 'Color of the editor cursor.'));
|
|
20
|
+
export const editorCursorBackground = registerColor('editorCursor.background', null, nls.localize(666, 'The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.'));
|
|
21
|
+
export const editorMultiCursorPrimaryForeground = registerColor('editorMultiCursor.primary.foreground', editorCursorForeground, nls.localize(667, 'Color of the primary editor cursor when multiple cursors are present.'));
|
|
22
|
+
export const editorMultiCursorPrimaryBackground = registerColor('editorMultiCursor.primary.background', editorCursorBackground, nls.localize(668, 'The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.'));
|
|
23
|
+
export const editorMultiCursorSecondaryForeground = registerColor('editorMultiCursor.secondary.foreground', editorCursorForeground, nls.localize(669, 'Color of secondary editor cursors when multiple cursors are present.'));
|
|
24
|
+
export const editorMultiCursorSecondaryBackground = registerColor('editorMultiCursor.secondary.background', editorCursorBackground, nls.localize(670, 'The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.'));
|
|
25
|
+
export const editorWhitespaces = registerColor('editorWhitespace.foreground', { dark: '#e3e4e229', light: '#33333333', hcDark: '#e3e4e229', hcLight: '#CCCCCC' }, nls.localize(671, 'Color of whitespace characters in the editor.'));
|
|
26
|
+
export const editorWordWrapIndicator = registerColor('editorWordWrapIndicator.foreground', editorWhitespaces, nls.localize(672, 'Color of the indicator shown at the end of a soft wrapped line in the editor.'));
|
|
27
|
+
export const editorLineNumbers = registerColor('editorLineNumber.foreground', { dark: '#858585', light: '#237893', hcDark: Color.white, hcLight: '#292929' }, nls.localize(673, 'Color of editor line numbers.'));
|
|
28
|
+
export const deprecatedEditorIndentGuides = registerColor('editorIndentGuide.background', editorWhitespaces, nls.localize(674, 'Color of the editor indentation guides.'), false, nls.localize(675, '\'editorIndentGuide.background\' is deprecated. Use \'editorIndentGuide.background1\' instead.'));
|
|
29
|
+
export const deprecatedEditorActiveIndentGuides = registerColor('editorIndentGuide.activeBackground', editorWhitespaces, nls.localize(676, 'Color of the active editor indentation guides.'), false, nls.localize(677, '\'editorIndentGuide.activeBackground\' is deprecated. Use \'editorIndentGuide.activeBackground1\' instead.'));
|
|
30
|
+
export const editorIndentGuide1 = registerColor('editorIndentGuide.background1', deprecatedEditorIndentGuides, nls.localize(678, 'Color of the editor indentation guides (1).'));
|
|
31
|
+
export const editorIndentGuide2 = registerColor('editorIndentGuide.background2', '#00000000', nls.localize(679, 'Color of the editor indentation guides (2).'));
|
|
32
|
+
export const editorIndentGuide3 = registerColor('editorIndentGuide.background3', '#00000000', nls.localize(680, 'Color of the editor indentation guides (3).'));
|
|
33
|
+
export const editorIndentGuide4 = registerColor('editorIndentGuide.background4', '#00000000', nls.localize(681, 'Color of the editor indentation guides (4).'));
|
|
34
|
+
export const editorIndentGuide5 = registerColor('editorIndentGuide.background5', '#00000000', nls.localize(682, 'Color of the editor indentation guides (5).'));
|
|
35
|
+
export const editorIndentGuide6 = registerColor('editorIndentGuide.background6', '#00000000', nls.localize(683, 'Color of the editor indentation guides (6).'));
|
|
36
|
+
export const editorActiveIndentGuide1 = registerColor('editorIndentGuide.activeBackground1', deprecatedEditorActiveIndentGuides, nls.localize(684, 'Color of the active editor indentation guides (1).'));
|
|
37
|
+
export const editorActiveIndentGuide2 = registerColor('editorIndentGuide.activeBackground2', '#00000000', nls.localize(685, 'Color of the active editor indentation guides (2).'));
|
|
38
|
+
export const editorActiveIndentGuide3 = registerColor('editorIndentGuide.activeBackground3', '#00000000', nls.localize(686, 'Color of the active editor indentation guides (3).'));
|
|
39
|
+
export const editorActiveIndentGuide4 = registerColor('editorIndentGuide.activeBackground4', '#00000000', nls.localize(687, 'Color of the active editor indentation guides (4).'));
|
|
40
|
+
export const editorActiveIndentGuide5 = registerColor('editorIndentGuide.activeBackground5', '#00000000', nls.localize(688, 'Color of the active editor indentation guides (5).'));
|
|
41
|
+
export const editorActiveIndentGuide6 = registerColor('editorIndentGuide.activeBackground6', '#00000000', nls.localize(689, 'Color of the active editor indentation guides (6).'));
|
|
42
|
+
const deprecatedEditorActiveLineNumber = registerColor('editorActiveLineNumber.foreground', { dark: '#c6c6c6', light: '#0B216F', hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(690, 'Color of editor active line number'), false, nls.localize(691, 'Id is deprecated. Use \'editorLineNumber.activeForeground\' instead.'));
|
|
43
|
+
export const editorActiveLineNumber = registerColor('editorLineNumber.activeForeground', deprecatedEditorActiveLineNumber, nls.localize(692, 'Color of editor active line number'));
|
|
44
|
+
export const editorDimmedLineNumber = registerColor('editorLineNumber.dimmedForeground', null, nls.localize(693, 'Color of the final editor line when editor.renderFinalNewline is set to dimmed.'));
|
|
45
|
+
export const editorRuler = registerColor('editorRuler.foreground', { dark: '#5A5A5A', light: Color.lightgrey, hcDark: Color.white, hcLight: '#292929' }, nls.localize(694, 'Color of the editor rulers.'));
|
|
46
|
+
export const editorCodeLensForeground = registerColor('editorCodeLens.foreground', { dark: '#999999', light: '#919191', hcDark: '#999999', hcLight: '#292929' }, nls.localize(695, 'Foreground color of editor CodeLens'));
|
|
47
|
+
export const editorBracketMatchBackground = registerColor('editorBracketMatch.background', { dark: '#0064001a', light: '#0064001a', hcDark: '#0064001a', hcLight: '#0000' }, nls.localize(696, 'Background color behind matching brackets'));
|
|
48
|
+
export const editorBracketMatchBorder = registerColor('editorBracketMatch.border', { dark: '#888', light: '#B9B9B9', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize(697, 'Color for matching brackets boxes'));
|
|
49
|
+
export const editorBracketMatchForeground = registerColor('editorBracketMatch.foreground', null, nls.localize(698, 'Foreground color for matching brackets'));
|
|
50
|
+
export const editorOverviewRulerBorder = registerColor('editorOverviewRuler.border', { dark: '#7f7f7f4d', light: '#7f7f7f4d', hcDark: '#7f7f7f4d', hcLight: '#666666' }, nls.localize(699, 'Color of the overview ruler border.'));
|
|
51
|
+
export const editorOverviewRulerBackground = registerColor('editorOverviewRuler.background', null, nls.localize(700, 'Background color of the editor overview ruler.'));
|
|
52
|
+
export const editorGutter = registerColor('editorGutter.background', editorBackground, nls.localize(701, 'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.'));
|
|
53
|
+
export const editorUnnecessaryCodeBorder = registerColor('editorUnnecessaryCode.border', { dark: null, light: null, hcDark: Color.fromHex('#fff').transparent(0.8), hcLight: contrastBorder }, nls.localize(702, 'Border color of unnecessary (unused) source code in the editor.'));
|
|
54
|
+
export const editorUnnecessaryCodeOpacity = registerColor('editorUnnecessaryCode.opacity', { dark: Color.fromHex('#000a'), light: Color.fromHex('#0007'), hcDark: null, hcLight: null }, nls.localize(703, 'Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the \'editorUnnecessaryCode.border\' theme color to underline unnecessary code instead of fading it out.'));
|
|
55
|
+
export const ghostTextBorder = registerColor('editorGhostText.border', { dark: null, light: null, hcDark: Color.fromHex('#fff').transparent(0.8), hcLight: Color.fromHex('#292929').transparent(0.8) }, nls.localize(704, 'Border color of ghost text in the editor.'));
|
|
56
|
+
export const ghostTextForeground = registerColor('editorGhostText.foreground', { dark: Color.fromHex('#ffffff56'), light: Color.fromHex('#0007'), hcDark: null, hcLight: null }, nls.localize(705, 'Foreground color of the ghost text in the editor.'));
|
|
57
|
+
export const ghostTextBackground = registerColor('editorGhostText.background', null, nls.localize(706, 'Background color of the ghost text in the editor.'));
|
|
58
58
|
const rulerRangeDefault = new Color(new RGBA(0, 122, 204, 0.6));
|
|
59
|
-
export const overviewRulerRangeHighlight = registerColor('editorOverviewRuler.rangeHighlightForeground', rulerRangeDefault, nls.localize(
|
|
60
|
-
export const overviewRulerError = registerColor('editorOverviewRuler.errorForeground', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize(
|
|
61
|
-
export const overviewRulerWarning = registerColor('editorOverviewRuler.warningForeground', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, nls.localize(
|
|
62
|
-
export const overviewRulerInfo = registerColor('editorOverviewRuler.infoForeground', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, nls.localize(
|
|
63
|
-
export const editorBracketHighlightingForeground1 = registerColor('editorBracketHighlight.foreground1', { dark: '#FFD700', light: '#0431FAFF', hcDark: '#FFD700', hcLight: '#0431FAFF' }, nls.localize(
|
|
64
|
-
export const editorBracketHighlightingForeground2 = registerColor('editorBracketHighlight.foreground2', { dark: '#DA70D6', light: '#319331FF', hcDark: '#DA70D6', hcLight: '#319331FF' }, nls.localize(
|
|
65
|
-
export const editorBracketHighlightingForeground3 = registerColor('editorBracketHighlight.foreground3', { dark: '#179FFF', light: '#7B3814FF', hcDark: '#87CEFA', hcLight: '#7B3814FF' }, nls.localize(
|
|
66
|
-
export const editorBracketHighlightingForeground4 = registerColor('editorBracketHighlight.foreground4', '#00000000', nls.localize(
|
|
67
|
-
export const editorBracketHighlightingForeground5 = registerColor('editorBracketHighlight.foreground5', '#00000000', nls.localize(
|
|
68
|
-
export const editorBracketHighlightingForeground6 = registerColor('editorBracketHighlight.foreground6', '#00000000', nls.localize(
|
|
69
|
-
export const editorBracketHighlightingUnexpectedBracketForeground = registerColor('editorBracketHighlight.unexpectedBracket.foreground', { dark: new Color(new RGBA(255, 18, 18, 0.8)), light: new Color(new RGBA(255, 18, 18, 0.8)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize(
|
|
70
|
-
export const editorBracketPairGuideBackground1 = registerColor('editorBracketPairGuide.background1', '#00000000', nls.localize(
|
|
71
|
-
export const editorBracketPairGuideBackground2 = registerColor('editorBracketPairGuide.background2', '#00000000', nls.localize(
|
|
72
|
-
export const editorBracketPairGuideBackground3 = registerColor('editorBracketPairGuide.background3', '#00000000', nls.localize(
|
|
73
|
-
export const editorBracketPairGuideBackground4 = registerColor('editorBracketPairGuide.background4', '#00000000', nls.localize(
|
|
74
|
-
export const editorBracketPairGuideBackground5 = registerColor('editorBracketPairGuide.background5', '#00000000', nls.localize(
|
|
75
|
-
export const editorBracketPairGuideBackground6 = registerColor('editorBracketPairGuide.background6', '#00000000', nls.localize(
|
|
76
|
-
export const editorBracketPairGuideActiveBackground1 = registerColor('editorBracketPairGuide.activeBackground1', '#00000000', nls.localize(
|
|
77
|
-
export const editorBracketPairGuideActiveBackground2 = registerColor('editorBracketPairGuide.activeBackground2', '#00000000', nls.localize(
|
|
78
|
-
export const editorBracketPairGuideActiveBackground3 = registerColor('editorBracketPairGuide.activeBackground3', '#00000000', nls.localize(
|
|
79
|
-
export const editorBracketPairGuideActiveBackground4 = registerColor('editorBracketPairGuide.activeBackground4', '#00000000', nls.localize(
|
|
80
|
-
export const editorBracketPairGuideActiveBackground5 = registerColor('editorBracketPairGuide.activeBackground5', '#00000000', nls.localize(
|
|
81
|
-
export const editorBracketPairGuideActiveBackground6 = registerColor('editorBracketPairGuide.activeBackground6', '#00000000', nls.localize(
|
|
82
|
-
export const editorUnicodeHighlightBorder = registerColor('editorUnicodeHighlight.border', editorWarningForeground, nls.localize(
|
|
83
|
-
export const editorUnicodeHighlightBackground = registerColor('editorUnicodeHighlight.background', editorWarningBackground, nls.localize(
|
|
59
|
+
export const overviewRulerRangeHighlight = registerColor('editorOverviewRuler.rangeHighlightForeground', rulerRangeDefault, nls.localize(707, 'Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
60
|
+
export const overviewRulerError = registerColor('editorOverviewRuler.errorForeground', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize(708, 'Overview ruler marker color for errors.'));
|
|
61
|
+
export const overviewRulerWarning = registerColor('editorOverviewRuler.warningForeground', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, nls.localize(709, 'Overview ruler marker color for warnings.'));
|
|
62
|
+
export const overviewRulerInfo = registerColor('editorOverviewRuler.infoForeground', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, nls.localize(710, 'Overview ruler marker color for infos.'));
|
|
63
|
+
export const editorBracketHighlightingForeground1 = registerColor('editorBracketHighlight.foreground1', { dark: '#FFD700', light: '#0431FAFF', hcDark: '#FFD700', hcLight: '#0431FAFF' }, nls.localize(711, 'Foreground color of brackets (1). Requires enabling bracket pair colorization.'));
|
|
64
|
+
export const editorBracketHighlightingForeground2 = registerColor('editorBracketHighlight.foreground2', { dark: '#DA70D6', light: '#319331FF', hcDark: '#DA70D6', hcLight: '#319331FF' }, nls.localize(712, 'Foreground color of brackets (2). Requires enabling bracket pair colorization.'));
|
|
65
|
+
export const editorBracketHighlightingForeground3 = registerColor('editorBracketHighlight.foreground3', { dark: '#179FFF', light: '#7B3814FF', hcDark: '#87CEFA', hcLight: '#7B3814FF' }, nls.localize(713, 'Foreground color of brackets (3). Requires enabling bracket pair colorization.'));
|
|
66
|
+
export const editorBracketHighlightingForeground4 = registerColor('editorBracketHighlight.foreground4', '#00000000', nls.localize(714, 'Foreground color of brackets (4). Requires enabling bracket pair colorization.'));
|
|
67
|
+
export const editorBracketHighlightingForeground5 = registerColor('editorBracketHighlight.foreground5', '#00000000', nls.localize(715, 'Foreground color of brackets (5). Requires enabling bracket pair colorization.'));
|
|
68
|
+
export const editorBracketHighlightingForeground6 = registerColor('editorBracketHighlight.foreground6', '#00000000', nls.localize(716, 'Foreground color of brackets (6). Requires enabling bracket pair colorization.'));
|
|
69
|
+
export const editorBracketHighlightingUnexpectedBracketForeground = registerColor('editorBracketHighlight.unexpectedBracket.foreground', { dark: new Color(new RGBA(255, 18, 18, 0.8)), light: new Color(new RGBA(255, 18, 18, 0.8)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize(717, 'Foreground color of unexpected brackets.'));
|
|
70
|
+
export const editorBracketPairGuideBackground1 = registerColor('editorBracketPairGuide.background1', '#00000000', nls.localize(718, 'Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.'));
|
|
71
|
+
export const editorBracketPairGuideBackground2 = registerColor('editorBracketPairGuide.background2', '#00000000', nls.localize(719, 'Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.'));
|
|
72
|
+
export const editorBracketPairGuideBackground3 = registerColor('editorBracketPairGuide.background3', '#00000000', nls.localize(720, 'Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.'));
|
|
73
|
+
export const editorBracketPairGuideBackground4 = registerColor('editorBracketPairGuide.background4', '#00000000', nls.localize(721, 'Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.'));
|
|
74
|
+
export const editorBracketPairGuideBackground5 = registerColor('editorBracketPairGuide.background5', '#00000000', nls.localize(722, 'Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.'));
|
|
75
|
+
export const editorBracketPairGuideBackground6 = registerColor('editorBracketPairGuide.background6', '#00000000', nls.localize(723, 'Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.'));
|
|
76
|
+
export const editorBracketPairGuideActiveBackground1 = registerColor('editorBracketPairGuide.activeBackground1', '#00000000', nls.localize(724, 'Background color of active bracket pair guides (1). Requires enabling bracket pair guides.'));
|
|
77
|
+
export const editorBracketPairGuideActiveBackground2 = registerColor('editorBracketPairGuide.activeBackground2', '#00000000', nls.localize(725, 'Background color of active bracket pair guides (2). Requires enabling bracket pair guides.'));
|
|
78
|
+
export const editorBracketPairGuideActiveBackground3 = registerColor('editorBracketPairGuide.activeBackground3', '#00000000', nls.localize(726, 'Background color of active bracket pair guides (3). Requires enabling bracket pair guides.'));
|
|
79
|
+
export const editorBracketPairGuideActiveBackground4 = registerColor('editorBracketPairGuide.activeBackground4', '#00000000', nls.localize(727, 'Background color of active bracket pair guides (4). Requires enabling bracket pair guides.'));
|
|
80
|
+
export const editorBracketPairGuideActiveBackground5 = registerColor('editorBracketPairGuide.activeBackground5', '#00000000', nls.localize(728, 'Background color of active bracket pair guides (5). Requires enabling bracket pair guides.'));
|
|
81
|
+
export const editorBracketPairGuideActiveBackground6 = registerColor('editorBracketPairGuide.activeBackground6', '#00000000', nls.localize(729, 'Background color of active bracket pair guides (6). Requires enabling bracket pair guides.'));
|
|
82
|
+
export const editorUnicodeHighlightBorder = registerColor('editorUnicodeHighlight.border', editorWarningForeground, nls.localize(730, 'Border color used to highlight unicode characters.'));
|
|
83
|
+
export const editorUnicodeHighlightBackground = registerColor('editorUnicodeHighlight.background', editorWarningBackground, nls.localize(731, 'Background color used to highlight unicode characters.'));
|
|
84
84
|
// contains all color rules that used to defined in editor/browser/widget/editor.css
|
|
85
85
|
registerThemingParticipant((theme, collector) => {
|
|
86
86
|
const background = theme.getColor(editorBackground);
|
|
@@ -23,6 +23,22 @@ export class TextEdit {
|
|
|
23
23
|
this.replacements = replacements;
|
|
24
24
|
assertFn(() => checkAdjacentItems(replacements, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Joins touching edits and removes empty edits.
|
|
28
|
+
*/
|
|
29
|
+
normalize() {
|
|
30
|
+
const replacements = [];
|
|
31
|
+
for (const r of this.replacements) {
|
|
32
|
+
if (replacements.length > 0 && replacements[replacements.length - 1].range.getEndPosition().equals(r.range.getStartPosition())) {
|
|
33
|
+
const last = replacements[replacements.length - 1];
|
|
34
|
+
replacements[replacements.length - 1] = new TextReplacement(last.range.plusRange(r.range), last.text + r.text);
|
|
35
|
+
}
|
|
36
|
+
else if (!r.isEmpty) {
|
|
37
|
+
replacements.push(r);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return new TextEdit(replacements);
|
|
41
|
+
}
|
|
26
42
|
mapPosition(position) {
|
|
27
43
|
let lineDelta = 0;
|
|
28
44
|
let curLine = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/core/edits/textEdit.ts","vs/editor/common/core/edits/textEdit.ts"],"names":[],"mappings":"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","file":"textEdit.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 { compareBy } from '../../../../base/common/arrays.js';\nimport { assertFn, checkAdjacentItems } from '../../../../base/common/assert.js';\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { commonPrefixLength, commonSuffixLength } from '../../../../base/common/strings.js';\nimport { BaseStringEdit, StringReplacement } from './stringEdit.js';\nimport { Position } from '../position.js';\nimport { Range } from '../range.js';\nimport { TextLength } from '../text/textLength.js';\nimport { AbstractText, StringText } from '../text/abstractText.js';\nimport { IEquatable } from '../../../../base/common/equals.js';\n\nexport class TextEdit {\n\tpublic static fromStringEdit(edit: BaseStringEdit, initialState: AbstractText): TextEdit {\n\t\tconst edits = edit.replacements.map(e => TextReplacement.fromStringReplacement(e, initialState));\n\t\treturn new TextEdit(edits);\n\t}\n\n\tpublic static fromParallelReplacementsUnsorted(replacements: readonly TextReplacement[]): TextEdit {\n\t\tconst r = replacements.slice().sort(compareBy(i => i.range, Range.compareRangesUsingStarts));\n\t\treturn new TextEdit(r);\n\t}\n\n\tconstructor(\n\t\tpublic readonly replacements: readonly TextReplacement[]\n\t) {\n\t\tassertFn(() => checkAdjacentItems(replacements, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n\t}\n\n\tmapPosition(position: Position): Position | Range {\n\t\tlet lineDelta = 0;\n\t\tlet curLine = 0;\n\t\tlet columnDeltaInCurLine = 0;\n\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst start = replacement.range.getStartPosition();\n\n\t\t\tif (position.isBeforeOrEqual(start)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst end = replacement.range.getEndPosition();\n\t\t\tconst len = TextLength.ofText(replacement.text);\n\t\t\tif (position.isBefore(end)) {\n\t\t\t\tconst startPos = new Position(start.lineNumber + lineDelta, start.column + (start.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t\t\t\tconst endPos = len.addToPosition(startPos);\n\t\t\t\treturn rangeFromPositions(startPos, endPos);\n\t\t\t}\n\n\t\t\tif (start.lineNumber + lineDelta !== curLine) {\n\t\t\t\tcolumnDeltaInCurLine = 0;\n\t\t\t}\n\n\t\t\tlineDelta += len.lineCount - (replacement.range.endLineNumber - replacement.range.startLineNumber);\n\n\t\t\tif (len.lineCount === 0) {\n\t\t\t\tif (end.lineNumber !== start.lineNumber) {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - 1);\n\t\t\t\t} else {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - start.column);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcolumnDeltaInCurLine = len.columnCount;\n\t\t\t}\n\t\t\tcurLine = end.lineNumber + lineDelta;\n\t\t}\n\n\t\treturn new Position(position.lineNumber + lineDelta, position.column + (position.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t}\n\n\tmapRange(range: Range): Range {\n\t\tfunction getStart(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getStartPosition();\n\t\t}\n\n\t\tfunction getEnd(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getEndPosition();\n\t\t}\n\n\t\tconst start = getStart(this.mapPosition(range.getStartPosition()));\n\t\tconst end = getEnd(this.mapPosition(range.getEndPosition()));\n\n\t\treturn rangeFromPositions(start, end);\n\t}\n\n\tapply(text: AbstractText): string {\n\t\tlet result = '';\n\t\tlet lastEditEnd = new Position(1, 1);\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst editRange = replacement.range;\n\t\t\tconst editStart = editRange.getStartPosition();\n\t\t\tconst editEnd = editRange.getEndPosition();\n\n\t\t\tconst r = rangeFromPositions(lastEditEnd, editStart);\n\t\t\tif (!r.isEmpty()) {\n\t\t\t\tresult += text.getValueOfRange(r);\n\t\t\t}\n\t\t\tresult += replacement.text;\n\t\t\tlastEditEnd = editEnd;\n\t\t}\n\t\tconst r = rangeFromPositions(lastEditEnd, text.endPositionExclusive);\n\t\tif (!r.isEmpty()) {\n\t\t\tresult += text.getValueOfRange(r);\n\t\t}\n\t\treturn result;\n\t}\n\n\tapplyToString(str: string): string {\n\t\tconst strText = new StringText(str);\n\t\treturn this.apply(strText);\n\t}\n\n\tgetNewRanges(): Range[] {\n\t\tconst newRanges: Range[] = [];\n\t\tlet previousEditEndLineNumber = 0;\n\t\tlet lineOffset = 0;\n\t\tlet columnOffset = 0;\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst textLength = TextLength.ofText(replacement.text);\n\t\t\tconst newRangeStart = Position.lift({\n\t\t\t\tlineNumber: replacement.range.startLineNumber + lineOffset,\n\t\t\t\tcolumn: replacement.range.startColumn + (replacement.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n\t\t\t});\n\t\t\tconst newRange = textLength.createRange(newRangeStart);\n\t\t\tnewRanges.push(newRange);\n\t\t\tlineOffset = newRange.endLineNumber - replacement.range.endLineNumber;\n\t\t\tcolumnOffset = newRange.endColumn - replacement.range.endColumn;\n\t\t\tpreviousEditEndLineNumber = replacement.range.endLineNumber;\n\t\t}\n\t\treturn newRanges;\n\t}\n\n\ttoReplacement(text: AbstractText): TextReplacement {\n\t\tif (this.replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (this.replacements.length === 1) { return this.replacements[0]; }\n\n\t\tconst startPos = this.replacements[0].range.getStartPosition();\n\t\tconst endPos = this.replacements[this.replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < this.replacements.length; i++) {\n\t\t\tconst curEdit = this.replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < this.replacements.length - 1) {\n\t\t\t\tconst nextEdit = this.replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = text.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\ttoString(text: AbstractText | string | undefined): string {\n\t\tif (text === undefined) {\n\t\t\treturn this.replacements.map(edit => edit.toString()).join('\\n');\n\t\t}\n\n\t\tif (typeof text === 'string') {\n\t\t\treturn this.toString(new StringText(text));\n\t\t}\n\n\t\tif (this.replacements.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn this.replacements.map(r => {\n\t\t\tconst maxLength = 10;\n\t\t\tconst originalText = text.getValueOfRange(r.range);\n\n\t\t\t// Get text before the edit\n\t\t\tconst beforeRange = Range.fromPositions(\n\t\t\t\tnew Position(Math.max(1, r.range.startLineNumber - 1), 1),\n\t\t\t\tr.range.getStartPosition()\n\t\t\t);\n\t\t\tlet beforeText = text.getValueOfRange(beforeRange);\n\t\t\tif (beforeText.length > maxLength) {\n\t\t\t\tbeforeText = '...' + beforeText.substring(beforeText.length - maxLength);\n\t\t\t}\n\n\t\t\t// Get text after the edit\n\t\t\tconst afterRange = Range.fromPositions(\n\t\t\t\tr.range.getEndPosition(),\n\t\t\t\tnew Position(r.range.endLineNumber + 1, 1)\n\t\t\t);\n\t\t\tlet afterText = text.getValueOfRange(afterRange);\n\t\t\tif (afterText.length > maxLength) {\n\t\t\t\tafterText = afterText.substring(0, maxLength) + '...';\n\t\t\t}\n\n\t\t\t// Format the replaced text\n\t\t\tlet replacedText = originalText;\n\t\t\tif (replacedText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\treplacedText = replacedText.substring(0, halfMax) + '...' +\n\t\t\t\t\treplacedText.substring(replacedText.length - halfMax);\n\t\t\t}\n\n\t\t\t// Format the new text\n\t\t\tlet newText = r.text;\n\t\t\tif (newText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\tnewText = newText.substring(0, halfMax) + '...' +\n\t\t\t\t\tnewText.substring(newText.length - halfMax);\n\t\t\t}\n\n\t\t\tif (replacedText.length === 0) {\n\t\t\t\t// allow-any-unicode-next-line\n\t\t\t\treturn `${beforeText}❰${newText}❱${afterText}`;\n\t\t\t}\n\t\t\t// allow-any-unicode-next-line\n\t\t\treturn `${beforeText}❰${replacedText}↦${newText}❱${afterText}`;\n\t\t}).join('\\n');\n\t}\n}\n\nexport class TextReplacement implements IEquatable<TextReplacement> {\n\tpublic static joinReplacements(replacements: TextReplacement[], initialValue: AbstractText): TextReplacement {\n\t\tif (replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (replacements.length === 1) { return replacements[0]; }\n\n\t\tconst startPos = replacements[0].range.getStartPosition();\n\t\tconst endPos = replacements[replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < replacements.length; i++) {\n\t\t\tconst curEdit = replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < replacements.length - 1) {\n\t\t\t\tconst nextEdit = replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = initialValue.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\tpublic static fromStringReplacement(replacement: StringReplacement, initialState: AbstractText): TextReplacement {\n\t\treturn new TextReplacement(initialState.getTransformer().getRange(replacement.replaceRange), replacement.newText);\n\t}\n\n\tpublic static delete(range: Range): TextReplacement {\n\t\treturn new TextReplacement(range, '');\n\t}\n\n\tconstructor(\n\t\tpublic readonly range: Range,\n\t\tpublic readonly text: string,\n\t) {\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.range.isEmpty() && this.text.length === 0;\n\t}\n\n\tstatic equals(first: TextReplacement, second: TextReplacement) {\n\t\treturn first.range.equalsRange(second.range) && first.text === second.text;\n\t}\n\n\tpublic equals(other: TextReplacement): boolean {\n\t\treturn TextReplacement.equals(this, other);\n\t}\n\n\tpublic removeCommonPrefixAndSuffix(text: AbstractText): TextReplacement {\n\t\tconst prefix = this.removeCommonPrefix(text);\n\t\tconst suffix = prefix.removeCommonSuffix(text);\n\t\treturn suffix;\n\t}\n\n\tpublic removeCommonPrefix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonPrefixLen = commonPrefixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst start = TextLength.ofText(normalizedOriginalText.substring(0, commonPrefixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(commonPrefixLen);\n\t\tconst range = Range.fromPositions(start, this.range.getEndPosition());\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic removeCommonSuffix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonSuffixLen = commonSuffixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst end = TextLength.ofText(normalizedOriginalText.substring(0, normalizedOriginalText.length - commonSuffixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(0, normalizedModifiedText.length - commonSuffixLen);\n\t\tconst range = Range.fromPositions(this.range.getStartPosition(), end);\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic toString(): string {\n\t\tconst start = this.range.getStartPosition();\n\t\tconst end = this.range.getEndPosition();\n\t\treturn `(${start.lineNumber},${start.column} -> ${end.lineNumber},${end.column}): \"${this.text}\"`;\n\t}\n}\n\nfunction rangeFromPositions(start: Position, end: Position): Range {\n\tif (start.lineNumber === end.lineNumber && start.column === Number.MAX_SAFE_INTEGER) {\n\t\treturn Range.fromPositions(end, end);\n\t} else if (!start.isBeforeOrEqual(end)) {\n\t\tthrow new BugIndicatingError('start must be before end');\n\t}\n\treturn new Range(start.lineNumber, start.column, end.lineNumber, end.column);\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 { compareBy } from '../../../../base/common/arrays.js';\nimport { assertFn, checkAdjacentItems } from '../../../../base/common/assert.js';\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { commonPrefixLength, commonSuffixLength } from '../../../../base/common/strings.js';\nimport { BaseStringEdit, StringReplacement } from './stringEdit.js';\nimport { Position } from '../position.js';\nimport { Range } from '../range.js';\nimport { TextLength } from '../text/textLength.js';\nimport { AbstractText, StringText } from '../text/abstractText.js';\nimport { IEquatable } from '../../../../base/common/equals.js';\n\nexport class TextEdit {\n\tpublic static fromStringEdit(edit: BaseStringEdit, initialState: AbstractText): TextEdit {\n\t\tconst edits = edit.replacements.map(e => TextReplacement.fromStringReplacement(e, initialState));\n\t\treturn new TextEdit(edits);\n\t}\n\n\tpublic static fromParallelReplacementsUnsorted(replacements: readonly TextReplacement[]): TextEdit {\n\t\tconst r = replacements.slice().sort(compareBy(i => i.range, Range.compareRangesUsingStarts));\n\t\treturn new TextEdit(r);\n\t}\n\n\tconstructor(\n\t\tpublic readonly replacements: readonly TextReplacement[]\n\t) {\n\t\tassertFn(() => checkAdjacentItems(replacements, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n\t}\n\n\tmapPosition(position: Position): Position | Range {\n\t\tlet lineDelta = 0;\n\t\tlet curLine = 0;\n\t\tlet columnDeltaInCurLine = 0;\n\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst start = replacement.range.getStartPosition();\n\n\t\t\tif (position.isBeforeOrEqual(start)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst end = replacement.range.getEndPosition();\n\t\t\tconst len = TextLength.ofText(replacement.text);\n\t\t\tif (position.isBefore(end)) {\n\t\t\t\tconst startPos = new Position(start.lineNumber + lineDelta, start.column + (start.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t\t\t\tconst endPos = len.addToPosition(startPos);\n\t\t\t\treturn rangeFromPositions(startPos, endPos);\n\t\t\t}\n\n\t\t\tif (start.lineNumber + lineDelta !== curLine) {\n\t\t\t\tcolumnDeltaInCurLine = 0;\n\t\t\t}\n\n\t\t\tlineDelta += len.lineCount - (replacement.range.endLineNumber - replacement.range.startLineNumber);\n\n\t\t\tif (len.lineCount === 0) {\n\t\t\t\tif (end.lineNumber !== start.lineNumber) {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - 1);\n\t\t\t\t} else {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - start.column);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcolumnDeltaInCurLine = len.columnCount;\n\t\t\t}\n\t\t\tcurLine = end.lineNumber + lineDelta;\n\t\t}\n\n\t\treturn new Position(position.lineNumber + lineDelta, position.column + (position.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t}\n\n\tmapRange(range: Range): Range {\n\t\tfunction getStart(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getStartPosition();\n\t\t}\n\n\t\tfunction getEnd(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getEndPosition();\n\t\t}\n\n\t\tconst start = getStart(this.mapPosition(range.getStartPosition()));\n\t\tconst end = getEnd(this.mapPosition(range.getEndPosition()));\n\n\t\treturn rangeFromPositions(start, end);\n\t}\n\n\tapply(text: AbstractText): string {\n\t\tlet result = '';\n\t\tlet lastEditEnd = new Position(1, 1);\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst editRange = replacement.range;\n\t\t\tconst editStart = editRange.getStartPosition();\n\t\t\tconst editEnd = editRange.getEndPosition();\n\n\t\t\tconst r = rangeFromPositions(lastEditEnd, editStart);\n\t\t\tif (!r.isEmpty()) {\n\t\t\t\tresult += text.getValueOfRange(r);\n\t\t\t}\n\t\t\tresult += replacement.text;\n\t\t\tlastEditEnd = editEnd;\n\t\t}\n\t\tconst r = rangeFromPositions(lastEditEnd, text.endPositionExclusive);\n\t\tif (!r.isEmpty()) {\n\t\t\tresult += text.getValueOfRange(r);\n\t\t}\n\t\treturn result;\n\t}\n\n\tapplyToString(str: string): string {\n\t\tconst strText = new StringText(str);\n\t\treturn this.apply(strText);\n\t}\n\n\tgetNewRanges(): Range[] {\n\t\tconst newRanges: Range[] = [];\n\t\tlet previousEditEndLineNumber = 0;\n\t\tlet lineOffset = 0;\n\t\tlet columnOffset = 0;\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst textLength = TextLength.ofText(replacement.text);\n\t\t\tconst newRangeStart = Position.lift({\n\t\t\t\tlineNumber: replacement.range.startLineNumber + lineOffset,\n\t\t\t\tcolumn: replacement.range.startColumn + (replacement.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n\t\t\t});\n\t\t\tconst newRange = textLength.createRange(newRangeStart);\n\t\t\tnewRanges.push(newRange);\n\t\t\tlineOffset = newRange.endLineNumber - replacement.range.endLineNumber;\n\t\t\tcolumnOffset = newRange.endColumn - replacement.range.endColumn;\n\t\t\tpreviousEditEndLineNumber = replacement.range.endLineNumber;\n\t\t}\n\t\treturn newRanges;\n\t}\n\n\ttoReplacement(text: AbstractText): TextReplacement {\n\t\tif (this.replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (this.replacements.length === 1) { return this.replacements[0]; }\n\n\t\tconst startPos = this.replacements[0].range.getStartPosition();\n\t\tconst endPos = this.replacements[this.replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < this.replacements.length; i++) {\n\t\t\tconst curEdit = this.replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < this.replacements.length - 1) {\n\t\t\t\tconst nextEdit = this.replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = text.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\ttoString(text: AbstractText | string | undefined): string {\n\t\tif (text === undefined) {\n\t\t\treturn this.replacements.map(edit => edit.toString()).join('\\n');\n\t\t}\n\n\t\tif (typeof text === 'string') {\n\t\t\treturn this.toString(new StringText(text));\n\t\t}\n\n\t\tif (this.replacements.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn this.replacements.map(r => {\n\t\t\tconst maxLength = 10;\n\t\t\tconst originalText = text.getValueOfRange(r.range);\n\n\t\t\t// Get text before the edit\n\t\t\tconst beforeRange = Range.fromPositions(\n\t\t\t\tnew Position(Math.max(1, r.range.startLineNumber - 1), 1),\n\t\t\t\tr.range.getStartPosition()\n\t\t\t);\n\t\t\tlet beforeText = text.getValueOfRange(beforeRange);\n\t\t\tif (beforeText.length > maxLength) {\n\t\t\t\tbeforeText = '...' + beforeText.substring(beforeText.length - maxLength);\n\t\t\t}\n\n\t\t\t// Get text after the edit\n\t\t\tconst afterRange = Range.fromPositions(\n\t\t\t\tr.range.getEndPosition(),\n\t\t\t\tnew Position(r.range.endLineNumber + 1, 1)\n\t\t\t);\n\t\t\tlet afterText = text.getValueOfRange(afterRange);\n\t\t\tif (afterText.length > maxLength) {\n\t\t\t\tafterText = afterText.substring(0, maxLength) + '...';\n\t\t\t}\n\n\t\t\t// Format the replaced text\n\t\t\tlet replacedText = originalText;\n\t\t\tif (replacedText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\treplacedText = replacedText.substring(0, halfMax) + '...' +\n\t\t\t\t\treplacedText.substring(replacedText.length - halfMax);\n\t\t\t}\n\n\t\t\t// Format the new text\n\t\t\tlet newText = r.text;\n\t\t\tif (newText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\tnewText = newText.substring(0, halfMax) + '...' +\n\t\t\t\t\tnewText.substring(newText.length - halfMax);\n\t\t\t}\n\n\t\t\tif (replacedText.length === 0) {\n\t\t\t\t// allow-any-unicode-next-line\n\t\t\t\treturn `${beforeText}❰${newText}❱${afterText}`;\n\t\t\t}\n\t\t\t// allow-any-unicode-next-line\n\t\t\treturn `${beforeText}❰${replacedText}↦${newText}❱${afterText}`;\n\t\t}).join('\\n');\n\t}\n}\n\nexport class TextReplacement implements IEquatable<TextReplacement> {\n\tpublic static joinReplacements(replacements: TextReplacement[], initialValue: AbstractText): TextReplacement {\n\t\tif (replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (replacements.length === 1) { return replacements[0]; }\n\n\t\tconst startPos = replacements[0].range.getStartPosition();\n\t\tconst endPos = replacements[replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < replacements.length; i++) {\n\t\t\tconst curEdit = replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < replacements.length - 1) {\n\t\t\t\tconst nextEdit = replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = initialValue.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\tpublic static fromStringReplacement(replacement: StringReplacement, initialState: AbstractText): TextReplacement {\n\t\treturn new TextReplacement(initialState.getTransformer().getRange(replacement.replaceRange), replacement.newText);\n\t}\n\n\tpublic static delete(range: Range): TextReplacement {\n\t\treturn new TextReplacement(range, '');\n\t}\n\n\tconstructor(\n\t\tpublic readonly range: Range,\n\t\tpublic readonly text: string,\n\t) {\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.range.isEmpty() && this.text.length === 0;\n\t}\n\n\tstatic equals(first: TextReplacement, second: TextReplacement) {\n\t\treturn first.range.equalsRange(second.range) && first.text === second.text;\n\t}\n\n\tpublic equals(other: TextReplacement): boolean {\n\t\treturn TextReplacement.equals(this, other);\n\t}\n\n\tpublic removeCommonPrefixAndSuffix(text: AbstractText): TextReplacement {\n\t\tconst prefix = this.removeCommonPrefix(text);\n\t\tconst suffix = prefix.removeCommonSuffix(text);\n\t\treturn suffix;\n\t}\n\n\tpublic removeCommonPrefix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonPrefixLen = commonPrefixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst start = TextLength.ofText(normalizedOriginalText.substring(0, commonPrefixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(commonPrefixLen);\n\t\tconst range = Range.fromPositions(start, this.range.getEndPosition());\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic removeCommonSuffix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonSuffixLen = commonSuffixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst end = TextLength.ofText(normalizedOriginalText.substring(0, normalizedOriginalText.length - commonSuffixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(0, normalizedModifiedText.length - commonSuffixLen);\n\t\tconst range = Range.fromPositions(this.range.getStartPosition(), end);\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic toString(): string {\n\t\tconst start = this.range.getStartPosition();\n\t\tconst end = this.range.getEndPosition();\n\t\treturn `(${start.lineNumber},${start.column} -> ${end.lineNumber},${end.column}): \"${this.text}\"`;\n\t}\n}\n\nfunction rangeFromPositions(start: Position, end: Position): Range {\n\tif (start.lineNumber === end.lineNumber && start.column === Number.MAX_SAFE_INTEGER) {\n\t\treturn Range.fromPositions(end, end);\n\t} else if (!start.isBeforeOrEqual(end)) {\n\t\tthrow new BugIndicatingError('start must be before end');\n\t}\n\treturn new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/core/edits/textEdit.ts","vs/editor/common/core/edits/textEdit.ts"],"names":[],"mappings":"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","file":"textEdit.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 { compareBy } from '../../../../base/common/arrays.js';\nimport { assertFn, checkAdjacentItems } from '../../../../base/common/assert.js';\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { commonPrefixLength, commonSuffixLength } from '../../../../base/common/strings.js';\nimport { BaseStringEdit, StringReplacement } from './stringEdit.js';\nimport { Position } from '../position.js';\nimport { Range } from '../range.js';\nimport { TextLength } from '../text/textLength.js';\nimport { AbstractText, StringText } from '../text/abstractText.js';\nimport { IEquatable } from '../../../../base/common/equals.js';\n\nexport class TextEdit {\n\tpublic static fromStringEdit(edit: BaseStringEdit, initialState: AbstractText): TextEdit {\n\t\tconst edits = edit.replacements.map(e => TextReplacement.fromStringReplacement(e, initialState));\n\t\treturn new TextEdit(edits);\n\t}\n\n\tpublic static fromParallelReplacementsUnsorted(replacements: readonly TextReplacement[]): TextEdit {\n\t\tconst r = replacements.slice().sort(compareBy(i => i.range, Range.compareRangesUsingStarts));\n\t\treturn new TextEdit(r);\n\t}\n\n\tconstructor(\n\t\tpublic readonly replacements: readonly TextReplacement[]\n\t) {\n\t\tassertFn(() => checkAdjacentItems(replacements, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n\t}\n\n\t/**\n\t * Joins touching edits and removes empty edits.\n\t */\n\tnormalize(): TextEdit {\n\t\tconst replacements: TextReplacement[] = [];\n\t\tfor (const r of this.replacements) {\n\t\t\tif (replacements.length > 0 && replacements[replacements.length - 1].range.getEndPosition().equals(r.range.getStartPosition())) {\n\t\t\t\tconst last = replacements[replacements.length - 1];\n\t\t\t\treplacements[replacements.length - 1] = new TextReplacement(last.range.plusRange(r.range), last.text + r.text);\n\t\t\t} else if (!r.isEmpty) {\n\t\t\t\treplacements.push(r);\n\t\t\t}\n\t\t}\n\t\treturn new TextEdit(replacements);\n\t}\n\n\tmapPosition(position: Position): Position | Range {\n\t\tlet lineDelta = 0;\n\t\tlet curLine = 0;\n\t\tlet columnDeltaInCurLine = 0;\n\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst start = replacement.range.getStartPosition();\n\n\t\t\tif (position.isBeforeOrEqual(start)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst end = replacement.range.getEndPosition();\n\t\t\tconst len = TextLength.ofText(replacement.text);\n\t\t\tif (position.isBefore(end)) {\n\t\t\t\tconst startPos = new Position(start.lineNumber + lineDelta, start.column + (start.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t\t\t\tconst endPos = len.addToPosition(startPos);\n\t\t\t\treturn rangeFromPositions(startPos, endPos);\n\t\t\t}\n\n\t\t\tif (start.lineNumber + lineDelta !== curLine) {\n\t\t\t\tcolumnDeltaInCurLine = 0;\n\t\t\t}\n\n\t\t\tlineDelta += len.lineCount - (replacement.range.endLineNumber - replacement.range.startLineNumber);\n\n\t\t\tif (len.lineCount === 0) {\n\t\t\t\tif (end.lineNumber !== start.lineNumber) {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - 1);\n\t\t\t\t} else {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - start.column);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcolumnDeltaInCurLine = len.columnCount;\n\t\t\t}\n\t\t\tcurLine = end.lineNumber + lineDelta;\n\t\t}\n\n\t\treturn new Position(position.lineNumber + lineDelta, position.column + (position.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t}\n\n\tmapRange(range: Range): Range {\n\t\tfunction getStart(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getStartPosition();\n\t\t}\n\n\t\tfunction getEnd(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getEndPosition();\n\t\t}\n\n\t\tconst start = getStart(this.mapPosition(range.getStartPosition()));\n\t\tconst end = getEnd(this.mapPosition(range.getEndPosition()));\n\n\t\treturn rangeFromPositions(start, end);\n\t}\n\n\tapply(text: AbstractText): string {\n\t\tlet result = '';\n\t\tlet lastEditEnd = new Position(1, 1);\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst editRange = replacement.range;\n\t\t\tconst editStart = editRange.getStartPosition();\n\t\t\tconst editEnd = editRange.getEndPosition();\n\n\t\t\tconst r = rangeFromPositions(lastEditEnd, editStart);\n\t\t\tif (!r.isEmpty()) {\n\t\t\t\tresult += text.getValueOfRange(r);\n\t\t\t}\n\t\t\tresult += replacement.text;\n\t\t\tlastEditEnd = editEnd;\n\t\t}\n\t\tconst r = rangeFromPositions(lastEditEnd, text.endPositionExclusive);\n\t\tif (!r.isEmpty()) {\n\t\t\tresult += text.getValueOfRange(r);\n\t\t}\n\t\treturn result;\n\t}\n\n\tapplyToString(str: string): string {\n\t\tconst strText = new StringText(str);\n\t\treturn this.apply(strText);\n\t}\n\n\tgetNewRanges(): Range[] {\n\t\tconst newRanges: Range[] = [];\n\t\tlet previousEditEndLineNumber = 0;\n\t\tlet lineOffset = 0;\n\t\tlet columnOffset = 0;\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst textLength = TextLength.ofText(replacement.text);\n\t\t\tconst newRangeStart = Position.lift({\n\t\t\t\tlineNumber: replacement.range.startLineNumber + lineOffset,\n\t\t\t\tcolumn: replacement.range.startColumn + (replacement.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n\t\t\t});\n\t\t\tconst newRange = textLength.createRange(newRangeStart);\n\t\t\tnewRanges.push(newRange);\n\t\t\tlineOffset = newRange.endLineNumber - replacement.range.endLineNumber;\n\t\t\tcolumnOffset = newRange.endColumn - replacement.range.endColumn;\n\t\t\tpreviousEditEndLineNumber = replacement.range.endLineNumber;\n\t\t}\n\t\treturn newRanges;\n\t}\n\n\ttoReplacement(text: AbstractText): TextReplacement {\n\t\tif (this.replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (this.replacements.length === 1) { return this.replacements[0]; }\n\n\t\tconst startPos = this.replacements[0].range.getStartPosition();\n\t\tconst endPos = this.replacements[this.replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < this.replacements.length; i++) {\n\t\t\tconst curEdit = this.replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < this.replacements.length - 1) {\n\t\t\t\tconst nextEdit = this.replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = text.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\ttoString(text: AbstractText | string | undefined): string {\n\t\tif (text === undefined) {\n\t\t\treturn this.replacements.map(edit => edit.toString()).join('\\n');\n\t\t}\n\n\t\tif (typeof text === 'string') {\n\t\t\treturn this.toString(new StringText(text));\n\t\t}\n\n\t\tif (this.replacements.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn this.replacements.map(r => {\n\t\t\tconst maxLength = 10;\n\t\t\tconst originalText = text.getValueOfRange(r.range);\n\n\t\t\t// Get text before the edit\n\t\t\tconst beforeRange = Range.fromPositions(\n\t\t\t\tnew Position(Math.max(1, r.range.startLineNumber - 1), 1),\n\t\t\t\tr.range.getStartPosition()\n\t\t\t);\n\t\t\tlet beforeText = text.getValueOfRange(beforeRange);\n\t\t\tif (beforeText.length > maxLength) {\n\t\t\t\tbeforeText = '...' + beforeText.substring(beforeText.length - maxLength);\n\t\t\t}\n\n\t\t\t// Get text after the edit\n\t\t\tconst afterRange = Range.fromPositions(\n\t\t\t\tr.range.getEndPosition(),\n\t\t\t\tnew Position(r.range.endLineNumber + 1, 1)\n\t\t\t);\n\t\t\tlet afterText = text.getValueOfRange(afterRange);\n\t\t\tif (afterText.length > maxLength) {\n\t\t\t\tafterText = afterText.substring(0, maxLength) + '...';\n\t\t\t}\n\n\t\t\t// Format the replaced text\n\t\t\tlet replacedText = originalText;\n\t\t\tif (replacedText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\treplacedText = replacedText.substring(0, halfMax) + '...' +\n\t\t\t\t\treplacedText.substring(replacedText.length - halfMax);\n\t\t\t}\n\n\t\t\t// Format the new text\n\t\t\tlet newText = r.text;\n\t\t\tif (newText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\tnewText = newText.substring(0, halfMax) + '...' +\n\t\t\t\t\tnewText.substring(newText.length - halfMax);\n\t\t\t}\n\n\t\t\tif (replacedText.length === 0) {\n\t\t\t\t// allow-any-unicode-next-line\n\t\t\t\treturn `${beforeText}❰${newText}❱${afterText}`;\n\t\t\t}\n\t\t\t// allow-any-unicode-next-line\n\t\t\treturn `${beforeText}❰${replacedText}↦${newText}❱${afterText}`;\n\t\t}).join('\\n');\n\t}\n}\n\nexport class TextReplacement implements IEquatable<TextReplacement> {\n\tpublic static joinReplacements(replacements: TextReplacement[], initialValue: AbstractText): TextReplacement {\n\t\tif (replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (replacements.length === 1) { return replacements[0]; }\n\n\t\tconst startPos = replacements[0].range.getStartPosition();\n\t\tconst endPos = replacements[replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < replacements.length; i++) {\n\t\t\tconst curEdit = replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < replacements.length - 1) {\n\t\t\t\tconst nextEdit = replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = initialValue.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\tpublic static fromStringReplacement(replacement: StringReplacement, initialState: AbstractText): TextReplacement {\n\t\treturn new TextReplacement(initialState.getTransformer().getRange(replacement.replaceRange), replacement.newText);\n\t}\n\n\tpublic static delete(range: Range): TextReplacement {\n\t\treturn new TextReplacement(range, '');\n\t}\n\n\tconstructor(\n\t\tpublic readonly range: Range,\n\t\tpublic readonly text: string,\n\t) {\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.range.isEmpty() && this.text.length === 0;\n\t}\n\n\tstatic equals(first: TextReplacement, second: TextReplacement) {\n\t\treturn first.range.equalsRange(second.range) && first.text === second.text;\n\t}\n\n\tpublic equals(other: TextReplacement): boolean {\n\t\treturn TextReplacement.equals(this, other);\n\t}\n\n\tpublic removeCommonPrefixAndSuffix(text: AbstractText): TextReplacement {\n\t\tconst prefix = this.removeCommonPrefix(text);\n\t\tconst suffix = prefix.removeCommonSuffix(text);\n\t\treturn suffix;\n\t}\n\n\tpublic removeCommonPrefix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonPrefixLen = commonPrefixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst start = TextLength.ofText(normalizedOriginalText.substring(0, commonPrefixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(commonPrefixLen);\n\t\tconst range = Range.fromPositions(start, this.range.getEndPosition());\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic removeCommonSuffix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonSuffixLen = commonSuffixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst end = TextLength.ofText(normalizedOriginalText.substring(0, normalizedOriginalText.length - commonSuffixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(0, normalizedModifiedText.length - commonSuffixLen);\n\t\tconst range = Range.fromPositions(this.range.getStartPosition(), end);\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic toString(): string {\n\t\tconst start = this.range.getStartPosition();\n\t\tconst end = this.range.getEndPosition();\n\t\treturn `(${start.lineNumber},${start.column} -> ${end.lineNumber},${end.column}): \"${this.text}\"`;\n\t}\n}\n\nfunction rangeFromPositions(start: Position, end: Position): Range {\n\tif (start.lineNumber === end.lineNumber && start.column === Number.MAX_SAFE_INTEGER) {\n\t\treturn Range.fromPositions(end, end);\n\t} else if (!start.isBeforeOrEqual(end)) {\n\t\tthrow new BugIndicatingError('start must be before end');\n\t}\n\treturn new Range(start.lineNumber, start.column, end.lineNumber, end.column);\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 { compareBy } from '../../../../base/common/arrays.js';\nimport { assertFn, checkAdjacentItems } from '../../../../base/common/assert.js';\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { commonPrefixLength, commonSuffixLength } from '../../../../base/common/strings.js';\nimport { BaseStringEdit, StringReplacement } from './stringEdit.js';\nimport { Position } from '../position.js';\nimport { Range } from '../range.js';\nimport { TextLength } from '../text/textLength.js';\nimport { AbstractText, StringText } from '../text/abstractText.js';\nimport { IEquatable } from '../../../../base/common/equals.js';\n\nexport class TextEdit {\n\tpublic static fromStringEdit(edit: BaseStringEdit, initialState: AbstractText): TextEdit {\n\t\tconst edits = edit.replacements.map(e => TextReplacement.fromStringReplacement(e, initialState));\n\t\treturn new TextEdit(edits);\n\t}\n\n\tpublic static fromParallelReplacementsUnsorted(replacements: readonly TextReplacement[]): TextEdit {\n\t\tconst r = replacements.slice().sort(compareBy(i => i.range, Range.compareRangesUsingStarts));\n\t\treturn new TextEdit(r);\n\t}\n\n\tconstructor(\n\t\tpublic readonly replacements: readonly TextReplacement[]\n\t) {\n\t\tassertFn(() => checkAdjacentItems(replacements, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n\t}\n\n\t/**\n\t * Joins touching edits and removes empty edits.\n\t */\n\tnormalize(): TextEdit {\n\t\tconst replacements: TextReplacement[] = [];\n\t\tfor (const r of this.replacements) {\n\t\t\tif (replacements.length > 0 && replacements[replacements.length - 1].range.getEndPosition().equals(r.range.getStartPosition())) {\n\t\t\t\tconst last = replacements[replacements.length - 1];\n\t\t\t\treplacements[replacements.length - 1] = new TextReplacement(last.range.plusRange(r.range), last.text + r.text);\n\t\t\t} else if (!r.isEmpty) {\n\t\t\t\treplacements.push(r);\n\t\t\t}\n\t\t}\n\t\treturn new TextEdit(replacements);\n\t}\n\n\tmapPosition(position: Position): Position | Range {\n\t\tlet lineDelta = 0;\n\t\tlet curLine = 0;\n\t\tlet columnDeltaInCurLine = 0;\n\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst start = replacement.range.getStartPosition();\n\n\t\t\tif (position.isBeforeOrEqual(start)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst end = replacement.range.getEndPosition();\n\t\t\tconst len = TextLength.ofText(replacement.text);\n\t\t\tif (position.isBefore(end)) {\n\t\t\t\tconst startPos = new Position(start.lineNumber + lineDelta, start.column + (start.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t\t\t\tconst endPos = len.addToPosition(startPos);\n\t\t\t\treturn rangeFromPositions(startPos, endPos);\n\t\t\t}\n\n\t\t\tif (start.lineNumber + lineDelta !== curLine) {\n\t\t\t\tcolumnDeltaInCurLine = 0;\n\t\t\t}\n\n\t\t\tlineDelta += len.lineCount - (replacement.range.endLineNumber - replacement.range.startLineNumber);\n\n\t\t\tif (len.lineCount === 0) {\n\t\t\t\tif (end.lineNumber !== start.lineNumber) {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - 1);\n\t\t\t\t} else {\n\t\t\t\t\tcolumnDeltaInCurLine += len.columnCount - (end.column - start.column);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcolumnDeltaInCurLine = len.columnCount;\n\t\t\t}\n\t\t\tcurLine = end.lineNumber + lineDelta;\n\t\t}\n\n\t\treturn new Position(position.lineNumber + lineDelta, position.column + (position.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n\t}\n\n\tmapRange(range: Range): Range {\n\t\tfunction getStart(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getStartPosition();\n\t\t}\n\n\t\tfunction getEnd(p: Position | Range) {\n\t\t\treturn p instanceof Position ? p : p.getEndPosition();\n\t\t}\n\n\t\tconst start = getStart(this.mapPosition(range.getStartPosition()));\n\t\tconst end = getEnd(this.mapPosition(range.getEndPosition()));\n\n\t\treturn rangeFromPositions(start, end);\n\t}\n\n\tapply(text: AbstractText): string {\n\t\tlet result = '';\n\t\tlet lastEditEnd = new Position(1, 1);\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst editRange = replacement.range;\n\t\t\tconst editStart = editRange.getStartPosition();\n\t\t\tconst editEnd = editRange.getEndPosition();\n\n\t\t\tconst r = rangeFromPositions(lastEditEnd, editStart);\n\t\t\tif (!r.isEmpty()) {\n\t\t\t\tresult += text.getValueOfRange(r);\n\t\t\t}\n\t\t\tresult += replacement.text;\n\t\t\tlastEditEnd = editEnd;\n\t\t}\n\t\tconst r = rangeFromPositions(lastEditEnd, text.endPositionExclusive);\n\t\tif (!r.isEmpty()) {\n\t\t\tresult += text.getValueOfRange(r);\n\t\t}\n\t\treturn result;\n\t}\n\n\tapplyToString(str: string): string {\n\t\tconst strText = new StringText(str);\n\t\treturn this.apply(strText);\n\t}\n\n\tgetNewRanges(): Range[] {\n\t\tconst newRanges: Range[] = [];\n\t\tlet previousEditEndLineNumber = 0;\n\t\tlet lineOffset = 0;\n\t\tlet columnOffset = 0;\n\t\tfor (const replacement of this.replacements) {\n\t\t\tconst textLength = TextLength.ofText(replacement.text);\n\t\t\tconst newRangeStart = Position.lift({\n\t\t\t\tlineNumber: replacement.range.startLineNumber + lineOffset,\n\t\t\t\tcolumn: replacement.range.startColumn + (replacement.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n\t\t\t});\n\t\t\tconst newRange = textLength.createRange(newRangeStart);\n\t\t\tnewRanges.push(newRange);\n\t\t\tlineOffset = newRange.endLineNumber - replacement.range.endLineNumber;\n\t\t\tcolumnOffset = newRange.endColumn - replacement.range.endColumn;\n\t\t\tpreviousEditEndLineNumber = replacement.range.endLineNumber;\n\t\t}\n\t\treturn newRanges;\n\t}\n\n\ttoReplacement(text: AbstractText): TextReplacement {\n\t\tif (this.replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (this.replacements.length === 1) { return this.replacements[0]; }\n\n\t\tconst startPos = this.replacements[0].range.getStartPosition();\n\t\tconst endPos = this.replacements[this.replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < this.replacements.length; i++) {\n\t\t\tconst curEdit = this.replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < this.replacements.length - 1) {\n\t\t\t\tconst nextEdit = this.replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = text.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\ttoString(text: AbstractText | string | undefined): string {\n\t\tif (text === undefined) {\n\t\t\treturn this.replacements.map(edit => edit.toString()).join('\\n');\n\t\t}\n\n\t\tif (typeof text === 'string') {\n\t\t\treturn this.toString(new StringText(text));\n\t\t}\n\n\t\tif (this.replacements.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn this.replacements.map(r => {\n\t\t\tconst maxLength = 10;\n\t\t\tconst originalText = text.getValueOfRange(r.range);\n\n\t\t\t// Get text before the edit\n\t\t\tconst beforeRange = Range.fromPositions(\n\t\t\t\tnew Position(Math.max(1, r.range.startLineNumber - 1), 1),\n\t\t\t\tr.range.getStartPosition()\n\t\t\t);\n\t\t\tlet beforeText = text.getValueOfRange(beforeRange);\n\t\t\tif (beforeText.length > maxLength) {\n\t\t\t\tbeforeText = '...' + beforeText.substring(beforeText.length - maxLength);\n\t\t\t}\n\n\t\t\t// Get text after the edit\n\t\t\tconst afterRange = Range.fromPositions(\n\t\t\t\tr.range.getEndPosition(),\n\t\t\t\tnew Position(r.range.endLineNumber + 1, 1)\n\t\t\t);\n\t\t\tlet afterText = text.getValueOfRange(afterRange);\n\t\t\tif (afterText.length > maxLength) {\n\t\t\t\tafterText = afterText.substring(0, maxLength) + '...';\n\t\t\t}\n\n\t\t\t// Format the replaced text\n\t\t\tlet replacedText = originalText;\n\t\t\tif (replacedText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\treplacedText = replacedText.substring(0, halfMax) + '...' +\n\t\t\t\t\treplacedText.substring(replacedText.length - halfMax);\n\t\t\t}\n\n\t\t\t// Format the new text\n\t\t\tlet newText = r.text;\n\t\t\tif (newText.length > maxLength) {\n\t\t\t\tconst halfMax = Math.floor(maxLength / 2);\n\t\t\t\tnewText = newText.substring(0, halfMax) + '...' +\n\t\t\t\t\tnewText.substring(newText.length - halfMax);\n\t\t\t}\n\n\t\t\tif (replacedText.length === 0) {\n\t\t\t\t// allow-any-unicode-next-line\n\t\t\t\treturn `${beforeText}❰${newText}❱${afterText}`;\n\t\t\t}\n\t\t\t// allow-any-unicode-next-line\n\t\t\treturn `${beforeText}❰${replacedText}↦${newText}❱${afterText}`;\n\t\t}).join('\\n');\n\t}\n}\n\nexport class TextReplacement implements IEquatable<TextReplacement> {\n\tpublic static joinReplacements(replacements: TextReplacement[], initialValue: AbstractText): TextReplacement {\n\t\tif (replacements.length === 0) { throw new BugIndicatingError(); }\n\t\tif (replacements.length === 1) { return replacements[0]; }\n\n\t\tconst startPos = replacements[0].range.getStartPosition();\n\t\tconst endPos = replacements[replacements.length - 1].range.getEndPosition();\n\n\t\tlet newText = '';\n\n\t\tfor (let i = 0; i < replacements.length; i++) {\n\t\t\tconst curEdit = replacements[i];\n\t\t\tnewText += curEdit.text;\n\t\t\tif (i < replacements.length - 1) {\n\t\t\t\tconst nextEdit = replacements[i + 1];\n\t\t\t\tconst gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n\t\t\t\tconst gapText = initialValue.getValueOfRange(gapRange);\n\t\t\t\tnewText += gapText;\n\t\t\t}\n\t\t}\n\t\treturn new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n\t}\n\n\tpublic static fromStringReplacement(replacement: StringReplacement, initialState: AbstractText): TextReplacement {\n\t\treturn new TextReplacement(initialState.getTransformer().getRange(replacement.replaceRange), replacement.newText);\n\t}\n\n\tpublic static delete(range: Range): TextReplacement {\n\t\treturn new TextReplacement(range, '');\n\t}\n\n\tconstructor(\n\t\tpublic readonly range: Range,\n\t\tpublic readonly text: string,\n\t) {\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.range.isEmpty() && this.text.length === 0;\n\t}\n\n\tstatic equals(first: TextReplacement, second: TextReplacement) {\n\t\treturn first.range.equalsRange(second.range) && first.text === second.text;\n\t}\n\n\tpublic equals(other: TextReplacement): boolean {\n\t\treturn TextReplacement.equals(this, other);\n\t}\n\n\tpublic removeCommonPrefixAndSuffix(text: AbstractText): TextReplacement {\n\t\tconst prefix = this.removeCommonPrefix(text);\n\t\tconst suffix = prefix.removeCommonSuffix(text);\n\t\treturn suffix;\n\t}\n\n\tpublic removeCommonPrefix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonPrefixLen = commonPrefixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst start = TextLength.ofText(normalizedOriginalText.substring(0, commonPrefixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(commonPrefixLen);\n\t\tconst range = Range.fromPositions(start, this.range.getEndPosition());\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic removeCommonSuffix(text: AbstractText): TextReplacement {\n\t\tconst normalizedOriginalText = text.getValueOfRange(this.range).replaceAll('\\r\\n', '\\n');\n\t\tconst normalizedModifiedText = this.text.replaceAll('\\r\\n', '\\n');\n\n\t\tconst commonSuffixLen = commonSuffixLength(normalizedOriginalText, normalizedModifiedText);\n\t\tconst end = TextLength.ofText(normalizedOriginalText.substring(0, normalizedOriginalText.length - commonSuffixLen))\n\t\t\t.addToPosition(this.range.getStartPosition());\n\n\t\tconst newText = normalizedModifiedText.substring(0, normalizedModifiedText.length - commonSuffixLen);\n\t\tconst range = Range.fromPositions(this.range.getStartPosition(), end);\n\t\treturn new TextReplacement(range, newText);\n\t}\n\n\tpublic toString(): string {\n\t\tconst start = this.range.getStartPosition();\n\t\tconst end = this.range.getEndPosition();\n\t\treturn `(${start.lineNumber},${start.column} -> ${end.lineNumber},${end.column}): \"${this.text}\"`;\n\t}\n}\n\nfunction rangeFromPositions(start: Position, end: Position): Range {\n\tif (start.lineNumber === end.lineNumber && start.column === Number.MAX_SAFE_INTEGER) {\n\t\treturn Range.fromPositions(end, end);\n\t} else if (!start.isBeforeOrEqual(end)) {\n\t\tthrow new BugIndicatingError('start must be before end');\n\t}\n\treturn new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n}\n"]}
|
|
@@ -62,14 +62,19 @@ export class CursorsController extends Disposable {
|
|
|
62
62
|
_validateAutoClosedActions() {
|
|
63
63
|
if (this._autoClosedActions.length > 0) {
|
|
64
64
|
const selections = this._cursors.getSelections();
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
const validActions = [];
|
|
66
|
+
const invalidActions = [];
|
|
67
|
+
for (const autoClosedAction of this._autoClosedActions) {
|
|
68
|
+
if (autoClosedAction.isValid(selections)) {
|
|
69
|
+
validActions.push(autoClosedAction);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
invalidActions.push(autoClosedAction);
|
|
71
73
|
}
|
|
72
74
|
}
|
|
75
|
+
// Disposal fires decoration events whose listeners may re-enter the cursor.
|
|
76
|
+
this._autoClosedActions = validActions;
|
|
77
|
+
dispose(invalidActions);
|
|
73
78
|
}
|
|
74
79
|
}
|
|
75
80
|
// ------ some getters/setters
|
|
@@ -306,6 +311,9 @@ export class CursorsController extends Disposable {
|
|
|
306
311
|
if (opResult.shouldPushStackElementAfter) {
|
|
307
312
|
this._model.pushStackElement();
|
|
308
313
|
}
|
|
314
|
+
if (result && opResult.followUp) {
|
|
315
|
+
this._executeEditOperation(opResult.followUp(this.getSelections()), editReason);
|
|
316
|
+
}
|
|
309
317
|
}
|
|
310
318
|
_interpretCommandResult(cursorState) {
|
|
311
319
|
if (!cursorState || cursorState.length === 0) {
|
|
@@ -482,10 +490,10 @@ export class CursorsController extends Disposable {
|
|
|
482
490
|
this._executeEditOperation(TypeOperations.compositionType(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), text, replacePrevCharCnt, replaceNextCharCnt, positionDelta), reason);
|
|
483
491
|
}, eventsCollector, source);
|
|
484
492
|
}
|
|
485
|
-
paste(eventsCollector, text, pasteOnNewLine, multicursorText, source) {
|
|
493
|
+
paste(eventsCollector, text, pasteOnNewLine, multicursorText, source, isBlock = false) {
|
|
486
494
|
const reason = EditSources.cursor({ kind: 'paste', detailedSource: source });
|
|
487
495
|
this._executeEdit(() => {
|
|
488
|
-
this._executeEditOperation(TypeOperations.paste(this.context.cursorConfig, this._model, this.getSelections(), text, pasteOnNewLine, multicursorText || []), reason);
|
|
496
|
+
this._executeEditOperation(TypeOperations.paste(this.context.cursorConfig, this._model, this.getSelections(), text, pasteOnNewLine, multicursorText || [], isBlock), reason);
|
|
489
497
|
}, eventsCollector, source, 4 /* CursorChangeReason.Paste */);
|
|
490
498
|
}
|
|
491
499
|
cut(eventsCollector, source) {
|
|
@@ -557,8 +565,10 @@ class AutoClosedAction {
|
|
|
557
565
|
this._autoClosedEnclosingDecorations = autoClosedEnclosingDecorations;
|
|
558
566
|
}
|
|
559
567
|
dispose() {
|
|
560
|
-
this.
|
|
561
|
-
|
|
568
|
+
this._model.changeDecorations(accessor => {
|
|
569
|
+
this._autoClosedCharactersDecorations = accessor.deltaDecorations(this._autoClosedCharactersDecorations, []);
|
|
570
|
+
this._autoClosedEnclosingDecorations = accessor.deltaDecorations(this._autoClosedEnclosingDecorations, []);
|
|
571
|
+
});
|
|
562
572
|
}
|
|
563
573
|
getAutoClosedCharactersRanges() {
|
|
564
574
|
const result = [];
|