@codingame/monaco-vscode-api 1.83.2 → 1.83.3

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 (216) hide show
  1. package/extensions.d.ts +3 -3
  2. package/extensions.js +31 -33
  3. package/l10n.d.ts +4 -0
  4. package/l10n.js +10 -0
  5. package/missing-services.js +4 -2
  6. package/monaco-editor-treemending.patch +11880 -682
  7. package/monaco-treemending.js +8 -2
  8. package/package.json +8 -1
  9. package/service-override/extensions.js +2 -2
  10. package/service-override/layout.js +2 -2
  11. package/tools/l10n.js +177 -0
  12. package/tools.js +22 -1
  13. package/vscode/src/vs/base/browser/ui/menu/menubar.js +1 -1
  14. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +2 -2
  15. package/vscode/src/vs/base/common/date.js +55 -55
  16. package/vscode/src/vs/base/common/jsonErrorMessages.js +10 -10
  17. package/vscode/src/vs/base/common/tfIdf.js +137 -0
  18. package/vscode/src/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +23 -0
  19. package/vscode/src/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +115 -0
  20. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +112 -0
  21. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +334 -0
  22. package/vscode/src/vs/platform/dialogs/common/dialogs.js +10 -14
  23. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +3 -0
  24. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +2 -2
  25. package/vscode/src/vs/platform/files/common/fileService.js +28 -37
  26. package/vscode/src/vs/platform/files/common/files.js +6 -6
  27. package/vscode/src/vs/platform/files/common/io.js +2 -2
  28. package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +3 -9
  29. package/vscode/src/vs/platform/quickinput/browser/commandsQuickAccess.js +300 -0
  30. package/vscode/src/vs/platform/quickinput/browser/helpQuickAccess.js +59 -0
  31. package/vscode/src/vs/platform/quickinput/browser/pickerQuickAccess.js +212 -0
  32. package/vscode/src/vs/platform/request/common/request.js +2 -2
  33. package/vscode/src/vs/platform/theme/common/tokenClassificationRegistry.js +42 -63
  34. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +13 -32
  35. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +2 -2
  36. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +3 -3
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +4 -5
  38. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +38 -50
  39. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +21 -53
  40. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +4 -4
  41. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +4 -5
  42. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +6 -2
  43. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +4 -2
  44. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +1 -1
  45. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +2 -12
  46. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +15 -9
  47. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +2 -6
  48. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +6 -28
  49. package/vscode/src/vs/workbench/api/browser/statusBarExtensionPoint.js +60 -0
  50. package/vscode/src/vs/workbench/api/common/extHostChat.js +3 -3
  51. package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +2 -6
  52. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +2 -2
  53. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +3 -11
  54. package/vscode/src/vs/workbench/api/common/extHostLogService.js +2 -2
  55. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +3 -3
  56. package/vscode/src/vs/workbench/api/common/extHostProgress.js +2 -6
  57. package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +3 -7
  58. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +2 -6
  59. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +2 -6
  60. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +2 -2
  61. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +2 -2
  62. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +2 -7
  63. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +9 -34
  64. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +898 -68
  65. package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +7 -7
  66. package/vscode/src/vs/workbench/browser/actions/windowActions.js +32 -38
  67. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +103 -13
  68. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +2 -2
  69. package/vscode/src/vs/workbench/browser/editor.js +3 -3
  70. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +12 -27
  71. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +12 -12
  72. package/vscode/src/vs/workbench/browser/parts/editor/binaryDiffEditor.js +2 -7
  73. package/vscode/src/vs/workbench/browser/parts/editor/binaryEditor.js +4 -7
  74. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbs.js +42 -90
  75. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +140 -272
  76. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +115 -148
  77. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +21 -33
  78. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +7 -19
  79. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +10 -26
  80. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +7 -17
  81. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +60 -81
  82. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +2 -2
  83. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +2 -2
  84. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +4 -11
  85. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +2 -2
  86. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +8 -8
  87. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +69 -34
  88. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +58 -34
  89. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +2 -2
  90. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -9
  91. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +6 -6
  92. package/vscode/src/vs/workbench/browser/parts/views/viewsService.js +7 -11
  93. package/vscode/src/vs/workbench/browser/quickaccess.js +7 -3
  94. package/vscode/src/vs/workbench/browser/workbench.contribution.js +186 -683
  95. package/vscode/src/vs/workbench/common/configuration.js +12 -15
  96. package/vscode/src/vs/workbench/common/contextkeys.js +272 -90
  97. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +2 -2
  98. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +2 -7
  99. package/vscode/src/vs/workbench/common/editor/textEditorModel.js +2 -6
  100. package/vscode/src/vs/workbench/common/editor.js +5 -5
  101. package/vscode/src/vs/workbench/common/theme.js +137 -527
  102. package/vscode/src/vs/workbench/common/views.js +4 -8
  103. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +15 -55
  104. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +3 -8
  105. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +22 -60
  106. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +9 -15
  107. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +18 -48
  108. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +2 -0
  109. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +5 -10
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +5 -13
  111. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +8 -27
  112. package/vscode/src/vs/workbench/contrib/codeActions/common/codeActionsExtensionPoint.js +5 -17
  113. package/vscode/src/vs/workbench/contrib/codeActions/common/documentationExtensionPoint.js +6 -15
  114. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +7 -20
  115. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
  116. package/vscode/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.js +63 -216
  117. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +4 -7
  118. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +5 -8
  119. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +8 -11
  120. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +5 -15
  121. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +3 -3
  122. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +5 -5
  123. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +3 -6
  124. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +3 -6
  125. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +10 -9
  126. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +6 -15
  127. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +5 -20
  128. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +3 -10
  129. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +4 -4
  130. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -20
  131. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +9 -3
  132. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +4 -13
  133. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +26 -77
  134. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +5 -17
  135. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +7 -12
  136. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +10 -29
  137. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +10 -10
  138. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +8 -8
  139. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +25 -21
  140. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +2 -2
  141. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.js +1 -4
  142. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -13
  143. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +56 -98
  144. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +96 -180
  146. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +25 -79
  147. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +4 -15
  148. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +4 -8
  149. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +56 -19
  150. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +76 -230
  151. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -5
  152. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +33 -103
  153. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +228 -99
  154. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  155. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +5 -9
  156. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +5 -5
  157. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +15 -35
  158. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +5 -8
  159. package/vscode/src/vs/workbench/contrib/files/common/files.js +27 -48
  160. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -6
  161. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  162. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +5 -8
  163. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +112 -52
  164. package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +1 -1
  165. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +2 -2
  166. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +30 -96
  167. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +3 -3
  168. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +42 -0
  169. package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +23 -29
  170. package/vscode/src/vs/workbench/contrib/output/browser/outputView.js +3 -3
  171. package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +13 -16
  172. package/vscode/src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +15 -34
  173. package/vscode/src/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +12 -17
  174. package/vscode/src/vs/workbench/contrib/scm/browser/dirtyDiffSwitcher.js +2 -2
  175. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +26 -75
  176. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +4 -19
  177. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +4 -4
  178. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +10 -41
  179. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +5 -14
  180. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +26 -13
  181. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +8 -6
  182. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +5 -17
  183. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +7 -28
  184. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +21 -78
  185. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +21 -53
  186. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  187. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +2 -5
  188. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +113 -348
  189. package/vscode/src/vs/workbench/services/assignment/common/assignmentService.js +2 -5
  190. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +31 -1
  191. package/vscode/src/vs/workbench/services/configuration/common/jsonEditingService.js +1 -4
  192. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  193. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +2 -2
  194. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +2 -5
  195. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +4 -4
  196. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +10 -45
  197. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +1 -1
  198. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +80 -296
  199. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +6 -21
  200. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +3 -6
  201. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +24 -81
  202. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +2 -2
  203. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +11 -17
  204. package/vscode/src/vs/workbench/services/language/common/languageService.js +23 -98
  205. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +9 -11
  206. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -5
  207. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +11 -23
  208. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +2 -2
  209. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.js +2 -7
  210. package/vscode/src/vs/workbench/services/textfile/common/textFileSaveParticipant.js +2 -2
  211. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +16 -53
  212. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +50 -1
  213. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +25 -99
  214. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +6 -3
  215. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +15 -3
  216. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopySaveParticipant.js +2 -2
