monaco-editor-core 0.55.0-dev-20251009 → 0.55.0-dev-20251010

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/esm/nls.messages.de.js +1 -1
  2. package/esm/nls.messages.es.js +1 -1
  3. package/esm/nls.messages.fr.js +1 -1
  4. package/esm/nls.messages.it.js +1 -1
  5. package/esm/nls.messages.ja.js +1 -1
  6. package/esm/nls.messages.ko.js +1 -1
  7. package/esm/nls.messages.ru.js +1 -1
  8. package/esm/nls.messages.zh-cn.js +1 -1
  9. package/esm/nls.messages.zh-tw.js +1 -1
  10. package/esm/vs/base/browser/history.js.map +1 -1
  11. package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
  12. package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
  13. package/esm/vs/base/common/history.js.map +1 -1
  14. package/esm/vs/base/common/worker/webWorker.js.map +1 -1
  15. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  16. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +6 -11
  17. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
  18. package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
  19. package/esm/vs/editor/browser/widget/markdownRenderer/browser/{markdownRenderer.js → editorMarkdownCodeBlockRenderer.js} +20 -59
  20. package/esm/vs/editor/browser/widget/markdownRenderer/browser/editorMarkdownCodeBlockRenderer.js.map +1 -0
  21. package/esm/vs/editor/common/config/editorConfiguration.js.map +1 -1
  22. package/esm/vs/editor/common/config/editorZoom.js.map +1 -1
  23. package/esm/vs/editor/common/diff/documentDiffProvider.js.map +1 -1
  24. package/esm/vs/editor/common/editorCommon.js.map +1 -1
  25. package/esm/vs/editor/common/languages/language.js.map +1 -1
  26. package/esm/vs/editor/common/languages/languageConfigurationRegistry.js.map +1 -1
  27. package/esm/vs/editor/common/languages.js.map +1 -1
  28. package/esm/vs/editor/common/textModelBracketPairs.js.map +1 -1
  29. package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js +2 -2
  30. package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js.map +1 -1
  31. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +2 -2
  32. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
  33. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +1 -1
  34. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js.map +1 -1
  35. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  36. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js.map +1 -1
  37. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  38. package/esm/vs/editor/contrib/message/browser/messageController.js.map +1 -1
  39. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +2 -2
  40. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
  41. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
  42. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js.map +1 -1
  43. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  44. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
  45. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  46. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js.map +1 -1
  47. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +1 -1
  48. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  49. package/esm/vs/editor/editor.api.d.ts +5 -4
  50. package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js +10 -5
  51. package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
  52. package/esm/vs/platform/actions/browser/actionViewItemService.js.map +1 -1
  53. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +16 -13
  54. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
  55. package/esm/vs/platform/actions/common/actions.js +1 -0
  56. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  57. package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
  58. package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
  59. package/esm/vs/platform/keybinding/common/keybinding.js.map +1 -1
  60. package/esm/vs/platform/log/common/log.js.map +1 -1
  61. package/esm/vs/platform/markdown/browser/markdownRenderer.js +72 -0
  62. package/esm/vs/platform/markdown/browser/markdownRenderer.js.map +1 -0
  63. package/esm/vs/platform/quickinput/browser/quickInput.js +20 -10
  64. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  65. package/esm/vs/platform/quickinput/browser/quickInputController.js +1 -0
  66. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  67. package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
  68. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  69. package/esm/vs/platform/workspace/common/workspaceTrust.js.map +1 -1
  70. package/monaco.d.ts +5 -4
  71. package/package.json +2 -2
  72. package/version.txt +1 -1
  73. package/esm/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts"],"names":[],"mappings":"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","file":"unicodeHighlighter.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CharCode } from '../../../../base/common/charCode.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { createCommandUri, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { InvisibleCharacters, isBasicASCII } from '../../../../base/common/strings.js';\nimport './unicodeHighlighter.css';\nimport { IActiveCodeEditor, ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { InUntrustedWorkspace, inUntrustedWorkspace, EditorOption, InternalUnicodeHighlightOptions, unicodeHighlightConfigKeys } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { IModelDecoration, IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';\nimport { IEditorWorkerService, IUnicodeHighlightsResult } from '../../../common/services/editorWorker.js';\nimport { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, IEditorHoverParticipant, IEditorHoverRenderContext, IRenderedHoverParts } from '../../hover/browser/hoverTypes.js';\nimport { MarkdownHover, renderMarkdownHovers } from '../../hover/browser/markdownHoverParticipant.js';\nimport { BannerController } from './bannerController.js';\nimport * as nls from '../../../../nls.js';\nimport { ConfigurationTarget, IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IQuickInputService, IQuickPickItem } from '../../../../platform/quickinput/common/quickInput.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { safeIntl } from '../../../../base/common/date.js';\nimport { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecoration.js';\nimport { IMarkdownRendererService } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\n\nexport const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize('warningIcon', 'Icon shown with a warning message in the extensions editor.'));\n\nexport class UnicodeHighlighter extends Disposable implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.unicodeHighlighter';\n\n\tprivate _highlighter: DocumentUnicodeHighlighter | ViewportUnicodeHighlighter | null = null;\n\tprivate _options: InternalUnicodeHighlightOptions;\n\n\tprivate readonly _bannerController: BannerController;\n\tprivate _bannerClosed: boolean = false;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t\t@IWorkspaceTrustManagementService private readonly _workspaceTrustService: IWorkspaceTrustManagementService,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t) {\n\t\tsuper();\n\n\t\tthis._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tthis._bannerClosed = false;\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\n\t\tthis._register(_workspaceTrustService.onDidChangeTrust(e => {\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._register(_editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(EditorOption.unicodeHighlighting)) {\n\t\t\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\t\t\t\tthis._updateHighlighter();\n\t\t\t}\n\t\t}));\n\n\t\tthis._updateHighlighter();\n\t}\n\n\tpublic override dispose(): void {\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tsuper.dispose();\n\t}\n\n\tprivate readonly _updateState = (state: IUnicodeHighlightsResult | null): void => {\n\t\tif (state && state.hasMore) {\n\t\t\tif (this._bannerClosed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This document contains many non-basic ASCII characters.\n\t\t\tconst max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n\n\t\t\tlet data;\n\t\t\tif (state.nonBasicAsciiCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters', 'This document contains many non-basic ASCII unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfNonBasicAsciiCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.ambiguousCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters', 'This document contains many ambiguous unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfAmbiguousCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.invisibleCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters', 'This document contains many invisible unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfInvisibleCharactersAction(),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tthrow new Error('Unreachable');\n\t\t\t}\n\n\t\t\tthis._bannerController.show({\n\t\t\t\tid: 'unicodeHighlightBanner',\n\t\t\t\tmessage: data.message,\n\t\t\t\ticon: warningIcon,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: data.command.shortLabel,\n\t\t\t\t\t\thref: `command:${data.command.desc.id}`\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tonClose: () => {\n\t\t\t\t\tthis._bannerClosed = true;\n\t\t\t\t},\n\t\t\t});\n\t\t} else {\n\t\t\tthis._bannerController.hide();\n\t\t}\n\t};\n\n\tprivate _updateHighlighter(): void {\n\t\tthis._updateState(null);\n\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n\n\t\tif (\n\t\t\t[\n\t\t\t\toptions.nonBasicASCII,\n\t\t\t\toptions.ambiguousCharacters,\n\t\t\t\toptions.invisibleCharacters,\n\t\t\t].every((option) => option === false)\n\t\t) {\n\t\t\t// Don't do anything if the feature is fully disabled\n\t\t\treturn;\n\t\t}\n\n\t\tconst highlightOptions: UnicodeHighlighterOptions = {\n\t\t\tnonBasicASCII: options.nonBasicASCII,\n\t\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\t\tincludeComments: options.includeComments,\n\t\t\tincludeStrings: options.includeStrings,\n\t\t\tallowedCodePoints: Object.keys(options.allowedCharacters).map(c => c.codePointAt(0)!),\n\t\t\tallowedLocales: Object.keys(options.allowedLocales).map(locale => {\n\t\t\t\tif (locale === '_os') {\n\t\t\t\t\tconst osLocale = safeIntl.NumberFormat().value.resolvedOptions().locale;\n\t\t\t\t\treturn osLocale;\n\t\t\t\t} else if (locale === '_vscode') {\n\t\t\t\t\treturn platform.language;\n\t\t\t\t}\n\t\t\t\treturn locale;\n\t\t\t}),\n\t\t};\n\n\t\tif (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n\t\t\tthis._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n\t\t} else {\n\t\t\tthis._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n\t\t}\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (this._highlighter) {\n\t\t\treturn this._highlighter.getDecorationInfo(decoration);\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport interface UnicodeHighlighterDecorationInfo {\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\ntype Resolve<T> =\n\tT extends InUntrustedWorkspace ? never\n\t: T extends 'auto' ? never : T;\n\ntype ResolvedOptions = { [TKey in keyof InternalUnicodeHighlightOptions]: Resolve<InternalUnicodeHighlightOptions[TKey]> };\n\nfunction resolveOptions(trusted: boolean, options: InternalUnicodeHighlightOptions): ResolvedOptions {\n\treturn {\n\t\tnonBasicASCII: options.nonBasicASCII === inUntrustedWorkspace ? !trusted : options.nonBasicASCII,\n\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\tincludeComments: options.includeComments === inUntrustedWorkspace ? !trusted : options.includeComments,\n\t\tincludeStrings: options.includeStrings === inUntrustedWorkspace ? !trusted : options.includeStrings,\n\t\tallowedCharacters: options.allowedCharacters,\n\t\tallowedLocales: options.allowedLocales,\n\t};\n}\n\nclass DocumentUnicodeHighlighter extends Disposable {\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = this._model.getVersionId();\n\t\tthis._editorWorkerService\n\t\t\t.computedUnicodeHighlights(this._model.uri, this._options)\n\t\t\t.then((info) => {\n\t\t\t\tif (this._model.isDisposed()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this._model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._updateState(info);\n\n\t\t\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\t\t\tif (!info.hasMore) {\n\t\t\t\t\t// Don't show decoration if there are too many.\n\t\t\t\t\t// In this case, a banner is shown.\n\t\t\t\t\tfor (const range of info.ranges) {\n\t\t\t\t\t\tdecorations.push({\n\t\t\t\t\t\t\trange: range,\n\t\t\t\t\t\t\toptions: Decorations.instance.getDecorationFromOptions(this._options),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._decorations.set(decorations);\n\t\t\t});\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (\n\t\t\t!isModelDecorationVisible(model, decoration)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nclass ViewportUnicodeHighlighter extends Disposable {\n\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate readonly _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidLayoutChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeHiddenAreas(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst ranges = this._editor.getVisibleRanges();\n\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\tconst totalResult: IUnicodeHighlightsResult = {\n\t\t\tranges: [],\n\t\t\tambiguousCharacterCount: 0,\n\t\t\tinvisibleCharacterCount: 0,\n\t\t\tnonBasicAsciiCharacterCount: 0,\n\t\t\thasMore: false,\n\t\t};\n\t\tfor (const range of ranges) {\n\t\t\tconst result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range);\n\t\t\tfor (const r of result.ranges) {\n\t\t\t\ttotalResult.ranges.push(r);\n\t\t\t}\n\t\t\ttotalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n\t\t\ttotalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n\t\t\ttotalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n\t\t\ttotalResult.hasMore = totalResult.hasMore || result.hasMore;\n\t\t}\n\n\t\tif (!totalResult.hasMore) {\n\t\t\t// Don't show decorations if there are too many.\n\t\t\t// A banner will be shown instead.\n\t\t\tfor (const range of totalResult.ranges) {\n\t\t\t\tdecorations.push({ range, options: Decorations.instance.getDecorationFromOptions(this._options) });\n\t\t\t}\n\t\t}\n\t\tthis._updateState(totalResult);\n\n\t\tthis._decorations.set(decorations);\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\tif (!isModelDecorationVisible(model, decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nconst configureUnicodeHighlightOptionsStr = nls.localize('unicodeHighlight.configureUnicodeHighlightOptions', 'Configure Unicode Highlight Options');\n\nexport class UnicodeHighlighterHoverParticipant implements IEditorHoverParticipant<MarkdownHover> {\n\n\tpublic readonly hoverOrdinal: number = 5;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IMarkdownRendererService private readonly _markdownRendererService: IMarkdownRendererService,\n\t) { }\n\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkdownHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\n\t\tconst unicodeHighlighter = this._editor.getContribution<UnicodeHighlighter>(UnicodeHighlighter.ID);\n\t\tif (!unicodeHighlighter) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst result: MarkdownHover[] = [];\n\t\tconst existedReason = new Set<string>();\n\t\tlet index = 300;\n\t\tfor (const d of lineDecorations) {\n\n\t\t\tconst highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n\t\t\tif (!highlightInfo) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst char = model.getValueInRange(d.range);\n\t\t\t// text refers to a single character.\n\t\t\tconst codePoint = char.codePointAt(0)!;\n\n\t\t\tconst codePointStr = formatCodePointMarkdown(codePoint);\n\n\t\t\tlet reason: string;\n\t\t\tswitch (highlightInfo.reason.kind) {\n\t\t\t\tcase UnicodeHighlighterReasonKind.Ambiguous: {\n\t\t\t\t\tif (isBasicASCII(highlightInfo.reason.confusableWith)) {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguousASCII',\n\t\t\t\t\t\t\t'The character {0} could be confused with the ASCII character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguous',\n\t\t\t\t\t\t\t'The character {0} could be confused with the character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.Invisible:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsInvisible',\n\t\t\t\t\t\t'The character {0} is invisible.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.NonBasicAscii:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsNonBasicAscii',\n\t\t\t\t\t\t'The character {0} is not a basic ASCII character.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (existedReason.has(reason)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\texistedReason.add(reason);\n\n\t\t\tconst adjustSettingsArgs: ShowExcludeOptionsArgs = {\n\t\t\t\tcodePoint: codePoint,\n\t\t\t\treason: highlightInfo.reason,\n\t\t\t\tinComment: highlightInfo.inComment,\n\t\t\t\tinString: highlightInfo.inString,\n\t\t\t};\n\n\t\t\tconst adjustSettings = nls.localize('unicodeHighlight.adjustSettings', 'Adjust settings');\n\t\t\tconst uri = createCommandUri(ShowExcludeOptions.ID, adjustSettingsArgs);\n\t\t\tconst markdown = new MarkdownString('', true)\n\t\t\t\t.appendMarkdown(reason)\n\t\t\t\t.appendText(' ')\n\t\t\t\t.appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n\t\t\tresult.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkdownHover[]): IRenderedHoverParts<MarkdownHover> {\n\t\treturn renderMarkdownHovers(context, hoverParts, this._editor, this._markdownRendererService);\n\t}\n}\n\nfunction codePointToHex(codePoint: number): string {\n\treturn `U+${codePoint.toString(16).padStart(4, '0')}`;\n}\n\nfunction formatCodePointMarkdown(codePoint: number) {\n\tlet value = `\\`${codePointToHex(codePoint)}\\``;\n\tif (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t// Don't render any control characters or any invisible characters, as they cannot be seen anyways.\n\t\tvalue += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n\t}\n\treturn value;\n}\n\nfunction renderCodePointAsInlineCode(codePoint: number): string {\n\tif (codePoint === CharCode.BackTick) {\n\t\treturn '`` ` ``';\n\t}\n\treturn '`' + String.fromCodePoint(codePoint) + '`';\n}\n\nfunction computeReason(char: string, options: UnicodeHighlighterOptions): UnicodeHighlighterReason | null {\n\treturn UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options);\n}\n\nclass Decorations {\n\tpublic static readonly instance = new Decorations();\n\n\tprivate readonly map = new Map<string, ModelDecorationOptions>();\n\n\tgetDecorationFromOptions(options: UnicodeHighlighterOptions): ModelDecorationOptions {\n\t\treturn this.getDecoration(!options.includeComments, !options.includeStrings);\n\t}\n\n\tprivate getDecoration(hideInComments: boolean, hideInStrings: boolean): ModelDecorationOptions {\n\t\tconst key = `${hideInComments}${hideInStrings}`;\n\t\tlet options = this.map.get(key);\n\t\tif (!options) {\n\t\t\toptions = ModelDecorationOptions.createDynamic({\n\t\t\t\tdescription: 'unicode-highlight',\n\t\t\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\t\t\tclassName: 'unicode-highlight',\n\t\t\t\tshowIfCollapsed: true,\n\t\t\t\toverviewRuler: null,\n\t\t\t\tminimap: null,\n\t\t\t\thideInCommentTokens: hideInComments,\n\t\t\t\thideInStringTokens: hideInStrings,\n\t\t\t});\n\t\t\tthis.map.set(key, options);\n\t\t}\n\t\treturn options;\n\t}\n}\n\ninterface IDisableUnicodeHighlightAction {\n}\n\nexport class DisableHighlightingInCommentsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInComments.shortLabel', 'Disable Highlight In Comments');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInComments', \"Disable highlighting of characters in comments\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeComments, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingInStringsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInStrings.shortLabel', 'Disable Highlight In Strings');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInStrings', \"Disable highlighting of characters in strings\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfAmbiguousCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel', 'Disable Ambiguous Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters', \"Disable highlighting of ambiguous characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfInvisibleCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel', 'Disable Invisible Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfInvisibleCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfInvisibleCharacters', \"Disable highlighting of invisible characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfNonBasicAsciiCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel', 'Disable Non ASCII Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters', \"Disable highlighting of non basic ASCII characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII, false, ConfigurationTarget.USER);\n\t}\n}\n\ninterface ShowExcludeOptionsArgs {\n\tcodePoint: number;\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\nexport class ShowExcludeOptions extends Action2 {\n\tpublic static ID = 'editor.action.unicodeHighlight.showExcludeOptions';\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: ShowExcludeOptions.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.showExcludeOptions', \"Show Exclude Options\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, args: any): Promise<void> {\n\t\tconst { codePoint, reason, inString, inComment } = args as ShowExcludeOptionsArgs;\n\n\t\tconst char = String.fromCodePoint(codePoint);\n\n\t\tconst quickPickService = accessor.get(IQuickInputService);\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\n\t\tinterface ExtendedOptions extends IQuickPickItem {\n\t\t\trun(): Promise<void>;\n\t\t}\n\n\t\tfunction getExcludeCharFromBeingHighlightedLabel(codePoint: number) {\n\t\t\tif (InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t\t\treturn nls.localize('unicodeHighlight.excludeInvisibleCharFromBeingHighlighted', 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));\n\t\t\t}\n\t\t\treturn nls.localize('unicodeHighlight.excludeCharFromBeingHighlighted', 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} \"${char}\"`);\n\t\t}\n\n\t\tconst options: ExtendedOptions[] = [];\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tfor (const locale of reason.notAmbiguousInLocales) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: nls.localize(\"unicodeHighlight.allowCommonCharactersInLanguage\", \"Allow unicode characters that are more common in the language \\\"{0}\\\".\", locale),\n\t\t\t\t\trun: async () => {\n\t\t\t\t\t\texcludeLocaleFromBeingHighlighted(configurationService, [locale]);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\toptions.push(\n\t\t\t{\n\t\t\t\tlabel: getExcludeCharFromBeingHighlightedLabel(codePoint),\n\t\t\t\trun: () => excludeCharFromBeingHighlighted(configurationService, [codePoint])\n\t\t\t}\n\t\t);\n\n\t\tif (inComment) {\n\t\t\tconst action = new DisableHighlightingInCommentsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t} else if (inString) {\n\t\t\tconst action = new DisableHighlightingInStringsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t}\n\n\t\tfunction getTitle(options: Action2) {\n\t\t\treturn typeof options.desc.title === 'string' ? options.desc.title : options.desc.title.value;\n\t\t}\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tconst action = new DisableHighlightingOfAmbiguousCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.Invisible) {\n\t\t\tconst action = new DisableHighlightingOfInvisibleCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.NonBasicAscii) {\n\t\t\tconst action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else {\n\t\t\texpectNever(reason);\n\t\t}\n\n\t\tconst result = await quickPickService.pick(\n\t\t\toptions,\n\t\t\t{ title: configureUnicodeHighlightOptionsStr }\n\t\t);\n\n\t\tif (result) {\n\t\t\tawait result.run();\n\t\t}\n\t}\n}\n\nasync function excludeCharFromBeingHighlighted(configurationService: IConfigurationService, charCodes: number[]) {\n\tconst existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = existingValue as any;\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const charCode of charCodes) {\n\t\tvalue[String.fromCodePoint(charCode)] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters, value, ConfigurationTarget.USER);\n}\n\nasync function excludeLocaleFromBeingHighlighted(configurationService: IConfigurationService, locales: string[]) {\n\tconst existingValue = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user?.value;\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// Copy value, as the existing value is read only\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = Object.assign({}, existingValue as any);\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const locale of locales) {\n\t\tvalue[locale] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales, value, ConfigurationTarget.USER);\n}\n\nfunction expectNever(value: never) {\n\tthrow new Error(`Unexpected value: ${value}`);\n}\n\nregisterAction2(DisableHighlightingOfAmbiguousCharactersAction);\nregisterAction2(DisableHighlightingOfInvisibleCharactersAction);\nregisterAction2(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterAction2(ShowExcludeOptions);\nregisterEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter, EditorContributionInstantiation.AfterFirstRender);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts"],"names":[],"mappings":"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","file":"unicodeHighlighter.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CharCode } from '../../../../base/common/charCode.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { createCommandUri, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { InvisibleCharacters, isBasicASCII } from '../../../../base/common/strings.js';\nimport './unicodeHighlighter.css';\nimport { IActiveCodeEditor, ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { InUntrustedWorkspace, inUntrustedWorkspace, EditorOption, InternalUnicodeHighlightOptions, unicodeHighlightConfigKeys } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { IModelDecoration, IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';\nimport { IEditorWorkerService, IUnicodeHighlightsResult } from '../../../common/services/editorWorker.js';\nimport { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, IEditorHoverParticipant, IEditorHoverRenderContext, IRenderedHoverParts } from '../../hover/browser/hoverTypes.js';\nimport { MarkdownHover, renderMarkdownHovers } from '../../hover/browser/markdownHoverParticipant.js';\nimport { BannerController } from './bannerController.js';\nimport * as nls from '../../../../nls.js';\nimport { ConfigurationTarget, IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IQuickInputService, IQuickPickItem } from '../../../../platform/quickinput/common/quickInput.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { safeIntl } from '../../../../base/common/date.js';\nimport { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecoration.js';\nimport { IMarkdownRendererService } from '../../../../platform/markdown/browser/markdownRenderer.js';\n\nexport const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize('warningIcon', 'Icon shown with a warning message in the extensions editor.'));\n\nexport class UnicodeHighlighter extends Disposable implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.unicodeHighlighter';\n\n\tprivate _highlighter: DocumentUnicodeHighlighter | ViewportUnicodeHighlighter | null = null;\n\tprivate _options: InternalUnicodeHighlightOptions;\n\n\tprivate readonly _bannerController: BannerController;\n\tprivate _bannerClosed: boolean = false;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t\t@IWorkspaceTrustManagementService private readonly _workspaceTrustService: IWorkspaceTrustManagementService,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t) {\n\t\tsuper();\n\n\t\tthis._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tthis._bannerClosed = false;\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\n\t\tthis._register(_workspaceTrustService.onDidChangeTrust(e => {\n\t\t\tthis._updateHighlighter();\n\t\t}));\n\n\t\tthis._register(_editor.onDidChangeConfiguration(e => {\n\t\t\tif (e.hasChanged(EditorOption.unicodeHighlighting)) {\n\t\t\t\tthis._options = _editor.getOption(EditorOption.unicodeHighlighting);\n\t\t\t\tthis._updateHighlighter();\n\t\t\t}\n\t\t}));\n\n\t\tthis._updateHighlighter();\n\t}\n\n\tpublic override dispose(): void {\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tsuper.dispose();\n\t}\n\n\tprivate readonly _updateState = (state: IUnicodeHighlightsResult | null): void => {\n\t\tif (state && state.hasMore) {\n\t\t\tif (this._bannerClosed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This document contains many non-basic ASCII characters.\n\t\t\tconst max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n\n\t\t\tlet data;\n\t\t\tif (state.nonBasicAsciiCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters', 'This document contains many non-basic ASCII unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfNonBasicAsciiCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.ambiguousCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters', 'This document contains many ambiguous unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfAmbiguousCharactersAction(),\n\t\t\t\t};\n\t\t\t} else if (state.invisibleCharacterCount >= max) {\n\t\t\t\tdata = {\n\t\t\t\t\tmessage: nls.localize('unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters', 'This document contains many invisible unicode characters'),\n\t\t\t\t\tcommand: new DisableHighlightingOfInvisibleCharactersAction(),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tthrow new Error('Unreachable');\n\t\t\t}\n\n\t\t\tthis._bannerController.show({\n\t\t\t\tid: 'unicodeHighlightBanner',\n\t\t\t\tmessage: data.message,\n\t\t\t\ticon: warningIcon,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: data.command.shortLabel,\n\t\t\t\t\t\thref: `command:${data.command.desc.id}`\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tonClose: () => {\n\t\t\t\t\tthis._bannerClosed = true;\n\t\t\t\t},\n\t\t\t});\n\t\t} else {\n\t\t\tthis._bannerController.hide();\n\t\t}\n\t};\n\n\tprivate _updateHighlighter(): void {\n\t\tthis._updateState(null);\n\n\t\tif (this._highlighter) {\n\t\t\tthis._highlighter.dispose();\n\t\t\tthis._highlighter = null;\n\t\t}\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n\n\t\tif (\n\t\t\t[\n\t\t\t\toptions.nonBasicASCII,\n\t\t\t\toptions.ambiguousCharacters,\n\t\t\t\toptions.invisibleCharacters,\n\t\t\t].every((option) => option === false)\n\t\t) {\n\t\t\t// Don't do anything if the feature is fully disabled\n\t\t\treturn;\n\t\t}\n\n\t\tconst highlightOptions: UnicodeHighlighterOptions = {\n\t\t\tnonBasicASCII: options.nonBasicASCII,\n\t\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\t\tincludeComments: options.includeComments,\n\t\t\tincludeStrings: options.includeStrings,\n\t\t\tallowedCodePoints: Object.keys(options.allowedCharacters).map(c => c.codePointAt(0)!),\n\t\t\tallowedLocales: Object.keys(options.allowedLocales).map(locale => {\n\t\t\t\tif (locale === '_os') {\n\t\t\t\t\tconst osLocale = safeIntl.NumberFormat().value.resolvedOptions().locale;\n\t\t\t\t\treturn osLocale;\n\t\t\t\t} else if (locale === '_vscode') {\n\t\t\t\t\treturn platform.language;\n\t\t\t\t}\n\t\t\t\treturn locale;\n\t\t\t}),\n\t\t};\n\n\t\tif (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n\t\t\tthis._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n\t\t} else {\n\t\t\tthis._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n\t\t}\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (this._highlighter) {\n\t\t\treturn this._highlighter.getDecorationInfo(decoration);\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport interface UnicodeHighlighterDecorationInfo {\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\ntype Resolve<T> =\n\tT extends InUntrustedWorkspace ? never\n\t: T extends 'auto' ? never : T;\n\ntype ResolvedOptions = { [TKey in keyof InternalUnicodeHighlightOptions]: Resolve<InternalUnicodeHighlightOptions[TKey]> };\n\nfunction resolveOptions(trusted: boolean, options: InternalUnicodeHighlightOptions): ResolvedOptions {\n\treturn {\n\t\tnonBasicASCII: options.nonBasicASCII === inUntrustedWorkspace ? !trusted : options.nonBasicASCII,\n\t\tambiguousCharacters: options.ambiguousCharacters,\n\t\tinvisibleCharacters: options.invisibleCharacters,\n\t\tincludeComments: options.includeComments === inUntrustedWorkspace ? !trusted : options.includeComments,\n\t\tincludeStrings: options.includeStrings === inUntrustedWorkspace ? !trusted : options.includeStrings,\n\t\tallowedCharacters: options.allowedCharacters,\n\t\tallowedLocales: options.allowedLocales,\n\t};\n}\n\nclass DocumentUnicodeHighlighter extends Disposable {\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t\t@IEditorWorkerService private readonly _editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = this._model.getVersionId();\n\t\tthis._editorWorkerService\n\t\t\t.computedUnicodeHighlights(this._model.uri, this._options)\n\t\t\t.then((info) => {\n\t\t\t\tif (this._model.isDisposed()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this._model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._updateState(info);\n\n\t\t\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\t\t\tif (!info.hasMore) {\n\t\t\t\t\t// Don't show decoration if there are too many.\n\t\t\t\t\t// In this case, a banner is shown.\n\t\t\t\t\tfor (const range of info.ranges) {\n\t\t\t\t\t\tdecorations.push({\n\t\t\t\t\t\t\trange: range,\n\t\t\t\t\t\t\toptions: Decorations.instance.getDecorationFromOptions(this._options),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._decorations.set(decorations);\n\t\t\t});\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (\n\t\t\t!isModelDecorationVisible(model, decoration)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nclass ViewportUnicodeHighlighter extends Disposable {\n\n\tprivate readonly _model: ITextModel;\n\tprivate readonly _updateSoon: RunOnceScheduler;\n\tprivate readonly _decorations;\n\n\tconstructor(\n\t\tprivate readonly _editor: IActiveCodeEditor,\n\t\tprivate readonly _options: UnicodeHighlighterOptions,\n\t\tprivate readonly _updateState: (state: IUnicodeHighlightsResult | null) => void,\n\t) {\n\t\tsuper();\n\t\tthis._model = this._editor.getModel();\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\n\t\tthis._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n\n\t\tthis._register(this._editor.onDidLayoutChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeHiddenAreas(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent(() => {\n\t\t\tthis._updateSoon.schedule();\n\t\t}));\n\n\t\tthis._updateSoon.schedule();\n\t}\n\n\tpublic override dispose() {\n\t\tthis._decorations.clear();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _update(): void {\n\t\tif (this._model.isDisposed()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._model.mightContainNonBasicASCII()) {\n\t\t\tthis._decorations.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst ranges = this._editor.getVisibleRanges();\n\t\tconst decorations: IModelDeltaDecoration[] = [];\n\t\tconst totalResult: IUnicodeHighlightsResult = {\n\t\t\tranges: [],\n\t\t\tambiguousCharacterCount: 0,\n\t\t\tinvisibleCharacterCount: 0,\n\t\t\tnonBasicAsciiCharacterCount: 0,\n\t\t\thasMore: false,\n\t\t};\n\t\tfor (const range of ranges) {\n\t\t\tconst result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range);\n\t\t\tfor (const r of result.ranges) {\n\t\t\t\ttotalResult.ranges.push(r);\n\t\t\t}\n\t\t\ttotalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n\t\t\ttotalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n\t\t\ttotalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n\t\t\ttotalResult.hasMore = totalResult.hasMore || result.hasMore;\n\t\t}\n\n\t\tif (!totalResult.hasMore) {\n\t\t\t// Don't show decorations if there are too many.\n\t\t\t// A banner will be shown instead.\n\t\t\tfor (const range of totalResult.ranges) {\n\t\t\t\tdecorations.push({ range, options: Decorations.instance.getDecorationFromOptions(this._options) });\n\t\t\t}\n\t\t}\n\t\tthis._updateState(totalResult);\n\n\t\tthis._decorations.set(decorations);\n\t}\n\n\tpublic getDecorationInfo(decoration: IModelDecoration): UnicodeHighlighterDecorationInfo | null {\n\t\tif (!this._decorations.has(decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tconst text = model.getValueInRange(decoration.range);\n\t\tif (!isModelDecorationVisible(model, decoration)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\treason: computeReason(text, this._options)!,\n\t\t\tinComment: isModelDecorationInComment(model, decoration),\n\t\t\tinString: isModelDecorationInString(model, decoration),\n\t\t};\n\t}\n}\n\nconst configureUnicodeHighlightOptionsStr = nls.localize('unicodeHighlight.configureUnicodeHighlightOptions', 'Configure Unicode Highlight Options');\n\nexport class UnicodeHighlighterHoverParticipant implements IEditorHoverParticipant<MarkdownHover> {\n\n\tpublic readonly hoverOrdinal: number = 5;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IMarkdownRendererService private readonly _markdownRendererService: IMarkdownRendererService,\n\t) { }\n\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkdownHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\n\t\tconst unicodeHighlighter = this._editor.getContribution<UnicodeHighlighter>(UnicodeHighlighter.ID);\n\t\tif (!unicodeHighlighter) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst result: MarkdownHover[] = [];\n\t\tconst existedReason = new Set<string>();\n\t\tlet index = 300;\n\t\tfor (const d of lineDecorations) {\n\n\t\t\tconst highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n\t\t\tif (!highlightInfo) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst char = model.getValueInRange(d.range);\n\t\t\t// text refers to a single character.\n\t\t\tconst codePoint = char.codePointAt(0)!;\n\n\t\t\tconst codePointStr = formatCodePointMarkdown(codePoint);\n\n\t\t\tlet reason: string;\n\t\t\tswitch (highlightInfo.reason.kind) {\n\t\t\t\tcase UnicodeHighlighterReasonKind.Ambiguous: {\n\t\t\t\t\tif (isBasicASCII(highlightInfo.reason.confusableWith)) {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguousASCII',\n\t\t\t\t\t\t\t'The character {0} could be confused with the ASCII character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t\t'unicodeHighlight.characterIsAmbiguous',\n\t\t\t\t\t\t\t'The character {0} could be confused with the character {1}, which is more common in source code.',\n\t\t\t\t\t\t\tcodePointStr,\n\t\t\t\t\t\t\tformatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)!)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.Invisible:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsInvisible',\n\t\t\t\t\t\t'The character {0} is invisible.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase UnicodeHighlighterReasonKind.NonBasicAscii:\n\t\t\t\t\treason = nls.localize(\n\t\t\t\t\t\t'unicodeHighlight.characterIsNonBasicAscii',\n\t\t\t\t\t\t'The character {0} is not a basic ASCII character.',\n\t\t\t\t\t\tcodePointStr\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (existedReason.has(reason)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\texistedReason.add(reason);\n\n\t\t\tconst adjustSettingsArgs: ShowExcludeOptionsArgs = {\n\t\t\t\tcodePoint: codePoint,\n\t\t\t\treason: highlightInfo.reason,\n\t\t\t\tinComment: highlightInfo.inComment,\n\t\t\t\tinString: highlightInfo.inString,\n\t\t\t};\n\n\t\t\tconst adjustSettings = nls.localize('unicodeHighlight.adjustSettings', 'Adjust settings');\n\t\t\tconst uri = createCommandUri(ShowExcludeOptions.ID, adjustSettingsArgs);\n\t\t\tconst markdown = new MarkdownString('', true)\n\t\t\t\t.appendMarkdown(reason)\n\t\t\t\t.appendText(' ')\n\t\t\t\t.appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n\t\t\tresult.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkdownHover[]): IRenderedHoverParts<MarkdownHover> {\n\t\treturn renderMarkdownHovers(context, hoverParts, this._editor, this._markdownRendererService);\n\t}\n}\n\nfunction codePointToHex(codePoint: number): string {\n\treturn `U+${codePoint.toString(16).padStart(4, '0')}`;\n}\n\nfunction formatCodePointMarkdown(codePoint: number) {\n\tlet value = `\\`${codePointToHex(codePoint)}\\``;\n\tif (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t// Don't render any control characters or any invisible characters, as they cannot be seen anyways.\n\t\tvalue += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n\t}\n\treturn value;\n}\n\nfunction renderCodePointAsInlineCode(codePoint: number): string {\n\tif (codePoint === CharCode.BackTick) {\n\t\treturn '`` ` ``';\n\t}\n\treturn '`' + String.fromCodePoint(codePoint) + '`';\n}\n\nfunction computeReason(char: string, options: UnicodeHighlighterOptions): UnicodeHighlighterReason | null {\n\treturn UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options);\n}\n\nclass Decorations {\n\tpublic static readonly instance = new Decorations();\n\n\tprivate readonly map = new Map<string, ModelDecorationOptions>();\n\n\tgetDecorationFromOptions(options: UnicodeHighlighterOptions): ModelDecorationOptions {\n\t\treturn this.getDecoration(!options.includeComments, !options.includeStrings);\n\t}\n\n\tprivate getDecoration(hideInComments: boolean, hideInStrings: boolean): ModelDecorationOptions {\n\t\tconst key = `${hideInComments}${hideInStrings}`;\n\t\tlet options = this.map.get(key);\n\t\tif (!options) {\n\t\t\toptions = ModelDecorationOptions.createDynamic({\n\t\t\t\tdescription: 'unicode-highlight',\n\t\t\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\t\t\tclassName: 'unicode-highlight',\n\t\t\t\tshowIfCollapsed: true,\n\t\t\t\toverviewRuler: null,\n\t\t\t\tminimap: null,\n\t\t\t\thideInCommentTokens: hideInComments,\n\t\t\t\thideInStringTokens: hideInStrings,\n\t\t\t});\n\t\t\tthis.map.set(key, options);\n\t\t}\n\t\treturn options;\n\t}\n}\n\ninterface IDisableUnicodeHighlightAction {\n}\n\nexport class DisableHighlightingInCommentsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInComments.shortLabel', 'Disable Highlight In Comments');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInComments', \"Disable highlighting of characters in comments\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeComments, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingInStringsAction extends EditorAction implements IDisableUnicodeHighlightAction {\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingInStrings.shortLabel', 'Disable Highlight In Strings');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\tlabel: nls.localize2('action.unicodeHighlight.disableHighlightingInStrings', \"Disable highlighting of characters in strings\"),\n\t\t\tprecondition: undefined\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfAmbiguousCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel', 'Disable Ambiguous Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfAmbiguousCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters', \"Disable highlighting of ambiguous characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfInvisibleCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel', 'Disable Invisible Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfInvisibleCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfInvisibleCharacters', \"Disable highlighting of invisible characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters, false, ConfigurationTarget.USER);\n\t}\n}\n\nexport class DisableHighlightingOfNonBasicAsciiCharactersAction extends Action2 implements IDisableUnicodeHighlightAction {\n\tpublic static ID = 'editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters';\n\tpublic readonly shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel', 'Disable Non ASCII Highlight');\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters', \"Disable highlighting of non basic ASCII characters\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise<void> {\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\t\tif (configurationService) {\n\t\t\tthis.runAction(configurationService);\n\t\t}\n\t}\n\n\tpublic async runAction(configurationService: IConfigurationService): Promise<void> {\n\t\tawait configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII, false, ConfigurationTarget.USER);\n\t}\n}\n\ninterface ShowExcludeOptionsArgs {\n\tcodePoint: number;\n\treason: UnicodeHighlighterReason;\n\tinComment: boolean;\n\tinString: boolean;\n}\n\nexport class ShowExcludeOptions extends Action2 {\n\tpublic static ID = 'editor.action.unicodeHighlight.showExcludeOptions';\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: ShowExcludeOptions.ID,\n\t\t\ttitle: nls.localize2('action.unicodeHighlight.showExcludeOptions', \"Show Exclude Options\"),\n\t\t\tprecondition: undefined,\n\t\t\tf1: false,\n\t\t});\n\t}\n\n\tpublic async run(accessor: ServicesAccessor, args: any): Promise<void> {\n\t\tconst { codePoint, reason, inString, inComment } = args as ShowExcludeOptionsArgs;\n\n\t\tconst char = String.fromCodePoint(codePoint);\n\n\t\tconst quickPickService = accessor.get(IQuickInputService);\n\t\tconst configurationService = accessor.get(IConfigurationService);\n\n\t\tinterface ExtendedOptions extends IQuickPickItem {\n\t\t\trun(): Promise<void>;\n\t\t}\n\n\t\tfunction getExcludeCharFromBeingHighlightedLabel(codePoint: number) {\n\t\t\tif (InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n\t\t\t\treturn nls.localize('unicodeHighlight.excludeInvisibleCharFromBeingHighlighted', 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));\n\t\t\t}\n\t\t\treturn nls.localize('unicodeHighlight.excludeCharFromBeingHighlighted', 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} \"${char}\"`);\n\t\t}\n\n\t\tconst options: ExtendedOptions[] = [];\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tfor (const locale of reason.notAmbiguousInLocales) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: nls.localize(\"unicodeHighlight.allowCommonCharactersInLanguage\", \"Allow unicode characters that are more common in the language \\\"{0}\\\".\", locale),\n\t\t\t\t\trun: async () => {\n\t\t\t\t\t\texcludeLocaleFromBeingHighlighted(configurationService, [locale]);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\toptions.push(\n\t\t\t{\n\t\t\t\tlabel: getExcludeCharFromBeingHighlightedLabel(codePoint),\n\t\t\t\trun: () => excludeCharFromBeingHighlighted(configurationService, [codePoint])\n\t\t\t}\n\t\t);\n\n\t\tif (inComment) {\n\t\t\tconst action = new DisableHighlightingInCommentsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t} else if (inString) {\n\t\t\tconst action = new DisableHighlightingInStringsAction();\n\t\t\toptions.push({ label: action.label, run: async () => action.runAction(configurationService) });\n\t\t}\n\n\t\tfunction getTitle(options: Action2) {\n\t\t\treturn typeof options.desc.title === 'string' ? options.desc.title : options.desc.title.value;\n\t\t}\n\n\t\tif (reason.kind === UnicodeHighlighterReasonKind.Ambiguous) {\n\t\t\tconst action = new DisableHighlightingOfAmbiguousCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.Invisible) {\n\t\t\tconst action = new DisableHighlightingOfInvisibleCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else if (reason.kind === UnicodeHighlighterReasonKind.NonBasicAscii) {\n\t\t\tconst action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n\t\t\toptions.push({ label: getTitle(action), run: async () => action.runAction(configurationService) });\n\t\t} else {\n\t\t\texpectNever(reason);\n\t\t}\n\n\t\tconst result = await quickPickService.pick(\n\t\t\toptions,\n\t\t\t{ title: configureUnicodeHighlightOptionsStr }\n\t\t);\n\n\t\tif (result) {\n\t\t\tawait result.run();\n\t\t}\n\t}\n}\n\nasync function excludeCharFromBeingHighlighted(configurationService: IConfigurationService, charCodes: number[]) {\n\tconst existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = existingValue as any;\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const charCode of charCodes) {\n\t\tvalue[String.fromCodePoint(charCode)] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters, value, ConfigurationTarget.USER);\n}\n\nasync function excludeLocaleFromBeingHighlighted(configurationService: IConfigurationService, locales: string[]) {\n\tconst existingValue = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user?.value;\n\n\tlet value: Record<string, boolean>;\n\tif ((typeof existingValue === 'object') && existingValue) {\n\t\t// Copy value, as the existing value is read only\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tvalue = Object.assign({}, existingValue as any);\n\t} else {\n\t\tvalue = {};\n\t}\n\n\tfor (const locale of locales) {\n\t\tvalue[locale] = true;\n\t}\n\n\tawait configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales, value, ConfigurationTarget.USER);\n}\n\nfunction expectNever(value: never) {\n\tthrow new Error(`Unexpected value: ${value}`);\n}\n\nregisterAction2(DisableHighlightingOfAmbiguousCharactersAction);\nregisterAction2(DisableHighlightingOfInvisibleCharactersAction);\nregisterAction2(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterAction2(ShowExcludeOptions);\nregisterEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter, EditorContributionInstantiation.AfterFirstRender);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n"]}
@@ -2878,7 +2878,7 @@ export namespace editor {
2878
2878
  * An event emitted when decorations change in the editor,
2879
2879
  * but the change is not caused by us setting or clearing the collection.
2880
2880
  */
2881
- onDidChange: IEvent<IModelDecorationsChangedEvent>;
2881
+ readonly onDidChange: IEvent<IModelDecorationsChangedEvent>;
2882
2882
  /**
2883
2883
  * Get the decorations count.
2884
2884
  */
@@ -5685,7 +5685,7 @@ export namespace editor {
5685
5685
  /**
5686
5686
  * Event fired when the widget layout changes.
5687
5687
  */
5688
- onDidLayout?: IEvent<void>;
5688
+ readonly onDidLayout?: IEvent<void>;
5689
5689
  /**
5690
5690
  * Render this overlay widget in a location where it could overflow the editor's view dom node.
5691
5691
  */
@@ -6503,7 +6503,7 @@ export namespace editor {
6503
6503
  export const EditorZoom: IEditorZoom;
6504
6504
 
6505
6505
  export interface IEditorZoom {
6506
- onDidChangeZoomLevel: IEvent<number>;
6506
+ readonly onDidChangeZoomLevel: IEvent<number>;
6507
6507
  getZoomLevel(): number;
6508
6508
  setZoomLevel(zoomLevel: number): void;
6509
6509
  }
@@ -8489,13 +8489,14 @@ export namespace languages {
8489
8489
  }
8490
8490
 
8491
8491
  export interface DocumentSemanticTokensProvider {
8492
- onDidChange?: IEvent<void>;
8492
+ readonly onDidChange?: IEvent<void>;
8493
8493
  getLegend(): SemanticTokensLegend;
8494
8494
  provideDocumentSemanticTokens(model: editor.ITextModel, lastResultId: string | null, token: CancellationToken): ProviderResult<SemanticTokens | SemanticTokensEdits>;
8495
8495
  releaseDocumentSemanticTokens(resultId: string | undefined): void;
8496
8496
  }
8497
8497
 
8498
8498
  export interface DocumentRangeSemanticTokensProvider {
8499
+ readonly onDidChange?: IEvent<void>;
8499
8500
  getLegend(): SemanticTokensLegend;
8500
8501
  provideDocumentRangeSemanticTokens(model: editor.ITextModel, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>;
8501
8502
  }
@@ -43,6 +43,8 @@ import { mainWindow } from '../../../base/browser/window.js';
43
43
  import { setHoverDelegateFactory } from '../../../base/browser/ui/hover/hoverDelegateFactory.js';
44
44
  import { IHoverService, WorkbenchHoverDelegate } from '../../../platform/hover/browser/hover.js';
45
45
  import { setBaseLayerHoverDelegate } from '../../../base/browser/ui/hover/hoverDelegate2.js';
46
+ import { IMarkdownRendererService } from '../../../platform/markdown/browser/markdownRenderer.js';
47
+ import { EditorMarkdownCodeBlockRenderer } from '../../browser/widget/markdownRenderer/browser/editorMarkdownCodeBlockRenderer.js';
46
48
  let LAST_GENERATED_COMMAND_ID = 0;
47
49
  let ariaDomNodeCreated = false;
48
50
  /**
@@ -63,7 +65,7 @@ function createAriaDomNode(parent) {
63
65
  * A code editor to be used both by the standalone editor and the standalone diff editor.
64
66
  */
65
67
  let StandaloneCodeEditor = class StandaloneCodeEditor extends CodeEditorWidget {
66
- constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {
68
+ constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService, markdownRendererService) {
67
69
  const options = { ..._options };
68
70
  options.ariaLabel = options.ariaLabel || StandaloneCodeEditorNLS.editorViewAccessibleLabel;
69
71
  super(domElement, options, {}, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);
@@ -76,6 +78,7 @@ let StandaloneCodeEditor = class StandaloneCodeEditor extends CodeEditorWidget {
76
78
  createAriaDomNode(options.ariaContainerElement);
77
79
  setHoverDelegateFactory((placement, enableInstantHover) => instantiationService.createInstance(WorkbenchHoverDelegate, placement, { instantHover: enableInstantHover }, {}));
78
80
  setBaseLayerHoverDelegate(hoverService);
81
+ markdownRendererService.setDefaultCodeBlockRenderer(instantiationService.createInstance(EditorMarkdownCodeBlockRenderer));
79
82
  }
80
83
  addCommand(keybinding, handler, context) {
81
84
  if (!this._standaloneKeybindingService) {
@@ -169,11 +172,12 @@ StandaloneCodeEditor = __decorate([
169
172
  __param(9, INotificationService),
170
173
  __param(10, IAccessibilityService),
171
174
  __param(11, ILanguageConfigurationService),
172
- __param(12, ILanguageFeaturesService)
175
+ __param(12, ILanguageFeaturesService),
176
+ __param(13, IMarkdownRendererService)
173
177
  ], StandaloneCodeEditor);
174
178
  export { StandaloneCodeEditor };
175
179
  let StandaloneEditor = class StandaloneEditor extends StandaloneCodeEditor {
176
- constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, configurationService, accessibilityService, modelService, languageService, languageConfigurationService, languageFeaturesService) {
180
+ constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, configurationService, accessibilityService, modelService, languageService, languageConfigurationService, languageFeaturesService, markdownRendererService) {
177
181
  const options = { ..._options };
178
182
  updateConfigurationService(configurationService, options, false);
179
183
  const themeDomRegistration = themeService.registerEditorContainer(domElement);
@@ -185,7 +189,7 @@ let StandaloneEditor = class StandaloneEditor extends StandaloneCodeEditor {
185
189
  }
186
190
  const _model = options.model;
187
191
  delete options.model;
188
- super(domElement, options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);
192
+ super(domElement, options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService, markdownRendererService);
189
193
  this._configurationService = configurationService;
190
194
  this._standaloneThemeService = themeService;
191
195
  this._register(themeDomRegistration);
@@ -243,7 +247,8 @@ StandaloneEditor = __decorate([
243
247
  __param(12, IModelService),
244
248
  __param(13, ILanguageService),
245
249
  __param(14, ILanguageConfigurationService),
246
- __param(15, ILanguageFeaturesService)
250
+ __param(15, ILanguageFeaturesService),
251
+ __param(16, IMarkdownRendererService)
247
252
  ], StandaloneEditor);
248
253
  export { StandaloneEditor };
249
254
  let StandaloneDiffEditor2 = class StandaloneDiffEditor2 extends DiffEditorWidget {