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

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 (152) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.de.js +2 -2
  3. package/esm/nls.messages.es.js +2 -2
  4. package/esm/nls.messages.fr.js +2 -2
  5. package/esm/nls.messages.it.js +2 -2
  6. package/esm/nls.messages.ja.js +2 -2
  7. package/esm/nls.messages.js +1 -1
  8. package/esm/nls.messages.json +1 -1
  9. package/esm/nls.messages.ko.js +2 -2
  10. package/esm/nls.messages.ru.js +2 -2
  11. package/esm/nls.messages.zh-cn.js +2 -2
  12. package/esm/nls.messages.zh-tw.js +2 -2
  13. package/esm/nls.metadata.json +3 -1
  14. package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
  15. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  16. package/esm/vs/base/browser/ui/toolbar/toolbar.js +4 -1
  17. package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
  18. package/esm/vs/base/browser/ui/tree/abstractTree.js +2 -5
  19. package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
  20. package/esm/vs/base/browser/ui/tree/asyncDataTree.js +6 -8
  21. package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
  22. package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
  23. package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -2
  24. package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
  25. package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
  26. package/esm/vs/base/common/codiconsLibrary.js +9 -1
  27. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  28. package/esm/vs/base/common/normalization.js +39 -0
  29. package/esm/vs/base/common/normalization.js.map +1 -0
  30. package/esm/vs/base/common/process.js +0 -1
  31. package/esm/vs/base/common/process.js.map +1 -1
  32. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +5 -8
  33. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
  34. package/esm/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js +36 -31
  35. package/esm/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js.map +1 -1
  36. package/esm/vs/editor/common/core/text/abstractText.js +5 -1
  37. package/esm/vs/editor/common/core/text/abstractText.js.map +1 -1
  38. package/esm/vs/editor/common/model/tokens/treeSitter/tokenStore.js +2 -1
  39. package/esm/vs/editor/common/model/tokens/treeSitter/tokenStore.js.map +1 -1
  40. package/esm/vs/editor/contrib/find/browser/findController.js +54 -61
  41. package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
  42. package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js +5 -8
  43. package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js.map +1 -1
  44. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +18 -23
  45. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
  46. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  47. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +10 -12
  48. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js.map +1 -1
  49. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +9 -13
  50. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js.map +1 -1
  51. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +1 -0
  52. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  53. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +8 -1
  54. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
  55. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +2 -1
  56. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  57. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +2 -2
  58. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  59. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +27 -1
  60. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  61. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +1 -1
  62. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  63. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  64. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  65. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  66. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  67. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  68. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  69. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  70. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  71. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  72. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +10 -12
  73. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
  74. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  75. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  76. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +5 -5
  77. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  78. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  79. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  80. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  81. package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
  82. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  83. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  84. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  85. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  86. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  87. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  88. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +18 -24
  89. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js.map +1 -1
  90. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +15 -18
  91. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
  92. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  93. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  94. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  95. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  96. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  97. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +7 -6
  98. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js.map +1 -1
  99. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +29 -32
  100. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  101. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  102. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  103. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  104. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  105. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  106. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  107. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  108. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  109. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  110. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  111. package/esm/vs/platform/actions/common/menuService.js +2 -2
  112. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  113. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  114. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  115. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  116. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  117. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -2
  118. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
  119. package/esm/vs/platform/dnd/browser/dnd.js +1 -3
  120. package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
  121. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  122. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  123. package/esm/vs/platform/list/browser/listService.js +27 -27
  124. package/esm/vs/platform/markers/common/markerService.js +2 -2
  125. package/esm/vs/platform/markers/common/markers.js +6 -6
  126. package/esm/vs/platform/product/common/product.js +1 -2
  127. package/esm/vs/platform/product/common/product.js.map +1 -1
  128. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +33 -9
  129. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
  130. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  131. package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
  132. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  133. package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
  134. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  135. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  136. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  137. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  138. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  139. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  140. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  141. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  142. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  143. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  144. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  145. package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
  146. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  147. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  148. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  149. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  150. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  151. package/package.json +2 -2
  152. package/version.txt +1 -1
@@ -23,21 +23,20 @@ import { inUntrustedWorkspace, unicodeHighlightConfigKeys } from '../../../commo
23
23
  import { ModelDecorationOptions } from '../../../common/model/textModel.js';