@@ -23,7 +23,11 @@ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
23
23
  const MISMATCH_LOCAL_PORT_COOLDOWN = 10 * 1000;
24
24
  const TUNNELS_TO_RESTORE = 'remote.tunnels.toRestore';
25
25
  const ACTIVATION_EVENT = 'onTunnel';
26
- const forwardedPortsViewEnabled = ( new RawContextKey('forwardedPortsViewEnabled', false, ( nls.localize('tunnel.forwardedPortsViewEnabled', "Whether the Ports view is enabled."))));
26
+ const forwardedPortsViewEnabled = ( new RawContextKey(
27
+ 'forwardedPortsViewEnabled',
28
+ false,
29
+ nls.localizeWithPath('vs/workbench/services/remote/common/tunnelModel', 'tunnel.forwardedPortsViewEnabled', "Whether the Ports view is enabled.")
30
+ ));
27
31
  function parseAddress(address) {
28
32
  const matches = address.match(/^([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*:)?([0-9]+)$/);
29
33
  if (!matches) {
@@ -45,11 +49,11 @@ var TunnelSource;
45
49
  })(TunnelSource || (TunnelSource = {})));
46
50
  const UserTunnelSource = {
47
51
  source: TunnelSource.User,
48
- description: ( nls.localize('tunnel.source.user', "User Forwarded"))
52
+ description: nls.localizeWithPath('vs/workbench/services/remote/common/tunnelModel', 'tunnel.source.user', "User Forwarded")
49
53
  };
