{"version":3,"file":"static/js/5385_31dcb9c4df91653fc0eb.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/tokenization/browser/tokenization.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js"],"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 *--------------------------------------------------------------------------------------------*/\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { TabFocus } from '../../../browser/config/tabFocus.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nexport class ToggleTabFocusModeAction extends Action2 {\n constructor() {\n super({\n id: ToggleTabFocusModeAction.ID,\n title: nls.localize2({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, 'Toggle Tab Key Moves Focus'),\n precondition: undefined,\n keybinding: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 43 /* KeyCode.KeyM */,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 43 /* KeyCode.KeyM */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: nls.localize2('tabMovesFocusDescriptions', \"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.\"),\n },\n f1: true\n });\n }\n run() {\n const oldValue = TabFocus.getTabFocusMode();\n const newValue = !oldValue;\n TabFocus.setTabFocusMode(newValue);\n if (newValue) {\n alert(nls.localize('toggle.tabMovesFocus.on', \"Pressing Tab will now move focus to the next focusable element\"));\n }\n else {\n alert(nls.localize('toggle.tabMovesFocus.off', \"Pressing Tab will now insert the tab character\"));\n }\n }\n}\nToggleTabFocusModeAction.ID = 'editor.action.toggleTabFocusMode';\nregisterAction2(ToggleTabFocusModeAction);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport * as nls from '../../../../nls.js';\nclass ForceRetokenizeAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.forceRetokenize',\n label: nls.localize('forceRetokenize', \"Developer: Force Retokenize\"),\n alias: 'Developer: Force Retokenize',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const model = editor.getModel();\n model.tokenization.resetTokenization();\n const sw = new StopWatch();\n model.tokenization.forceTokenization(model.getLineCount());\n sw.stop();\n console.log(`tokenization took ${sw.elapsed()}`);\n }\n}\nregisterEditorAction(ForceRetokenizeAction);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './bannerController.css';\nimport { $, append, clearNode } from '../../../../base/browser/dom.js';\nimport { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';\nimport { Action } from '../../../../base/common/actions.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { Link } from '../../../../platform/opener/browser/link.js';\nimport { widgetClose } from '../../../../platform/theme/common/iconRegistry.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nconst BANNER_ELEMENT_HEIGHT = 26;\nlet BannerController = class BannerController extends Disposable {\n constructor(_editor, instantiationService) {\n super();\n this._editor = _editor;\n this.instantiationService = instantiationService;\n this.banner = this._register(this.instantiationService.createInstance(Banner));\n }\n hide() {\n this._editor.setBanner(null, 0);\n this.banner.clear();\n }\n show(item) {\n this.banner.show({\n ...item,\n onClose: () => {\n var _a;\n this.hide();\n (_a = item.onClose) === null || _a === void 0 ? void 0 : _a.call(item);\n }\n });\n this._editor.setBanner(this.banner.element, BANNER_ELEMENT_HEIGHT);\n }\n};\nBannerController = __decorate([\n __param(1, IInstantiationService)\n], BannerController);\nexport { BannerController };\n// TODO@hediet: Investigate if this can be reused by the workspace banner (bannerPart.ts).\nlet Banner = class Banner extends Disposable {\n constructor(instantiationService) {\n super();\n this.instantiationService = instantiationService;\n this.markdownRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});\n this.element = $('div.editor-banner');\n this.element.tabIndex = 0;\n }\n getAriaLabel(item) {\n if (item.ariaLabel) {\n return item.ariaLabel;\n }\n if (typeof item.message === 'string') {\n return item.message;\n }\n return undefined;\n }\n getBannerMessage(message) {\n if (typeof message === 'string') {\n const element = $('span');\n element.innerText = message;\n return element;\n }\n return this.markdownRenderer.render(message).element;\n }\n clear() {\n clearNode(this.element);\n }\n show(item) {\n // Clear previous item\n clearNode(this.element);\n // Banner aria label\n const ariaLabel = this.getAriaLabel(item);\n if (ariaLabel) {\n this.element.setAttribute('aria-label', ariaLabel);\n }\n // Icon\n const iconContainer = append(this.element, $('div.icon-container'));\n iconContainer.setAttribute('aria-hidden', 'true');\n if (item.icon) {\n iconContainer.appendChild($(`div${ThemeIcon.asCSSSelector(item.icon)}`));\n }\n // Message\n const messageContainer = append(this.element, $('div.message-container'));\n messageContainer.setAttribute('aria-hidden', 'true');\n messageContainer.appendChild(this.getBannerMessage(item.message));\n // Message Actions\n this.messageActionsContainer = append(this.element, $('div.message-actions-container'));\n if (item.actions) {\n for (const action of item.actions) {\n this._register(this.instantiationService.createInstance(Link, this.messageActionsContainer, { ...action, tabIndex: -1 }, {}));\n }\n }\n // Action\n const actionBarContainer = append(this.element, $('div.action-container'));\n this.actionBar = this._register(new ActionBar(actionBarContainer));\n this.actionBar.push(this._register(new Action('banner.close', 'Close Banner', ThemeIcon.asClassName(widgetClose), true, () => {\n if (typeof item.onClose === 'function') {\n item.onClose();\n }\n })), { icon: true, label: false });\n this.actionBar.setFocusable(false);\n }\n};\nBanner = __decorate([\n __param(0, IInstantiationService)\n], Banner);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { 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 { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { inUntrustedWorkspace, unicodeHighlightConfigKeys } from '../../../common/config/editorOptions.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecorations.js';\nimport { HoverParticipantRegistry } 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 { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';\nexport const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize('warningIcon', 'Icon shown with a warning message in the extensions editor.'));\nlet UnicodeHighlighter = class UnicodeHighlighter extends Disposable {\n constructor(_editor, _editorWorkerService, _workspaceTrustService, instantiationService) {\n super();\n this._editor = _editor;\n this._editorWorkerService = _editorWorkerService;\n this._workspaceTrustService = _workspaceTrustService;\n this._highlighter = null;\n this._bannerClosed = false;\n this._updateState = (state) => {\n if (state && state.hasMore) {\n if (this._bannerClosed) {\n return;\n }\n // This document contains many non-basic ASCII characters.\n const max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n let data;\n if (state.nonBasicAsciiCharacterCount >= max) {\n data = {\n message: nls.localize('unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters', 'This document contains many non-basic ASCII unicode characters'),\n command: new DisableHighlightingOfNonBasicAsciiCharactersAction(),\n };\n }\n else if (state.ambiguousCharacterCount >= max) {\n data = {\n message: nls.localize('unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters', 'This document contains many ambiguous unicode characters'),\n command: new DisableHighlightingOfAmbiguousCharactersAction(),\n };\n }\n else if (state.invisibleCharacterCount >= max) {\n data = {\n message: nls.localize('unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters', 'This document contains many invisible unicode characters'),\n command: new DisableHighlightingOfInvisibleCharactersAction(),\n };\n }\n else {\n throw new Error('Unreachable');\n }\n this._bannerController.show({\n id: 'unicodeHighlightBanner',\n message: data.message,\n icon: warningIcon,\n actions: [\n {\n label: data.command.shortLabel,\n href: `command:${data.command.id}`\n }\n ],\n onClose: () => {\n this._bannerClosed = true;\n },\n });\n }\n else {\n this._bannerController.hide();\n }\n };\n this._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n this._register(this._editor.onDidChangeModel(() => {\n this._bannerClosed = false;\n this._updateHighlighter();\n }));\n this._options = _editor.getOption(125 /* EditorOption.unicodeHighlighting */);\n this._register(_workspaceTrustService.onDidChangeTrust(e => {\n this._updateHighlighter();\n }));\n this._register(_editor.onDidChangeConfiguration(e => {\n if (e.hasChanged(125 /* EditorOption.unicodeHighlighting */)) {\n this._options = _editor.getOption(125 /* EditorOption.unicodeHighlighting */);\n this._updateHighlighter();\n }\n }));\n this._updateHighlighter();\n }\n dispose() {\n if (this._highlighter) {\n this._highlighter.dispose();\n this._highlighter = null;\n }\n super.dispose();\n }\n _updateHighlighter() {\n this._updateState(null);\n if (this._highlighter) {\n this._highlighter.dispose();\n this._highlighter = null;\n }\n if (!this._editor.hasModel()) {\n return;\n }\n const options = resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n if ([\n options.nonBasicASCII,\n options.ambiguousCharacters,\n options.invisibleCharacters,\n ].every((option) => option === false)) {\n // Don't do anything if the feature is fully disabled\n return;\n }\n const highlightOptions = {\n nonBasicASCII: options.nonBasicASCII,\n ambiguousCharacters: options.ambiguousCharacters,\n invisibleCharacters: options.invisibleCharacters,\n includeComments: options.includeComments,\n includeStrings: options.includeStrings,\n allowedCodePoints: Object.keys(options.allowedCharacters).map(c => c.codePointAt(0)),\n allowedLocales: Object.keys(options.allowedLocales).map(locale => {\n if (locale === '_os') {\n const osLocale = new Intl.NumberFormat().resolvedOptions().locale;\n return osLocale;\n }\n else if (locale === '_vscode') {\n return platform.language;\n }\n return locale;\n }),\n };\n if (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n this._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n }\n else {\n this._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n }\n }\n getDecorationInfo(decoration) {\n if (this._highlighter) {\n return this._highlighter.getDecorationInfo(decoration);\n }\n return null;\n }\n};\nUnicodeHighlighter.ID = 'editor.contrib.unicodeHighlighter';\nUnicodeHighlighter = __decorate([\n __param(1, IEditorWorkerService),\n __param(2, IWorkspaceTrustManagementService),\n __param(3, IInstantiationService)\n], UnicodeHighlighter);\nexport { UnicodeHighlighter };\nfunction resolveOptions(trusted, options) {\n return {\n nonBasicASCII: options.nonBasicASCII === inUntrustedWorkspace ? !trusted : options.nonBasicASCII,\n ambiguousCharacters: options.ambiguousCharacters,\n invisibleCharacters: options.invisibleCharacters,\n includeComments: options.includeComments === inUntrustedWorkspace ? !trusted : options.includeComments,\n includeStrings: options.includeStrings === inUntrustedWorkspace ? !trusted : options.includeStrings,\n allowedCharacters: options.allowedCharacters,\n allowedLocales: options.allowedLocales,\n };\n}\nlet DocumentUnicodeHighlighter = class DocumentUnicodeHighlighter extends Disposable {\n constructor(_editor, _options, _updateState, _editorWorkerService) {\n super();\n this._editor = _editor;\n this._options = _options;\n this._updateState = _updateState;\n this._editorWorkerService = _editorWorkerService;\n this._model = this._editor.getModel();\n this._decorations = this._editor.createDecorationsCollection();\n this._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n this._register(this._editor.onDidChangeModelContent(() => {\n this._updateSoon.schedule();\n }));\n this._updateSoon.schedule();\n }\n dispose() {\n this._decorations.clear();\n super.dispose();\n }\n _update() {\n if (this._model.isDisposed()) {\n return;\n }\n if (!this._model.mightContainNonBasicASCII()) {\n this._decorations.clear();\n return;\n }\n const modelVersionId = this._model.getVersionId();\n this._editorWorkerService\n .computedUnicodeHighlights(this._model.uri, this._options)\n .then((info) => {\n if (this._model.isDisposed()) {\n return;\n }\n if (this._model.getVersionId() !== modelVersionId) {\n // model changed in the meantime\n return;\n }\n this._updateState(info);\n const decorations = [];\n if (!info.hasMore) {\n // Don't show decoration if there are too many.\n // In this case, a banner is shown.\n for (const range of info.ranges) {\n decorations.push({\n range: range,\n options: Decorations.instance.getDecorationFromOptions(this._options),\n });\n }\n }\n this._decorations.set(decorations);\n });\n }\n getDecorationInfo(decoration) {\n if (!this._decorations.has(decoration)) {\n return null;\n }\n const model = this._editor.getModel();\n if (!isModelDecorationVisible(model, decoration)) {\n return null;\n }\n const text = model.getValueInRange(decoration.range);\n return {\n reason: computeReason(text, this._options),\n inComment: isModelDecorationInComment(model, decoration),\n inString: isModelDecorationInString(model, decoration),\n };\n }\n};\nDocumentUnicodeHighlighter = __decorate([\n __param(3, IEditorWorkerService)\n], DocumentUnicodeHighlighter);\nclass ViewportUnicodeHighlighter extends Disposable {\n constructor(_editor, _options, _updateState) {\n super();\n this._editor = _editor;\n this._options = _options;\n this._updateState = _updateState;\n this._model = this._editor.getModel();\n this._decorations = this._editor.createDecorationsCollection();\n this._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n this._register(this._editor.onDidLayoutChange(() => {\n this._updateSoon.schedule();\n }));\n this._register(this._editor.onDidScrollChange(() => {\n this._updateSoon.schedule();\n }));\n this._register(this._editor.onDidChangeHiddenAreas(() => {\n this._updateSoon.schedule();\n }));\n this._register(this._editor.onDidChangeModelContent(() => {\n this._updateSoon.schedule();\n }));\n this._updateSoon.schedule();\n }\n dispose() {\n this._decorations.clear();\n super.dispose();\n }\n _update() {\n if (this._model.isDisposed()) {\n return;\n }\n if (!this._model.mightContainNonBasicASCII()) {\n this._decorations.clear();\n return;\n }\n const ranges = this._editor.getVisibleRanges();\n const decorations = [];\n const totalResult = {\n ranges: [],\n ambiguousCharacterCount: 0,\n invisibleCharacterCount: 0,\n nonBasicAsciiCharacterCount: 0,\n hasMore: false,\n };\n for (const range of ranges) {\n const result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range);\n for (const r of result.ranges) {\n totalResult.ranges.push(r);\n }\n totalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n totalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n totalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n totalResult.hasMore = totalResult.hasMore || result.hasMore;\n }\n if (!totalResult.hasMore) {\n // Don't show decorations if there are too many.\n // A banner will be shown instead.\n for (const range of totalResult.ranges) {\n decorations.push({ range, options: Decorations.instance.getDecorationFromOptions(this._options) });\n }\n }\n this._updateState(totalResult);\n this._decorations.set(decorations);\n }\n getDecorationInfo(decoration) {\n if (!this._decorations.has(decoration)) {\n return null;\n }\n const model = this._editor.getModel();\n const text = model.getValueInRange(decoration.range);\n if (!isModelDecorationVisible(model, decoration)) {\n return null;\n }\n return {\n reason: computeReason(text, this._options),\n inComment: isModelDecorationInComment(model, decoration),\n inString: isModelDecorationInString(model, decoration),\n };\n }\n}\nconst configureUnicodeHighlightOptionsStr = nls.localize('unicodeHighlight.configureUnicodeHighlightOptions', 'Configure Unicode Highlight Options');\nlet UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipant {\n constructor(_editor, _languageService, _openerService) {\n this._editor = _editor;\n this._languageService = _languageService;\n this._openerService = _openerService;\n this.hoverOrdinal = 5;\n }\n computeSync(anchor, lineDecorations) {\n if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {\n return [];\n }\n const model = this._editor.getModel();\n const unicodeHighlighter = this._editor.getContribution(UnicodeHighlighter.ID);\n if (!unicodeHighlighter) {\n return [];\n }\n const result = [];\n const existedReason = new Set();\n let index = 300;\n for (const d of lineDecorations) {\n const highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n if (!highlightInfo) {\n continue;\n }\n const char = model.getValueInRange(d.range);\n // text refers to a single character.\n const codePoint = char.codePointAt(0);\n const codePointStr = formatCodePointMarkdown(codePoint);\n let reason;\n switch (highlightInfo.reason.kind) {\n case 0 /* UnicodeHighlighterReasonKind.Ambiguous */: {\n if (isBasicASCII(highlightInfo.reason.confusableWith)) {\n reason = nls.localize('unicodeHighlight.characterIsAmbiguousASCII', 'The character {0} could be confused with the ASCII character {1}, which is more common in source code.', codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));\n }\n else {\n reason = nls.localize('unicodeHighlight.characterIsAmbiguous', 'The character {0} could be confused with the character {1}, which is more common in source code.', codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));\n }\n break;\n }\n case 1 /* UnicodeHighlighterReasonKind.Invisible */:\n reason = nls.localize('unicodeHighlight.characterIsInvisible', 'The character {0} is invisible.', codePointStr);\n break;\n case 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */:\n reason = nls.localize('unicodeHighlight.characterIsNonBasicAscii', 'The character {0} is not a basic ASCII character.', codePointStr);\n break;\n }\n if (existedReason.has(reason)) {\n continue;\n }\n existedReason.add(reason);\n const adjustSettingsArgs = {\n codePoint: codePoint,\n reason: highlightInfo.reason,\n inComment: highlightInfo.inComment,\n inString: highlightInfo.inString,\n };\n const adjustSettings = nls.localize('unicodeHighlight.adjustSettings', 'Adjust settings');\n const uri = `command:${ShowExcludeOptions.ID}?${encodeURIComponent(JSON.stringify(adjustSettingsArgs))}`;\n const markdown = new MarkdownString('', true)\n .appendMarkdown(reason)\n .appendText(' ')\n .appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n result.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n }\n return result;\n }\n renderHoverParts(context, hoverParts) {\n return renderMarkdownHovers(context, hoverParts, this._editor, this._languageService, this._openerService);\n }\n};\nUnicodeHighlighterHoverParticipant = __decorate([\n __param(1, ILanguageService),\n __param(2, IOpenerService)\n], UnicodeHighlighterHoverParticipant);\nexport { UnicodeHighlighterHoverParticipant };\nfunction codePointToHex(codePoint) {\n return `U+${codePoint.toString(16).padStart(4, '0')}`;\n}\nfunction formatCodePointMarkdown(codePoint) {\n let value = `\\`${codePointToHex(codePoint)}\\``;\n if (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n // Don't render any control characters or any invisible characters, as they cannot be seen anyways.\n value += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n }\n return value;\n}\nfunction renderCodePointAsInlineCode(codePoint) {\n if (codePoint === 96 /* CharCode.BackTick */) {\n return '`` ` ``';\n }\n return '`' + String.fromCodePoint(codePoint) + '`';\n}\nfunction computeReason(char, options) {\n return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options);\n}\nclass Decorations {\n constructor() {\n this.map = new Map();\n }\n getDecorationFromOptions(options) {\n return this.getDecoration(!options.includeComments, !options.includeStrings);\n }\n getDecoration(hideInComments, hideInStrings) {\n const key = `${hideInComments}${hideInStrings}`;\n let options = this.map.get(key);\n if (!options) {\n options = ModelDecorationOptions.createDynamic({\n description: 'unicode-highlight',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'unicode-highlight',\n showIfCollapsed: true,\n overviewRuler: null,\n minimap: null,\n hideInCommentTokens: hideInComments,\n hideInStringTokens: hideInStrings,\n });\n this.map.set(key, options);\n }\n return options;\n }\n}\nDecorations.instance = new Decorations();\nexport class DisableHighlightingInCommentsAction extends EditorAction {\n constructor() {\n super({\n id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n label: nls.localize('action.unicodeHighlight.disableHighlightingInComments', 'Disable highlighting of characters in comments'),\n alias: 'Disable highlighting of characters in comments',\n precondition: undefined\n });\n this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingInComments.shortLabel', 'Disable Highlight In Comments');\n }\n async run(accessor, editor, args) {\n const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n if (configurationService) {\n this.runAction(configurationService);\n }\n }\n async runAction(configurationService) {\n await configurationService.updateValue(unicodeHighlightConfigKeys.includeComments, false, 2 /* ConfigurationTarget.USER */);\n }\n}\nexport class DisableHighlightingInStringsAction extends EditorAction {\n constructor() {\n super({\n id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n label: nls.localize('action.unicodeHighlight.disableHighlightingInStrings', 'Disable highlighting of characters in strings'),\n alias: 'Disable highlighting of characters in strings',\n precondition: undefined\n });\n this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingInStrings.shortLabel', 'Disable Highlight In Strings');\n }\n async run(accessor, editor, args) {\n const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n if (configurationService) {\n this.runAction(configurationService);\n }\n }\n async runAction(configurationService) {\n await configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings, false, 2 /* ConfigurationTarget.USER */);\n }\n}\nexport class DisableHighlightingOfAmbiguousCharactersAction extends EditorAction {\n constructor() {\n super({\n id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n label: nls.localize('action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters', 'Disable highlighting of ambiguous characters'),\n alias: 'Disable highlighting of ambiguous characters',\n precondition: undefined\n });\n this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel', 'Disable Ambiguous Highlight');\n }\n async run(accessor, editor, args) {\n const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n if (configurationService) {\n this.runAction(configurationService);\n }\n }\n async runAction(configurationService) {\n await configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters, false, 2 /* ConfigurationTarget.USER */);\n }\n}\nDisableHighlightingOfAmbiguousCharactersAction.ID = 'editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters';\nexport class DisableHighlightingOfInvisibleCharactersAction extends EditorAction {\n constructor() {\n super({\n id: DisableHighlightingOfInvisibleCharactersAction.ID,\n label: nls.localize('action.unicodeHighlight.disableHighlightingOfInvisibleCharacters', 'Disable highlighting of invisible characters'),\n alias: 'Disable highlighting of invisible characters',\n precondition: undefined\n });\n this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel', 'Disable Invisible Highlight');\n }\n async run(accessor, editor, args) {\n const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n if (configurationService) {\n this.runAction(configurationService);\n }\n }\n async runAction(configurationService) {\n await configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters, false, 2 /* ConfigurationTarget.USER */);\n }\n}\nDisableHighlightingOfInvisibleCharactersAction.ID = 'editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters';\nexport class DisableHighlightingOfNonBasicAsciiCharactersAction extends EditorAction {\n constructor() {\n super({\n id: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n label: nls.localize('action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters', 'Disable highlighting of non basic ASCII characters'),\n alias: 'Disable highlighting of non basic ASCII characters',\n precondition: undefined\n });\n this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel', 'Disable Non ASCII Highlight');\n }\n async run(accessor, editor, args) {\n const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n if (configurationService) {\n this.runAction(configurationService);\n }\n }\n async runAction(configurationService) {\n await configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII, false, 2 /* ConfigurationTarget.USER */);\n }\n}\nDisableHighlightingOfNonBasicAsciiCharactersAction.ID = 'editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters';\nexport class ShowExcludeOptions extends EditorAction {\n constructor() {\n super({\n id: ShowExcludeOptions.ID,\n label: nls.localize('action.unicodeHighlight.showExcludeOptions', \"Show Exclude Options\"),\n alias: 'Show Exclude Options',\n precondition: undefined\n });\n }\n async run(accessor, editor, args) {\n const { codePoint, reason, inString, inComment } = args;\n const char = String.fromCodePoint(codePoint);\n const quickPickService = accessor.get(IQuickInputService);\n const configurationService = accessor.get(IConfigurationService);\n function getExcludeCharFromBeingHighlightedLabel(codePoint) {\n if (InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n return nls.localize('unicodeHighlight.excludeInvisibleCharFromBeingHighlighted', 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));\n }\n return nls.localize('unicodeHighlight.excludeCharFromBeingHighlighted', 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} \"${char}\"`);\n }\n const options = [];\n if (reason.kind === 0 /* UnicodeHighlighterReasonKind.Ambiguous */) {\n for (const locale of reason.notAmbiguousInLocales) {\n options.push({\n label: nls.localize(\"unicodeHighlight.allowCommonCharactersInLanguage\", \"Allow unicode characters that are more common in the language \\\"{0}\\\".\", locale),\n run: async () => {\n excludeLocaleFromBeingHighlighted(configurationService, [locale]);\n },\n });\n }\n }\n options.push({\n label: getExcludeCharFromBeingHighlightedLabel(codePoint),\n run: () => excludeCharFromBeingHighlighted(configurationService, [codePoint])\n });\n if (inComment) {\n const action = new DisableHighlightingInCommentsAction();\n options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n }\n else if (inString) {\n const action = new DisableHighlightingInStringsAction();\n options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n }\n if (reason.kind === 0 /* UnicodeHighlighterReasonKind.Ambiguous */) {\n const action = new DisableHighlightingOfAmbiguousCharactersAction();\n options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n }\n else if (reason.kind === 1 /* UnicodeHighlighterReasonKind.Invisible */) {\n const action = new DisableHighlightingOfInvisibleCharactersAction();\n options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n }\n else if (reason.kind === 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */) {\n const action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n }\n else {\n expectNever(reason);\n }\n const result = await quickPickService.pick(options, { title: configureUnicodeHighlightOptionsStr });\n if (result) {\n await result.run();\n }\n }\n}\nShowExcludeOptions.ID = 'editor.action.unicodeHighlight.showExcludeOptions';\nasync function excludeCharFromBeingHighlighted(configurationService, charCodes) {\n const existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n let value;\n if ((typeof existingValue === 'object') && existingValue) {\n value = existingValue;\n }\n else {\n value = {};\n }\n for (const charCode of charCodes) {\n value[String.fromCodePoint(charCode)] = true;\n }\n await configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters, value, 2 /* ConfigurationTarget.USER */);\n}\nasync function excludeLocaleFromBeingHighlighted(configurationService, locales) {\n var _a;\n const existingValue = (_a = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user) === null || _a === void 0 ? void 0 : _a.value;\n let value;\n if ((typeof existingValue === 'object') && existingValue) {\n // Copy value, as the existing value is read only\n value = Object.assign({}, existingValue);\n }\n else {\n value = {};\n }\n for (const locale of locales) {\n value[locale] = true;\n }\n await configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales, value, 2 /* ConfigurationTarget.USER */);\n}\nfunction expectNever(value) {\n throw new Error(`Unexpected value: ${value}`);\n}\nregisterEditorAction(DisableHighlightingOfAmbiguousCharactersAction);\nregisterEditorAction(DisableHighlightingOfInvisibleCharactersAction);\nregisterEditorAction(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterEditorAction(ShowExcludeOptions);\nregisterEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport * as nls from '../../../../nls.js';\nimport { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';\nconst ignoreUnusualLineTerminators = 'ignoreUnusualLineTerminators';\nfunction writeIgnoreState(codeEditorService, model, state) {\n codeEditorService.setModelProperty(model.uri, ignoreUnusualLineTerminators, state);\n}\nfunction readIgnoreState(codeEditorService, model) {\n return codeEditorService.getModelProperty(model.uri, ignoreUnusualLineTerminators);\n}\nlet UnusualLineTerminatorsDetector = class UnusualLineTerminatorsDetector extends Disposable {\n constructor(_editor, _dialogService, _codeEditorService) {\n super();\n this._editor = _editor;\n this._dialogService = _dialogService;\n this._codeEditorService = _codeEditorService;\n this._isPresentingDialog = false;\n this._config = this._editor.getOption(126 /* EditorOption.unusualLineTerminators */);\n this._register(this._editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(126 /* EditorOption.unusualLineTerminators */)) {\n this._config = this._editor.getOption(126 /* EditorOption.unusualLineTerminators */);\n this._checkForUnusualLineTerminators();\n }\n }));\n this._register(this._editor.onDidChangeModel(() => {\n this._checkForUnusualLineTerminators();\n }));\n this._register(this._editor.onDidChangeModelContent((e) => {\n if (e.isUndoing) {\n // skip checking in case of undoing\n return;\n }\n this._checkForUnusualLineTerminators();\n }));\n this._checkForUnusualLineTerminators();\n }\n async _checkForUnusualLineTerminators() {\n if (this._config === 'off') {\n return;\n }\n if (!this._editor.hasModel()) {\n return;\n }\n const model = this._editor.getModel();\n if (!model.mightContainUnusualLineTerminators()) {\n return;\n }\n const ignoreState = readIgnoreState(this._codeEditorService, model);\n if (ignoreState === true) {\n // this model should be ignored\n return;\n }\n if (this._editor.getOption(91 /* EditorOption.readOnly */)) {\n // read only editor => sorry!\n return;\n }\n if (this._config === 'auto') {\n // just do it!\n model.removeUnusualLineTerminators(this._editor.getSelections());\n return;\n }\n if (this._isPresentingDialog) {\n // we're currently showing the dialog, which is async.\n // avoid spamming the user\n return;\n }\n let result;\n try {\n this._isPresentingDialog = true;\n result = await this._dialogService.confirm({\n title: nls.localize('unusualLineTerminators.title', \"Unusual Line Terminators\"),\n message: nls.localize('unusualLineTerminators.message', \"Detected unusual line terminators\"),\n detail: nls.localize('unusualLineTerminators.detail', \"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)),\n primaryButton: nls.localize({ key: 'unusualLineTerminators.fix', comment: ['&& denotes a mnemonic'] }, \"&&Remove Unusual Line Terminators\"),\n cancelButton: nls.localize('unusualLineTerminators.ignore', \"Ignore\")\n });\n }\n finally {\n this._isPresentingDialog = false;\n }\n if (!result.confirmed) {\n // this model should be ignored\n writeIgnoreState(this._codeEditorService, model, true);\n return;\n }\n model.removeUnusualLineTerminators(this._editor.getSelections());\n }\n};\nUnusualLineTerminatorsDetector.ID = 'editor.contrib.unusualLineTerminatorsDetector';\nUnusualLineTerminatorsDetector = __decorate([\n __param(1, IDialogService),\n __param(2, ICodeEditorService)\n], UnusualLineTerminatorsDetector);\nexport { UnusualLineTerminatorsDetector };\nregisterEditorContribution(UnusualLineTerminatorsDetector.ID, UnusualLineTerminatorsDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './highlightDecorations.css';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport * as nls from '../../../../nls.js';\nimport { activeContrastBorder, editorSelectionHighlight, minimapSelectionOccurrenceHighlight, overviewRulerSelectionHighlightForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant, themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nconst wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize('wordHighlight', '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);\nregisterColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize('wordHighlightStrong', '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);\nregisterColor('editor.wordHighlightTextBackground', { light: wordHighlightBackground, dark: wordHighlightBackground, hcDark: wordHighlightBackground, hcLight: wordHighlightBackground }, nls.localize('wordHighlightText', 'Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('wordHighlightBorder', 'Border color of a symbol during read-access, like reading a variable.'));\nregisterColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('wordHighlightStrongBorder', 'Border color of a symbol during write-access, like writing to a variable.'));\nregisterColor('editor.wordHighlightTextBorder', { light: wordHighlightBorder, dark: wordHighlightBorder, hcDark: wordHighlightBorder, hcLight: wordHighlightBorder }, nls.localize('wordHighlightTextBorder', \"Border color of a textual occurrence for a symbol.\"));\nconst overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hcDark: '#A0A0A0CC', hcLight: '#A0A0A0CC' }, nls.localize('overviewRulerWordHighlightForeground', 'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', { dark: '#C0A0C0CC', light: '#C0A0C0CC', hcDark: '#C0A0C0CC', hcLight: '#C0A0C0CC' }, nls.localize('overviewRulerWordHighlightStrongForeground', 'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', { dark: overviewRulerSelectionHighlightForeground, light: overviewRulerSelectionHighlightForeground, hcDark: overviewRulerSelectionHighlightForeground, hcLight: overviewRulerSelectionHighlightForeground }, nls.localize('overviewRulerWordHighlightTextForeground', '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);\nconst _WRITE_OPTIONS = ModelDecorationOptions.register({\n description: 'word-highlight-strong',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'wordHighlightStrong',\n overviewRuler: {\n color: themeColorFromId(overviewRulerWordHighlightStrongForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nconst _TEXT_OPTIONS = ModelDecorationOptions.register({\n description: 'word-highlight-text',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'wordHighlightText',\n overviewRuler: {\n color: themeColorFromId(overviewRulerWordHighlightTextForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nconst _SELECTION_HIGHLIGHT_OPTIONS = ModelDecorationOptions.register({\n description: 'selection-highlight-overview',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'selectionHighlight',\n overviewRuler: {\n color: themeColorFromId(overviewRulerSelectionHighlightForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nconst _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW = ModelDecorationOptions.register({\n description: 'selection-highlight',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'selectionHighlight',\n});\nconst _REGULAR_OPTIONS = ModelDecorationOptions.register({\n description: 'word-highlight',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'wordHighlight',\n overviewRuler: {\n color: themeColorFromId(overviewRulerWordHighlightForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nexport function getHighlightDecorationOptions(kind) {\n if (kind === DocumentHighlightKind.Write) {\n return _WRITE_OPTIONS;\n }\n else if (kind === DocumentHighlightKind.Text) {\n return _TEXT_OPTIONS;\n }\n else {\n return _REGULAR_OPTIONS;\n }\n}\nexport function getSelectionHighlightDecorationOptions(hasSemanticHighlights) {\n // Show in overviewRuler only if model has no semantic highlighting\n return (hasSemanticHighlights ? _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW : _SELECTION_HIGHLIGHT_OPTIONS);\n}\nregisterThemingParticipant((theme, collector) => {\n const selectionHighlight = theme.getColor(editorSelectionHighlight);\n if (selectionHighlight) {\n collector.addRule(`.monaco-editor .selectionHighlight { background-color: ${selectionHighlight.transparent(0.5)}; }`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar WordHighlighter_1, WordHighlighterContribution_1;\nimport * as nls from '../../../../nls.js';\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { createCancelablePromise, first, timeout } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport { shouldSynchronizeModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { getHighlightDecorationOptions } from './highlightDecorations.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { score } from '../../../common/languageSelector.js';\n// import { TextualMultiDocumentHighlightFeature } from 'vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider';\n// import { registerEditorFeature } from 'vs/editor/common/editorFeatures';\nconst ctxHasWordHighlights = new RawContextKey('hasWordHighlights', false);\nexport function getOccurrencesAtPosition(registry, model, position, token) {\n const orderedByScore = registry.ordered(model);\n // in order of score ask the occurrences provider\n // until someone response with a good result\n // (good = none empty array)\n return first(orderedByScore.map(provider => () => {\n return Promise.resolve(provider.provideDocumentHighlights(model, position, token))\n .then(undefined, onUnexpectedExternalError);\n }), arrays.isNonEmptyArray).then(result => {\n if (result) {\n const map = new ResourceMap();\n map.set(model.uri, result);\n return map;\n }\n return new ResourceMap();\n });\n}\nexport function getOccurrencesAcrossMultipleModels(registry, model, position, wordSeparators, token, otherModels) {\n const orderedByScore = registry.ordered(model);\n // in order of score ask the occurrences provider\n // until someone response with a good result\n // (good = none empty array)\n return first(orderedByScore.map(provider => () => {\n const filteredModels = otherModels.filter(otherModel => {\n return shouldSynchronizeModel(otherModel);\n }).filter(otherModel => {\n return score(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, undefined, undefined) > 0;\n });\n return Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token))\n .then(undefined, onUnexpectedExternalError);\n }), (t) => t instanceof ResourceMap && t.size > 0);\n}\nclass OccurenceAtPositionRequest {\n constructor(_model, _selection, _wordSeparators) {\n this._model = _model;\n this._selection = _selection;\n this._wordSeparators = _wordSeparators;\n this._wordRange = this._getCurrentWordRange(_model, _selection);\n this._result = null;\n }\n get result() {\n if (!this._result) {\n this._result = createCancelablePromise(token => this._compute(this._model, this._selection, this._wordSeparators, token));\n }\n return this._result;\n }\n _getCurrentWordRange(model, selection) {\n const word = model.getWordAtPosition(selection.getPosition());\n if (word) {\n return new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n }\n return null;\n }\n isValid(model, selection, decorations) {\n const lineNumber = selection.startLineNumber;\n const startColumn = selection.startColumn;\n const endColumn = selection.endColumn;\n const currentWordRange = this._getCurrentWordRange(model, selection);\n let requestIsValid = Boolean(this._wordRange && this._wordRange.equalsRange(currentWordRange));\n // Even if we are on a different word, if that word is in the decorations ranges, the request is still valid\n // (Same symbol)\n for (let i = 0, len = decorations.length; !requestIsValid && i < len; i++) {\n const range = decorations.getRange(i);\n if (range && range.startLineNumber === lineNumber) {\n if (range.startColumn <= startColumn && range.endColumn >= endColumn) {\n requestIsValid = true;\n }\n }\n }\n return requestIsValid;\n }\n cancel() {\n this.result.cancel();\n }\n}\nclass SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, wordSeparators, providers) {\n super(model, selection, wordSeparators);\n this._providers = providers;\n }\n _compute(model, selection, wordSeparators, token) {\n return getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then(value => {\n if (!value) {\n return new ResourceMap();\n }\n return value;\n });\n }\n}\nclass MultiModelOccurenceRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, wordSeparators, providers, otherModels) {\n super(model, selection, wordSeparators);\n this._providers = providers;\n this._otherModels = otherModels;\n }\n _compute(model, selection, wordSeparators, token) {\n return getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), wordSeparators, token, this._otherModels).then(value => {\n if (!value) {\n return new ResourceMap();\n }\n return value;\n });\n }\n}\nclass TextualOccurenceRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, word, wordSeparators, otherModels) {\n super(model, selection, wordSeparators);\n this._otherModels = otherModels;\n this._selectionIsEmpty = selection.isEmpty();\n this._word = word;\n }\n _compute(model, selection, wordSeparators, token) {\n return timeout(250, token).then(() => {\n const result = new ResourceMap();\n let wordResult;\n if (this._word) {\n wordResult = this._word;\n }\n else {\n wordResult = model.getWordAtPosition(selection.getPosition());\n }\n if (!wordResult) {\n return new ResourceMap();\n }\n const allModels = [model, ...this._otherModels];\n for (const otherModel of allModels) {\n if (otherModel.isDisposed()) {\n continue;\n }\n const matches = otherModel.findMatches(wordResult.word, true, false, true, wordSeparators, false);\n const highlights = matches.map(m => ({\n range: m.range,\n kind: DocumentHighlightKind.Text\n }));\n if (highlights) {\n result.set(otherModel.uri, highlights);\n }\n }\n return result;\n });\n }\n isValid(model, selection, decorations) {\n const currentSelectionIsEmpty = selection.isEmpty();\n if (this._selectionIsEmpty !== currentSelectionIsEmpty) {\n return false;\n }\n return super.isValid(model, selection, decorations);\n }\n}\nfunction computeOccurencesAtPosition(registry, model, selection, word, wordSeparators) {\n if (registry.has(model)) {\n return new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators, registry);\n }\n return new TextualOccurenceRequest(model, selection, word, wordSeparators, []);\n}\nfunction computeOccurencesMultiModel(registry, model, selection, word, wordSeparators, otherModels) {\n if (registry.has(model)) {\n return new MultiModelOccurenceRequest(model, selection, wordSeparators, registry, otherModels);\n }\n return new TextualOccurenceRequest(model, selection, word, wordSeparators, otherModels);\n}\nregisterModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n return map === null || map === void 0 ? void 0 : map.get(model.uri);\n});\nlet WordHighlighter = WordHighlighter_1 = class WordHighlighter {\n constructor(editor, providers, multiProviders, contextKeyService, codeEditorService) {\n this.toUnhook = new DisposableStore();\n this.workerRequestTokenId = 0;\n this.workerRequestCompleted = false;\n this.workerRequestValue = new ResourceMap();\n this.lastCursorPositionChangeTime = 0;\n this.renderDecorationsTimer = -1;\n this.editor = editor;\n this.providers = providers;\n this.multiDocumentProviders = multiProviders;\n this.codeEditorService = codeEditorService;\n this._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n this._ignorePositionChangeEvent = false;\n this.occurrencesHighlight = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */);\n this.model = this.editor.getModel();\n this.toUnhook.add(editor.onDidChangeCursorPosition((e) => {\n if (this._ignorePositionChangeEvent) {\n // We are changing the position => ignore this event\n return;\n }\n if (this.occurrencesHighlight === 'off') {\n // Early exit if nothing needs to be done!\n // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n return;\n }\n this._onPositionChanged(e);\n }));\n this.toUnhook.add(editor.onDidFocusEditorText((e) => {\n if (this.occurrencesHighlight === 'off') {\n // Early exit if nothing needs to be done\n return;\n }\n if (!this.workerRequest) {\n this._run();\n }\n }));\n this.toUnhook.add(editor.onDidChangeModelContent((e) => {\n this._stopAll();\n }));\n this.toUnhook.add(editor.onDidChangeModel((e) => {\n if (!e.newModelUrl && e.oldModelUrl) {\n this._stopSingular();\n }\n else {\n if (WordHighlighter_1.query) {\n this._run();\n }\n }\n }));\n this.toUnhook.add(editor.onDidChangeConfiguration((e) => {\n const newValue = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */);\n if (this.occurrencesHighlight !== newValue) {\n this.occurrencesHighlight = newValue;\n this._stopAll();\n }\n }));\n this.decorations = this.editor.createDecorationsCollection();\n this.workerRequestTokenId = 0;\n this.workerRequest = null;\n this.workerRequestCompleted = false;\n this.lastCursorPositionChangeTime = 0;\n this.renderDecorationsTimer = -1;\n // if there is a query already, highlight off that query\n if (WordHighlighter_1.query) {\n this._run();\n }\n }\n hasDecorations() {\n return (this.decorations.length > 0);\n }\n restore() {\n if (this.occurrencesHighlight === 'off') {\n return;\n }\n this._run();\n }\n _getSortedHighlights() {\n return (this.decorations.getRanges()\n .sort(Range.compareRangesUsingStarts));\n }\n moveNext() {\n const highlights = this._getSortedHighlights();\n const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n const newIndex = ((index + 1) % highlights.length);\n const dest = highlights[newIndex];\n try {\n this._ignorePositionChangeEvent = true;\n this.editor.setPosition(dest.getStartPosition());\n this.editor.revealRangeInCenterIfOutsideViewport(dest);\n const word = this._getWord();\n if (word) {\n const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n }\n }\n finally {\n this._ignorePositionChangeEvent = false;\n }\n }\n moveBack() {\n const highlights = this._getSortedHighlights();\n const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n const newIndex = ((index - 1 + highlights.length) % highlights.length);\n const dest = highlights[newIndex];\n try {\n this._ignorePositionChangeEvent = true;\n this.editor.setPosition(dest.getStartPosition());\n this.editor.revealRangeInCenterIfOutsideViewport(dest);\n const word = this._getWord();\n if (word) {\n const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n }\n }\n finally {\n this._ignorePositionChangeEvent = false;\n }\n }\n _removeSingleDecorations() {\n // return if no model\n if (!this.editor.hasModel()) {\n return;\n }\n const currentDecorationIDs = WordHighlighter_1.storedDecorations.get(this.editor.getModel().uri);\n if (!currentDecorationIDs) {\n return;\n }\n this.editor.removeDecorations(currentDecorationIDs);\n WordHighlighter_1.storedDecorations.delete(this.editor.getModel().uri);\n if (this.decorations.length > 0) {\n this.decorations.clear();\n this._hasWordHighlights.set(false);\n }\n }\n _removeAllDecorations() {\n const currentEditors = this.codeEditorService.listCodeEditors();\n const deleteURI = [];\n // iterate over editors and store models in currentModels\n for (const editor of currentEditors) {\n if (!editor.hasModel()) {\n continue;\n }\n const currentDecorationIDs = WordHighlighter_1.storedDecorations.get(editor.getModel().uri);\n if (!currentDecorationIDs) {\n continue;\n }\n editor.removeDecorations(currentDecorationIDs);\n deleteURI.push(editor.getModel().uri);\n const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n if (!(editorHighlighterContrib === null || editorHighlighterContrib === void 0 ? void 0 : editorHighlighterContrib.wordHighlighter)) {\n continue;\n }\n if (editorHighlighterContrib.wordHighlighter.decorations.length > 0) {\n editorHighlighterContrib.wordHighlighter.decorations.clear();\n editorHighlighterContrib.wordHighlighter.workerRequest = null;\n editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n }\n }\n for (const uri of deleteURI) {\n WordHighlighter_1.storedDecorations.delete(uri);\n }\n }\n _stopSingular() {\n var _a, _b, _c, _d;\n // Remove any existing decorations + a possible query, and re - run to update decorations\n this._removeSingleDecorations();\n if (this.editor.hasTextFocus()) {\n if (((_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri.scheme) !== Schemas.vscodeNotebookCell && ((_c = (_b = WordHighlighter_1.query) === null || _b === void 0 ? void 0 : _b.modelInfo) === null || _c === void 0 ? void 0 : _c.model.uri.scheme) !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor\n WordHighlighter_1.query = null;\n this._run(); // TODO: @Yoyokrazy -- investigate why we need a full rerun here. likely addressed a case/patch in the first iteration of this feature\n }\n else { // remove modelInfo to account for nb cell being disposed\n if ((_d = WordHighlighter_1.query) === null || _d === void 0 ? void 0 : _d.modelInfo) {\n WordHighlighter_1.query.modelInfo = null;\n }\n }\n }\n // Cancel any renderDecorationsTimer\n if (this.renderDecorationsTimer !== -1) {\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = -1;\n }\n // Cancel any worker request\n if (this.workerRequest !== null) {\n this.workerRequest.cancel();\n this.workerRequest = null;\n }\n // Invalidate any worker request callback\n if (!this.workerRequestCompleted) {\n this.workerRequestTokenId++;\n this.workerRequestCompleted = true;\n }\n }\n _stopAll() {\n // Remove any existing decorations\n // TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily.\n // maybe a nb type check?\n this._removeAllDecorations();\n // Cancel any renderDecorationsTimer\n if (this.renderDecorationsTimer !== -1) {\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = -1;\n }\n // Cancel any worker request\n if (this.workerRequest !== null) {\n this.workerRequest.cancel();\n this.workerRequest = null;\n }\n // Invalidate any worker request callback\n if (!this.workerRequestCompleted) {\n this.workerRequestTokenId++;\n this.workerRequestCompleted = true;\n }\n }\n _onPositionChanged(e) {\n var _a;\n // disabled\n if (this.occurrencesHighlight === 'off') {\n this._stopAll();\n return;\n }\n // ignore typing & other\n // need to check if the model is a notebook cell, should not stop if nb\n if (e.reason !== 3 /* CursorChangeReason.Explicit */ && ((_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri.scheme) !== Schemas.vscodeNotebookCell) {\n this._stopAll();\n return;\n }\n this._run();\n }\n _getWord() {\n const editorSelection = this.editor.getSelection();\n const lineNumber = editorSelection.startLineNumber;\n const startColumn = editorSelection.startColumn;\n if (this.model.isDisposed()) {\n return null;\n }\n return this.model.getWordAtPosition({\n lineNumber: lineNumber,\n column: startColumn\n });\n }\n getOtherModelsToHighlight(model) {\n if (!model) {\n return [];\n }\n // notebook case\n const isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n if (isNotebookEditor) {\n const currentModels = [];\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n const tempModel = editor.getModel();\n if (tempModel && tempModel !== model && tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n currentModels.push(tempModel);\n }\n }\n return currentModels;\n }\n // inline case\n // ? current works when highlighting outside of an inline diff, highlighting in.\n // ? broken when highlighting within a diff editor. highlighting the main editor does not work\n // ? editor group service could be useful here\n const currentModels = [];\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n if (!isDiffEditor(editor)) {\n continue;\n }\n const diffModel = editor.getModel();\n if (!diffModel) {\n continue;\n }\n if (model === diffModel.modified) { // embedded inline chat diff would pass this, allowing highlights\n //? currentModels.push(diffModel.original);\n currentModels.push(diffModel.modified);\n }\n }\n if (currentModels.length) { // no matching editors have been found\n return currentModels;\n }\n // multi-doc OFF\n if (this.occurrencesHighlight === 'singleFile') {\n return [];\n }\n // multi-doc ON\n for (const editor of currentEditors) {\n const tempModel = editor.getModel();\n const isValidModel = tempModel && tempModel !== model;\n if (isValidModel) {\n currentModels.push(tempModel);\n }\n }\n return currentModels;\n }\n _run() {\n var _a;\n let workerRequestIsValid;\n const hasTextFocus = this.editor.hasTextFocus();\n if (!hasTextFocus) { // new nb cell scrolled in, didChangeModel fires\n if (!WordHighlighter_1.query) { // no previous query, nothing to highlight off of\n return;\n }\n }\n else { // has text focus\n const editorSelection = this.editor.getSelection();\n // ignore multiline selection\n if (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n WordHighlighter_1.query = null;\n this._stopAll();\n return;\n }\n const startColumn = editorSelection.startColumn;\n const endColumn = editorSelection.endColumn;\n const word = this._getWord();\n // The selection must be inside a word or surround one word at most\n if (!word || word.startColumn > startColumn || word.endColumn < endColumn) {\n // no previous query, nothing to highlight\n WordHighlighter_1.query = null;\n this._stopAll();\n return;\n }\n // All the effort below is trying to achieve this:\n // - when cursor is moved to a word, trigger immediately a findOccurrences request\n // - 250ms later after the last cursor move event, render the occurrences\n // - no flickering!\n workerRequestIsValid = (this.workerRequest && this.workerRequest.isValid(this.model, editorSelection, this.decorations));\n WordHighlighter_1.query = {\n modelInfo: {\n model: this.model,\n selection: editorSelection,\n },\n word: word\n };\n }\n // There are 4 cases:\n // a) old workerRequest is valid & completed, renderDecorationsTimer fired\n // b) old workerRequest is valid & completed, renderDecorationsTimer not fired\n // c) old workerRequest is valid, but not completed\n // d) old workerRequest is not valid\n // For a) no action is needed\n // For c), member 'lastCursorPositionChangeTime' will be used when installing the timer so no action is needed\n this.lastCursorPositionChangeTime = (new Date()).getTime();\n if (workerRequestIsValid) {\n if (this.workerRequestCompleted && this.renderDecorationsTimer !== -1) {\n // case b)\n // Delay the firing of renderDecorationsTimer by an extra 250 ms\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = -1;\n this._beginRenderDecorations();\n }\n }\n else {\n // case d)\n // Stop all previous actions and start fresh\n this._stopAll();\n const myRequestId = ++this.workerRequestTokenId;\n this.workerRequestCompleted = false;\n const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n // when reaching here, there are two possible states.\n // \t\t1) we have text focus, and a valid query was updated.\n // \t\t2) we do not have text focus, and a valid query is cached.\n // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely\n if (!WordHighlighter_1.query.modelInfo || WordHighlighter_1.query.modelInfo.model.isDisposed()) {\n return;\n }\n this.workerRequest = this.computeWithModel(WordHighlighter_1.query.modelInfo.model, WordHighlighter_1.query.modelInfo.selection, WordHighlighter_1.query.word, otherModelsToHighlight);\n (_a = this.workerRequest) === null || _a === void 0 ? void 0 : _a.result.then(data => {\n if (myRequestId === this.workerRequestTokenId) {\n this.workerRequestCompleted = true;\n this.workerRequestValue = data || [];\n this._beginRenderDecorations();\n }\n }, onUnexpectedError);\n }\n }\n computeWithModel(model, selection, word, otherModels) {\n if (!otherModels.length) {\n return computeOccurencesAtPosition(this.providers, model, selection, word, this.editor.getOption(131 /* EditorOption.wordSeparators */));\n }\n else {\n return computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, word, this.editor.getOption(131 /* EditorOption.wordSeparators */), otherModels);\n }\n }\n _beginRenderDecorations() {\n const currentTime = (new Date()).getTime();\n const minimumRenderTime = this.lastCursorPositionChangeTime + 250;\n if (currentTime >= minimumRenderTime) {\n // Synchronous\n this.renderDecorationsTimer = -1;\n this.renderDecorations();\n }\n else {\n // Asynchronous\n this.renderDecorationsTimer = setTimeout(() => {\n this.renderDecorations();\n }, (minimumRenderTime - currentTime));\n }\n }\n renderDecorations() {\n var _a, _b, _c;\n this.renderDecorationsTimer = -1;\n // create new loop, iterate over current editors using this.codeEditorService.listCodeEditors(),\n // if the URI of that codeEditor is in the map, then add the decorations to the decorations array\n // then set the decorations for the editor\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n if (!editorHighlighterContrib) {\n continue;\n }\n const newDecorations = [];\n const uri = (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri;\n if (uri && this.workerRequestValue.has(uri)) {\n const oldDecorationIDs = WordHighlighter_1.storedDecorations.get(uri);\n const newDocumentHighlights = this.workerRequestValue.get(uri);\n if (newDocumentHighlights) {\n for (const highlight of newDocumentHighlights) {\n if (!highlight.range) {\n continue;\n }\n newDecorations.push({\n range: highlight.range,\n options: getHighlightDecorationOptions(highlight.kind)\n });\n }\n }\n let newDecorationIDs = [];\n editor.changeDecorations((changeAccessor) => {\n newDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs !== null && oldDecorationIDs !== void 0 ? oldDecorationIDs : [], newDecorations);\n });\n WordHighlighter_1.storedDecorations = WordHighlighter_1.storedDecorations.set(uri, newDecorationIDs);\n if (newDecorations.length > 0) {\n (_b = editorHighlighterContrib.wordHighlighter) === null || _b === void 0 ? void 0 : _b.decorations.set(newDecorations);\n (_c = editorHighlighterContrib.wordHighlighter) === null || _c === void 0 ? void 0 : _c._hasWordHighlights.set(true);\n }\n }\n }\n }\n dispose() {\n this._stopSingular();\n this.toUnhook.dispose();\n }\n};\nWordHighlighter.storedDecorations = new ResourceMap();\nWordHighlighter.query = null;\nWordHighlighter = WordHighlighter_1 = __decorate([\n __param(4, ICodeEditorService)\n], WordHighlighter);\nlet WordHighlighterContribution = WordHighlighterContribution_1 = class WordHighlighterContribution extends Disposable {\n static get(editor) {\n return editor.getContribution(WordHighlighterContribution_1.ID);\n }\n constructor(editor, contextKeyService, languageFeaturesService, codeEditorService) {\n super();\n this._wordHighlighter = null;\n const createWordHighlighterIfPossible = () => {\n if (editor.hasModel() && !editor.getModel().isTooLargeForTokenization()) {\n this._wordHighlighter = new WordHighlighter(editor, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, codeEditorService);\n }\n };\n this._register(editor.onDidChangeModel((e) => {\n if (this._wordHighlighter) {\n this._wordHighlighter.dispose();\n this._wordHighlighter = null;\n }\n createWordHighlighterIfPossible();\n }));\n createWordHighlighterIfPossible();\n }\n get wordHighlighter() {\n return this._wordHighlighter;\n }\n saveViewState() {\n if (this._wordHighlighter && this._wordHighlighter.hasDecorations()) {\n return true;\n }\n return false;\n }\n moveNext() {\n var _a;\n (_a = this._wordHighlighter) === null || _a === void 0 ? void 0 : _a.moveNext();\n }\n moveBack() {\n var _a;\n (_a = this._wordHighlighter) === null || _a === void 0 ? void 0 : _a.moveBack();\n }\n restoreViewState(state) {\n if (this._wordHighlighter && state) {\n this._wordHighlighter.restore();\n }\n }\n dispose() {\n if (this._wordHighlighter) {\n this._wordHighlighter.dispose();\n this._wordHighlighter = null;\n }\n super.dispose();\n }\n};\nWordHighlighterContribution.ID = 'editor.contrib.wordHighlighter';\nWordHighlighterContribution = WordHighlighterContribution_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, ILanguageFeaturesService),\n __param(3, ICodeEditorService)\n], WordHighlighterContribution);\nexport { WordHighlighterContribution };\nclass WordHighlightNavigationAction extends EditorAction {\n constructor(next, opts) {\n super(opts);\n this._isNext = next;\n }\n run(accessor, editor) {\n const controller = WordHighlighterContribution.get(editor);\n if (!controller) {\n return;\n }\n if (this._isNext) {\n controller.moveNext();\n }\n else {\n controller.moveBack();\n }\n }\n}\nclass NextWordHighlightAction extends WordHighlightNavigationAction {\n constructor() {\n super(true, {\n id: 'editor.action.wordHighlight.next',\n label: nls.localize('wordHighlight.next.label', \"Go to Next Symbol Highlight\"),\n alias: 'Go to Next Symbol Highlight',\n precondition: ctxHasWordHighlights,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nclass PrevWordHighlightAction extends WordHighlightNavigationAction {\n constructor() {\n super(false, {\n id: 'editor.action.wordHighlight.prev',\n label: nls.localize('wordHighlight.previous.label', \"Go to Previous Symbol Highlight\"),\n alias: 'Go to Previous Symbol Highlight',\n precondition: ctxHasWordHighlights,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nclass TriggerWordHighlightAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.wordHighlight.trigger',\n label: nls.localize('wordHighlight.trigger.label', \"Trigger Symbol Highlight\"),\n alias: 'Trigger Symbol Highlight',\n precondition: ctxHasWordHighlights.toNegated(),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 0,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor, args) {\n const controller = WordHighlighterContribution.get(editor);\n if (!controller) {\n return;\n }\n controller.restoreViewState(true);\n }\n}\nregisterEditorContribution(WordHighlighterContribution.ID, WordHighlighterContribution, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\n// registerEditorFeature(TextualMultiDocumentHighlightFeature);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { EditorOptions } from '../../../common/config/editorOptions.js';\nimport { CursorState } from '../../../common/cursorCommon.js';\nimport { WordOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { getMapForWordSeparators } 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 { EditorContextKeys } from '../../../common/editorContextKeys.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';\nexport class MoveWordCommand extends EditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n this._wordNavigationType = opts.wordNavigationType;\n }\n runEditorCommand(accessor, editor, args) {\n if (!editor.hasModel()) {\n return;\n }\n const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n const model = editor.getModel();\n const selections = editor.getSelections();\n const result = selections.map((sel) => {\n const inPosition = new Position(sel.positionLineNumber, sel.positionColumn);\n const outPosition = this._move(wordSeparators, model, inPosition, this._wordNavigationType);\n return this._moveTo(sel, outPosition, this._inSelectionMode);\n });\n model.pushStackElement();\n editor._getViewModel().setCursorStates('moveWordCommand', 3 /* CursorChangeReason.Explicit */, result.map(r => CursorState.fromModelSelection(r)));\n if (result.length === 1) {\n const pos = new Position(result[0].positionLineNumber, result[0].positionColumn);\n editor.revealPosition(pos, 0 /* ScrollType.Smooth */);\n }\n }\n _moveTo(from, to, inSelectionMode) {\n if (inSelectionMode) {\n // move just position\n return new Selection(from.selectionStartLineNumber, from.selectionStartColumn, to.lineNumber, to.column);\n }\n else {\n // move everything\n return new Selection(to.lineNumber, to.column, to.lineNumber, to.column);\n }\n }\n}\nexport class WordLeftCommand extends MoveWordCommand {\n _move(wordSeparators, model, position, wordNavigationType) {\n return WordOperations.moveWordLeft(wordSeparators, model, position, wordNavigationType);\n }\n}\nexport class WordRightCommand extends MoveWordCommand {\n _move(wordSeparators, model, position, wordNavigationType) {\n return WordOperations.moveWordRight(wordSeparators, model, position, wordNavigationType);\n }\n}\nexport class CursorWordStartLeft extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartLeft',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndLeft extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndLeft',\n precondition: undefined\n });\n }\n}\nexport class CursorWordLeft extends WordLeftCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: false,\n wordNavigationType: 1 /* WordNavigationType.WordStartFast */,\n id: 'cursorWordLeft',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 15 /* KeyCode.LeftArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordStartLeftSelect extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartLeftSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndLeftSelect extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndLeftSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordLeftSelect extends WordLeftCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: true,\n wordNavigationType: 1 /* WordNavigationType.WordStartFast */,\n id: 'cursorWordLeftSelect',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\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 constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityLeft',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class CursorWordAccessibilityLeftSelect extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityLeftSelect',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class CursorWordStartRight extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartRight',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndRight extends WordRightCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndRight',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 17 /* KeyCode.RightArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordRight extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordRight',\n precondition: undefined\n });\n }\n}\nexport class CursorWordStartRightSelect extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartRightSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndRightSelect extends WordRightCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndRightSelect',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordRightSelect extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordRightSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordAccessibilityRight extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityRight',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class CursorWordAccessibilityRightSelect extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityRightSelect',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class DeleteWordCommand extends EditorCommand {\n constructor(opts) {\n super(opts);\n this._whitespaceHeuristics = opts.whitespaceHeuristics;\n this._wordNavigationType = opts.wordNavigationType;\n }\n runEditorCommand(accessor, editor, args) {\n const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n if (!editor.hasModel()) {\n return;\n }\n const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n const model = editor.getModel();\n const selections = editor.getSelections();\n const autoClosingBrackets = editor.getOption(6 /* EditorOption.autoClosingBrackets */);\n const autoClosingQuotes = editor.getOption(11 /* EditorOption.autoClosingQuotes */);\n const autoClosingPairs = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs();\n const viewModel = editor._getViewModel();\n const commands = selections.map((sel) => {\n const deleteRange = this._delete({\n wordSeparators,\n model,\n selection: sel,\n whitespaceHeuristics: this._whitespaceHeuristics,\n autoClosingDelete: editor.getOption(9 /* EditorOption.autoClosingDelete */),\n autoClosingBrackets,\n autoClosingQuotes,\n autoClosingPairs,\n autoClosedCharacters: viewModel.getCursorAutoClosedCharacters(),\n }, this._wordNavigationType);\n return new ReplaceCommand(deleteRange, '');\n });\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nexport class DeleteWordLeftCommand extends DeleteWordCommand {\n _delete(ctx, wordNavigationType) {\n const r = WordOperations.deleteWordLeft(ctx, wordNavigationType);\n if (r) {\n return r;\n }\n return new Range(1, 1, 1, 1);\n }\n}\nexport class DeleteWordRightCommand extends DeleteWordCommand {\n _delete(ctx, wordNavigationType) {\n const r = WordOperations.deleteWordRight(ctx, wordNavigationType);\n if (r) {\n return r;\n }\n const lineCount = ctx.model.getLineCount();\n const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n return new Range(lineCount, maxColumn, lineCount, maxColumn);\n }\n}\nexport class DeleteWordStartLeft extends DeleteWordLeftCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordStartLeft',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordEndLeft extends DeleteWordLeftCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordEndLeft',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordLeft extends DeleteWordLeftCommand {\n constructor() {\n super({\n whitespaceHeuristics: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordLeft',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1 /* KeyCode.Backspace */,\n mac: { primary: 512 /* KeyMod.Alt */ | 1 /* KeyCode.Backspace */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class DeleteWordStartRight extends DeleteWordRightCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordStartRight',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordEndRight extends DeleteWordRightCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordEndRight',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordRight extends DeleteWordRightCommand {\n constructor() {\n super({\n whitespaceHeuristics: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordRight',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 20 /* KeyCode.Delete */,\n mac: { primary: 512 /* KeyMod.Alt */ | 20 /* KeyCode.Delete */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class DeleteInsideWord extends EditorAction {\n constructor() {\n super({\n id: 'deleteInsideWord',\n precondition: EditorContextKeys.writable,\n label: nls.localize('deleteInsideWord', \"Delete Word\"),\n alias: 'Delete Word'\n });\n }\n run(accessor, editor, args) {\n if (!editor.hasModel()) {\n return;\n }\n const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n const model = editor.getModel();\n const selections = editor.getSelections();\n const commands = selections.map((sel) => {\n const deleteRange = WordOperations.deleteInsideWord(wordSeparators, model, sel);\n return new ReplaceCommand(deleteRange, '');\n });\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\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","/*---------------------------------------------------------------------------------------------\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 *--------------------------------------------------------------------------------------------*/\nimport { registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { WordPartOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { DeleteWordCommand, MoveWordCommand } from '../../wordOperations/browser/wordOperations.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nexport class DeleteWordPartLeft extends DeleteWordCommand {\n constructor() {\n super({\n whitespaceHeuristics: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordPartLeft',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 1 /* KeyCode.Backspace */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n _delete(ctx, wordNavigationType) {\n const r = WordPartOperations.deleteWordPartLeft(ctx);\n if (r) {\n return r;\n }\n return new Range(1, 1, 1, 1);\n }\n}\nexport class DeleteWordPartRight extends DeleteWordCommand {\n constructor() {\n super({\n whitespaceHeuristics: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordPartRight',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 20 /* KeyCode.Delete */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n _delete(ctx, wordNavigationType) {\n const r = WordPartOperations.deleteWordPartRight(ctx);\n if (r) {\n return r;\n }\n const lineCount = ctx.model.getLineCount();\n const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n return new Range(lineCount, maxColumn, lineCount, maxColumn);\n }\n}\nexport class WordPartLeftCommand extends MoveWordCommand {\n _move(wordSeparators, model, position, wordNavigationType) {\n return WordPartOperations.moveWordPartLeft(wordSeparators, model, position);\n }\n}\nexport class CursorWordPartLeft extends WordPartLeftCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordPartLeft',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\n// Register previous id for compatibility purposes\nCommandsRegistry.registerCommandAlias('cursorWordPartStartLeft', 'cursorWordPartLeft');\nexport class CursorWordPartLeftSelect extends WordPartLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordPartLeftSelect',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\n// Register previous id for compatibility purposes\nCommandsRegistry.registerCommandAlias('cursorWordPartStartLeftSelect', 'cursorWordPartLeftSelect');\nexport class WordPartRightCommand extends MoveWordCommand {\n _move(wordSeparators, model, position, wordNavigationType) {\n return WordPartOperations.moveWordPartRight(wordSeparators, model, position);\n }\n}\nexport class CursorWordPartRight extends WordPartRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordPartRight',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordPartRightSelect extends WordPartRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordPartRightSelect',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nregisterEditorCommand(new DeleteWordPartLeft());\nregisterEditorCommand(new DeleteWordPartRight());\nregisterEditorCommand(new CursorWordPartLeft());\nregisterEditorCommand(new CursorWordPartLeftSelect());\nregisterEditorCommand(new CursorWordPartRight());\nregisterEditorCommand(new CursorWordPartRightSelect());\n"],"names":["ToggleTabFocusModeAction","constructor","super","id","ID","title","key","comment","precondition","undefined","keybinding","primary","mac","weight","metadata","description","f1","run","newValue","ForceRetokenizeAction","label","alias","accessor","editor","hasModel","model","getModel","tokenization","resetTokenization","sw","forceTokenization","getLineCount","stop","console","log","elapsed","__decorate","decorators","target","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","BannerController","_editor","instantiationService","this","banner","_register","createInstance","Banner","hide","setBanner","clear","show","item","onClose","_a","call","element","markdownRenderer","$","tabIndex","getAriaLabel","ariaLabel","message","getBannerMessage","innerText","render","setAttribute","iconContainer","icon","appendChild","messageContainer","messageActionsContainer","actions","action","actionBarContainer","actionBar","push","setFocusable","warningIcon","nls","UnicodeHighlighter","_editorWorkerService","_workspaceTrustService","_highlighter","_bannerClosed","_updateState","state","hasMore","max","Math","ambiguousCharacterCount","nonBasicAsciiCharacterCount","invisibleCharacterCount","data","command","DisableHighlightingOfNonBasicAsciiCharactersAction","DisableHighlightingOfAmbiguousCharactersAction","Error","DisableHighlightingOfInvisibleCharactersAction","_bannerController","shortLabel","href","onDidChangeModel","_updateHighlighter","_options","getOption","onDidChangeTrust","e","onDidChangeConfiguration","hasChanged","dispose","options","trusted","nonBasicASCII","ambiguousCharacters","invisibleCharacters","includeComments","includeStrings","allowedCharacters","allowedLocales","resolveOptions","isWorkspaceTrusted","every","option","highlightOptions","allowedCodePoints","keys","map","codePointAt","locale","Intl","NumberFormat","resolvedOptions","platform","canComputeUnicodeHighlights","uri","DocumentUnicodeHighlighter","ViewportUnicodeHighlighter","getDecorationInfo","decoration","_model","_decorations","createDecorationsCollection","_updateSoon","_update","onDidChangeModelContent","schedule","isDisposed","mightContainNonBasicASCII","modelVersionId","getVersionId","computedUnicodeHighlights","then","info","decorations","range","ranges","Decorations","instance","getDecorationFromOptions","set","has","reason","computeReason","getValueInRange","inComment","inString","onDidLayoutChange","onDidScrollChange","onDidChangeHiddenAreas","getVisibleRanges","totalResult","result","text","configureUnicodeHighlightOptionsStr","UnicodeHighlighterHoverParticipant","_languageService","_openerService","hoverOrdinal","computeSync","anchor","lineDecorations","type","unicodeHighlighter","getContribution","existedReason","Set","index","highlightInfo","codePoint","codePointStr","formatCodePointMarkdown","kind","confusableWith","add","adjustSettingsArgs","adjustSettings","ShowExcludeOptions","encodeURIComponent","JSON","stringify","markdown","appendMarkdown","appendText","appendLink","renderHoverParts","context","hoverParts","codePointToHex","toString","padStart","value","String","fromCodePoint","renderCodePointAsInlineCode","char","Map","getDecoration","hideInComments","hideInStrings","get","stickiness","className","showIfCollapsed","overviewRuler","minimap","hideInCommentTokens","hideInStringTokens","DisableHighlightingInCommentsAction","args","configurationService","runAction","updateValue","DisableHighlightingInStringsAction","quickPickService","notAmbiguousInLocales","async","excludeLocaleFromBeingHighlighted","getExcludeCharFromBeingHighlightedLabel","charCodes","existingValue","getValue","charCode","excludeCharFromBeingHighlighted","expectNever","pick","locales","inspect","user","assign","ignoreUnusualLineTerminators","UnusualLineTerminatorsDetector","_dialogService","_codeEditorService","_isPresentingDialog","_config","_checkForUnusualLineTerminators","isUndoing","mightContainUnusualLineTerminators","ignoreState","codeEditorService","getModelProperty","readIgnoreState","removeUnusualLineTerminators","getSelections","confirm","detail","primaryButton","cancelButton","confirmed","setModelProperty","writeIgnoreState","wordHighlightBackground","dark","light","hcDark","hcLight","wordHighlightBorder","overviewRulerWordHighlightForeground","overviewRulerWordHighlightStrongForeground","overviewRulerWordHighlightTextForeground","_WRITE_OPTIONS","color","position","_TEXT_OPTIONS","_SELECTION_HIGHLIGHT_OPTIONS","_SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW","_REGULAR_OPTIONS","getHighlightDecorationOptions","getSelectionHighlightDecorationOptions","hasSemanticHighlights","theme","collector","selectionHighlight","getColor","addRule","transparent","WordHighlighter_1","WordHighlighterContribution_1","ctxHasWordHighlights","getOccurrencesAtPosition","registry","token","orderedByScore","ordered","provider","Promise","resolve","provideDocumentHighlights","OccurenceAtPositionRequest","_selection","_wordSeparators","_wordRange","_getCurrentWordRange","_result","_compute","selection","word","getWordAtPosition","getPosition","startLineNumber","startColumn","endColumn","isValid","lineNumber","currentWordRange","requestIsValid","Boolean","equalsRange","len","getRange","cancel","SemanticOccurenceAtPositionRequest","wordSeparators","providers","_providers","MultiModelOccurenceRequest","otherModels","_otherModels","filteredModels","filter","otherModel","selector","getLanguageId","provideMultiDocumentHighlights","t","size","getOccurrencesAcrossMultipleModels","TextualOccurenceRequest","_selectionIsEmpty","isEmpty","_word","wordResult","allModels","highlights","findMatches","m","currentSelectionIsEmpty","languageFeaturesService","documentHighlightProvider","WordHighlighter","multiProviders","contextKeyService","toUnhook","workerRequestTokenId","workerRequestCompleted","workerRequestValue","lastCursorPositionChangeTime","renderDecorationsTimer","multiDocumentProviders","_hasWordHighlights","bindTo","_ignorePositionChangeEvent","occurrencesHighlight","onDidChangeCursorPosition","_onPositionChanged","onDidFocusEditorText","workerRequest","_run","_stopAll","newModelUrl","oldModelUrl","_stopSingular","query","hasDecorations","restore","_getSortedHighlights","getRanges","sort","moveNext","newIndex","findIndex","containsPosition","dest","setPosition","getStartPosition","revealRangeInCenterIfOutsideViewport","_getWord","lineContent","getLineContent","moveBack","_removeSingleDecorations","currentDecorationIDs","storedDecorations","removeDecorations","delete","_removeAllDecorations","currentEditors","listCodeEditors","deleteURI","editorHighlighterContrib","WordHighlighterContribution","wordHighlighter","_b","_c","_d","hasTextFocus","scheme","modelInfo","clearTimeout","editorSelection","getSelection","column","getOtherModelsToHighlight","currentModels","tempModel","diffModel","modified","workerRequestIsValid","endLineNumber","Date","getTime","_beginRenderDecorations","myRequestId","otherModelsToHighlight","computeWithModel","computeOccurencesMultiModel","computeOccurencesAtPosition","currentTime","minimumRenderTime","renderDecorations","setTimeout","newDecorations","oldDecorationIDs","newDocumentHighlights","highlight","newDecorationIDs","changeDecorations","changeAccessor","deltaDecorations","_wordHighlighter","createWordHighlighterIfPossible","isTooLargeForTokenization","multiDocumentHighlightProvider","saveViewState","restoreViewState","WordHighlightNavigationAction","next","opts","_isNext","controller","TriggerWordHighlightAction","toNegated","kbOpts","kbExpr","MoveWordCommand","_inSelectionMode","inSelectionMode","_wordNavigationType","wordNavigationType","runEditorCommand","sel","inPosition","positionLineNumber","positionColumn","outPosition","_move","_moveTo","pushStackElement","_getViewModel","setCursorStates","pos","revealPosition","from","to","selectionStartLineNumber","selectionStartColumn","WordLeftCommand","WordRightCommand","DeleteWordCommand","_whitespaceHeuristics","whitespaceHeuristics","languageConfigurationService","selections","autoClosingBrackets","autoClosingQuotes","autoClosingPairs","getLanguageConfiguration","getAutoClosingPairs","viewModel","commands","deleteRange","_delete","autoClosingDelete","autoClosedCharacters","getCursorAutoClosedCharacters","pushUndoStop","executeCommands","DeleteWordLeftCommand","ctx","DeleteWordRightCommand","lineCount","maxColumn","getLineMaxColumn","DeleteInsideWord","negate","wordCharacterClassifier","intlSegmenterLocales","DeleteWordPartLeft","DeleteWordPartRight","WordPartLeftCommand","WordPartRightCommand"],"sourceRoot":""}