monaco-editor-core 0.55.0-dev-20251028 → 0.55.0-dev-20251030
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 +14 -0
- package/esm/vs/base/browser/markdownRenderer.js +53 -1
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/common/codiconsLibrary.js +6 -3
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/glob.js +41 -31
- package/esm/vs/base/common/glob.js.map +1 -1
- package/esm/vs/base/common/htmlContent.js +5 -1
- package/esm/vs/base/common/htmlContent.js.map +1 -1
- package/esm/vs/base/common/network.js +2 -6
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/strings.js +8 -6
- package/esm/vs/base/common/strings.js.map +1 -1
- package/esm/vs/editor/browser/editorExtensions.js +5 -0
- package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
- package/esm/vs/editor/browser/triggerInlineEditCommandsRegistry.js +17 -0
- package/esm/vs/editor/browser/triggerInlineEditCommandsRegistry.js.map +1 -0
- package/esm/vs/editor/common/textModelEditSource.js +1 -0
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +2 -1
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +4 -0
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +16 -12
- package/esm/vs/editor/contrib/comment/browser/comment.js.map +1 -1
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +7 -5
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js +17 -6
- package/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js +6 -3
- package/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/hover.css +36 -0
- 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 +51 -0
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js.map +1 -0
- package/esm/vs/editor/contrib/hover/browser/hoverTypes.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +25 -9
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +8 -5
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js.map +1 -1
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +29 -27
- package/esm/vs/editor/contrib/indentation/browser/indentation.js.map +1 -1
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +3 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +4 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- 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/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- 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 +87 -62
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +8 -8
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +13 -12
- package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +27 -24
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +9 -9
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/actions.js +2 -0
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +2 -2
- package/esm/vs/platform/hover/browser/hoverWidget.js.map +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +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 +6 -6
- package/esm/vs/platform/quickinput/browser/quickInputList.js +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/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts"],"names":[],"mappings":"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","file":"unicodeHighlighter.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 { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CharCode } from '../../../../base/common/charCode.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { createCommandUri, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { InvisibleCharacters, isBasicASCII } from '../../../../base/common/strings.js';\nimport './unicodeHighlighter.css';\nimport { IActiveCodeEditor, ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { InUntrustedWorkspace, inUntrustedWorkspace, EditorOption, InternalUnicodeHighlightOptions, unicodeHighlightConfigKeys } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { IModelDecoration, IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';\nimport { IEditorWorkerService, IUnicodeHighlightsResult } from '../../../common/services/editorWorker.js';\nimport { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, IEditorHoverParticipant, IEditorHoverRenderContext, IRenderedHoverParts } from '../../hover/browser/hoverTypes.js';\nimport { MarkdownHover, renderMarkdownHovers } from '../../hover/browser/markdownHoverParticipant.js';\nimport { BannerController } from './bannerController.js';\nimport * as nls from '../../../../nls.js';\nimport { ConfigurationTarget, IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IQuickInputService, IQuickPickItem } from '../../../../platform/quickinput/common/quickInput.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { safeIntl } from '../../../../base/common/date.js';\nimport { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecoration.js';\nimport { IMarkdownRendererService } from '../../../../platform/markdown/browser/markdownRenderer.js';\n\nexport const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize('warningIcon', 'Icon shown with a warning message in the extensions editor.'));\n\nexport class UnicodeHighlighter extends Disposable implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.unicodeHighlighter';\n\n\tprivate _highlighter: DocumentUnicodeHighlighter | ViewportUnicodeHighlighter | null = null;\n\tprivate _options: InternalUnicodeHighlightOptions;\n\n\tprivate readonly _bannerController: BannerController;\n\tprivate _bannerClosed: boolean = false;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t\t@IWorkspaceTrustManagementService private readonly _workspaceTrustService: IWorkspaceTrustManagementService,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t) {\n\t\tsuper();\n\n\t\tthis._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tthis._bannerClosed = false;\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\n\t\tthis._register(_workspaceTrustService.onDidChangeTrust(e => {\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._register(_editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(EditorOption.unicodeHighlighting)) {\n\t\t\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\t\t\t\tthis._updateHighlighter();\n\t\t\t}\n\t\t}));\n\n\t\tthis._updateHighlighter();\n\t}\n\n\tpublic override dispose(): void {\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tsuper.dispose();\n\t}\n\n\tprivate readonly _updateState = (state: IUnicodeHighlightsResult | null): void => {\n\t\tif (state && state.hasMore) {\n\t\t\tif (this._bannerClosed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This document contains many non-basic ASCII characters.\n\t\t\tconst max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n\n\t\t\tlet data;\n\t\t\tif (state.nonBasicAsciiCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters', 'This document contains many non-basic ASCII unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfNonBasicAsciiCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.ambiguousCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters', 'This document contains many ambiguous unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfAmbiguousCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.invisibleCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters', 'This document contains many invisible unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfInvisibleCharactersAction(),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tthrow new Error('Unreachable');\n\t\t\t}\n\n\t\t\tthis._bannerController.show({\n\t\t\t\tid: 'unicodeHighlightBanner',\n\t\t\t\tmessage: data.message,\n\t\t\t\ticon: warningIcon,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: data.command.shortLabel,\n\t\t\t\t\t\thref: `command:${data.command.desc.id}`\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tonClose: () => {\n\t\t\t\t\tthis._bannerClosed = true;\n\t\t\t\t},\n\t\t\t});\n\t\t} else {\n\t\t\tthis._bannerController.hide();\n\t\t}\n\t};\n\n\tprivate _updateHighlighter(): void {\n\t\tthis._updateState(null);\n\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n\n\t\tif (\n\t\t\t[\n\t\t\t\toptions.nonBasicASCII,\n\t\t\t\toptions.ambiguousCharacters,\n\t\t\t\toptions.invisibleCharacters,\n\t\t\t].every((option) => option === false)\n\t\t) {\n\t\t\t// Don't do anything if the feature is fully disabled\n\t\t\treturn;\n\t\t}\n\n\t\tconst highlightOptions: UnicodeHighlighterOptions = {\n\t\t\tnonBasicASCII: options.nonBasicASCII,\n\t\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\t\tincludeComments: options.includeComments,\n\t\t\tincludeStrings: options.includeStrings,\n\t\t\tallowedCodePoints: Object.keys(options.allowedCharacters).map(c => c.codePointAt(0)!),\n\t\t\tallowedLocales: Object.keys(options.allowedLocales).map(locale => {\n\t\t\t\tif (locale === '_os') {\n\t\t\t\t\tconst osLocale = safeIntl.NumberFormat().value.resolvedOptions().locale;\n\t\t\t\t\treturn osLocale;\n\t\t\t\t} else if (locale === '_vscode') {\n\t\t\t\t\treturn platform.language;\n\t\t\t\t}\n\t\t\t\treturn locale;\n\t\t\t}),\n\t\t};\n\n\t\tif (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n\t\t\tthis._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n\t\t} else {\n\t\t\tthis._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n\t\t}\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (this._highlighter) {\n\t\t\treturn this._highlighter.getDecorationInfo(decoration);\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport interface UnicodeHighlighterDecorationInfo {\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\ntype Resolve<T> =\n\tT extends InUntrustedWorkspace ? never\n\t: T extends 'auto' ? never : T;\n\ntype ResolvedOptions = { [TKey in keyof InternalUnicodeHighlightOptions]: Resolve<InternalUnicodeHighlightOptions[TKey]> };\n\nfunction resolveOptions(trusted: boolean, options: InternalUnicodeHighlightOptions): ResolvedOptions {\n\treturn {\n\t\tnonBasicASCII: options.nonBasicASCII === inUntrustedWorkspace ? !trusted : options.nonBasicASCII,\n\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\tincludeComments: options.includeComments === inUntrustedWorkspace ? !trusted : options.includeComments,\n\t\tincludeStrings: options.includeStrings === inUntrustedWorkspace ? !trusted : options.includeStrings,\n\t\tallowedCharacters: options.allowedCharacters,\n\t\tallowedLocales: options.allowedLocales,\n\t};\n}\n\nclass DocumentUnicodeHighlighter extends Disposable {\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = this._model.getVersionId();\n\t\tthis._editorWorkerService\n\t\t\t.computedUnicodeHighlights(this._model.uri, this._options)\n\t\t\t.then((info) => {\n\t\t\t\tif (this._model.isDisposed()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this._model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._updateState(info);\n\n\t\t\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\t\t\tif (!info.hasMore) {\n\t\t\t\t\t// Don't show decoration if there are too many.\n\t\t\t\t\t// In this case, a banner is shown.\n\t\t\t\t\tfor (const range of info.ranges) {\n\t\t\t\t\t\tdecorations.push({\n\t\t\t\t\t\t\trange: range,\n\t\t\t\t\t\t\toptions: Decorations.instance.getDecorationFromOptions(this._options),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._decorations.set(decorations);\n\t\t\t});\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (\n\t\t\t!isModelDecorationVisible(model, decoration)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nclass ViewportUnicodeHighlighter extends Disposable {\n\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate readonly _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidLayoutChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeHiddenAreas(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst ranges = this._editor.getVisibleRanges();\n\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\tconst totalResult: IUnicodeHighlightsResult = {\n\t\t\tranges: [],\n\t\t\tambiguousCharacterCount: 0,\n\t\t\tinvisibleCharacterCount: 0,\n\t\t\tnonBasicAsciiCharacterCount: 0,\n\t\t\thasMore: false,\n\t\t};\n\t\tfor (const range of ranges) {\n\t\t\tconst result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range);\n\t\t\tfor (const r of result.ranges) {\n\t\t\t\ttotalResult.ranges.push(r);\n\t\t\t}\n\t\t\ttotalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n\t\t\ttotalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n\t\t\ttotalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n\t\t\ttotalResult.hasMore = totalResult.hasMore || result.hasMore;\n\t\t}\n\n\t\tif (!totalResult.hasMore) {\n\t\t\t// Don't show decorations if there are too many.\n\t\t\t// A banner will be shown instead.\n\t\t\tfor (const range of totalResult.ranges) {\n\t\t\t\tdecorations.push({ range, options: Decorations.instance.getDecorationFromOptions(this._options) });\n\t\t\t}\n\t\t}\n\t\tthis._updateState(totalResult);\n\n\t\tthis._decorations.set(decorations);\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\tif (!isModelDecorationVisible(model, decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nconst configureUnicodeHighlightOptionsStr = nls.localize('unicodeHighlight.configureUnicodeHighlightOptions', 'Configure Unicode Highlight Options');\n\nexport class UnicodeHighlighterHoverParticipant implements IEditorHoverParticipant<MarkdownHover> {\n\n\tpublic readonly hoverOrdinal: number = 5;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IMarkdownRendererService private readonly _markdownRendererService: IMarkdownRendererService,\n\t) { }\n\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkdownHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\n\t\tconst unicodeHighlighter = this._editor.getContribution<UnicodeHighlighter>(UnicodeHighlighter.ID);\n\t\tif (!unicodeHighlighter) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst result: MarkdownHover[] = [];\n\t\tconst existedReason = new Set<string>();\n\t\tlet index = 300;\n\t\tfor (const d of lineDecorations) {\n\n\t\t\tconst highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n\t\t\tif (!highlightInfo) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst char = model.getValueInRange(d.range);\n\t\t\t// text refers to a single character.\n\t\t\tconst codePoint = char.codePointAt(0)!;\n\n\t\t\tconst codePointStr = formatCodePointMarkdown(codePoint);\n\n\t\t\tlet reason: string;\n\t\t\tswitch (highlightInfo.reason.kind) {\n\t\t\t\tcase UnicodeHighlighterReasonKind.Ambiguous: {\n\t\t\t\t\tif (isBasicASCII(highlightInfo.reason.confusableWith)) {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguousASCII',\n\t\t\t\t\t\t\t'The character {0} could be confused with the ASCII character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguous',\n\t\t\t\t\t\t\t'The character {0} could be confused with the character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.Invisible:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsInvisible',\n\t\t\t\t\t\t'The character {0} is invisible.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.NonBasicAscii:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsNonBasicAscii',\n\t\t\t\t\t\t'The character {0} is not a basic ASCII character.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (existedReason.has(reason)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\texistedReason.add(reason);\n\n\t\t\tconst adjustSettingsArgs: ShowExcludeOptionsArgs = {\n\t\t\t\tcodePoint: codePoint,\n\t\t\t\treason: highlightInfo.reason,\n\t\t\t\tinComment: highlightInfo.inComment,\n\t\t\t\tinString: highlightInfo.inString,\n\t\t\t};\n\n\t\t\tconst adjustSettings = nls.localize('unicodeHighlight.adjustSettings', 'Adjust settings');\n\t\t\tconst uri = createCommandUri(ShowExcludeOptions.ID, adjustSettingsArgs);\n\t\t\tconst markdown = new MarkdownString('', true)\n\t\t\t\t.appendMarkdown(reason)\n\t\t\t\t.appendText(' ')\n\t\t\t\t.appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n\t\t\tresult.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkdownHover[]): IRenderedHoverParts<MarkdownHover> {\n\t\treturn renderMarkdownHovers(context, hoverParts, this._editor, this._markdownRendererService);\n\t}\n}\n\nfunction codePointToHex(codePoint: number): string {\n\treturn `U+${codePoint.toString(16).padStart(4, '0')}`;\n}\n\nfunction formatCodePointMarkdown(codePoint: number) {\n\tlet value = `\\`${codePointToHex(codePoint)}\\``;\n\tif (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t// Don't render any control characters or any invisible characters, as they cannot be seen anyways.\n\t\tvalue += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n\t}\n\treturn value;\n}\n\nfunction renderCodePointAsInlineCode(codePoint: number): string {\n\tif (codePoint === CharCode.BackTick) {\n\t\treturn '`` ` ``';\n\t}\n\treturn '`' + String.fromCodePoint(codePoint) + '`';\n}\n\nfunction computeReason(char: string, options: UnicodeHighlighterOptions): UnicodeHighlighterReason | null {\n\treturn UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options);\n}\n\nclass Decorations {\n\tpublic static readonly instance = new Decorations();\n\n\tprivate readonly map = new Map<string, ModelDecorationOptions>();\n\n\tgetDecorationFromOptions(options: UnicodeHighlighterOptions): ModelDecorationOptions {\n\t\treturn this.getDecoration(!options.includeComments, !options.includeStrings);\n\t}\n\n\tprivate getDecoration(hideInComments: boolean, hideInStrings: boolean): ModelDecorationOptions {\n\t\tconst key = `${hideInComments}${hideInStrings}`;\n\t\tlet options = this.map.get(key);\n\t\tif (!options) {\n\t\t\toptions = ModelDecorationOptions.createDynamic({\n\t\t\t\tdescription: 'unicode-highlight',\n\t\t\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\t\t\tclassName: 'unicode-highlight',\n\t\t\t\tshowIfCollapsed: true,\n\t\t\t\toverviewRuler: null,\n\t\t\t\tminimap: null,\n\t\t\t\thideInCommentTokens: hideInComments,\n\t\t\t\thideInStringTokens: hideInStrings,\n\t\t\t});\n\t\t\tthis.map.set(key, options);\n\t\t}\n\t\treturn options;\n\t}\n}\n\ninterface IDisableUnicodeHighlightAction {\n}\n\nexport class DisableHighlightingInCommentsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInComments.shortLabel', 'Disable Highlight In Comments');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInComments', \"Disable highlighting of characters in comments\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeComments, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingInStringsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInStrings.shortLabel', 'Disable Highlight In Strings');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInStrings', \"Disable highlighting of characters in strings\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfAmbiguousCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel', 'Disable Ambiguous Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters', \"Disable highlighting of ambiguous characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfInvisibleCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel', 'Disable Invisible Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfInvisibleCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfInvisibleCharacters', \"Disable highlighting of invisible characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfNonBasicAsciiCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel', 'Disable Non ASCII Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters', \"Disable highlighting of non basic ASCII characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII, false, ConfigurationTarget.USER);\n\t}\n}\n\ninterface ShowExcludeOptionsArgs {\n\tcodePoint: number;\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\nexport class ShowExcludeOptions extends Action2 {\n\tpublic static ID = 'editor.action.unicodeHighlight.showExcludeOptions';\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: ShowExcludeOptions.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.showExcludeOptions', \"Show Exclude Options\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, args: any): Promise<void> {\n\t\tconst { codePoint, reason, inString, inComment } = args as ShowExcludeOptionsArgs;\n\n\t\tconst char = String.fromCodePoint(codePoint);\n\n\t\tconst quickPickService = accessor.get(IQuickInputService);\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\n\t\tinterface ExtendedOptions extends IQuickPickItem {\n\t\t\trun(): Promise<void>;\n\t\t}\n\n\t\tfunction getExcludeCharFromBeingHighlightedLabel(codePoint: number) {\n\t\t\tif (InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t\t\treturn nls.localize('unicodeHighlight.excludeInvisibleCharFromBeingHighlighted', 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));\n\t\t\t}\n\t\t\treturn nls.localize('unicodeHighlight.excludeCharFromBeingHighlighted', 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} \"${char}\"`);\n\t\t}\n\n\t\tconst options: ExtendedOptions[] = [];\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tfor (const locale of reason.notAmbiguousInLocales) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: nls.localize(\"unicodeHighlight.allowCommonCharactersInLanguage\", \"Allow unicode characters that are more common in the language \\\"{0}\\\".\", locale),\n\t\t\t\t\trun: async () => {\n\t\t\t\t\t\texcludeLocaleFromBeingHighlighted(configurationService, [locale]);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\toptions.push(\n\t\t\t{\n\t\t\t\tlabel: getExcludeCharFromBeingHighlightedLabel(codePoint),\n\t\t\t\trun: () => excludeCharFromBeingHighlighted(configurationService, [codePoint])\n\t\t\t}\n\t\t);\n\n\t\tif (inComment) {\n\t\t\tconst action = new DisableHighlightingInCommentsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t} else if (inString) {\n\t\t\tconst action = new DisableHighlightingInStringsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t}\n\n\t\tfunction getTitle(options: Action2) {\n\t\t\treturn typeof options.desc.title === 'string' ? options.desc.title : options.desc.title.value;\n\t\t}\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tconst action = new DisableHighlightingOfAmbiguousCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.Invisible) {\n\t\t\tconst action = new DisableHighlightingOfInvisibleCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.NonBasicAscii) {\n\t\t\tconst action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else {\n\t\t\texpectNever(reason);\n\t\t}\n\n\t\tconst result = await quickPickService.pick(\n\t\t\toptions,\n\t\t\t{ title: configureUnicodeHighlightOptionsStr }\n\t\t);\n\n\t\tif (result) {\n\t\t\tawait result.run();\n\t\t}\n\t}\n}\n\nasync function excludeCharFromBeingHighlighted(configurationService: IConfigurationService, charCodes: number[]) {\n\tconst existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = existingValue as any;\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const charCode of charCodes) {\n\t\tvalue[String.fromCodePoint(charCode)] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters, value, ConfigurationTarget.USER);\n}\n\nasync function excludeLocaleFromBeingHighlighted(configurationService: IConfigurationService, locales: string[]) {\n\tconst existingValue = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user?.value;\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// Copy value, as the existing value is read only\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = Object.assign({}, existingValue as any);\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const locale of locales) {\n\t\tvalue[locale] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales, value, ConfigurationTarget.USER);\n}\n\nfunction expectNever(value: never) {\n\tthrow new Error(`Unexpected value: ${value}`);\n}\n\nregisterAction2(DisableHighlightingOfAmbiguousCharactersAction);\nregisterAction2(DisableHighlightingOfInvisibleCharactersAction);\nregisterAction2(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterAction2(ShowExcludeOptions);\nregisterEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter, EditorContributionInstantiation.AfterFirstRender);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts"],"names":[],"mappings":"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","file":"unicodeHighlighter.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 { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CharCode } from '../../../../base/common/charCode.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { createCommandUri, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { InvisibleCharacters, isBasicASCII } from '../../../../base/common/strings.js';\nimport './unicodeHighlighter.css';\nimport { IActiveCodeEditor, ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { InUntrustedWorkspace, inUntrustedWorkspace, EditorOption, InternalUnicodeHighlightOptions, unicodeHighlightConfigKeys } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { IModelDecoration, IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';\nimport { IEditorWorkerService, IUnicodeHighlightsResult } from '../../../common/services/editorWorker.js';\nimport { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, IEditorHoverParticipant, IEditorHoverRenderContext, IRenderedHoverParts } from '../../hover/browser/hoverTypes.js';\nimport { MarkdownHover, renderMarkdownHovers } from '../../hover/browser/markdownHoverParticipant.js';\nimport { BannerController } from './bannerController.js';\nimport * as nls from '../../../../nls.js';\nimport { ConfigurationTarget, IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IQuickInputService, IQuickPickItem } from '../../../../platform/quickinput/common/quickInput.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { safeIntl } from '../../../../base/common/date.js';\nimport { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecoration.js';\nimport { IMarkdownRendererService } from '../../../../platform/markdown/browser/markdownRenderer.js';\n\nexport const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize('warningIcon', 'Icon shown with a warning message in the extensions editor.'));\n\nexport class UnicodeHighlighter extends Disposable implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.unicodeHighlighter';\n\n\tprivate _highlighter: DocumentUnicodeHighlighter | ViewportUnicodeHighlighter | null = null;\n\tprivate _options: InternalUnicodeHighlightOptions;\n\n\tprivate readonly _bannerController: BannerController;\n\tprivate _bannerClosed: boolean = false;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t\t@IWorkspaceTrustManagementService private readonly _workspaceTrustService: IWorkspaceTrustManagementService,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t) {\n\t\tsuper();\n\n\t\tthis._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tthis._bannerClosed = false;\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\n\t\tthis._register(_workspaceTrustService.onDidChangeTrust(e => {\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._register(_editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(EditorOption.unicodeHighlighting)) {\n\t\t\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\t\t\t\tthis._updateHighlighter();\n\t\t\t}\n\t\t}));\n\n\t\tthis._updateHighlighter();\n\t}\n\n\tpublic override dispose(): void {\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tsuper.dispose();\n\t}\n\n\tprivate readonly _updateState = (state: IUnicodeHighlightsResult | null): void => {\n\t\tif (state && state.hasMore) {\n\t\t\tif (this._bannerClosed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This document contains many non-basic ASCII characters.\n\t\t\tconst max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n\n\t\t\tlet data;\n\t\t\tif (state.nonBasicAsciiCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters', 'This document contains many non-basic ASCII unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfNonBasicAsciiCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.ambiguousCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters', 'This document contains many ambiguous unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfAmbiguousCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.invisibleCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters', 'This document contains many invisible unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfInvisibleCharactersAction(),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tthrow new Error('Unreachable');\n\t\t\t}\n\n\t\t\tthis._bannerController.show({\n\t\t\t\tid: 'unicodeHighlightBanner',\n\t\t\t\tmessage: data.message,\n\t\t\t\ticon: warningIcon,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: data.command.shortLabel,\n\t\t\t\t\t\thref: `command:${data.command.desc.id}`\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tonClose: () => {\n\t\t\t\t\tthis._bannerClosed = true;\n\t\t\t\t},\n\t\t\t});\n\t\t} else {\n\t\t\tthis._bannerController.hide();\n\t\t}\n\t};\n\n\tprivate _updateHighlighter(): void {\n\t\tthis._updateState(null);\n\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n\n\t\tif (\n\t\t\t[\n\t\t\t\toptions.nonBasicASCII,\n\t\t\t\toptions.ambiguousCharacters,\n\t\t\t\toptions.invisibleCharacters,\n\t\t\t].every((option) => option === false)\n\t\t) {\n\t\t\t// Don't do anything if the feature is fully disabled\n\t\t\treturn;\n\t\t}\n\n\t\tconst highlightOptions: UnicodeHighlighterOptions = {\n\t\t\tnonBasicASCII: options.nonBasicASCII,\n\t\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\t\tincludeComments: options.includeComments,\n\t\t\tincludeStrings: options.includeStrings,\n\t\t\tallowedCodePoints: Object.keys(options.allowedCharacters).map(c => c.codePointAt(0)!),\n\t\t\tallowedLocales: Object.keys(options.allowedLocales).map(locale => {\n\t\t\t\tif (locale === '_os') {\n\t\t\t\t\tconst osLocale = safeIntl.NumberFormat().value.resolvedOptions().locale;\n\t\t\t\t\treturn osLocale;\n\t\t\t\t} else if (locale === '_vscode') {\n\t\t\t\t\treturn platform.language;\n\t\t\t\t}\n\t\t\t\treturn locale;\n\t\t\t}),\n\t\t};\n\n\t\tif (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n\t\t\tthis._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n\t\t} else {\n\t\t\tthis._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n\t\t}\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (this._highlighter) {\n\t\t\treturn this._highlighter.getDecorationInfo(decoration);\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport interface UnicodeHighlighterDecorationInfo {\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\ntype Resolve<T> =\n\tT extends InUntrustedWorkspace ? never\n\t: T extends 'auto' ? never : T;\n\ntype ResolvedOptions = { [TKey in keyof InternalUnicodeHighlightOptions]: Resolve<InternalUnicodeHighlightOptions[TKey]> };\n\nfunction resolveOptions(trusted: boolean, options: InternalUnicodeHighlightOptions): ResolvedOptions {\n\treturn {\n\t\tnonBasicASCII: options.nonBasicASCII === inUntrustedWorkspace ? !trusted : options.nonBasicASCII,\n\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\tincludeComments: options.includeComments === inUntrustedWorkspace ? !trusted : options.includeComments,\n\t\tincludeStrings: options.includeStrings === inUntrustedWorkspace ? !trusted : options.includeStrings,\n\t\tallowedCharacters: options.allowedCharacters,\n\t\tallowedLocales: options.allowedLocales,\n\t};\n}\n\nclass DocumentUnicodeHighlighter extends Disposable {\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = this._model.getVersionId();\n\t\tthis._editorWorkerService\n\t\t\t.computedUnicodeHighlights(this._model.uri, this._options)\n\t\t\t.then((info) => {\n\t\t\t\tif (this._model.isDisposed()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this._model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._updateState(info);\n\n\t\t\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\t\t\tif (!info.hasMore) {\n\t\t\t\t\t// Don't show decoration if there are too many.\n\t\t\t\t\t// In this case, a banner is shown.\n\t\t\t\t\tfor (const range of info.ranges) {\n\t\t\t\t\t\tdecorations.push({\n\t\t\t\t\t\t\trange: range,\n\t\t\t\t\t\t\toptions: Decorations.instance.getDecorationFromOptions(this._options),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._decorations.set(decorations);\n\t\t\t});\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (\n\t\t\t!isModelDecorationVisible(model, decoration)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nclass ViewportUnicodeHighlighter extends Disposable {\n\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate readonly _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidLayoutChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeHiddenAreas(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst ranges = this._editor.getVisibleRanges();\n\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\tconst totalResult: IUnicodeHighlightsResult = {\n\t\t\tranges: [],\n\t\t\tambiguousCharacterCount: 0,\n\t\t\tinvisibleCharacterCount: 0,\n\t\t\tnonBasicAsciiCharacterCount: 0,\n\t\t\thasMore: false,\n\t\t};\n\t\tfor (const range of ranges) {\n\t\t\tconst result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range);\n\t\t\tfor (const r of result.ranges) {\n\t\t\t\ttotalResult.ranges.push(r);\n\t\t\t}\n\t\t\ttotalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n\t\t\ttotalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n\t\t\ttotalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n\t\t\ttotalResult.hasMore = totalResult.hasMore || result.hasMore;\n\t\t}\n\n\t\tif (!totalResult.hasMore) {\n\t\t\t// Don't show decorations if there are too many.\n\t\t\t// A banner will be shown instead.\n\t\t\tfor (const range of totalResult.ranges) {\n\t\t\t\tdecorations.push({ range, options: Decorations.instance.getDecorationFromOptions(this._options) });\n\t\t\t}\n\t\t}\n\t\tthis._updateState(totalResult);\n\n\t\tthis._decorations.set(decorations);\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\tif (!isModelDecorationVisible(model, decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nconst configureUnicodeHighlightOptionsStr = nls.localize('unicodeHighlight.configureUnicodeHighlightOptions', 'Configure Unicode Highlight Options');\n\nexport class UnicodeHighlighterHoverParticipant implements IEditorHoverParticipant<MarkdownHover> {\n\n\tpublic readonly hoverOrdinal: number = 5;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IMarkdownRendererService private readonly _markdownRendererService: IMarkdownRendererService,\n\t) { }\n\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkdownHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\n\t\tconst unicodeHighlighter = this._editor.getContribution<UnicodeHighlighter>(UnicodeHighlighter.ID);\n\t\tif (!unicodeHighlighter) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst result: MarkdownHover[] = [];\n\t\tconst existedReason = new Set<string>();\n\t\tlet index = 300;\n\t\tfor (const d of lineDecorations) {\n\n\t\t\tconst highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n\t\t\tif (!highlightInfo) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst char = model.getValueInRange(d.range);\n\t\t\t// text refers to a single character.\n\t\t\tconst codePoint = char.codePointAt(0)!;\n\n\t\t\tconst codePointStr = formatCodePointMarkdown(codePoint);\n\n\t\t\tlet reason: string;\n\t\t\tswitch (highlightInfo.reason.kind) {\n\t\t\t\tcase UnicodeHighlighterReasonKind.Ambiguous: {\n\t\t\t\t\tif (isBasicASCII(highlightInfo.reason.confusableWith)) {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguousASCII',\n\t\t\t\t\t\t\t'The character {0} could be confused with the ASCII character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguous',\n\t\t\t\t\t\t\t'The character {0} could be confused with the character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.Invisible:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsInvisible',\n\t\t\t\t\t\t'The character {0} is invisible.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.NonBasicAscii:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsNonBasicAscii',\n\t\t\t\t\t\t'The character {0} is not a basic ASCII character.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (existedReason.has(reason)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\texistedReason.add(reason);\n\n\t\t\tconst adjustSettingsArgs: ShowExcludeOptionsArgs = {\n\t\t\t\tcodePoint: codePoint,\n\t\t\t\treason: highlightInfo.reason,\n\t\t\t\tinComment: highlightInfo.inComment,\n\t\t\t\tinString: highlightInfo.inString,\n\t\t\t};\n\n\t\t\tconst adjustSettings = nls.localize('unicodeHighlight.adjustSettings', 'Adjust settings');\n\t\t\tconst uri = createCommandUri(ShowExcludeOptions.ID, adjustSettingsArgs);\n\t\t\tconst markdown = new MarkdownString('', true)\n\t\t\t\t.appendMarkdown(reason)\n\t\t\t\t.appendText(' ')\n\t\t\t\t.appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n\t\t\tresult.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkdownHover[]): IRenderedHoverParts<MarkdownHover> {\n\t\treturn renderMarkdownHovers(context, hoverParts, this._editor, this._markdownRendererService);\n\t}\n\n\tpublic getAccessibleContent(hoverPart: MarkdownHover): string {\n\t\treturn hoverPart.contents.map(c => c.value).join('\\n');\n\t}\n}\n\nfunction codePointToHex(codePoint: number): string {\n\treturn `U+${codePoint.toString(16).padStart(4, '0')}`;\n}\n\nfunction formatCodePointMarkdown(codePoint: number) {\n\tlet value = `\\`${codePointToHex(codePoint)}\\``;\n\tif (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t// Don't render any control characters or any invisible characters, as they cannot be seen anyways.\n\t\tvalue += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n\t}\n\treturn value;\n}\n\nfunction renderCodePointAsInlineCode(codePoint: number): string {\n\tif (codePoint === CharCode.BackTick) {\n\t\treturn '`` ` ``';\n\t}\n\treturn '`' + String.fromCodePoint(codePoint) + '`';\n}\n\nfunction computeReason(char: string, options: UnicodeHighlighterOptions): UnicodeHighlighterReason | null {\n\treturn UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options);\n}\n\nclass Decorations {\n\tpublic static readonly instance = new Decorations();\n\n\tprivate readonly map = new Map<string, ModelDecorationOptions>();\n\n\tgetDecorationFromOptions(options: UnicodeHighlighterOptions): ModelDecorationOptions {\n\t\treturn this.getDecoration(!options.includeComments, !options.includeStrings);\n\t}\n\n\tprivate getDecoration(hideInComments: boolean, hideInStrings: boolean): ModelDecorationOptions {\n\t\tconst key = `${hideInComments}${hideInStrings}`;\n\t\tlet options = this.map.get(key);\n\t\tif (!options) {\n\t\t\toptions = ModelDecorationOptions.createDynamic({\n\t\t\t\tdescription: 'unicode-highlight',\n\t\t\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\t\t\tclassName: 'unicode-highlight',\n\t\t\t\tshowIfCollapsed: true,\n\t\t\t\toverviewRuler: null,\n\t\t\t\tminimap: null,\n\t\t\t\thideInCommentTokens: hideInComments,\n\t\t\t\thideInStringTokens: hideInStrings,\n\t\t\t});\n\t\t\tthis.map.set(key, options);\n\t\t}\n\t\treturn options;\n\t}\n}\n\ninterface IDisableUnicodeHighlightAction {\n}\n\nexport class DisableHighlightingInCommentsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInComments.shortLabel', 'Disable Highlight In Comments');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInComments', \"Disable highlighting of characters in comments\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeComments, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingInStringsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInStrings.shortLabel', 'Disable Highlight In Strings');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInStrings', \"Disable highlighting of characters in strings\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfAmbiguousCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel', 'Disable Ambiguous Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters', \"Disable highlighting of ambiguous characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfInvisibleCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel', 'Disable Invisible Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfInvisibleCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfInvisibleCharacters', \"Disable highlighting of invisible characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfNonBasicAsciiCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel', 'Disable Non ASCII Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters', \"Disable highlighting of non basic ASCII characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII, false, ConfigurationTarget.USER);\n\t}\n}\n\ninterface ShowExcludeOptionsArgs {\n\tcodePoint: number;\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\nexport class ShowExcludeOptions extends Action2 {\n\tpublic static ID = 'editor.action.unicodeHighlight.showExcludeOptions';\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: ShowExcludeOptions.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.showExcludeOptions', \"Show Exclude Options\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, args: any): Promise<void> {\n\t\tconst { codePoint, reason, inString, inComment } = args as ShowExcludeOptionsArgs;\n\n\t\tconst char = String.fromCodePoint(codePoint);\n\n\t\tconst quickPickService = accessor.get(IQuickInputService);\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\n\t\tinterface ExtendedOptions extends IQuickPickItem {\n\t\t\trun(): Promise<void>;\n\t\t}\n\n\t\tfunction getExcludeCharFromBeingHighlightedLabel(codePoint: number) {\n\t\t\tif (InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t\t\treturn nls.localize('unicodeHighlight.excludeInvisibleCharFromBeingHighlighted', 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));\n\t\t\t}\n\t\t\treturn nls.localize('unicodeHighlight.excludeCharFromBeingHighlighted', 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} \"${char}\"`);\n\t\t}\n\n\t\tconst options: ExtendedOptions[] = [];\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tfor (const locale of reason.notAmbiguousInLocales) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: nls.localize(\"unicodeHighlight.allowCommonCharactersInLanguage\", \"Allow unicode characters that are more common in the language \\\"{0}\\\".\", locale),\n\t\t\t\t\trun: async () => {\n\t\t\t\t\t\texcludeLocaleFromBeingHighlighted(configurationService, [locale]);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\toptions.push(\n\t\t\t{\n\t\t\t\tlabel: getExcludeCharFromBeingHighlightedLabel(codePoint),\n\t\t\t\trun: () => excludeCharFromBeingHighlighted(configurationService, [codePoint])\n\t\t\t}\n\t\t);\n\n\t\tif (inComment) {\n\t\t\tconst action = new DisableHighlightingInCommentsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t} else if (inString) {\n\t\t\tconst action = new DisableHighlightingInStringsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t}\n\n\t\tfunction getTitle(options: Action2) {\n\t\t\treturn typeof options.desc.title === 'string' ? options.desc.title : options.desc.title.value;\n\t\t}\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tconst action = new DisableHighlightingOfAmbiguousCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.Invisible) {\n\t\t\tconst action = new DisableHighlightingOfInvisibleCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.NonBasicAscii) {\n\t\t\tconst action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else {\n\t\t\texpectNever(reason);\n\t\t}\n\n\t\tconst result = await quickPickService.pick(\n\t\t\toptions,\n\t\t\t{ title: configureUnicodeHighlightOptionsStr }\n\t\t);\n\n\t\tif (result) {\n\t\t\tawait result.run();\n\t\t}\n\t}\n}\n\nasync function excludeCharFromBeingHighlighted(configurationService: IConfigurationService, charCodes: number[]) {\n\tconst existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = existingValue as any;\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const charCode of charCodes) {\n\t\tvalue[String.fromCodePoint(charCode)] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters, value, ConfigurationTarget.USER);\n}\n\nasync function excludeLocaleFromBeingHighlighted(configurationService: IConfigurationService, locales: string[]) {\n\tconst existingValue = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user?.value;\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// Copy value, as the existing value is read only\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = Object.assign({}, existingValue as any);\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const locale of locales) {\n\t\tvalue[locale] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales, value, ConfigurationTarget.USER);\n}\n\nfunction expectNever(value: never) {\n\tthrow new Error(`Unexpected value: ${value}`);\n}\n\nregisterAction2(DisableHighlightingOfAmbiguousCharactersAction);\nregisterAction2(DisableHighlightingOfInvisibleCharactersAction);\nregisterAction2(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterAction2(ShowExcludeOptions);\nregisterEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter, EditorContributionInstantiation.AfterFirstRender);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n"]}
|
|
@@ -85,11 +85,11 @@ let UnusualLineTerminatorsDetector = class UnusualLineTerminatorsDetector extend
|
|
|
85
85
|
try {
|
|
86
86
|
this._isPresentingDialog = true;
|
|
87
87
|
result = await this._dialogService.confirm({
|
|
88
|
-
title: nls.localize(
|
|
89
|
-
message: nls.localize(
|
|
90
|
-
detail: nls.localize(
|
|
91
|
-
primaryButton: nls.localize(
|
|
92
|
-
cancelButton: nls.localize(
|
|
88
|
+
title: nls.localize(1555, "Unusual Line Terminators"),
|
|
89
|
+
message: nls.localize(1556, "Detected unusual line terminators"),
|
|
90
|
+
detail: nls.localize(1557, "The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.", basename(model.uri)),
|
|
91
|
+
primaryButton: nls.localize(1558, "&&Remove Unusual Line Terminators"),
|
|
92
|
+
cancelButton: nls.localize(1559, "Ignore")
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
finally {
|
|
@@ -9,15 +9,15 @@ import { DocumentHighlightKind } from '../../../common/languages.js';
|
|
|
9
9
|
import * as nls from '../../../../nls.js';
|
|
10
10
|
import { activeContrastBorder, editorSelectionHighlight, minimapSelectionOccurrenceHighlight, overviewRulerSelectionHighlightForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';
|
|
11
11
|
import { registerThemingParticipant, themeColorFromId } from '../../../../platform/theme/common/themeService.js';
|
|
12
|
-
const wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize(
|
|
13
|
-
registerColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize(
|
|
14
|
-
registerColor('editor.wordHighlightTextBackground', wordHighlightBackground, nls.localize(
|
|
15
|
-
const wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(
|
|
16
|
-
registerColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(
|
|
17
|
-
registerColor('editor.wordHighlightTextBorder', wordHighlightBorder, nls.localize(
|
|
18
|
-
const overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', '#A0A0A0CC', nls.localize(
|
|
19
|
-
const overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', '#C0A0C0CC', nls.localize(
|
|
20
|
-
const overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', overviewRulerSelectionHighlightForeground, nls.localize(
|
|
12
|
+
const wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize(1560, 'Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
13
|
+
registerColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize(1561, 'Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
14
|
+
registerColor('editor.wordHighlightTextBackground', wordHighlightBackground, nls.localize(1562, 'Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
15
|
+
const wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1563, 'Border color of a symbol during read-access, like reading a variable.'));
|
|
16
|
+
registerColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1564, 'Border color of a symbol during write-access, like writing to a variable.'));
|
|
17
|
+
registerColor('editor.wordHighlightTextBorder', wordHighlightBorder, nls.localize(1565, "Border color of a textual occurrence for a symbol."));
|
|
18
|
+
const overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', '#A0A0A0CC', nls.localize(1566, 'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
19
|
+
const overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', '#C0A0C0CC', nls.localize(1567, 'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
20
|
+
const overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', overviewRulerSelectionHighlightForeground, nls.localize(1568, 'Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);
|
|
21
21
|
const _WRITE_OPTIONS = ModelDecorationOptions.register({
|
|
22
22
|
description: 'word-highlight-strong',
|
|
23
23
|
stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
|
|
@@ -742,7 +742,7 @@ class NextWordHighlightAction extends WordHighlightNavigationAction {
|
|
|
742
742
|
constructor() {
|
|
743
743
|
super(true, {
|
|
744
744
|
id: 'editor.action.wordHighlight.next',
|
|
745
|
-
label: nls.localize2(
|
|
745
|
+
label: nls.localize2(1569, "Go to Next Symbol Highlight"),
|
|
746
746
|
precondition: ctxHasWordHighlights,
|
|
747
747
|
kbOpts: {
|
|
748
748
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -756,7 +756,7 @@ class PrevWordHighlightAction extends WordHighlightNavigationAction {
|
|
|
756
756
|
constructor() {
|
|
757
757
|
super(false, {
|
|
758
758
|
id: 'editor.action.wordHighlight.prev',
|
|
759
|
-
label: nls.localize2(
|
|
759
|
+
label: nls.localize2(1570, "Go to Previous Symbol Highlight"),
|
|
760
760
|
precondition: ctxHasWordHighlights,
|
|
761
761
|
kbOpts: {
|
|
762
762
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -770,7 +770,7 @@ class TriggerWordHighlightAction extends EditorAction {
|
|
|
770
770
|
constructor() {
|
|
771
771
|
super({
|
|
772
772
|
id: 'editor.action.wordHighlight.trigger',
|
|
773
|
-
label: nls.localize2(
|
|
773
|
+
label: nls.localize2(1571, "Trigger Symbol Highlight"),
|
|
774
774
|
precondition: undefined,
|
|
775
775
|
kbOpts: {
|
|
776
776
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import * as nls from '../../../../nls.js';
|
|
6
|
+
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';
|
|
7
|
+
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
|
|
8
|
+
import { IsWindowsContext } from '../../../../platform/contextkey/common/contextkeys.js';
|
|
5
9
|
import { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand } from '../../../browser/editorExtensions.js';
|
|
6
10
|
import { ReplaceCommand } from '../../../common/commands/replaceCommand.js';
|
|
7
11
|
import { EditorOptions } from '../../../common/config/editorOptions.js';
|
|
8
|
-
import { CursorState } from '../../../common/cursorCommon.js';
|
|
9
|
-
import { WordOperations } from '../../../common/cursor/cursorWordOperations.js';
|
|
10
|
-
import { getMapForWordSeparators } from '../../../common/core/wordCharacterClassifier.js';
|
|
11
12
|
import { Position } from '../../../common/core/position.js';
|
|
12
13
|
import { Range } from '../../../common/core/range.js';
|
|
13
14
|
import { Selection } from '../../../common/core/selection.js';
|
|
15
|
+
import { getMapForWordSeparators } from '../../../common/core/wordCharacterClassifier.js';
|
|
16
|
+
import { WordOperations } from '../../../common/cursor/cursorWordOperations.js';
|
|
17
|
+
import { CursorState } from '../../../common/cursorCommon.js';
|
|
14
18
|
import { EditorContextKeys } from '../../../common/editorContextKeys.js';
|
|
15
19
|
import { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';
|
|
16
|
-
import * as nls from '../../../../nls.js';
|
|
17
|
-
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';
|
|
18
|
-
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
|
|
19
|
-
import { IsWindowsContext } from '../../../../platform/contextkey/common/contextkeys.js';
|
|
20
20
|
export class MoveWordCommand extends EditorCommand {
|
|
21
21
|
constructor(opts) {
|
|
22
22
|
super(opts);
|
|
@@ -263,7 +263,7 @@ export class CursorWordAccessibilityRightSelect extends WordRightCommand {
|
|
|
263
263
|
}
|
|
264
264
|
export class DeleteWordCommand extends EditorCommand {
|
|
265
265
|
constructor(opts) {
|
|
266
|
-
super(opts);
|
|
266
|
+
super({ canTriggerInlineEdits: true, ...opts });
|
|
267
267
|
this._whitespaceHeuristics = opts.whitespaceHeuristics;
|
|
268
268
|
this._wordNavigationType = opts.wordNavigationType;
|
|
269
269
|
}
|
|
@@ -395,7 +395,7 @@ export class DeleteInsideWord extends EditorAction {
|
|
|
395
395
|
super({
|
|
396
396
|
id: 'deleteInsideWord',
|
|
397
397
|
precondition: EditorContextKeys.writable,
|
|
398
|
-
label: nls.localize2(
|
|
398
|
+
label: nls.localize2(1572, "Delete Word"),
|
|
399
399
|
});
|
|
400
400
|
}
|
|
401
401
|
run(accessor, editor, args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/editor/contrib/wordOperations/browser/wordOperations.ts"],"names":[],"mappings":"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","file":"wordOperations.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 { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorCommand, ICommandOptions, registerEditorAction, registerEditorCommand, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { EditorOption, EditorOptions } from '../../../common/config/editorOptions.js';\nimport { CursorState } from '../../../common/cursorCommon.js';\nimport { CursorChangeReason } from '../../../common/cursorEvents.js';\nimport { DeleteWordContext, WordNavigationType, WordOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { getMapForWordSeparators, WordCharacterClassifier } from '../../../common/core/wordCharacterClassifier.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ScrollType } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport * as nls from '../../../../nls.js';\nimport { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IsWindowsContext } from '../../../../platform/contextkey/common/contextkeys.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\n\nexport interface MoveWordOptions extends ICommandOptions {\n\tinSelectionMode: boolean;\n\twordNavigationType: WordNavigationType;\n}\n\nexport abstract class MoveWordCommand extends EditorCommand {\n\n\tprivate readonly _inSelectionMode: boolean;\n\tprivate readonly _wordNavigationType: WordNavigationType;\n\n\tconstructor(opts: MoveWordOptions) {\n\t\tsuper(opts);\n\t\tthis._inSelectionMode = opts.inSelectionMode;\n\t\tthis._wordNavigationType = opts.wordNavigationType;\n\t}\n\n\tpublic runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: unknown): void {\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst wordSeparators = getMapForWordSeparators(editor.getOption(EditorOption.wordSeparators), editor.getOption(EditorOption.wordSegmenterLocales));\n\t\tconst model = editor.getModel();\n\t\tconst selections = editor.getSelections();\n\t\tconst hasMulticursor = selections.length > 1;\n\t\tconst result = selections.map((sel) => {\n\t\t\tconst inPosition = new Position(sel.positionLineNumber, sel.positionColumn);\n\t\t\tconst outPosition = this._move(wordSeparators, model, inPosition, this._wordNavigationType, hasMulticursor);\n\t\t\treturn this._moveTo(sel, outPosition, this._inSelectionMode);\n\t\t});\n\n\t\tmodel.pushStackElement();\n\t\teditor._getViewModel().setCursorStates('moveWordCommand', CursorChangeReason.Explicit, result.map(r => CursorState.fromModelSelection(r)));\n\t\tif (result.length === 1) {\n\t\t\tconst pos = new Position(result[0].positionLineNumber, result[0].positionColumn);\n\t\t\teditor.revealPosition(pos, ScrollType.Smooth);\n\t\t}\n\t}\n\n\tprivate _moveTo(from: Selection, to: Position, inSelectionMode: boolean): Selection {\n\t\tif (inSelectionMode) {\n\t\t\t// move just position\n\t\t\treturn new Selection(\n\t\t\t\tfrom.selectionStartLineNumber,\n\t\t\t\tfrom.selectionStartColumn,\n\t\t\t\tto.lineNumber,\n\t\t\t\tto.column\n\t\t\t);\n\t\t} else {\n\t\t\t// move everything\n\t\t\treturn new Selection(\n\t\t\t\tto.lineNumber,\n\t\t\t\tto.column,\n\t\t\t\tto.lineNumber,\n\t\t\t\tto.column\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected abstract _move(wordSeparators: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position;\n}\n\nexport class WordLeftCommand extends MoveWordCommand {\n\tprotected _move(wordSeparators: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn WordOperations.moveWordLeft(wordSeparators, model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class WordRightCommand extends MoveWordCommand {\n\tprotected _move(wordSeparators: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn WordOperations.moveWordRight(wordSeparators, model, position, wordNavigationType);\n\t}\n}\n\nexport class CursorWordStartLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartLeft',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndLeft',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordStartFast,\n\t\t\tid: 'cursorWordLeft',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.LeftArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.LeftArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class CursorWordStartLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartLeftSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndLeftSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordStartFast,\n\t\t\tid: 'cursorWordLeftSelect',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.LeftArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyMod.Shift | KeyCode.LeftArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\n// Accessibility navigation commands should only be enabled on windows since they are tuned to what NVDA expects\nexport class CursorWordAccessibilityLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityLeft',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class CursorWordAccessibilityLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityLeftSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class CursorWordStartRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartRight',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndRight',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.RightArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.RightArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class CursorWordRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordRight',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordStartRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartRightSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndRightSelect',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.RightArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyMod.Shift | KeyCode.RightArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class CursorWordRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordRightSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordAccessibilityRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityRight',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class CursorWordAccessibilityRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityRightSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport interface DeleteWordOptions extends ICommandOptions {\n\twhitespaceHeuristics: boolean;\n\twordNavigationType: WordNavigationType;\n}\n\nexport abstract class DeleteWordCommand extends EditorCommand {\n\tprivate readonly _whitespaceHeuristics: boolean;\n\tprivate readonly _wordNavigationType: WordNavigationType;\n\n\tconstructor(opts: DeleteWordOptions) {\n\t\tsuper(opts);\n\t\tthis._whitespaceHeuristics = opts.whitespaceHeuristics;\n\t\tthis._wordNavigationType = opts.wordNavigationType;\n\t}\n\n\tpublic runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: unknown): void {\n\t\tconst languageConfigurationService = accessor?.get(ILanguageConfigurationService);\n\n\t\tif (!editor.hasModel() || !languageConfigurationService) {\n\t\t\treturn;\n\t\t}\n\t\tconst wordSeparators = getMapForWordSeparators(editor.getOption(EditorOption.wordSeparators), editor.getOption(EditorOption.wordSegmenterLocales));\n\t\tconst model = editor.getModel();\n\t\tconst selections = editor.getSelections();\n\t\tconst autoClosingBrackets = editor.getOption(EditorOption.autoClosingBrackets);\n\t\tconst autoClosingQuotes = editor.getOption(EditorOption.autoClosingQuotes);\n\t\tconst autoClosingPairs = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs();\n\t\tconst viewModel = editor._getViewModel();\n\n\t\tconst commands = selections.map((sel) => {\n\t\t\tconst deleteRange = this._delete({\n\t\t\t\twordSeparators,\n\t\t\t\tmodel,\n\t\t\t\tselection: sel,\n\t\t\t\twhitespaceHeuristics: this._whitespaceHeuristics,\n\t\t\t\tautoClosingDelete: editor.getOption(EditorOption.autoClosingDelete),\n\t\t\t\tautoClosingBrackets,\n\t\t\t\tautoClosingQuotes,\n\t\t\t\tautoClosingPairs,\n\t\t\t\tautoClosedCharacters: viewModel.getCursorAutoClosedCharacters(),\n\t\t\t}, this._wordNavigationType);\n\t\t\treturn new ReplaceCommand(deleteRange, '');\n\t\t});\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, commands);\n\t\teditor.pushUndoStop();\n\t}\n\n\tprotected abstract _delete(ctx: DeleteWordContext, wordNavigationType: WordNavigationType): Range;\n}\n\nexport class DeleteWordLeftCommand extends DeleteWordCommand {\n\tprotected _delete(ctx: DeleteWordContext, wordNavigationType: WordNavigationType): Range {\n\t\tconst r = WordOperations.deleteWordLeft(ctx, wordNavigationType);\n\t\tif (r) {\n\t\t\treturn r;\n\t\t}\n\t\treturn new Range(1, 1, 1, 1);\n\t}\n}\n\nexport class DeleteWordRightCommand extends DeleteWordCommand {\n\tprotected _delete(ctx: DeleteWordContext, wordNavigationType: WordNavigationType): Range {\n\t\tconst r = WordOperations.deleteWordRight(ctx, wordNavigationType);\n\t\tif (r) {\n\t\t\treturn r;\n\t\t}\n\t\tconst lineCount = ctx.model.getLineCount();\n\t\tconst maxColumn = ctx.model.getLineMaxColumn(lineCount);\n\t\treturn new Range(lineCount, maxColumn, lineCount, maxColumn);\n\t}\n}\n\nexport class DeleteWordStartLeft extends DeleteWordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'deleteWordStartLeft',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordEndLeft extends DeleteWordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'deleteWordEndLeft',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordLeft extends DeleteWordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: true,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'deleteWordLeft',\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.textInputFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.Backspace,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.Backspace },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class DeleteWordStartRight extends DeleteWordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'deleteWordStartRight',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordEndRight extends DeleteWordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'deleteWordEndRight',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordRight extends DeleteWordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'deleteWordRight',\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.textInputFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.Delete,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.Delete },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class DeleteInsideWord extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'deleteInsideWord',\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tlabel: nls.localize2('deleteInsideWord', \"Delete Word\"),\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor, args: unknown): void {\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst wordSeparators = getMapForWordSeparators(editor.getOption(EditorOption.wordSeparators), editor.getOption(EditorOption.wordSegmenterLocales));\n\t\tconst model = editor.getModel();\n\t\tconst selections = editor.getSelections();\n\n\t\tconst commands = selections.map((sel) => {\n\t\t\tconst deleteRange = WordOperations.deleteInsideWord(wordSeparators, model, sel);\n\t\t\treturn new ReplaceCommand(deleteRange, '');\n\t\t});\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, commands);\n\t\teditor.pushUndoStop();\n\t}\n}\n\nregisterEditorCommand(new CursorWordStartLeft());\nregisterEditorCommand(new CursorWordEndLeft());\nregisterEditorCommand(new CursorWordLeft());\nregisterEditorCommand(new CursorWordStartLeftSelect());\nregisterEditorCommand(new CursorWordEndLeftSelect());\nregisterEditorCommand(new CursorWordLeftSelect());\nregisterEditorCommand(new CursorWordStartRight());\nregisterEditorCommand(new CursorWordEndRight());\nregisterEditorCommand(new CursorWordRight());\nregisterEditorCommand(new CursorWordStartRightSelect());\nregisterEditorCommand(new CursorWordEndRightSelect());\nregisterEditorCommand(new CursorWordRightSelect());\nregisterEditorCommand(new CursorWordAccessibilityLeft());\nregisterEditorCommand(new CursorWordAccessibilityLeftSelect());\nregisterEditorCommand(new CursorWordAccessibilityRight());\nregisterEditorCommand(new CursorWordAccessibilityRightSelect());\nregisterEditorCommand(new DeleteWordStartLeft());\nregisterEditorCommand(new DeleteWordEndLeft());\nregisterEditorCommand(new DeleteWordLeft());\nregisterEditorCommand(new DeleteWordStartRight());\nregisterEditorCommand(new DeleteWordEndRight());\nregisterEditorCommand(new DeleteWordRight());\nregisterEditorAction(DeleteInsideWord);\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/editor/contrib/wordOperations/browser/wordOperations.ts"],"names":[],"mappings":"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","file":"wordOperations.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 { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport * as nls from '../../../../nls.js';\nimport { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IsWindowsContext } from '../../../../platform/contextkey/common/contextkeys.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorCommand, ICommandOptions, registerEditorAction, registerEditorCommand, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { EditorOption, EditorOptions } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { getMapForWordSeparators, WordCharacterClassifier } from '../../../common/core/wordCharacterClassifier.js';\nimport { DeleteWordContext, WordNavigationType, WordOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { CursorState } from '../../../common/cursorCommon.js';\nimport { CursorChangeReason } from '../../../common/cursorEvents.js';\nimport { ScrollType } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ITextModel } from '../../../common/model.js';\n\nexport interface MoveWordOptions extends ICommandOptions {\n\tinSelectionMode: boolean;\n\twordNavigationType: WordNavigationType;\n}\n\nexport abstract class MoveWordCommand extends EditorCommand {\n\n\tprivate readonly _inSelectionMode: boolean;\n\tprivate readonly _wordNavigationType: WordNavigationType;\n\n\tconstructor(opts: MoveWordOptions) {\n\t\tsuper(opts);\n\t\tthis._inSelectionMode = opts.inSelectionMode;\n\t\tthis._wordNavigationType = opts.wordNavigationType;\n\t}\n\n\tpublic runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: unknown): void {\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst wordSeparators = getMapForWordSeparators(editor.getOption(EditorOption.wordSeparators), editor.getOption(EditorOption.wordSegmenterLocales));\n\t\tconst model = editor.getModel();\n\t\tconst selections = editor.getSelections();\n\t\tconst hasMulticursor = selections.length > 1;\n\t\tconst result = selections.map((sel) => {\n\t\t\tconst inPosition = new Position(sel.positionLineNumber, sel.positionColumn);\n\t\t\tconst outPosition = this._move(wordSeparators, model, inPosition, this._wordNavigationType, hasMulticursor);\n\t\t\treturn this._moveTo(sel, outPosition, this._inSelectionMode);\n\t\t});\n\n\t\tmodel.pushStackElement();\n\t\teditor._getViewModel().setCursorStates('moveWordCommand', CursorChangeReason.Explicit, result.map(r => CursorState.fromModelSelection(r)));\n\t\tif (result.length === 1) {\n\t\t\tconst pos = new Position(result[0].positionLineNumber, result[0].positionColumn);\n\t\t\teditor.revealPosition(pos, ScrollType.Smooth);\n\t\t}\n\t}\n\n\tprivate _moveTo(from: Selection, to: Position, inSelectionMode: boolean): Selection {\n\t\tif (inSelectionMode) {\n\t\t\t// move just position\n\t\t\treturn new Selection(\n\t\t\t\tfrom.selectionStartLineNumber,\n\t\t\t\tfrom.selectionStartColumn,\n\t\t\t\tto.lineNumber,\n\t\t\t\tto.column\n\t\t\t);\n\t\t} else {\n\t\t\t// move everything\n\t\t\treturn new Selection(\n\t\t\t\tto.lineNumber,\n\t\t\t\tto.column,\n\t\t\t\tto.lineNumber,\n\t\t\t\tto.column\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected abstract _move(wordSeparators: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position;\n}\n\nexport class WordLeftCommand extends MoveWordCommand {\n\tprotected _move(wordSeparators: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn WordOperations.moveWordLeft(wordSeparators, model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class WordRightCommand extends MoveWordCommand {\n\tprotected _move(wordSeparators: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn WordOperations.moveWordRight(wordSeparators, model, position, wordNavigationType);\n\t}\n}\n\nexport class CursorWordStartLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartLeft',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndLeft',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordStartFast,\n\t\t\tid: 'cursorWordLeft',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.LeftArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.LeftArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class CursorWordStartLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartLeftSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndLeftSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordStartFast,\n\t\t\tid: 'cursorWordLeftSelect',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.LeftArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyMod.Shift | KeyCode.LeftArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\n// Accessibility navigation commands should only be enabled on windows since they are tuned to what NVDA expects\nexport class CursorWordAccessibilityLeft extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityLeft',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class CursorWordAccessibilityLeftSelect extends WordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityLeftSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class CursorWordStartRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartRight',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndRight',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.RightArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.RightArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class CursorWordRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordRight',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordStartRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'cursorWordStartRightSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordEndRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordEndRightSelect',\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.RightArrow,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyMod.Shift | KeyCode.RightArrow },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class CursorWordRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'cursorWordRightSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n}\n\nexport class CursorWordAccessibilityRight extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: false,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityRight',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport class CursorWordAccessibilityRightSelect extends WordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\tinSelectionMode: true,\n\t\t\twordNavigationType: WordNavigationType.WordAccessibility,\n\t\t\tid: 'cursorWordAccessibilityRightSelect',\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tprotected override _move(wordCharacterClassifier: WordCharacterClassifier, model: ITextModel, position: Position, wordNavigationType: WordNavigationType, hasMulticursor: boolean): Position {\n\t\treturn super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n\t}\n}\n\nexport interface DeleteWordOptions extends ICommandOptions {\n\twhitespaceHeuristics: boolean;\n\twordNavigationType: WordNavigationType;\n}\n\nexport abstract class DeleteWordCommand extends EditorCommand {\n\tprivate readonly _whitespaceHeuristics: boolean;\n\tprivate readonly _wordNavigationType: WordNavigationType;\n\n\tconstructor(opts: DeleteWordOptions) {\n\t\tsuper({ canTriggerInlineEdits: true, ...opts });\n\t\tthis._whitespaceHeuristics = opts.whitespaceHeuristics;\n\t\tthis._wordNavigationType = opts.wordNavigationType;\n\t}\n\n\tpublic runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: unknown): void {\n\t\tconst languageConfigurationService = accessor?.get(ILanguageConfigurationService);\n\n\t\tif (!editor.hasModel() || !languageConfigurationService) {\n\t\t\treturn;\n\t\t}\n\t\tconst wordSeparators = getMapForWordSeparators(editor.getOption(EditorOption.wordSeparators), editor.getOption(EditorOption.wordSegmenterLocales));\n\t\tconst model = editor.getModel();\n\t\tconst selections = editor.getSelections();\n\t\tconst autoClosingBrackets = editor.getOption(EditorOption.autoClosingBrackets);\n\t\tconst autoClosingQuotes = editor.getOption(EditorOption.autoClosingQuotes);\n\t\tconst autoClosingPairs = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs();\n\t\tconst viewModel = editor._getViewModel();\n\n\t\tconst commands = selections.map((sel) => {\n\t\t\tconst deleteRange = this._delete({\n\t\t\t\twordSeparators,\n\t\t\t\tmodel,\n\t\t\t\tselection: sel,\n\t\t\t\twhitespaceHeuristics: this._whitespaceHeuristics,\n\t\t\t\tautoClosingDelete: editor.getOption(EditorOption.autoClosingDelete),\n\t\t\t\tautoClosingBrackets,\n\t\t\t\tautoClosingQuotes,\n\t\t\t\tautoClosingPairs,\n\t\t\t\tautoClosedCharacters: viewModel.getCursorAutoClosedCharacters(),\n\t\t\t}, this._wordNavigationType);\n\t\t\treturn new ReplaceCommand(deleteRange, '');\n\t\t});\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, commands);\n\t\teditor.pushUndoStop();\n\t}\n\n\tprotected abstract _delete(ctx: DeleteWordContext, wordNavigationType: WordNavigationType): Range;\n}\n\nexport class DeleteWordLeftCommand extends DeleteWordCommand {\n\tprotected _delete(ctx: DeleteWordContext, wordNavigationType: WordNavigationType): Range {\n\t\tconst r = WordOperations.deleteWordLeft(ctx, wordNavigationType);\n\t\tif (r) {\n\t\t\treturn r;\n\t\t}\n\t\treturn new Range(1, 1, 1, 1);\n\t}\n}\n\nexport class DeleteWordRightCommand extends DeleteWordCommand {\n\tprotected _delete(ctx: DeleteWordContext, wordNavigationType: WordNavigationType): Range {\n\t\tconst r = WordOperations.deleteWordRight(ctx, wordNavigationType);\n\t\tif (r) {\n\t\t\treturn r;\n\t\t}\n\t\tconst lineCount = ctx.model.getLineCount();\n\t\tconst maxColumn = ctx.model.getLineMaxColumn(lineCount);\n\t\treturn new Range(lineCount, maxColumn, lineCount, maxColumn);\n\t}\n}\n\nexport class DeleteWordStartLeft extends DeleteWordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'deleteWordStartLeft',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordEndLeft extends DeleteWordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'deleteWordEndLeft',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordLeft extends DeleteWordLeftCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: true,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'deleteWordLeft',\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.textInputFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.Backspace,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.Backspace },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class DeleteWordStartRight extends DeleteWordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordStart,\n\t\t\tid: 'deleteWordStartRight',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordEndRight extends DeleteWordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: false,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'deleteWordEndRight',\n\t\t\tprecondition: EditorContextKeys.writable\n\t\t});\n\t}\n}\n\nexport class DeleteWordRight extends DeleteWordRightCommand {\n\tconstructor() {\n\t\tsuper({\n\t\t\twhitespaceHeuristics: true,\n\t\t\twordNavigationType: WordNavigationType.WordEnd,\n\t\t\tid: 'deleteWordRight',\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.textInputFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.Delete,\n\t\t\t\tmac: { primary: KeyMod.Alt | KeyCode.Delete },\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class DeleteInsideWord extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'deleteInsideWord',\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tlabel: nls.localize2('deleteInsideWord', \"Delete Word\"),\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor, args: unknown): void {\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst wordSeparators = getMapForWordSeparators(editor.getOption(EditorOption.wordSeparators), editor.getOption(EditorOption.wordSegmenterLocales));\n\t\tconst model = editor.getModel();\n\t\tconst selections = editor.getSelections();\n\n\t\tconst commands = selections.map((sel) => {\n\t\t\tconst deleteRange = WordOperations.deleteInsideWord(wordSeparators, model, sel);\n\t\t\treturn new ReplaceCommand(deleteRange, '');\n\t\t});\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, commands);\n\t\teditor.pushUndoStop();\n\t}\n}\n\nregisterEditorCommand(new CursorWordStartLeft());\nregisterEditorCommand(new CursorWordEndLeft());\nregisterEditorCommand(new CursorWordLeft());\nregisterEditorCommand(new CursorWordStartLeftSelect());\nregisterEditorCommand(new CursorWordEndLeftSelect());\nregisterEditorCommand(new CursorWordLeftSelect());\nregisterEditorCommand(new CursorWordStartRight());\nregisterEditorCommand(new CursorWordEndRight());\nregisterEditorCommand(new CursorWordRight());\nregisterEditorCommand(new CursorWordStartRightSelect());\nregisterEditorCommand(new CursorWordEndRightSelect());\nregisterEditorCommand(new CursorWordRightSelect());\nregisterEditorCommand(new CursorWordAccessibilityLeft());\nregisterEditorCommand(new CursorWordAccessibilityLeftSelect());\nregisterEditorCommand(new CursorWordAccessibilityRight());\nregisterEditorCommand(new CursorWordAccessibilityRightSelect());\nregisterEditorCommand(new DeleteWordStartLeft());\nregisterEditorCommand(new DeleteWordEndLeft());\nregisterEditorCommand(new DeleteWordLeft());\nregisterEditorCommand(new DeleteWordStartRight());\nregisterEditorCommand(new DeleteWordEndRight());\nregisterEditorCommand(new DeleteWordRight());\nregisterEditorAction(DeleteInsideWord);\n"]}
|