50
54
  const AutoTunnelSource = {
51
55
  source: TunnelSource.Auto,
52
- description: ( nls.localize('tunnel.source.auto', "Auto Forwarded"))
56
+ description: nls.localizeWithPath('vs/workbench/services/remote/common/tunnelModel', 'tunnel.source.auto', "Auto Forwarded")
53
57
  };
54
58
  function mapHasAddress(map, host, port) {
55
59
  const initialAddress = map.get(makeAddress(host, port));
@@ -510,13 +514,7 @@ let TunnelModel = class TunnelModel extends Disposable {
510
514
  return;
511
515
  }
512
516
  this.mismatchCooldown = newCooldown;
513
- const mismatchString = ( nls.localize(
514
- 'remote.localPortMismatch.single',
515
- "Local port {0} could not be used for forwarding to remote port {1}.\n\nThis usually happens when there is already another process using local port {0}.\n\nPort number {2} has been used instead.",
516
- expectedLocal,
517
- tunnel.tunnelRemotePort,
518
- tunnel.tunnelLocalPort
519
- ));
517
+ const mismatchString = nls.localizeWithPath('vs/workbench/services/remote/common/tunnelModel', 'remote.localPortMismatch.single', "Local port {0} could not be used for forwarding to remote port {1}.\n\nThis usually happens when there is already another process using local port {0}.\n\nPort number {2} has been used instead.", expectedLocal, tunnel.tunnelRemotePort, tunnel.tunnelLocalPort);
520
518
  return this.dialogService.info(mismatchString);
521
519
  }
522
520
  async forward(tunnelProperties, attributes) {
@@ -678,7 +676,7 @@ let TunnelModel = class TunnelModel extends Disposable {
678
676
  privacy: TunnelPrivacyId.ConstantPrivate,
679
677
  source: {
680
678
  source: TunnelSource.Extension,
681
- description: ( nls.localize('tunnel.staticallyForwarded', "Statically Forwarded"))
679
+ description: nls.localizeWithPath('vs/workbench/services/remote/common/tunnelModel', 'tunnel.staticallyForwarded', "Statically Forwarded")
682
680
  }
683
681
  });
684
682
  this.tunnelService.setEnvironmentTunnel(tunnel.remoteAddress.host, tunnel.remoteAddress.port, localAddress, TunnelPrivacyId.ConstantPrivate, TunnelProtocol.Http);