24
24
  import { UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';
25
25
  import { IEditorWorkerService } from '../../../common/services/editorWorker.js';
26
- import { ILanguageService } from '../../../common/languages/language.js';
27
26
  import { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';
28
27
  import { MarkdownHover, renderMarkdownHovers } from '../../hover/browser/markdownHoverParticipant.js';
29
28
  import { BannerController } from './bannerController.js';
30
29
  import * as nls from '../../../../nls.js';
31
30
  import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
32
31
  import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
33
- import { IOpenerService } from '../../../../platform/opener/common/opener.js';
34
32
  import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
35
33
  import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
36
34
  import { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';
37
35
  import { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';
38
36
  import { safeIntl } from '../../../../base/common/date.js';
39
37
  import { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecoration.js';
40
- export const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize(1519, 'Icon shown with a warning message in the extensions editor.'));
38
+ import { IMarkdownRendererService } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';
39
+ export const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize(1520, 'Icon shown with a warning message in the extensions editor.'));
41
40
  let UnicodeHighlighter = class UnicodeHighlighter extends Disposable {
42
41
  static { this.ID = 'editor.contrib.unicodeHighlighter'; }
43
42
  constructor(_editor, _editorWorkerService, _workspaceTrustService, instantiationService) {
@@ -57,19 +56,19 @@ let UnicodeHighlighter = class UnicodeHighlighter extends Disposable {
57
56
  let data;
58
57
  if (state.nonBasicAsciiCharacterCount >= max) {
59
58
  data = {
60
- message: nls.localize(1520, 'This document contains many non-basic ASCII unicode characters'),
59
+ message: nls.localize(1521, 'This document contains many non-basic ASCII unicode characters'),
61
60
  command: new DisableHighlightingOfNonBasicAsciiCharactersAction(),
62
61
  };
63
62
  }
64
63
  else if (state.ambiguousCharacterCount >= max) {
65
64
  data = {
66
- message: nls.localize(1521, 'This document contains many ambiguous unicode characters'),
65
+ message: nls.localize(1522, 'This document contains many ambiguous unicode characters'),
67
66
  command: new DisableHighlightingOfAmbiguousCharactersAction(),
68
67
  };
69
68
  }
70
69
  else if (state.invisibleCharacterCount >= max) {
71
70
  data = {
72
- message: nls.localize(1522, 'This document contains many invisible unicode characters'),
71
+ message: nls.localize(1523, 'This document contains many invisible unicode characters'),
73
72
  command: new DisableHighlightingOfInvisibleCharactersAction(),
74
73
  };
75
74
  }
@@ -338,12 +337,11 @@ class ViewportUnicodeHighlighter extends Disposable {
338
337
  };
339
338
  }
340
339
  }
341
- const configureUnicodeHighlightOptionsStr = nls.localize(1523, 'Configure Unicode Highlight Options');
340
+ const configureUnicodeHighlightOptionsStr = nls.localize(1524, 'Configure Unicode Highlight Options');
342
341
  let UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipant {
343
- constructor(_editor, _languageService, _openerService) {
342
+ constructor(_editor, _markdownRendererService) {
344
343
  this._editor = _editor;
345
- this._languageService = _languageService;
346
- this._openerService = _openerService;
344
+ this._markdownRendererService = _markdownRendererService;
347
345
  this.hoverOrdinal = 5;
348
346
  }
349
347
  computeSync(anchor, lineDecorations) {
@@ -371,18 +369,18 @@ let UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipan
371
369
  switch (highlightInfo.reason.kind) {
372
370
  case 0 /* UnicodeHighlighterReasonKind.Ambiguous */: {
373
371
  if (isBasicASCII(highlightInfo.reason.confusableWith)) {
374
- reason = nls.localize(1524, '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)));
372
+ reason = nls.localize(1525, '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)));
375
373
  }
376
374
  else {
377
- reason = nls.localize(1525, 'The character {0} could be confused with the character {1}, which is more common in source code.', codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));
375
+ reason = nls.localize(1526, 'The character {0} could be confused with the character {1}, which is more common in source code.', codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));
378
376
  }
379
377
  break;
380
378
  }
381
379
  case 1 /* UnicodeHighlighterReasonKind.Invisible */:
382
- reason = nls.localize(1526, 'The character {0} is invisible.', codePointStr);
380
+ reason = nls.localize(1527, 'The character {0} is invisible.', codePointStr);
383
381
  break;
384
382
  case 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */:
385
- reason = nls.localize(1527, 'The character {0} is not a basic ASCII character.', codePointStr);
383
+ reason = nls.localize(1528, 'The character {0} is not a basic ASCII character.', codePointStr);
386
384
  break;
387
385
  }
388
386
  if (existedReason.has(reason)) {
@@ -395,7 +393,7 @@ let UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipan
395
393
  inComment: highlightInfo.inComment,
396
394
  inString: highlightInfo.inString,
397
395
  };
398
- const adjustSettings = nls.localize(1528, 'Adjust settings');
396
+ const adjustSettings = nls.localize(1529, 'Adjust settings');
399
397
  const uri = createCommandUri(ShowExcludeOptions.ID, adjustSettingsArgs);
400
398
  const markdown = new MarkdownString('', true)
401
399
  .appendMarkdown(reason)
@@ -406,12 +404,11 @@ let UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipan
406
404
  return result;
407
405
  }
408
406
  renderHoverParts(context, hoverParts) {
409
- return renderMarkdownHovers(context, hoverParts, this._editor, this._languageService, this._openerService);
407
+ return renderMarkdownHovers(context, hoverParts, this._editor, this._markdownRendererService);
410
408
  }
411
409
  };
412
410
  UnicodeHighlighterHoverParticipant = __decorate([
413
- __param(1, ILanguageService),
414
- __param(2, IOpenerService)
411
+ __param(1, IMarkdownRendererService)
415
412
  ], UnicodeHighlighterHoverParticipant);
416
413
  export { UnicodeHighlighterHoverParticipant };
417
414
  function codePointToHex(codePoint) {
@@ -465,10 +462,10 @@ export class DisableHighlightingInCommentsAction extends EditorAction {
465
462
  constructor() {
466
463
  super({
467
464
  id: DisableHighlightingOfAmbiguousCharactersAction.ID,
468
- label: nls.localize2(1537, "Disable highlighting of characters in comments"),
465
+ label: nls.localize2(1538, "Disable highlighting of characters in comments"),
469
466
  precondition: undefined
470
467
  });
471
- this.shortLabel = nls.localize(1529, 'Disable Highlight In Comments');
468
+ this.shortLabel = nls.localize(1530, 'Disable Highlight In Comments');
472
469
  }
473
470
  async run(accessor, editor, args) {
474
471
  const configurationService = accessor.get(IConfigurationService);
@@ -484,10 +481,10 @@ export class DisableHighlightingInStringsAction extends EditorAction {
484
481
  constructor() {
485
482
  super({
486
483
  id: DisableHighlightingOfAmbiguousCharactersAction.ID,
487
- label: nls.localize2(1538, "Disable highlighting of characters in strings"),
484
+ label: nls.localize2(1539, "Disable highlighting of characters in strings"),
488
485
  precondition: undefined
489
486
  });
490
- this.shortLabel = nls.localize(1530, 'Disable Highlight In Strings');
487
+ this.shortLabel = nls.localize(1531, 'Disable Highlight In Strings');
491
488
  }
492
489
  async run(accessor, editor, args) {
493
490
  const configurationService = accessor.get(IConfigurationService);
@@ -504,11 +501,11 @@ export class DisableHighlightingOfAmbiguousCharactersAction extends Action2 {
504
501
  constructor() {
505
502
  super({
506
503
  id: DisableHighlightingOfAmbiguousCharactersAction.ID,
507
- title: nls.localize2(1539, "Disable highlighting of ambiguous characters"),
504
+ title: nls.localize2(1540, "Disable highlighting of ambiguous characters"),
508
505
  precondition: undefined,
509
506
  f1: false,
510
507
  });
511
- this.shortLabel = nls.localize(1531, 'Disable Ambiguous Highlight');
508
+ this.shortLabel = nls.localize(1532, 'Disable Ambiguous Highlight');
512
509
  }
513
510
  async run(accessor, editor, args) {
514
511
  const configurationService = accessor.get(IConfigurationService);
@@ -525,11 +522,11 @@ export class DisableHighlightingOfInvisibleCharactersAction extends Action2 {
525
522
  constructor() {
526
523
  super({
527
524
  id: DisableHighlightingOfInvisibleCharactersAction.ID,
528
- title: nls.localize2(1540, "Disable highlighting of invisible characters"),
525
+ title: nls.localize2(1541, "Disable highlighting of invisible characters"),
529
526
  precondition: undefined,
530
527
  f1: false,
531
528
  });
532
- this.shortLabel = nls.localize(1532, 'Disable Invisible Highlight');
529
+ this.shortLabel = nls.localize(1533, 'Disable Invisible Highlight');
533
530
  }
534
531
  async run(accessor, editor, args) {
535
532
  const configurationService = accessor.get(IConfigurationService);
@@ -546,11 +543,11 @@ export class DisableHighlightingOfNonBasicAsciiCharactersAction extends Action2
546
543
  constructor() {
547
544
  super({
548
545
  id: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,
549
- title: nls.localize2(1541, "Disable highlighting of non basic ASCII characters"),
546
+ title: nls.localize2(1542, "Disable highlighting of non basic ASCII characters"),
550
547
  precondition: undefined,
551
548
  f1: false,
552
549
  });
553
- this.shortLabel = nls.localize(1533, 'Disable Non ASCII Highlight');
550
+ this.shortLabel = nls.localize(1534, 'Disable Non ASCII Highlight');
554
551
  }
555
552
  async run(accessor, editor, args) {
556
553
  const configurationService = accessor.get(IConfigurationService);
@@ -567,7 +564,7 @@ export class ShowExcludeOptions extends Action2 {
567
564
  constructor() {
568
565
  super({
569
566
  id: ShowExcludeOptions.ID,
570
- title: nls.localize2(1542, "Show Exclude Options"),
567
+ title: nls.localize2(1543, "Show Exclude Options"),
571
568
  precondition: undefined,
572
569
  f1: false,
573
570
  });
@@ -579,15 +576,15 @@ export class ShowExcludeOptions extends Action2 {
579
576
  const configurationService = accessor.get(IConfigurationService);
580
577
  function getExcludeCharFromBeingHighlightedLabel(codePoint) {
581
578
  if (InvisibleCharacters.isInvisibleCharacter(codePoint)) {
582
- return nls.localize(1534, 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));
579
+ return nls.localize(1535, 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));
583
580
  }
584
- return nls.localize(1535, 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} "${char}"`);
581
+ return nls.localize(1536, 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} "${char}"`);
585
582
  }
586
583
  const options = [];
587
584
  if (reason.kind === 0 /* UnicodeHighlighterReasonKind.Ambiguous */) {
588
585
  for (const locale of reason.notAmbiguousInLocales) {
589
586
  options.push({
590
- label: nls.localize(1536, "Allow unicode characters that are more common in the language \"{0}\".", locale),
587
+ label: nls.localize(1537, "Allow unicode characters that are more common in the language \"{0}\".", locale),
591
588
  run: async () => {
592
589
  excludeLocaleFromBeingHighlighted(configurationService, [locale]);
593
590
  },
@@ -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 { ILanguageService } from '../../../common/languages/language.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 { IOpenerService } from '../../../../platform/opener/common/opener.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';\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@ILanguageService private readonly _languageService: ILanguageService,\n\t\t@IOpenerService private readonly _openerService: IOpenerService,\n\t) {\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._languageService, this._openerService);\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 '../../../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"]}
@@ -85,11 +85,11 @@ let UnusualLineTerminatorsDetector = class UnusualLineTerminatorsDetector extend
85
85
  try {
86
86
  this._isPresentingDialog = true;
87
87
  result = await this._dialogService.confirm({
88
- title: nls.localize(1543, "Unusual Line Terminators"),
89
- message: nls.localize(1544, "Detected unusual line terminators"),
90
- detail: nls.localize(1545, "The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.", basename(model.uri)),
91
- primaryButton: nls.localize(1546, "&&Remove Unusual Line Terminators"),
92
- cancelButton: nls.localize(1547, "Ignore")
88
+ title: nls.localize(1544, "Unusual Line Terminators"),
89
+ message: nls.localize(1545, "Detected unusual line terminators"),
90
+ detail: nls.localize(1546, "The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.", basename(model.uri)),
91
+ primaryButton: nls.localize(1547, "&&Remove Unusual Line Terminators"),
92
+ cancelButton: nls.localize(1548, "Ignore")
93
93
  });
94
94
  }
95
95
  finally {
@@ -9,15 +9,15 @@ import { DocumentHighlightKind } from '../../../common/languages.js';
9
9
  import * as nls from '../../../../nls.js';
10
10
  import { activeContrastBorder, editorSelectionHighlight, minimapSelectionOccurrenceHighlight, overviewRulerSelectionHighlightForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';
11
11
  import { registerThemingParticipant, themeColorFromId } from '../../../../platform/theme/common/themeService.js';
12
- const wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize(1548, 'Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.'), true);
13
- registerColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize(1549, 'Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.'), true);
14
- registerColor('editor.wordHighlightTextBackground', wordHighlightBackground, nls.localize(1550, 'Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);
15
- const wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1551, 'Border color of a symbol during read-access, like reading a variable.'));
16
- registerColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1552, 'Border color of a symbol during write-access, like writing to a variable.'));
17
- registerColor('editor.wordHighlightTextBorder', wordHighlightBorder, nls.localize(1553, "Border color of a textual occurrence for a symbol."));
18
- const overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', '#A0A0A0CC', nls.localize(1554, 'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
19
- const overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', '#C0A0C0CC', nls.localize(1555, 'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
20
- const overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', overviewRulerSelectionHighlightForeground, nls.localize(1556, '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);
12
+ const wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize(1549, 'Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.'), true);
13
+ registerColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize(1550, 'Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.'), true);
14
+ registerColor('editor.wordHighlightTextBackground', wordHighlightBackground, nls.localize(1551, 'Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);
15
+ const wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1552, 'Border color of a symbol during read-access, like reading a variable.'));
16
+ registerColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1553, 'Border color of a symbol during write-access, like writing to a variable.'));
17
+ registerColor('editor.wordHighlightTextBorder', wordHighlightBorder, nls.localize(1554, "Border color of a textual occurrence for a symbol."));
18
+ const overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', '#A0A0A0CC', nls.localize(1555, 'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
19
+ const overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', '#C0A0C0CC', nls.localize(1556, 'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
20
+ const overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', overviewRulerSelectionHighlightForeground, nls.localize(1557, 'Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);
21
21
  const _WRITE_OPTIONS = ModelDecorationOptions.register({
22
22
  description: 'word-highlight-strong',
23
23
  stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
@@ -742,7 +742,7 @@ class NextWordHighlightAction extends WordHighlightNavigationAction {
742
742
  constructor() {
743
743
  super(true, {
744
744
  id: 'editor.action.wordHighlight.next',
745
- label: nls.localize2(1557, "Go to Next Symbol Highlight"),
745
+ label: nls.localize2(1558, "Go to Next Symbol Highlight"),
746
746
  precondition: ctxHasWordHighlights,
747
747
  kbOpts: {
748
748
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -756,7 +756,7 @@ class PrevWordHighlightAction extends WordHighlightNavigationAction {
756
756
  constructor() {
757
757
  super(false, {
758
758
  id: 'editor.action.wordHighlight.prev',
759
- label: nls.localize2(1558, "Go to Previous Symbol Highlight"),
759
+ label: nls.localize2(1559, "Go to Previous Symbol Highlight"),
760
760
  precondition: ctxHasWordHighlights,
761
761
  kbOpts: {
762
762
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -770,7 +770,7 @@ class TriggerWordHighlightAction extends EditorAction {
770
770
  constructor() {
771
771
  super({
772
772
  id: 'editor.action.wordHighlight.trigger',
773
- label: nls.localize2(1559, "Trigger Symbol Highlight"),
773
+ label: nls.localize2(1560, "Trigger Symbol Highlight"),
774
774
  precondition: undefined,
775
775
  kbOpts: {
776
776
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -395,7 +395,7 @@ export class DeleteInsideWord extends EditorAction {
395
395
  super({
396
396
  id: 'deleteInsideWord',
397
397
  precondition: EditorContextKeys.writable,
398
- label: nls.localize2(1560, "Delete Word"),
398
+ label: nls.localize2(1561, "Delete Word"),
399
399
  });
400
400
  }
401
401
  run(accessor, editor, args) {