@@ -327,11 +327,7 @@ let QueryBuilder = class QueryBuilder {
327
327
  else {
328
328
  const probableWorkspaceFolderNameMatch = searchPath.match(/\.[\/\\](.+)[\/\\]?/);
329
329
  const probableWorkspaceFolderName = probableWorkspaceFolderNameMatch ? probableWorkspaceFolderNameMatch[1] : searchPath;
330
- const searchPathNotFoundError = ( nls.localize(
331
- 'search.noWorkspaceWithName',
332
- "Workspace folder does not exist: {0}",
333
- probableWorkspaceFolderName
334
- ));
330
+ const searchPathNotFoundError = nls.localizeWithPath('vs/workbench/services/search/common/queryBuilder', 'search.noWorkspaceWithName', "Workspace folder does not exist: {0}", probableWorkspaceFolderName);
335
331
  throw new Error(searchPathNotFoundError);
336
332
  }
337
333
  }
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localize } from 'monaco-editor/esm/vs/nls.js';
2
+ import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
3
  import { TextFileOperationError, toBufferOrReadable, stringToSnapshot } from '../common/textfiles.js';
4
4
  import { SaveSourceRegistry } from '../../../common/editor.js';
5
5
  import { ILifecycleService } from '../../lifecycle/common/lifecycle.js';
@@ -41,8 +41,8 @@ import { IDialogService, IFileDialogService } from '../../../../platform/dialogs
41
41
  var AbstractTextFileService_1;
42
42
  let AbstractTextFileService = class AbstractTextFileService extends Disposable {
43
43
  static { AbstractTextFileService_1 = this; }
44
- static { this.TEXTFILE_SAVE_CREATE_SOURCE = SaveSourceRegistry.registerSource('textFileCreate.source', ( localize('textFileCreate.source', "File Created"))); }
45
- static { this.TEXTFILE_SAVE_REPLACE_SOURCE = SaveSourceRegistry.registerSource('textFileOverwrite.source', ( localize('textFileOverwrite.source', "File Replaced"))); }
44
+ static { this.TEXTFILE_SAVE_CREATE_SOURCE = SaveSourceRegistry.registerSource('textFileCreate.source', localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'textFileCreate.source', "File Created")); }
45
+ static { this.TEXTFILE_SAVE_REPLACE_SOURCE = SaveSourceRegistry.registerSource('textFileOverwrite.source', localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'textFileOverwrite.source', "File Replaced")); }
46
46
  constructor(fileService, untitledTextEditorService, lifecycleService, instantiationService, modelService, environmentService, dialogService, fileDialogService, textResourceConfigurationService, filesConfigurationService, codeEditorService, pathService, workingCopyFileService, uriIdentityService, languageService, logService, elevatedFileService, decorationsService) {
47
47
  super();
48
48
  this.fileService = fileService;
@@ -72,7 +72,7 @@ let AbstractTextFileService = class AbstractTextFileService extends Disposable {
72
72
  constructor(files) {
73
73
  super();
74
74
  this.files = files;
75
- this.label = ( localize('textFileModelDecorations', "Text File Model Decorations"));
75
+ this.label = localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'textFileModelDecorations', "Text File Model Decorations");
76
76
  this._onDidChange = this._register(( new Emitter()));
77
77
  this.onDidChange = this._onDidChange.event;
78
78
  this.registerListeners();
@@ -99,20 +99,20 @@ let AbstractTextFileService = class AbstractTextFileService extends Disposable {
99
99
  color: listErrorForeground,
100
100
  letter: Codicon.lockSmall,
101
101
  strikethrough: true,
102
- tooltip: ( localize('readonlyAndDeleted', "Deleted, Read-only")),
102
+ tooltip: localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'readonlyAndDeleted', "Deleted, Read-only"),
103
103
  };
104
104
  }
105
105
  else if (isReadonly) {
106
106
  return {
107
107
  letter: Codicon.lockSmall,
108
- tooltip: ( localize('readonly', "Read-only")),
108
+ tooltip: localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'readonly', "Read-only"),
109
109
  };
110
110
  }
111
111
  else if (isOrphaned) {
112
112
  return {
113
113
  color: listErrorForeground,
114
114
  strikethrough: true,
115
- tooltip: ( localize('deleted', "Deleted")),
115
+ tooltip: localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'deleted', "Deleted"),
116
116
  };
117
117
  }
118
118
  return undefined;
@@ -165,7 +165,7 @@ let AbstractTextFileService = class AbstractTextFileService extends Disposable {
165
165
  catch (error) {
166
166
  cts.dispose(true);
167
167
  if (error.decodeStreamErrorKind === 1 ) {
168
- throw new TextFileOperationError(localize('fileBinaryError', "File seems to be binary and cannot be opened as text"), 0 , options);
168
+ throw new TextFileOperationError(localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'fileBinaryError', "File seems to be binary and cannot be opened as text"), 0 , options);
169
169
  }
170
170
  else {
171
171
  throw error;
@@ -364,21 +364,9 @@ let AbstractTextFileService = class AbstractTextFileService extends Disposable {
364
364
  async confirmOverwrite(resource) {
365
365
  const { confirmed } = await this.dialogService.confirm({
366
366
  type: 'warning',
367
- message: ( localize(
368
- 'confirmOverwrite',
369
- "'{0}' already exists. Do you want to replace it?",
370
- basename(resource)
371
- )),
372
- detail: ( localize(
373
- 'irreversible',
374
- "A file or folder with the name '{0}' already exists in the folder '{1}'. Replacing it will overwrite its current contents.",
375
- basename(resource),
376
- basename(dirname(resource))
377
- )),
378
- primaryButton: ( localize(
379
- { key: 'replaceButtonLabel', comment: ['&& denotes a mnemonic'] },
380
- "&&Replace"
381
- )),
367
+ message: localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'confirmOverwrite', "'{0}' already exists. Do you want to replace it?", basename(resource)),
368
+ detail: localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'irreversible', "A file or folder with the name '{0}' already exists in the folder '{1}'. Replacing it will overwrite its current contents.", basename(resource), basename(dirname(resource))),
369
+ primaryButton: localizeWithPath('vs/workbench/services/textfile/browser/textFileService', { key: 'replaceButtonLabel', comment: ['&& denotes a mnemonic'] }, "&&Replace"),
382
370
  });
383
371
  return confirmed;
384
372
  }
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localize } from 'monaco-editor/esm/vs/nls.js';
2
+ import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
3
  import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
4
4
  import { mark } from 'monaco-editor/esm/vs/base/common/performance.js';
5
5
  import { assertIsDefined } from 'monaco-editor/esm/vs/base/common/types.js';
@@ -29,7 +29,7 @@ import { IExtensionService } from '../../extensions/common/extensions.js';
29
29
  var TextFileEditorModel_1;
30
30
  let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel {
31
31
  static { TextFileEditorModel_1 = this; }
32
- static { this.TEXTFILE_SAVE_ENCODING_SOURCE = SaveSourceRegistry.registerSource('textFileEncoding.source', ( localize('textFileCreate.source', "File Encoding Changed"))); }
32
+ static { this.TEXTFILE_SAVE_ENCODING_SOURCE = SaveSourceRegistry.registerSource('textFileEncoding.source', localizeWithPath('vs/workbench/services/textfile/common/textFileEditorModel', 'textFileCreate.source', "File Encoding Changed")); }
33
33
  static { this.UNDO_REDO_SAVE_PARTICIPANTS_AUTO_SAVE_THROTTLE_THRESHOLD = 500; }
34
34
  constructor(resource, preferredEncoding,
35
35
  preferredLanguageId, languageService, modelService, fileService, textFileService, workingCopyBackupService, logService, workingCopyService, filesConfigurationService, labelService, languageDetectionService, accessibilityService, pathService, extensionService) {
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localize } from 'monaco-editor/esm/vs/nls.js';
2
+ import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
3
  import { toErrorMessage } from 'monaco-editor/esm/vs/base/common/errorMessage.js';
4
4
  import { Emitter, Event } from 'monaco-editor/esm/vs/base/common/event.js';
5
5
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
@@ -57,12 +57,7 @@ let TextFileEditorModelManager = class TextFileEditorModelManager extends Dispos
57
57
  const notificationService = this.notificationService;
58
58
  return {
59
59
  onSaveError(error, model) {
60
- notificationService.error(( localize(
61
- { key: 'genericSaveError', comment: ['{0} is the resource that failed to save and {1} the error message'] },
62
- "Failed to save '{0}': {1}",
63
- model.name,
64
- toErrorMessage(error, false)
65
- )));
60
+ notificationService.error(localizeWithPath('vs/workbench/services/textfile/common/textFileEditorModelManager', { key: 'genericSaveError', comment: ['{0} is the resource that failed to save and {1} the error message'] }, "Failed to save '{0}': {1}", model.name, toErrorMessage(error, false)));
66
61
  }
67
62
  };
68
63
  })();
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localize } from 'monaco-editor/esm/vs/nls.js';
2
+ import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
3
  import { raceCancellation } from 'monaco-editor/esm/vs/base/common/async.js';
4
4
  import { CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
5
5
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
@@ -20,7 +20,7 @@ let TextFileSaveParticipant = class TextFileSaveParticipant extends Disposable {
20
20
  participate(model, context, token) {
21
21
  const cts = ( new CancellationTokenSource(token));
22
22
  return this.progressService.withProgress({
23
- title: ( localize('saveParticipants', "Saving '{0}'", model.name)),
23
+ title: localizeWithPath('vs/workbench/services/textfile/common/textFileSaveParticipant', 'saveParticipants', "Saving '{0}'", model.name),
24
24
  location: 15 ,
25
25
  cancellable: true,
26
26
  delay: model.isDirty() ? 3000 : 5000
@@ -9,32 +9,26 @@ const colorIdPattern = '^\\w+[.\\w+]*$';
9
9
  const configurationExtPoint = ( ExtensionsRegistry.registerExtensionPoint({
10
10
  extensionPoint: 'colors',
11
11
  jsonSchema: {
12
- description: ( nls.localize('contributes.color', 'Contributes extension defined themable colors')),
12
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.color', 'Contributes extension defined themable colors'),
13
13
  type: 'array',
14
14
  items: {
15
15
  type: 'object',
16
16
  properties: {
17
17
  id: {
18
18
  type: 'string',
19
- description: ( nls.localize('contributes.color.id', 'The identifier of the themable color')),
19
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.color.id', 'The identifier of the themable color'),
20
20
  pattern: colorIdPattern,
21
- patternErrorMessage: ( nls.localize(
22
- 'contributes.color.id.format',
23
- 'Identifiers must only contain letters, digits and dots and can not start with a dot'
24
- )),
21
+ patternErrorMessage: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.color.id.format', 'Identifiers must only contain letters, digits and dots and can not start with a dot'),
25
22
  },
26
23
  description: {
27
24
  type: 'string',
28
- description: ( nls.localize('contributes.color.description', 'The description of the themable color')),
25
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.color.description', 'The description of the themable color'),
29
26
  },
30
27
  defaults: {
31
28
  type: 'object',
32
29
  properties: {
33
30
  light: {
34
- description: ( nls.localize(
35
- 'contributes.defaults.light',
36
- 'The default color for light themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default.'
37
- )),
31
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.defaults.light', 'The default color for light themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default.'),
38
32
  type: 'string',
39
33
  anyOf: [
40
34
  colorReferenceSchema,
@@ -42,10 +36,7 @@ const configurationExtPoint = ( ExtensionsRegistry.registerExtensionPoint({
42
36
  ]
43
37
  },
44
38
  dark: {
45
- description: ( nls.localize(
46
- 'contributes.defaults.dark',
47
- 'The default color for dark themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default.'
48
- )),
39
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.defaults.dark', 'The default color for dark themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default.'),
49
40
  type: 'string',
50
41
  anyOf: [
51
42
  colorReferenceSchema,
@@ -53,10 +44,7 @@ const configurationExtPoint = ( ExtensionsRegistry.registerExtensionPoint({
53
44
  ]
54
45
  },
55
46
  highContrast: {
56
- description: ( nls.localize(
57
- 'contributes.defaults.highContrast',
58
- 'The default color for high contrast dark themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default. If not provided, the `dark` color is used as default for high contrast dark themes.'
59
- )),
47
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.defaults.highContrast', 'The default color for high contrast dark themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default. If not provided, the `dark` color is used as default for high contrast dark themes.'),
60
48
  type: 'string',
61
49
  anyOf: [
62
50
  colorReferenceSchema,
@@ -64,10 +52,7 @@ const configurationExtPoint = ( ExtensionsRegistry.registerExtensionPoint({
64
52
  ]
65
53
  },
66
54
  highContrastLight: {
67
- description: ( nls.localize(
68
- 'contributes.defaults.highContrastLight',
69
- 'The default color for high contrast light themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default. If not provided, the `light` color is used as default for high contrast light themes.'
70
- )),
55
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'contributes.defaults.highContrastLight', 'The default color for high contrast light themes. Either a color value in hex (#RRGGBB[AA]) or the identifier of a themable color which provides the default. If not provided, the `light` color is used as default for high contrast light themes.'),
71
56
  type: 'string',
72
57
  anyOf: [
73
58
  colorReferenceSchema,
@@ -88,7 +73,7 @@ class ColorExtensionPoint {
88
73
  const extensionValue = extension.value;
89
74
  const collector = extension.collector;
90
75
  if (!extensionValue || !Array.isArray(extensionValue)) {
91
- collector.error(( nls.localize('invalid.colorConfiguration', "'configuration.colors' must be a array")));
76
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.colorConfiguration', "'configuration.colors' must be a array"));
92
77
  return;
93
78
  }
94
79
  const parseColorValue = (s, name) => {
@@ -100,55 +85,33 @@ class ColorExtensionPoint {
100
85
  return s;
101
86
  }
102
87
  }
103
- collector.error(( nls.localize(
104
- 'invalid.default.colorType',
105
- "{0} must be either a color value in hex (#RRGGBB[AA] or #RGB[A]) or the identifier of a themable color which provides the default.",
106
- name
107
- )));
88
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.default.colorType', "{0} must be either a color value in hex (#RRGGBB[AA] or #RGB[A]) or the identifier of a themable color which provides the default.", name));
108
89
  return Color.red;
109
90
  };
110
91
  for (const colorContribution of extensionValue) {
111
92
  if (typeof colorContribution.id !== 'string' || colorContribution.id.length === 0) {
112
- collector.error(( nls.localize(
113
- 'invalid.id',
114
- "'configuration.colors.id' must be defined and can not be empty"
115
- )));
93
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.id', "'configuration.colors.id' must be defined and can not be empty"));
116
94
  return;
117
95
  }
118
96
  if (!colorContribution.id.match(colorIdPattern)) {
119
- collector.error(( nls.localize(
120
- 'invalid.id.format',
121
- "'configuration.colors.id' must only contain letters, digits and dots and can not start with a dot"
122
- )));
97
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.id.format', "'configuration.colors.id' must only contain letters, digits and dots and can not start with a dot"));
123
98
  return;
124
99
  }
125
100
  if (typeof colorContribution.description !== 'string' || colorContribution.id.length === 0) {
126
- collector.error(( nls.localize(
127
- 'invalid.description',
128
- "'configuration.colors.description' must be defined and can not be empty"
129
- )));
101
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.description', "'configuration.colors.description' must be defined and can not be empty"));
130
102
  return;
131
103
  }
132
104
  const defaults = colorContribution.defaults;
133
105
  if (!defaults || typeof defaults !== 'object' || typeof defaults.light !== 'string' || typeof defaults.dark !== 'string') {
134
- collector.error(( nls.localize(
135
- 'invalid.defaults',
136
- "'configuration.colors.defaults' must be defined and must contain 'light' and 'dark'"
137
- )));
106
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.defaults', "'configuration.colors.defaults' must be defined and must contain 'light' and 'dark'"));
138
107
  return;
139
108
  }
140
109
  if (defaults.highContrast && typeof defaults.highContrast !== 'string') {
141
- collector.error(( nls.localize(
142
- 'invalid.defaults.highContrast',
143
- "If defined, 'configuration.colors.defaults.highContrast' must be a string."
144
- )));
110
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.defaults.highContrast', "If defined, 'configuration.colors.defaults.highContrast' must be a string."));
145
111
  return;
146
112
  }
147
113
  if (defaults.highContrastLight && typeof defaults.highContrastLight !== 'string') {
148
- collector.error(( nls.localize(
149
- 'invalid.defaults.highContrastLight',
150
- "If defined, 'configuration.colors.defaults.highContrastLight' must be a string."
151
- )));
114
+ collector.error(nls.localizeWithPath('vs/workbench/services/themes/common/colorExtensionPoint', 'invalid.defaults.highContrastLight', "If defined, 'configuration.colors.defaults.highContrastLight' must be a string."));
152
115
  return;
153
116
  }
154
117
  colorRegistry.registerColor(colorContribution.id, {
@@ -1,4 +1,53 @@
1
+ import * as nls from 'monaco-editor/esm/vs/nls.js';
2
+ import { ExtensionsRegistry } from '../../extensions/common/extensionsRegistry.js';
1
3
  import { Extensions } from 'monaco-editor/esm/vs/platform/theme/common/iconRegistry.js';
2
4
  import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
5
+ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
3
6
  const iconRegistry = ( Registry.as(Extensions.IconContribution));
4
- iconRegistry.getIconReferenceSchema();
7
+ const iconReferenceSchema = iconRegistry.getIconReferenceSchema();
8
+ const iconIdPattern = `^${ThemeIcon.iconNameSegment}(-${ThemeIcon.iconNameSegment})+$`;
9
+ ( ExtensionsRegistry.registerExtensionPoint({
10
+ extensionPoint: 'icons',
11
+ jsonSchema: {
12
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icons', 'Contributes extension defined themable icons'),
13
+ type: 'object',
14
+ propertyNames: {
15
+ pattern: iconIdPattern,
16
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icon.id', 'The identifier of the themable icon'),
17
+ patternErrorMessage: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icon.id.format', 'Identifiers can only contain letters, digits and minuses and need to consist of at least two segments in the form `component-iconname`.'),
18
+ },
19
+ additionalProperties: {
20
+ type: 'object',
21
+ properties: {
22
+ description: {
23
+ type: 'string',
24
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icon.description', 'The description of the themable icon'),
25
+ },
26
+ default: {
27
+ anyOf: [
28
+ iconReferenceSchema,
29
+ {
30
+ type: 'object',
31
+ properties: {
32
+ fontPath: {
33
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icon.default.fontPath', 'The path of the icon font that defines the icon.'),
34
+ type: 'string'
35
+ },
36
+ fontCharacter: {
37
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icon.default.fontCharacter', 'The character for the icon in the icon font.'),
38
+ type: 'string'
39
+ }
40
+ },
41
+ required: ['fontPath', 'fontCharacter'],
42
+ defaultSnippets: [{ body: { fontPath: '${1:myiconfont.woff}', fontCharacter: '${2:\\\\E001}' } }]
43
+ }
44
+ ],
45
+ description: nls.localizeWithPath('vs/workbench/services/themes/common/iconExtensionPoint', 'contributes.icon.default', 'The default of the icon. Either a reference to an extisting ThemeIcon or an icon in an icon font.'),
46
+ }
47
+ },
48
+ required: ['description', 'default'],
49
+ defaultSnippets: [{ body: { description: '${1:my icon}', default: { fontPath: '${2:myiconfont.woff}', fontCharacter: '${3:\\\\E001}' } } }]
50
+ },
51
+ defaultSnippets: [{ body: { '${1:my-icon-id}': { description: '${2:my icon}', default: { fontPath: '${3:myiconfont.woff}', fontCharacter: '${4:\\\\E001}' } } } }]
52
+ }
53
+ }));