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

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 (251) hide show
  1. package/esm/nls.messages.de.js +1 -1
  2. package/esm/nls.messages.es.js +1 -1
  3. package/esm/nls.messages.fr.js +1 -1
  4. package/esm/nls.messages.it.js +1 -1
  5. package/esm/nls.messages.ja.js +1 -1
  6. package/esm/nls.messages.ko.js +1 -1
  7. package/esm/nls.messages.ru.js +1 -1
  8. package/esm/nls.messages.zh-cn.js +1 -1
  9. package/esm/nls.messages.zh-tw.js +1 -1
  10. package/esm/vs/base/browser/canIUse.js +1 -0
  11. package/esm/vs/base/browser/canIUse.js.map +1 -1
  12. package/esm/vs/base/browser/dom.js +9 -0
  13. package/esm/vs/base/browser/dom.js.map +1 -1
  14. package/esm/vs/base/browser/fastDomNode.js.map +1 -1
  15. package/esm/vs/base/browser/mouseEvent.js +3 -0
  16. package/esm/vs/base/browser/mouseEvent.js.map +1 -1
  17. package/esm/vs/base/browser/trustedTypes.js +2 -0
  18. package/esm/vs/base/browser/trustedTypes.js.map +1 -1
  19. package/esm/vs/base/browser/ui/list/listWidget.js +5 -5
  20. package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
  21. package/esm/vs/base/browser/ui/sash/sash.css +1 -1
  22. package/esm/vs/base/browser/ui/sash/sash.js +4 -0
  23. package/esm/vs/base/browser/ui/sash/sash.js.map +1 -1
  24. package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +1 -1
  25. package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
  26. package/esm/vs/base/browser/ui/table/table.css +2 -2
  27. package/esm/vs/base/browser/ui/tree/abstractTree.js +7 -3
  28. package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
  29. package/esm/vs/base/browser/ui/tree/asyncDataTree.js +4 -0
  30. package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
  31. package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -0
  32. package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
  33. package/esm/vs/base/browser/ui/tree/media/tree.css +2 -2
  34. package/esm/vs/base/browser/webWorkerFactory.js +3 -0
  35. package/esm/vs/base/browser/webWorkerFactory.js.map +1 -1
  36. package/esm/vs/base/common/buffer.js.map +1 -1
  37. package/esm/vs/base/common/decorators.js +1 -0
  38. package/esm/vs/base/common/decorators.js.map +1 -1
  39. package/esm/vs/base/common/errors.js +1 -0
  40. package/esm/vs/base/common/errors.js.map +1 -1
  41. package/esm/vs/base/common/glob.js +1 -1
  42. package/esm/vs/base/common/glob.js.map +1 -1
  43. package/esm/vs/base/common/hash.js.map +1 -1
  44. package/esm/vs/base/common/hotReload.js +2 -0
  45. package/esm/vs/base/common/hotReload.js.map +1 -1
  46. package/esm/vs/base/common/hotReloadHelpers.js +1 -0
  47. package/esm/vs/base/common/hotReloadHelpers.js.map +1 -1
  48. package/esm/vs/base/common/lifecycle.js +19 -0
  49. package/esm/vs/base/common/lifecycle.js.map +1 -1
  50. package/esm/vs/base/common/map.js.map +1 -1
  51. package/esm/vs/base/common/marshalling.js +4 -0
  52. package/esm/vs/base/common/marshalling.js.map +1 -1
  53. package/esm/vs/base/common/network.js +1 -0
  54. package/esm/vs/base/common/network.js.map +1 -1
  55. package/esm/vs/base/common/objects.js +1 -0
  56. package/esm/vs/base/common/objects.js.map +1 -1
  57. package/esm/vs/base/common/observableInternal/changeTracker.js +4 -0
  58. package/esm/vs/base/common/observableInternal/changeTracker.js.map +1 -1
  59. package/esm/vs/base/common/observableInternal/debugLocation.js +1 -0
  60. package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
  61. package/esm/vs/base/common/observableInternal/debugName.js +1 -0
  62. package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
  63. package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js +1 -0
  64. package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js.map +1 -1
  65. package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js +1 -0
  66. package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js.map +1 -1
  67. package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js +1 -0
  68. package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
  69. package/esm/vs/base/common/observableInternal/observables/derived.js +7 -1
  70. package/esm/vs/base/common/observableInternal/observables/derived.js.map +1 -1
  71. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +2 -0
  72. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
  73. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -0
  74. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  75. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +1 -0
  76. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  77. package/esm/vs/base/common/process.js +1 -0
  78. package/esm/vs/base/common/process.js.map +1 -1
  79. package/esm/vs/base/common/product.js.map +1 -1
  80. package/esm/vs/base/common/types.js +2 -0
  81. package/esm/vs/base/common/types.js.map +1 -1
  82. package/esm/vs/base/common/worker/webWorker.js +26 -14
  83. package/esm/vs/base/common/worker/webWorker.js.map +1 -1
  84. package/esm/vs/base/parts/sandbox/common/sandboxTypes.js +2 -0
  85. package/esm/vs/base/parts/sandbox/common/sandboxTypes.js.map +1 -0
  86. package/esm/vs/editor/browser/config/editorConfiguration.js +3 -2
  87. package/esm/vs/editor/browser/config/editorConfiguration.js.map +1 -1
  88. package/esm/vs/editor/browser/config/migrateOptions.js +1 -1
  89. package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
  90. package/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js.map +1 -1
  91. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -0
  92. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js.map +1 -1
  93. package/esm/vs/editor/browser/controller/mouseHandler.js +2 -1
  94. package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
  95. package/esm/vs/editor/browser/controller/mouseTarget.js +7 -0
  96. package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
  97. package/esm/vs/editor/browser/controller/pointerHandler.js.map +1 -1
  98. package/esm/vs/editor/browser/coreCommands.js.map +1 -1
  99. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  100. package/esm/vs/editor/browser/editorDom.js.map +1 -1
  101. package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
  102. package/esm/vs/editor/browser/gpu/gpuUtils.js +1 -0
  103. package/esm/vs/editor/browser/gpu/gpuUtils.js.map +1 -1
  104. package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -0
  105. package/esm/vs/editor/browser/gpu/viewGpuContext.js.map +1 -1
  106. package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
  107. package/esm/vs/editor/browser/services/bulkEditService.js.map +1 -1
  108. package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
  109. package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
  110. package/esm/vs/editor/browser/services/hoverService/hover.css +2 -0
  111. package/esm/vs/editor/browser/services/hoverService/hoverService.js.map +1 -1
  112. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +1 -1
  113. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
  114. package/esm/vs/editor/browser/services/inlineCompletionsService.js +8 -8
  115. package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
  116. package/esm/vs/editor/browser/services/openerService.js.map +1 -1
  117. package/esm/vs/editor/browser/view/viewLayer.js +1 -1
  118. package/esm/vs/editor/browser/view/viewLayer.js.map +1 -1
  119. package/esm/vs/editor/browser/view.js.map +1 -1
  120. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -0
  121. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
  122. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +1 -0
  123. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js.map +1 -1
  124. package/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js.map +1 -1
  125. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +4 -1
  126. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  127. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -0
  128. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js.map +1 -1
  129. package/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js.map +1 -1
  130. package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
  131. package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js.map +1 -1
  132. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +1 -0
  133. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
  134. package/esm/vs/editor/browser/widget/diffEditor/utils.js +2 -0
  135. package/esm/vs/editor/browser/widget/diffEditor/utils.js.map +1 -1
  136. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -0
  137. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
  138. package/esm/vs/editor/common/config/editorOptions.js +122 -68
  139. package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
  140. package/esm/vs/editor/common/config/fontInfo.js +32 -16
  141. package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
  142. package/esm/vs/editor/common/config/fontInfoFromSettings.js +16 -0
  143. package/esm/vs/editor/common/config/fontInfoFromSettings.js.map +1 -0
  144. package/esm/vs/editor/common/core/edits/edit.js +1 -0
  145. package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
  146. package/esm/vs/editor/common/core/edits/stringEdit.js +2 -0
  147. package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
  148. package/esm/vs/editor/common/core/position.js +1 -1
  149. package/esm/vs/editor/common/core/position.js.map +1 -1
  150. package/esm/vs/editor/common/core/range.js +1 -1
  151. package/esm/vs/editor/common/core/range.js.map +1 -1
  152. package/esm/vs/editor/common/core/selection.js +1 -1
  153. package/esm/vs/editor/common/core/selection.js.map +1 -1
  154. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  155. package/esm/vs/editor/common/editorCommon.js.map +1 -1
  156. package/esm/vs/editor/common/languages.js +1 -1
  157. package/esm/vs/editor/common/languages.js.map +1 -1
  158. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +14 -0
  159. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js.map +1 -1
  160. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +2 -0
  161. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js.map +1 -1
  162. package/esm/vs/editor/common/model/textModel.js +1 -1
  163. package/esm/vs/editor/common/model/textModel.js.map +1 -1
  164. package/esm/vs/editor/common/model.js +1 -1
  165. package/esm/vs/editor/common/model.js.map +1 -1
  166. package/esm/vs/editor/common/services/editorBaseApi.js.map +1 -1
  167. package/esm/vs/editor/common/services/editorWebWorker.js +1 -0
  168. package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
  169. package/esm/vs/editor/common/services/editorWorkerHost.js.map +1 -1
  170. package/esm/vs/editor/common/services/modelService.js +14 -21
  171. package/esm/vs/editor/common/services/modelService.js.map +1 -1
  172. package/esm/vs/editor/common/textModelEditSource.js +2 -0
  173. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  174. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +40 -1
  175. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
  176. package/esm/vs/editor/common/viewModel/viewModelImpl.js +2 -1
  177. package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
  178. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +1 -1
  179. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js.map +1 -1
  180. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
  181. package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
  182. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +1 -0
  183. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
  184. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -0
  185. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
  186. package/esm/vs/editor/contrib/find/browser/findModel.js +1 -0
  187. package/esm/vs/editor/contrib/find/browser/findModel.js.map +1 -1
  188. package/esm/vs/editor/contrib/find/browser/findWidget.css +5 -5
  189. package/esm/vs/editor/contrib/folding/browser/folding.css +4 -4
  190. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
  191. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  192. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js.map +1 -1
  193. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +30 -14
  194. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
  195. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +4 -3
  196. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  197. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +56 -7
  198. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  199. package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js +1 -0
  200. package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js.map +1 -1
  201. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -0
  202. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  203. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -0
  204. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  205. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  206. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
  207. package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
  208. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css +2 -0
  209. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +2 -0
  210. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  211. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js.map +1 -1
  212. package/esm/vs/editor/editor.api.d.ts +8 -8
  213. package/esm/vs/editor/editor.api.js +4 -0
  214. package/esm/vs/editor/editor.api.js.map +1 -1
  215. package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
  216. package/esm/vs/editor/standalone/browser/standaloneEditor.js +37 -0
  217. package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
  218. package/esm/vs/editor/standalone/browser/standaloneLanguages.js +37 -0
  219. package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
  220. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  221. package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
  222. package/esm/vs/editor/standalone/common/monarch/monarchCompile.js +3 -0
  223. package/esm/vs/editor/standalone/common/monarch/monarchCompile.js.map +1 -1
  224. package/esm/vs/platform/accessibility/browser/accessibilityService.js +2 -2
  225. package/esm/vs/platform/accessibility/browser/accessibilityService.js.map +1 -1
  226. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  227. package/esm/vs/platform/commands/common/commands.js.map +1 -1
  228. package/esm/vs/platform/contextkey/common/contextkey.js +5 -0
  229. package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
  230. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -0
  231. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
  232. package/esm/vs/platform/dnd/browser/dnd.js +2 -0
  233. package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
  234. package/esm/vs/platform/instantiation/common/descriptors.js.map +1 -1
  235. package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
  236. package/esm/vs/platform/instantiation/common/instantiationService.js +1 -0
  237. package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
  238. package/esm/vs/platform/list/browser/listService.js +5 -0
  239. package/esm/vs/platform/list/browser/listService.js.map +1 -1
  240. package/esm/vs/platform/log/common/log.js.map +1 -1
  241. package/esm/vs/platform/log/common/logService.js.map +1 -1
  242. package/esm/vs/platform/observable/common/wrapInHotClass.js +2 -0
  243. package/esm/vs/platform/observable/common/wrapInHotClass.js.map +1 -1
  244. package/esm/vs/platform/observable/common/wrapInReloadableClass.js +3 -0
  245. package/esm/vs/platform/observable/common/wrapInReloadableClass.js.map +1 -1
  246. package/esm/vs/platform/product/common/product.js +69 -0
  247. package/esm/vs/platform/product/common/product.js.map +1 -0
  248. package/esm/vs/platform/quickinput/browser/quickInput.js +1 -1
  249. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  250. package/monaco.d.ts +8 -8
  251. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/actions/common/actions.ts","vs/platform/actions/common/actions.ts"],"names":[],"mappings":"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","file":"actions.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 { IAction, SubmenuAction } from '../../../base/common/actions.js';\nimport { Event, MicrotaskEmitter } from '../../../base/common/event.js';\nimport { DisposableStore, dispose, IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { ICommandAction, ICommandActionTitle, Icon, ILocalizedString } from '../../action/common/action.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\nimport { CommandsRegistry, ICommandService } from '../../commands/common/commands.js';\nimport { ContextKeyExpr, ContextKeyExpression, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingRule, KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\n\nexport interface IMenuItem {\n\tcommand: ICommandAction;\n\talt?: ICommandAction;\n\t/**\n\t * Menu item is hidden if this expression returns false.\n\t */\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisHiddenByDefault?: boolean;\n}\n\nexport interface ISubmenuItem {\n\ttitle: string | ICommandActionTitle;\n\tsubmenu: MenuId;\n\ticon?: Icon;\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisSelection?: boolean;\n\trememberDefaultAction?: boolean;\t// for dropdown menu: if true the last executed action is remembered as the default action\n}\n\nexport function isIMenuItem(item: any): item is IMenuItem {\n\treturn (item as IMenuItem).command !== undefined;\n}\n\nexport function isISubmenuItem(item: any): item is ISubmenuItem {\n\treturn (item as ISubmenuItem).submenu !== undefined;\n}\n\nexport class MenuId {\n\n\tprivate static readonly _instances = new Map<string, MenuId>();\n\n\tstatic readonly CommandPalette = new MenuId('CommandPalette');\n\tstatic readonly DebugBreakpointsContext = new MenuId('DebugBreakpointsContext');\n\tstatic readonly DebugCallStackContext = new MenuId('DebugCallStackContext');\n\tstatic readonly DebugConsoleContext = new MenuId('DebugConsoleContext');\n\tstatic readonly DebugVariablesContext = new MenuId('DebugVariablesContext');\n\tstatic readonly NotebookVariablesContext = new MenuId('NotebookVariablesContext');\n\tstatic readonly DebugHoverContext = new MenuId('DebugHoverContext');\n\tstatic readonly DebugWatchContext = new MenuId('DebugWatchContext');\n\tstatic readonly DebugToolBar = new MenuId('DebugToolBar');\n\tstatic readonly DebugToolBarStop = new MenuId('DebugToolBarStop');\n\tstatic readonly DebugDisassemblyContext = new MenuId('DebugDisassemblyContext');\n\tstatic readonly DebugCallStackToolbar = new MenuId('DebugCallStackToolbar');\n\tstatic readonly DebugCreateConfiguration = new MenuId('DebugCreateConfiguration');\n\tstatic readonly EditorContext = new MenuId('EditorContext');\n\tstatic readonly SimpleEditorContext = new MenuId('SimpleEditorContext');\n\tstatic readonly EditorContent = new MenuId('EditorContent');\n\tstatic readonly EditorLineNumberContext = new MenuId('EditorLineNumberContext');\n\tstatic readonly EditorContextCopy = new MenuId('EditorContextCopy');\n\tstatic readonly EditorContextPeek = new MenuId('EditorContextPeek');\n\tstatic readonly EditorContextShare = new MenuId('EditorContextShare');\n\tstatic readonly EditorTitle = new MenuId('EditorTitle');\n\tstatic readonly CompactWindowEditorTitle = new MenuId('CompactWindowEditorTitle');\n\tstatic readonly EditorTitleRun = new MenuId('EditorTitleRun');\n\tstatic readonly EditorTitleContext = new MenuId('EditorTitleContext');\n\tstatic readonly EditorTitleContextShare = new MenuId('EditorTitleContextShare');\n\tstatic readonly EmptyEditorGroup = new MenuId('EmptyEditorGroup');\n\tstatic readonly EmptyEditorGroupContext = new MenuId('EmptyEditorGroupContext');\n\tstatic readonly EditorTabsBarContext = new MenuId('EditorTabsBarContext');\n\tstatic readonly EditorTabsBarShowTabsSubmenu = new MenuId('EditorTabsBarShowTabsSubmenu');\n\tstatic readonly EditorTabsBarShowTabsZenModeSubmenu = new MenuId('EditorTabsBarShowTabsZenModeSubmenu');\n\tstatic readonly EditorActionsPositionSubmenu = new MenuId('EditorActionsPositionSubmenu');\n\tstatic readonly EditorSplitMoveSubmenu = new MenuId('EditorSplitMoveSubmenu');\n\tstatic readonly ExplorerContext = new MenuId('ExplorerContext');\n\tstatic readonly ExplorerContextShare = new MenuId('ExplorerContextShare');\n\tstatic readonly ExtensionContext = new MenuId('ExtensionContext');\n\tstatic readonly ExtensionEditorContextMenu = new MenuId('ExtensionEditorContextMenu');\n\tstatic readonly GlobalActivity = new MenuId('GlobalActivity');\n\tstatic readonly CommandCenter = new MenuId('CommandCenter');\n\tstatic readonly CommandCenterCenter = new MenuId('CommandCenterCenter');\n\tstatic readonly LayoutControlMenuSubmenu = new MenuId('LayoutControlMenuSubmenu');\n\tstatic readonly LayoutControlMenu = new MenuId('LayoutControlMenu');\n\tstatic readonly MenubarMainMenu = new MenuId('MenubarMainMenu');\n\tstatic readonly MenubarAppearanceMenu = new MenuId('MenubarAppearanceMenu');\n\tstatic readonly MenubarDebugMenu = new MenuId('MenubarDebugMenu');\n\tstatic readonly MenubarEditMenu = new MenuId('MenubarEditMenu');\n\tstatic readonly MenubarCopy = new MenuId('MenubarCopy');\n\tstatic readonly MenubarFileMenu = new MenuId('MenubarFileMenu');\n\tstatic readonly MenubarGoMenu = new MenuId('MenubarGoMenu');\n\tstatic readonly MenubarHelpMenu = new MenuId('MenubarHelpMenu');\n\tstatic readonly MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');\n\tstatic readonly MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');\n\tstatic readonly PanelAlignmentMenu = new MenuId('PanelAlignmentMenu');\n\tstatic readonly PanelPositionMenu = new MenuId('PanelPositionMenu');\n\tstatic readonly ActivityBarPositionMenu = new MenuId('ActivityBarPositionMenu');\n\tstatic readonly MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');\n\tstatic readonly MenubarRecentMenu = new MenuId('MenubarRecentMenu');\n\tstatic readonly MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\n\tstatic readonly MenubarShare = new MenuId('MenubarShare');\n\tstatic readonly MenubarSwitchEditorMenu = new MenuId('MenubarSwitchEditorMenu');\n\tstatic readonly MenubarSwitchGroupMenu = new MenuId('MenubarSwitchGroupMenu');\n\tstatic readonly MenubarTerminalMenu = new MenuId('MenubarTerminalMenu');\n\tstatic readonly MenubarTerminalSuggestStatusMenu = new MenuId('MenubarTerminalSuggestStatusMenu');\n\tstatic readonly MenubarViewMenu = new MenuId('MenubarViewMenu');\n\tstatic readonly MenubarHomeMenu = new MenuId('MenubarHomeMenu');\n\tstatic readonly OpenEditorsContext = new MenuId('OpenEditorsContext');\n\tstatic readonly OpenEditorsContextShare = new MenuId('OpenEditorsContextShare');\n\tstatic readonly ProblemsPanelContext = new MenuId('ProblemsPanelContext');\n\tstatic readonly SCMInputBox = new MenuId('SCMInputBox');\n\tstatic readonly SCMChangeContext = new MenuId('SCMChangeContext');\n\tstatic readonly SCMResourceContext = new MenuId('SCMResourceContext');\n\tstatic readonly SCMResourceContextShare = new MenuId('SCMResourceContextShare');\n\tstatic readonly SCMResourceFolderContext = new MenuId('SCMResourceFolderContext');\n\tstatic readonly SCMResourceGroupContext = new MenuId('SCMResourceGroupContext');\n\tstatic readonly SCMSourceControl = new MenuId('SCMSourceControl');\n\tstatic readonly SCMSourceControlInline = new MenuId('SCMSourceControlInline');\n\tstatic readonly SCMSourceControlTitle = new MenuId('SCMSourceControlTitle');\n\tstatic readonly SCMHistoryTitle = new MenuId('SCMHistoryTitle');\n\tstatic readonly SCMHistoryItemContext = new MenuId('SCMHistoryItemContext');\n\tstatic readonly SCMHistoryItemChangeContext = new MenuId('SCMHistoryItemChangeContext');\n\tstatic readonly SCMHistoryItemHover = new MenuId('SCMHistoryItemHover');\n\tstatic readonly SCMHistoryItemRefContext = new MenuId('SCMHistoryItemRefContext');\n\tstatic readonly SCMQuickDiffDecorations = new MenuId('SCMQuickDiffDecorations');\n\tstatic readonly SCMTitle = new MenuId('SCMTitle');\n\tstatic readonly SearchContext = new MenuId('SearchContext');\n\tstatic readonly SearchActionMenu = new MenuId('SearchActionContext');\n\tstatic readonly StatusBarWindowIndicatorMenu = new MenuId('StatusBarWindowIndicatorMenu');\n\tstatic readonly StatusBarRemoteIndicatorMenu = new MenuId('StatusBarRemoteIndicatorMenu');\n\tstatic readonly StickyScrollContext = new MenuId('StickyScrollContext');\n\tstatic readonly TestItem = new MenuId('TestItem');\n\tstatic readonly TestItemGutter = new MenuId('TestItemGutter');\n\tstatic readonly TestProfilesContext = new MenuId('TestProfilesContext');\n\tstatic readonly TestMessageContext = new MenuId('TestMessageContext');\n\tstatic readonly TestMessageContent = new MenuId('TestMessageContent');\n\tstatic readonly TestPeekElement = new MenuId('TestPeekElement');\n\tstatic readonly TestPeekTitle = new MenuId('TestPeekTitle');\n\tstatic readonly TestCallStack = new MenuId('TestCallStack');\n\tstatic readonly TestCoverageFilterItem = new MenuId('TestCoverageFilterItem');\n\tstatic readonly TouchBarContext = new MenuId('TouchBarContext');\n\tstatic readonly TitleBar = new MenuId('TitleBar');\n\tstatic readonly TitleBarContext = new MenuId('TitleBarContext');\n\tstatic readonly TitleBarTitleContext = new MenuId('TitleBarTitleContext');\n\tstatic readonly TunnelContext = new MenuId('TunnelContext');\n\tstatic readonly TunnelPrivacy = new MenuId('TunnelPrivacy');\n\tstatic readonly TunnelProtocol = new MenuId('TunnelProtocol');\n\tstatic readonly TunnelPortInline = new MenuId('TunnelInline');\n\tstatic readonly TunnelTitle = new MenuId('TunnelTitle');\n\tstatic readonly TunnelLocalAddressInline = new MenuId('TunnelLocalAddressInline');\n\tstatic readonly TunnelOriginInline = new MenuId('TunnelOriginInline');\n\tstatic readonly ViewItemContext = new MenuId('ViewItemContext');\n\tstatic readonly ViewContainerTitle = new MenuId('ViewContainerTitle');\n\tstatic readonly ViewContainerTitleContext = new MenuId('ViewContainerTitleContext');\n\tstatic readonly ViewTitle = new MenuId('ViewTitle');\n\tstatic readonly ViewTitleContext = new MenuId('ViewTitleContext');\n\tstatic readonly CommentEditorActions = new MenuId('CommentEditorActions');\n\tstatic readonly CommentThreadTitle = new MenuId('CommentThreadTitle');\n\tstatic readonly CommentThreadActions = new MenuId('CommentThreadActions');\n\tstatic readonly CommentThreadAdditionalActions = new MenuId('CommentThreadAdditionalActions');\n\tstatic readonly CommentThreadTitleContext = new MenuId('CommentThreadTitleContext');\n\tstatic readonly CommentThreadCommentContext = new MenuId('CommentThreadCommentContext');\n\tstatic readonly CommentTitle = new MenuId('CommentTitle');\n\tstatic readonly CommentActions = new MenuId('CommentActions');\n\tstatic readonly CommentsViewThreadActions = new MenuId('CommentsViewThreadActions');\n\tstatic readonly InteractiveToolbar = new MenuId('InteractiveToolbar');\n\tstatic readonly InteractiveCellTitle = new MenuId('InteractiveCellTitle');\n\tstatic readonly InteractiveCellDelete = new MenuId('InteractiveCellDelete');\n\tstatic readonly InteractiveCellExecute = new MenuId('InteractiveCellExecute');\n\tstatic readonly InteractiveInputExecute = new MenuId('InteractiveInputExecute');\n\tstatic readonly InteractiveInputConfig = new MenuId('InteractiveInputConfig');\n\tstatic readonly ReplInputExecute = new MenuId('ReplInputExecute');\n\tstatic readonly IssueReporter = new MenuId('IssueReporter');\n\tstatic readonly NotebookToolbar = new MenuId('NotebookToolbar');\n\tstatic readonly NotebookToolbarContext = new MenuId('NotebookToolbarContext');\n\tstatic readonly NotebookStickyScrollContext = new MenuId('NotebookStickyScrollContext');\n\tstatic readonly NotebookCellTitle = new MenuId('NotebookCellTitle');\n\tstatic readonly NotebookCellDelete = new MenuId('NotebookCellDelete');\n\tstatic readonly NotebookCellInsert = new MenuId('NotebookCellInsert');\n\tstatic readonly NotebookCellBetween = new MenuId('NotebookCellBetween');\n\tstatic readonly NotebookCellListTop = new MenuId('NotebookCellTop');\n\tstatic readonly NotebookCellExecute = new MenuId('NotebookCellExecute');\n\tstatic readonly NotebookCellExecuteGoTo = new MenuId('NotebookCellExecuteGoTo');\n\tstatic readonly NotebookCellExecutePrimary = new MenuId('NotebookCellExecutePrimary');\n\tstatic readonly NotebookDiffCellInputTitle = new MenuId('NotebookDiffCellInputTitle');\n\tstatic readonly NotebookDiffDocumentMetadata = new MenuId('NotebookDiffDocumentMetadata');\n\tstatic readonly NotebookDiffCellMetadataTitle = new MenuId('NotebookDiffCellMetadataTitle');\n\tstatic readonly NotebookDiffCellOutputsTitle = new MenuId('NotebookDiffCellOutputsTitle');\n\tstatic readonly NotebookOutputToolbar = new MenuId('NotebookOutputToolbar');\n\tstatic readonly NotebookOutlineFilter = new MenuId('NotebookOutlineFilter');\n\tstatic readonly NotebookOutlineActionMenu = new MenuId('NotebookOutlineActionMenu');\n\tstatic readonly NotebookEditorLayoutConfigure = new MenuId('NotebookEditorLayoutConfigure');\n\tstatic readonly NotebookKernelSource = new MenuId('NotebookKernelSource');\n\tstatic readonly BulkEditTitle = new MenuId('BulkEditTitle');\n\tstatic readonly BulkEditContext = new MenuId('BulkEditContext');\n\tstatic readonly TimelineItemContext = new MenuId('TimelineItemContext');\n\tstatic readonly TimelineTitle = new MenuId('TimelineTitle');\n\tstatic readonly TimelineTitleContext = new MenuId('TimelineTitleContext');\n\tstatic readonly TimelineFilterSubMenu = new MenuId('TimelineFilterSubMenu');\n\tstatic readonly AccountsContext = new MenuId('AccountsContext');\n\tstatic readonly SidebarTitle = new MenuId('SidebarTitle');\n\tstatic readonly PanelTitle = new MenuId('PanelTitle');\n\tstatic readonly AuxiliaryBarTitle = new MenuId('AuxiliaryBarTitle');\n\tstatic readonly TerminalInstanceContext = new MenuId('TerminalInstanceContext');\n\tstatic readonly TerminalEditorInstanceContext = new MenuId('TerminalEditorInstanceContext');\n\tstatic readonly TerminalNewDropdownContext = new MenuId('TerminalNewDropdownContext');\n\tstatic readonly TerminalTabContext = new MenuId('TerminalTabContext');\n\tstatic readonly TerminalTabEmptyAreaContext = new MenuId('TerminalTabEmptyAreaContext');\n\tstatic readonly TerminalStickyScrollContext = new MenuId('TerminalStickyScrollContext');\n\tstatic readonly WebviewContext = new MenuId('WebviewContext');\n\tstatic readonly InlineCompletionsActions = new MenuId('InlineCompletionsActions');\n\tstatic readonly InlineEditsActions = new MenuId('InlineEditsActions');\n\tstatic readonly NewFile = new MenuId('NewFile');\n\tstatic readonly MergeInput1Toolbar = new MenuId('MergeToolbar1Toolbar');\n\tstatic readonly MergeInput2Toolbar = new MenuId('MergeToolbar2Toolbar');\n\tstatic readonly MergeBaseToolbar = new MenuId('MergeBaseToolbar');\n\tstatic readonly MergeInputResultToolbar = new MenuId('MergeToolbarResultToolbar');\n\tstatic readonly InlineSuggestionToolbar = new MenuId('InlineSuggestionToolbar');\n\tstatic readonly InlineEditToolbar = new MenuId('InlineEditToolbar');\n\tstatic readonly ChatContext = new MenuId('ChatContext');\n\tstatic readonly ChatCodeBlock = new MenuId('ChatCodeblock');\n\tstatic readonly ChatCompareBlock = new MenuId('ChatCompareBlock');\n\tstatic readonly ChatMessageTitle = new MenuId('ChatMessageTitle');\n\tstatic readonly ChatHistory = new MenuId('ChatHistory');\n\tstatic readonly ChatWelcomeHistoryContext = new MenuId('ChatWelcomeHistoryContext');\n\tstatic readonly ChatMessageFooter = new MenuId('ChatMessageFooter');\n\tstatic readonly ChatExecute = new MenuId('ChatExecute');\n\tstatic readonly ChatExecuteSecondary = new MenuId('ChatExecuteSecondary');\n\tstatic readonly ChatInput = new MenuId('ChatInput');\n\tstatic readonly ChatInputSide = new MenuId('ChatInputSide');\n\tstatic readonly ChatModePicker = new MenuId('ChatModePicker');\n\tstatic readonly ChatEditingWidgetToolbar = new MenuId('ChatEditingWidgetToolbar');\n\tstatic readonly ChatEditingEditorContent = new MenuId('ChatEditingEditorContent');\n\tstatic readonly ChatEditingEditorHunk = new MenuId('ChatEditingEditorHunk');\n\tstatic readonly ChatEditingDeletedNotebookCell = new MenuId('ChatEditingDeletedNotebookCell');\n\tstatic readonly ChatInputAttachmentToolbar = new MenuId('ChatInputAttachmentToolbar');\n\tstatic readonly ChatEditingWidgetModifiedFilesToolbar = new MenuId('ChatEditingWidgetModifiedFilesToolbar');\n\tstatic readonly ChatInputResourceAttachmentContext = new MenuId('ChatInputResourceAttachmentContext');\n\tstatic readonly ChatInputSymbolAttachmentContext = new MenuId('ChatInputSymbolAttachmentContext');\n\tstatic readonly ChatInlineResourceAnchorContext = new MenuId('ChatInlineResourceAnchorContext');\n\tstatic readonly ChatInlineSymbolAnchorContext = new MenuId('ChatInlineSymbolAnchorContext');\n\tstatic readonly ChatMessageCheckpoint: MenuId = new MenuId('ChatMessageCheckpoint');\n\tstatic readonly ChatMessageRestoreCheckpoint: MenuId = new MenuId('ChatMessageRestoreCheckpoint');\n\tstatic readonly ChatEditingCodeBlockContext = new MenuId('ChatEditingCodeBlockContext');\n\tstatic readonly ChatTitleBarMenu = new MenuId('ChatTitleBarMenu');\n\tstatic readonly ChatAttachmentsContext = new MenuId('ChatAttachmentsContext');\n\tstatic readonly ChatToolOutputResourceToolbar = new MenuId('ChatToolOutputResourceToolbar');\n\tstatic readonly ChatTextEditorMenu = new MenuId('ChatTextEditorMenu');\n\tstatic readonly ChatToolOutputResourceContext = new MenuId('ChatToolOutputResourceContext');\n\tstatic readonly ChatMultiDiffContext = new MenuId('ChatMultiDiffContext');\n\tstatic readonly ChatSessionsMenu = new MenuId('ChatSessionsMenu');\n\tstatic readonly ChatConfirmationMenu = new MenuId('ChatConfirmationMenu');\n\tstatic readonly AccessibleView = new MenuId('AccessibleView');\n\tstatic readonly MultiDiffEditorFileToolbar = new MenuId('MultiDiffEditorFileToolbar');\n\tstatic readonly DiffEditorHunkToolbar = new MenuId('DiffEditorHunkToolbar');\n\tstatic readonly DiffEditorSelectionToolbar = new MenuId('DiffEditorSelectionToolbar');\n\n\treadonly id: string;\n\n\t/**\n\t * Create a new `MenuId` with the unique identifier. Will throw if a menu\n\t * with the identifier already exists, use `MenuId.for(ident)` or a unique\n\t * identifier\n\t */\n\tconstructor(identifier: string) {\n\t\tif (MenuId._instances.has(identifier)) {\n\t\t\tthrow new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n\t\t}\n\t\tMenuId._instances.set(identifier, this);\n\t\tthis.id = identifier;\n\t}\n}\n\nexport interface IMenuActionOptions {\n\targ?: any;\n\tshouldForwardArgs?: boolean;\n\trenderShortTitle?: boolean;\n}\n\nexport interface IMenuChangeEvent {\n\treadonly menu: IMenu;\n\treadonly isStructuralChange: boolean;\n\treadonly isToggleChange: boolean;\n\treadonly isEnablementChange: boolean;\n}\n\nexport interface IMenu extends IDisposable {\n\treadonly onDidChange: Event<IMenuChangeEvent>;\n\tgetActions(options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n}\n\nexport const IMenuService = createDecorator<IMenuService>('menuService');\n\nexport interface IMenuCreateOptions {\n\temitEventsForSubmenuChanges?: boolean;\n\teventDebounceDelay?: number;\n}\n\nexport interface IMenuService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Consider using getMenuActions if you don't need to listen to events.\n\t *\n\t * Create a new menu for the given menu identifier. A menu sends events when it's entries\n\t * have changed (placement, enablement, checked-state). By default it does not send events for\n\t * submenu entries. That is more expensive and must be explicitly enabled with the\n\t * `emitEventsForSubmenuChanges` flag.\n\t */\n\tcreateMenu(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuCreateOptions): IMenu;\n\n\t/**\n\t * Creates a new menu, gets the actions, and then disposes of the menu.\n\t */\n\tgetMenuActions(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n\n\t/**\n\t * Reset **all** menu item hidden states.\n\t */\n\tresetHiddenStates(): void;\n\n\t/**\n\t * Reset the menu's hidden states.\n\t */\n\tresetHiddenStates(menuIds: readonly MenuId[] | undefined): void;\n}\n\ntype ICommandsMap = Map<string, ICommandAction>;\n\nexport interface IMenuRegistryChangeEvent {\n\thas(id: MenuId): boolean;\n}\n\nclass MenuRegistryChangeEvent {\n\n\tprivate static _all = new Map<MenuId, MenuRegistryChangeEvent>();\n\n\tstatic for(id: MenuId): MenuRegistryChangeEvent {\n\t\tlet value = this._all.get(id);\n\t\tif (!value) {\n\t\t\tvalue = new MenuRegistryChangeEvent(id);\n\t\t\tthis._all.set(id, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tstatic merge(events: IMenuRegistryChangeEvent[]): IMenuRegistryChangeEvent {\n\t\tconst ids = new Set<MenuId>();\n\t\tfor (const item of events) {\n\t\t\tif (item instanceof MenuRegistryChangeEvent) {\n\t\t\t\tids.add(item.id);\n\t\t\t}\n\t\t}\n\t\treturn ids;\n\t}\n\n\treadonly has: (id: MenuId) => boolean;\n\n\tprivate constructor(private readonly id: MenuId) {\n\t\tthis.has = candidate => candidate === id;\n\t}\n}\n\nexport interface IMenuRegistry {\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent>;\n\taddCommand(userCommand: ICommandAction): IDisposable;\n\tappendMenuItem(menu: MenuId, item: IMenuItem | ISubmenuItem): IDisposable;\n\tgetMenuItems(loc: MenuId): Array<IMenuItem | ISubmenuItem>;\n}\n\nexport const MenuRegistry: IMenuRegistry = new class implements IMenuRegistry {\n\n\tprivate readonly _commands = new Map<string, ICommandAction>();\n\tprivate readonly _menuItems = new Map<MenuId, LinkedList<IMenuItem | ISubmenuItem>>();\n\tprivate readonly _onDidChangeMenu = new MicrotaskEmitter<IMenuRegistryChangeEvent>({\n\t\tmerge: MenuRegistryChangeEvent.merge\n\t});\n\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent> = this._onDidChangeMenu.event;\n\n\taddCommand(command: ICommandAction): IDisposable {\n\t\tthis._commands.set(command.id, command);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\tif (this._commands.delete(command.id)) {\n\t\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\t\t\t}\n\t\t}));\n\t}\n\n\tgetCommand(id: string): ICommandAction | undefined {\n\t\treturn this._commands.get(id);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst map = new Map<string, ICommandAction>();\n\t\tthis._commands.forEach((value, key) => map.set(key, value));\n\t\treturn map;\n\t}\n\n\tappendMenuItem(id: MenuId, item: IMenuItem | ISubmenuItem): IDisposable {\n\t\tlet list = this._menuItems.get(id);\n\t\tif (!list) {\n\t\t\tlist = new LinkedList();\n\t\t\tthis._menuItems.set(id, list);\n\t\t}\n\t\tconst rm = list.push(item);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\trm();\n\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\t}));\n\t}\n\n\tappendMenuItems(items: Iterable<{ id: MenuId; item: IMenuItem | ISubmenuItem }>): IDisposable {\n\t\tconst result = new DisposableStore();\n\t\tfor (const { id, item } of items) {\n\t\t\tresult.add(this.appendMenuItem(id, item));\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMenuItems(id: MenuId): Array<IMenuItem | ISubmenuItem> {\n\t\tlet result: Array<IMenuItem | ISubmenuItem>;\n\t\tif (this._menuItems.has(id)) {\n\t\t\tresult = [...this._menuItems.get(id)!];\n\t\t} else {\n\t\t\tresult = [];\n\t\t}\n\t\tif (id === MenuId.CommandPalette) {\n\t\t\t// CommandPalette is special because it shows\n\t\t\t// all commands by default\n\t\t\tthis._appendImplicitItems(result);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _appendImplicitItems(result: Array<IMenuItem | ISubmenuItem>) {\n\t\tconst set = new Set<string>();\n\n\t\tfor (const item of result) {\n\t\t\tif (isIMenuItem(item)) {\n\t\t\t\tset.add(item.command.id);\n\t\t\t\tif (item.alt) {\n\t\t\t\t\tset.add(item.alt.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._commands.forEach((command, id) => {\n\t\t\tif (!set.has(id)) {\n\t\t\t\tresult.push({ command });\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport class SubmenuItemAction extends SubmenuAction {\n\n\tconstructor(\n\t\treadonly item: ISubmenuItem,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\tactions: readonly IAction[],\n\t) {\n\t\tsuper(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, actions, 'submenu');\n\t}\n}\n\nexport interface IMenuItemHide {\n\treadonly isHidden: boolean;\n\treadonly hide: IAction;\n\treadonly toggle: IAction;\n}\n\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nexport class MenuItemAction implements IAction {\n\n\tstatic label(action: ICommandAction, options?: IMenuActionOptions): string {\n\t\treturn options?.renderShortTitle && action.shortTitle\n\t\t\t? (typeof action.shortTitle === 'string' ? action.shortTitle : action.shortTitle.value)\n\t\t\t: (typeof action.title === 'string' ? action.title : action.title.value);\n\t}\n\n\treadonly item: ICommandAction;\n\treadonly alt: MenuItemAction | undefined;\n\n\tprivate readonly _options: IMenuActionOptions | undefined;\n\n\treadonly id: string;\n\treadonly label: string;\n\treadonly tooltip: string;\n\treadonly class: string | undefined;\n\treadonly enabled: boolean;\n\treadonly checked?: boolean;\n\n\tconstructor(\n\t\titem: ICommandAction,\n\t\talt: ICommandAction | undefined,\n\t\toptions: IMenuActionOptions | undefined,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\treadonly menuKeybinding: IAction | undefined,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@ICommandService private _commandService: ICommandService\n\t) {\n\t\tthis.id = item.id;\n\t\tthis.label = MenuItemAction.label(item, options);\n\t\tthis.tooltip = (typeof item.tooltip === 'string' ? item.tooltip : item.tooltip?.value) ?? '';\n\t\tthis.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n\t\tthis.checked = undefined;\n\n\t\tlet icon: ThemeIcon | undefined;\n\n\t\tif (item.toggled) {\n\t\t\tconst toggled = ((item.toggled as { condition: ContextKeyExpression }).condition ? item.toggled : { condition: item.toggled }) as {\n\t\t\t\tcondition: ContextKeyExpression; icon?: Icon; tooltip?: string | ILocalizedString; title?: string | ILocalizedString;\n\t\t\t};\n\t\t\tthis.checked = contextKeyService.contextMatchesRules(toggled.condition);\n\t\t\tif (this.checked && toggled.tooltip) {\n\t\t\t\tthis.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n\t\t\t}\n\n\t\t\tif (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {\n\t\t\t\ticon = toggled.icon;\n\t\t\t}\n\n\t\t\tif (this.checked && toggled.title) {\n\t\t\t\tthis.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n\t\t\t}\n\t\t}\n\n\t\tif (!icon) {\n\t\t\ticon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : undefined;\n\t\t}\n\n\t\tthis.item = item;\n\t\tthis.alt = alt ? new MenuItemAction(alt, undefined, options, hideActions, undefined, contextKeyService, _commandService) : undefined;\n\t\tthis._options = options;\n\t\tthis.class = icon && ThemeIcon.asClassName(icon);\n\n\t}\n\n\trun(...args: any[]): Promise<void> {\n\t\tlet runArgs: any[] = [];\n\n\t\tif (this._options?.arg) {\n\t\t\trunArgs = [...runArgs, this._options.arg];\n\t\t}\n\n\t\tif (this._options?.shouldForwardArgs) {\n\t\t\trunArgs = [...runArgs, ...args];\n\t\t}\n\n\t\treturn this._commandService.executeCommand(this.id, ...runArgs);\n\t}\n}\n\n//#region --- IAction2\n\ntype OneOrN<T> = T | T[];\n\ninterface IAction2CommonOptions extends ICommandAction {\n\t/**\n\t * One or many menu items.\n\t */\n\tmenu?: OneOrN<{ id: MenuId; precondition?: null } & Omit<IMenuItem, 'command'>>;\n\n\t/**\n\t * One keybinding.\n\t */\n\tkeybinding?: OneOrN<Omit<IKeybindingRule, 'id'>>;\n}\n\ninterface IBaseAction2Options extends IAction2CommonOptions {\n\n\t/**\n\t * This type is used when an action is not going to show up in the command palette.\n\t * In that case, it's able to use a string for the `title` and `category` properties.\n\t */\n\tf1?: false;\n}\n\nexport interface ICommandPaletteOptions extends IAction2CommonOptions {\n\n\t/**\n\t * The title of the command that will be displayed in the command palette after the category.\n\t * This overrides {@link ICommandAction.title} to ensure a string isn't used so that the title\n\t * includes the localized value and the original value for users using language packs.\n\t */\n\ttitle: ICommandActionTitle;\n\n\t/**\n\t * The category of the command that will be displayed in the command palette before the title suffixed.\n\t * with a colon This overrides {@link ICommandAction.title} to ensure a string isn't used so that\n\t * the title includes the localized value and the original value for users using language packs.\n\t */\n\tcategory?: keyof typeof Categories | ILocalizedString;\n\n\t/**\n\t * Shorthand to add this command to the command palette. Note: this is not the only way to declare that\n\t * a command should be in the command palette... however, enforcing ILocalizedString in the other scenarios\n\t * is much more challenging and this gets us most of the way there.\n\t */\n\tf1: true;\n}\n\nexport type IAction2Options = ICommandPaletteOptions | IBaseAction2Options;\n\nexport interface IAction2F1RequiredOptions {\n\ttitle: ICommandActionTitle;\n}\n\nexport abstract class Action2 {\n\tconstructor(readonly desc: Readonly<IAction2Options>) { }\n\tabstract run(accessor: ServicesAccessor, ...args: any[]): void;\n}\n\nexport function registerAction2(ctor: { new(): Action2 }): IDisposable {\n\tconst disposables: IDisposable[] = []; // not using `DisposableStore` to reduce startup perf cost\n\tconst action = new ctor();\n\n\tconst { f1, menu, keybinding, ...command } = action.desc;\n\n\tif (CommandsRegistry.getCommand(command.id)) {\n\t\tthrow new Error(`Cannot register two commands with the same id: ${command.id}`);\n\t}\n\n\t// command\n\tdisposables.push(CommandsRegistry.registerCommand({\n\t\tid: command.id,\n\t\thandler: (accessor, ...args) => action.run(accessor, ...args),\n\t\tmetadata: command.metadata ?? { description: action.desc.title }\n\t}));\n\n\t// menu\n\tif (Array.isArray(menu)) {\n\t\tfor (const item of menu) {\n\t\t\tdisposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? undefined : command.precondition }, ...item }));\n\t\t}\n\n\t} else if (menu) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? undefined : command.precondition }, ...menu }));\n\t}\n\tif (f1) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n\t\tdisposables.push(MenuRegistry.addCommand(command));\n\t}\n\n\t// keybinding\n\tif (Array.isArray(keybinding)) {\n\t\tfor (const item of keybinding) {\n\t\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t\t...item,\n\t\t\t\tid: command.id,\n\t\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n\t\t\t}));\n\t\t}\n\t} else if (keybinding) {\n\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t...keybinding,\n\t\t\tid: command.id,\n\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n\t\t}));\n\t}\n\n\treturn {\n\t\tdispose() {\n\t\t\tdispose(disposables);\n\t\t}\n\t};\n}\n//#endregion\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IAction, SubmenuAction } from '../../../base/common/actions.js';\nimport { Event, MicrotaskEmitter } from '../../../base/common/event.js';\nimport { DisposableStore, dispose, IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { ICommandAction, ICommandActionTitle, Icon, ILocalizedString } from '../../action/common/action.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\nimport { CommandsRegistry, ICommandService } from '../../commands/common/commands.js';\nimport { ContextKeyExpr, ContextKeyExpression, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingRule, KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\n\nexport interface IMenuItem {\n\tcommand: ICommandAction;\n\talt?: ICommandAction;\n\t/**\n\t * Menu item is hidden if this expression returns false.\n\t */\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisHiddenByDefault?: boolean;\n}\n\nexport interface ISubmenuItem {\n\ttitle: string | ICommandActionTitle;\n\tsubmenu: MenuId;\n\ticon?: Icon;\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisSelection?: boolean;\n\trememberDefaultAction?: boolean;\t// for dropdown menu: if true the last executed action is remembered as the default action\n}\n\nexport function isIMenuItem(item: any): item is IMenuItem {\n\treturn (item as IMenuItem).command !== undefined;\n}\n\nexport function isISubmenuItem(item: any): item is ISubmenuItem {\n\treturn (item as ISubmenuItem).submenu !== undefined;\n}\n\nexport class MenuId {\n\n\tprivate static readonly _instances = new Map<string, MenuId>();\n\n\tstatic readonly CommandPalette = new MenuId('CommandPalette');\n\tstatic readonly DebugBreakpointsContext = new MenuId('DebugBreakpointsContext');\n\tstatic readonly DebugCallStackContext = new MenuId('DebugCallStackContext');\n\tstatic readonly DebugConsoleContext = new MenuId('DebugConsoleContext');\n\tstatic readonly DebugVariablesContext = new MenuId('DebugVariablesContext');\n\tstatic readonly NotebookVariablesContext = new MenuId('NotebookVariablesContext');\n\tstatic readonly DebugHoverContext = new MenuId('DebugHoverContext');\n\tstatic readonly DebugWatchContext = new MenuId('DebugWatchContext');\n\tstatic readonly DebugToolBar = new MenuId('DebugToolBar');\n\tstatic readonly DebugToolBarStop = new MenuId('DebugToolBarStop');\n\tstatic readonly DebugDisassemblyContext = new MenuId('DebugDisassemblyContext');\n\tstatic readonly DebugCallStackToolbar = new MenuId('DebugCallStackToolbar');\n\tstatic readonly DebugCreateConfiguration = new MenuId('DebugCreateConfiguration');\n\tstatic readonly EditorContext = new MenuId('EditorContext');\n\tstatic readonly SimpleEditorContext = new MenuId('SimpleEditorContext');\n\tstatic readonly EditorContent = new MenuId('EditorContent');\n\tstatic readonly EditorLineNumberContext = new MenuId('EditorLineNumberContext');\n\tstatic readonly EditorContextCopy = new MenuId('EditorContextCopy');\n\tstatic readonly EditorContextPeek = new MenuId('EditorContextPeek');\n\tstatic readonly EditorContextShare = new MenuId('EditorContextShare');\n\tstatic readonly EditorTitle = new MenuId('EditorTitle');\n\tstatic readonly CompactWindowEditorTitle = new MenuId('CompactWindowEditorTitle');\n\tstatic readonly EditorTitleRun = new MenuId('EditorTitleRun');\n\tstatic readonly EditorTitleContext = new MenuId('EditorTitleContext');\n\tstatic readonly EditorTitleContextShare = new MenuId('EditorTitleContextShare');\n\tstatic readonly EmptyEditorGroup = new MenuId('EmptyEditorGroup');\n\tstatic readonly EmptyEditorGroupContext = new MenuId('EmptyEditorGroupContext');\n\tstatic readonly EditorTabsBarContext = new MenuId('EditorTabsBarContext');\n\tstatic readonly EditorTabsBarShowTabsSubmenu = new MenuId('EditorTabsBarShowTabsSubmenu');\n\tstatic readonly EditorTabsBarShowTabsZenModeSubmenu = new MenuId('EditorTabsBarShowTabsZenModeSubmenu');\n\tstatic readonly EditorActionsPositionSubmenu = new MenuId('EditorActionsPositionSubmenu');\n\tstatic readonly EditorSplitMoveSubmenu = new MenuId('EditorSplitMoveSubmenu');\n\tstatic readonly ExplorerContext = new MenuId('ExplorerContext');\n\tstatic readonly ExplorerContextShare = new MenuId('ExplorerContextShare');\n\tstatic readonly ExtensionContext = new MenuId('ExtensionContext');\n\tstatic readonly ExtensionEditorContextMenu = new MenuId('ExtensionEditorContextMenu');\n\tstatic readonly GlobalActivity = new MenuId('GlobalActivity');\n\tstatic readonly CommandCenter = new MenuId('CommandCenter');\n\tstatic readonly CommandCenterCenter = new MenuId('CommandCenterCenter');\n\tstatic readonly LayoutControlMenuSubmenu = new MenuId('LayoutControlMenuSubmenu');\n\tstatic readonly LayoutControlMenu = new MenuId('LayoutControlMenu');\n\tstatic readonly MenubarMainMenu = new MenuId('MenubarMainMenu');\n\tstatic readonly MenubarAppearanceMenu = new MenuId('MenubarAppearanceMenu');\n\tstatic readonly MenubarDebugMenu = new MenuId('MenubarDebugMenu');\n\tstatic readonly MenubarEditMenu = new MenuId('MenubarEditMenu');\n\tstatic readonly MenubarCopy = new MenuId('MenubarCopy');\n\tstatic readonly MenubarFileMenu = new MenuId('MenubarFileMenu');\n\tstatic readonly MenubarGoMenu = new MenuId('MenubarGoMenu');\n\tstatic readonly MenubarHelpMenu = new MenuId('MenubarHelpMenu');\n\tstatic readonly MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');\n\tstatic readonly MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');\n\tstatic readonly PanelAlignmentMenu = new MenuId('PanelAlignmentMenu');\n\tstatic readonly PanelPositionMenu = new MenuId('PanelPositionMenu');\n\tstatic readonly ActivityBarPositionMenu = new MenuId('ActivityBarPositionMenu');\n\tstatic readonly MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');\n\tstatic readonly MenubarRecentMenu = new MenuId('MenubarRecentMenu');\n\tstatic readonly MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\n\tstatic readonly MenubarShare = new MenuId('MenubarShare');\n\tstatic readonly MenubarSwitchEditorMenu = new MenuId('MenubarSwitchEditorMenu');\n\tstatic readonly MenubarSwitchGroupMenu = new MenuId('MenubarSwitchGroupMenu');\n\tstatic readonly MenubarTerminalMenu = new MenuId('MenubarTerminalMenu');\n\tstatic readonly MenubarTerminalSuggestStatusMenu = new MenuId('MenubarTerminalSuggestStatusMenu');\n\tstatic readonly MenubarViewMenu = new MenuId('MenubarViewMenu');\n\tstatic readonly MenubarHomeMenu = new MenuId('MenubarHomeMenu');\n\tstatic readonly OpenEditorsContext = new MenuId('OpenEditorsContext');\n\tstatic readonly OpenEditorsContextShare = new MenuId('OpenEditorsContextShare');\n\tstatic readonly ProblemsPanelContext = new MenuId('ProblemsPanelContext');\n\tstatic readonly SCMInputBox = new MenuId('SCMInputBox');\n\tstatic readonly SCMChangeContext = new MenuId('SCMChangeContext');\n\tstatic readonly SCMResourceContext = new MenuId('SCMResourceContext');\n\tstatic readonly SCMResourceContextShare = new MenuId('SCMResourceContextShare');\n\tstatic readonly SCMResourceFolderContext = new MenuId('SCMResourceFolderContext');\n\tstatic readonly SCMResourceGroupContext = new MenuId('SCMResourceGroupContext');\n\tstatic readonly SCMSourceControl = new MenuId('SCMSourceControl');\n\tstatic readonly SCMSourceControlInline = new MenuId('SCMSourceControlInline');\n\tstatic readonly SCMSourceControlTitle = new MenuId('SCMSourceControlTitle');\n\tstatic readonly SCMHistoryTitle = new MenuId('SCMHistoryTitle');\n\tstatic readonly SCMHistoryItemContext = new MenuId('SCMHistoryItemContext');\n\tstatic readonly SCMHistoryItemChangeContext = new MenuId('SCMHistoryItemChangeContext');\n\tstatic readonly SCMHistoryItemHover = new MenuId('SCMHistoryItemHover');\n\tstatic readonly SCMHistoryItemRefContext = new MenuId('SCMHistoryItemRefContext');\n\tstatic readonly SCMQuickDiffDecorations = new MenuId('SCMQuickDiffDecorations');\n\tstatic readonly SCMTitle = new MenuId('SCMTitle');\n\tstatic readonly SearchContext = new MenuId('SearchContext');\n\tstatic readonly SearchActionMenu = new MenuId('SearchActionContext');\n\tstatic readonly StatusBarWindowIndicatorMenu = new MenuId('StatusBarWindowIndicatorMenu');\n\tstatic readonly StatusBarRemoteIndicatorMenu = new MenuId('StatusBarRemoteIndicatorMenu');\n\tstatic readonly StickyScrollContext = new MenuId('StickyScrollContext');\n\tstatic readonly TestItem = new MenuId('TestItem');\n\tstatic readonly TestItemGutter = new MenuId('TestItemGutter');\n\tstatic readonly TestProfilesContext = new MenuId('TestProfilesContext');\n\tstatic readonly TestMessageContext = new MenuId('TestMessageContext');\n\tstatic readonly TestMessageContent = new MenuId('TestMessageContent');\n\tstatic readonly TestPeekElement = new MenuId('TestPeekElement');\n\tstatic readonly TestPeekTitle = new MenuId('TestPeekTitle');\n\tstatic readonly TestCallStack = new MenuId('TestCallStack');\n\tstatic readonly TestCoverageFilterItem = new MenuId('TestCoverageFilterItem');\n\tstatic readonly TouchBarContext = new MenuId('TouchBarContext');\n\tstatic readonly TitleBar = new MenuId('TitleBar');\n\tstatic readonly TitleBarContext = new MenuId('TitleBarContext');\n\tstatic readonly TitleBarTitleContext = new MenuId('TitleBarTitleContext');\n\tstatic readonly TunnelContext = new MenuId('TunnelContext');\n\tstatic readonly TunnelPrivacy = new MenuId('TunnelPrivacy');\n\tstatic readonly TunnelProtocol = new MenuId('TunnelProtocol');\n\tstatic readonly TunnelPortInline = new MenuId('TunnelInline');\n\tstatic readonly TunnelTitle = new MenuId('TunnelTitle');\n\tstatic readonly TunnelLocalAddressInline = new MenuId('TunnelLocalAddressInline');\n\tstatic readonly TunnelOriginInline = new MenuId('TunnelOriginInline');\n\tstatic readonly ViewItemContext = new MenuId('ViewItemContext');\n\tstatic readonly ViewContainerTitle = new MenuId('ViewContainerTitle');\n\tstatic readonly ViewContainerTitleContext = new MenuId('ViewContainerTitleContext');\n\tstatic readonly ViewTitle = new MenuId('ViewTitle');\n\tstatic readonly ViewTitleContext = new MenuId('ViewTitleContext');\n\tstatic readonly CommentEditorActions = new MenuId('CommentEditorActions');\n\tstatic readonly CommentThreadTitle = new MenuId('CommentThreadTitle');\n\tstatic readonly CommentThreadActions = new MenuId('CommentThreadActions');\n\tstatic readonly CommentThreadAdditionalActions = new MenuId('CommentThreadAdditionalActions');\n\tstatic readonly CommentThreadTitleContext = new MenuId('CommentThreadTitleContext');\n\tstatic readonly CommentThreadCommentContext = new MenuId('CommentThreadCommentContext');\n\tstatic readonly CommentTitle = new MenuId('CommentTitle');\n\tstatic readonly CommentActions = new MenuId('CommentActions');\n\tstatic readonly CommentsViewThreadActions = new MenuId('CommentsViewThreadActions');\n\tstatic readonly InteractiveToolbar = new MenuId('InteractiveToolbar');\n\tstatic readonly InteractiveCellTitle = new MenuId('InteractiveCellTitle');\n\tstatic readonly InteractiveCellDelete = new MenuId('InteractiveCellDelete');\n\tstatic readonly InteractiveCellExecute = new MenuId('InteractiveCellExecute');\n\tstatic readonly InteractiveInputExecute = new MenuId('InteractiveInputExecute');\n\tstatic readonly InteractiveInputConfig = new MenuId('InteractiveInputConfig');\n\tstatic readonly ReplInputExecute = new MenuId('ReplInputExecute');\n\tstatic readonly IssueReporter = new MenuId('IssueReporter');\n\tstatic readonly NotebookToolbar = new MenuId('NotebookToolbar');\n\tstatic readonly NotebookToolbarContext = new MenuId('NotebookToolbarContext');\n\tstatic readonly NotebookStickyScrollContext = new MenuId('NotebookStickyScrollContext');\n\tstatic readonly NotebookCellTitle = new MenuId('NotebookCellTitle');\n\tstatic readonly NotebookCellDelete = new MenuId('NotebookCellDelete');\n\tstatic readonly NotebookCellInsert = new MenuId('NotebookCellInsert');\n\tstatic readonly NotebookCellBetween = new MenuId('NotebookCellBetween');\n\tstatic readonly NotebookCellListTop = new MenuId('NotebookCellTop');\n\tstatic readonly NotebookCellExecute = new MenuId('NotebookCellExecute');\n\tstatic readonly NotebookCellExecuteGoTo = new MenuId('NotebookCellExecuteGoTo');\n\tstatic readonly NotebookCellExecutePrimary = new MenuId('NotebookCellExecutePrimary');\n\tstatic readonly NotebookDiffCellInputTitle = new MenuId('NotebookDiffCellInputTitle');\n\tstatic readonly NotebookDiffDocumentMetadata = new MenuId('NotebookDiffDocumentMetadata');\n\tstatic readonly NotebookDiffCellMetadataTitle = new MenuId('NotebookDiffCellMetadataTitle');\n\tstatic readonly NotebookDiffCellOutputsTitle = new MenuId('NotebookDiffCellOutputsTitle');\n\tstatic readonly NotebookOutputToolbar = new MenuId('NotebookOutputToolbar');\n\tstatic readonly NotebookOutlineFilter = new MenuId('NotebookOutlineFilter');\n\tstatic readonly NotebookOutlineActionMenu = new MenuId('NotebookOutlineActionMenu');\n\tstatic readonly NotebookEditorLayoutConfigure = new MenuId('NotebookEditorLayoutConfigure');\n\tstatic readonly NotebookKernelSource = new MenuId('NotebookKernelSource');\n\tstatic readonly BulkEditTitle = new MenuId('BulkEditTitle');\n\tstatic readonly BulkEditContext = new MenuId('BulkEditContext');\n\tstatic readonly TimelineItemContext = new MenuId('TimelineItemContext');\n\tstatic readonly TimelineTitle = new MenuId('TimelineTitle');\n\tstatic readonly TimelineTitleContext = new MenuId('TimelineTitleContext');\n\tstatic readonly TimelineFilterSubMenu = new MenuId('TimelineFilterSubMenu');\n\tstatic readonly AccountsContext = new MenuId('AccountsContext');\n\tstatic readonly SidebarTitle = new MenuId('SidebarTitle');\n\tstatic readonly PanelTitle = new MenuId('PanelTitle');\n\tstatic readonly AuxiliaryBarTitle = new MenuId('AuxiliaryBarTitle');\n\tstatic readonly TerminalInstanceContext = new MenuId('TerminalInstanceContext');\n\tstatic readonly TerminalEditorInstanceContext = new MenuId('TerminalEditorInstanceContext');\n\tstatic readonly TerminalNewDropdownContext = new MenuId('TerminalNewDropdownContext');\n\tstatic readonly TerminalTabContext = new MenuId('TerminalTabContext');\n\tstatic readonly TerminalTabEmptyAreaContext = new MenuId('TerminalTabEmptyAreaContext');\n\tstatic readonly TerminalStickyScrollContext = new MenuId('TerminalStickyScrollContext');\n\tstatic readonly WebviewContext = new MenuId('WebviewContext');\n\tstatic readonly InlineCompletionsActions = new MenuId('InlineCompletionsActions');\n\tstatic readonly InlineEditsActions = new MenuId('InlineEditsActions');\n\tstatic readonly NewFile = new MenuId('NewFile');\n\tstatic readonly MergeInput1Toolbar = new MenuId('MergeToolbar1Toolbar');\n\tstatic readonly MergeInput2Toolbar = new MenuId('MergeToolbar2Toolbar');\n\tstatic readonly MergeBaseToolbar = new MenuId('MergeBaseToolbar');\n\tstatic readonly MergeInputResultToolbar = new MenuId('MergeToolbarResultToolbar');\n\tstatic readonly InlineSuggestionToolbar = new MenuId('InlineSuggestionToolbar');\n\tstatic readonly InlineEditToolbar = new MenuId('InlineEditToolbar');\n\tstatic readonly ChatContext = new MenuId('ChatContext');\n\tstatic readonly ChatCodeBlock = new MenuId('ChatCodeblock');\n\tstatic readonly ChatCompareBlock = new MenuId('ChatCompareBlock');\n\tstatic readonly ChatMessageTitle = new MenuId('ChatMessageTitle');\n\tstatic readonly ChatHistory = new MenuId('ChatHistory');\n\tstatic readonly ChatWelcomeHistoryContext = new MenuId('ChatWelcomeHistoryContext');\n\tstatic readonly ChatMessageFooter = new MenuId('ChatMessageFooter');\n\tstatic readonly ChatExecute = new MenuId('ChatExecute');\n\tstatic readonly ChatExecuteSecondary = new MenuId('ChatExecuteSecondary');\n\tstatic readonly ChatInput = new MenuId('ChatInput');\n\tstatic readonly ChatInputSide = new MenuId('ChatInputSide');\n\tstatic readonly ChatModePicker = new MenuId('ChatModePicker');\n\tstatic readonly ChatEditingWidgetToolbar = new MenuId('ChatEditingWidgetToolbar');\n\tstatic readonly ChatEditingEditorContent = new MenuId('ChatEditingEditorContent');\n\tstatic readonly ChatEditingEditorHunk = new MenuId('ChatEditingEditorHunk');\n\tstatic readonly ChatEditingDeletedNotebookCell = new MenuId('ChatEditingDeletedNotebookCell');\n\tstatic readonly ChatInputAttachmentToolbar = new MenuId('ChatInputAttachmentToolbar');\n\tstatic readonly ChatEditingWidgetModifiedFilesToolbar = new MenuId('ChatEditingWidgetModifiedFilesToolbar');\n\tstatic readonly ChatInputResourceAttachmentContext = new MenuId('ChatInputResourceAttachmentContext');\n\tstatic readonly ChatInputSymbolAttachmentContext = new MenuId('ChatInputSymbolAttachmentContext');\n\tstatic readonly ChatInlineResourceAnchorContext = new MenuId('ChatInlineResourceAnchorContext');\n\tstatic readonly ChatInlineSymbolAnchorContext = new MenuId('ChatInlineSymbolAnchorContext');\n\tstatic readonly ChatMessageCheckpoint: MenuId = new MenuId('ChatMessageCheckpoint');\n\tstatic readonly ChatMessageRestoreCheckpoint: MenuId = new MenuId('ChatMessageRestoreCheckpoint');\n\tstatic readonly ChatEditingCodeBlockContext = new MenuId('ChatEditingCodeBlockContext');\n\tstatic readonly ChatTitleBarMenu = new MenuId('ChatTitleBarMenu');\n\tstatic readonly ChatAttachmentsContext = new MenuId('ChatAttachmentsContext');\n\tstatic readonly ChatToolOutputResourceToolbar = new MenuId('ChatToolOutputResourceToolbar');\n\tstatic readonly ChatTextEditorMenu = new MenuId('ChatTextEditorMenu');\n\tstatic readonly ChatToolOutputResourceContext = new MenuId('ChatToolOutputResourceContext');\n\tstatic readonly ChatMultiDiffContext = new MenuId('ChatMultiDiffContext');\n\tstatic readonly ChatSessionsMenu = new MenuId('ChatSessionsMenu');\n\tstatic readonly ChatConfirmationMenu = new MenuId('ChatConfirmationMenu');\n\tstatic readonly AccessibleView = new MenuId('AccessibleView');\n\tstatic readonly MultiDiffEditorFileToolbar = new MenuId('MultiDiffEditorFileToolbar');\n\tstatic readonly DiffEditorHunkToolbar = new MenuId('DiffEditorHunkToolbar');\n\tstatic readonly DiffEditorSelectionToolbar = new MenuId('DiffEditorSelectionToolbar');\n\n\treadonly id: string;\n\n\t/**\n\t * Create a new `MenuId` with the unique identifier. Will throw if a menu\n\t * with the identifier already exists, use `MenuId.for(ident)` or a unique\n\t * identifier\n\t */\n\tconstructor(identifier: string) {\n\t\tif (MenuId._instances.has(identifier)) {\n\t\t\tthrow new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n\t\t}\n\t\tMenuId._instances.set(identifier, this);\n\t\tthis.id = identifier;\n\t}\n}\n\nexport interface IMenuActionOptions {\n\targ?: any;\n\tshouldForwardArgs?: boolean;\n\trenderShortTitle?: boolean;\n}\n\nexport interface IMenuChangeEvent {\n\treadonly menu: IMenu;\n\treadonly isStructuralChange: boolean;\n\treadonly isToggleChange: boolean;\n\treadonly isEnablementChange: boolean;\n}\n\nexport interface IMenu extends IDisposable {\n\treadonly onDidChange: Event<IMenuChangeEvent>;\n\tgetActions(options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n}\n\nexport const IMenuService = createDecorator<IMenuService>('menuService');\n\nexport interface IMenuCreateOptions {\n\temitEventsForSubmenuChanges?: boolean;\n\teventDebounceDelay?: number;\n}\n\nexport interface IMenuService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Consider using getMenuActions if you don't need to listen to events.\n\t *\n\t * Create a new menu for the given menu identifier. A menu sends events when it's entries\n\t * have changed (placement, enablement, checked-state). By default it does not send events for\n\t * submenu entries. That is more expensive and must be explicitly enabled with the\n\t * `emitEventsForSubmenuChanges` flag.\n\t */\n\tcreateMenu(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuCreateOptions): IMenu;\n\n\t/**\n\t * Creates a new menu, gets the actions, and then disposes of the menu.\n\t */\n\tgetMenuActions(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n\n\t/**\n\t * Reset **all** menu item hidden states.\n\t */\n\tresetHiddenStates(): void;\n\n\t/**\n\t * Reset the menu's hidden states.\n\t */\n\tresetHiddenStates(menuIds: readonly MenuId[] | undefined): void;\n}\n\ntype ICommandsMap = Map<string, ICommandAction>;\n\nexport interface IMenuRegistryChangeEvent {\n\thas(id: MenuId): boolean;\n}\n\nclass MenuRegistryChangeEvent {\n\n\tprivate static _all = new Map<MenuId, MenuRegistryChangeEvent>();\n\n\tstatic for(id: MenuId): MenuRegistryChangeEvent {\n\t\tlet value = this._all.get(id);\n\t\tif (!value) {\n\t\t\tvalue = new MenuRegistryChangeEvent(id);\n\t\t\tthis._all.set(id, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tstatic merge(events: IMenuRegistryChangeEvent[]): IMenuRegistryChangeEvent {\n\t\tconst ids = new Set<MenuId>();\n\t\tfor (const item of events) {\n\t\t\tif (item instanceof MenuRegistryChangeEvent) {\n\t\t\t\tids.add(item.id);\n\t\t\t}\n\t\t}\n\t\treturn ids;\n\t}\n\n\treadonly has: (id: MenuId) => boolean;\n\n\tprivate constructor(private readonly id: MenuId) {\n\t\tthis.has = candidate => candidate === id;\n\t}\n}\n\nexport interface IMenuRegistry {\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent>;\n\taddCommand(userCommand: ICommandAction): IDisposable;\n\tappendMenuItem(menu: MenuId, item: IMenuItem | ISubmenuItem): IDisposable;\n\tgetMenuItems(loc: MenuId): Array<IMenuItem | ISubmenuItem>;\n}\n\nexport const MenuRegistry: IMenuRegistry = new class implements IMenuRegistry {\n\n\tprivate readonly _commands = new Map<string, ICommandAction>();\n\tprivate readonly _menuItems = new Map<MenuId, LinkedList<IMenuItem | ISubmenuItem>>();\n\tprivate readonly _onDidChangeMenu = new MicrotaskEmitter<IMenuRegistryChangeEvent>({\n\t\tmerge: MenuRegistryChangeEvent.merge\n\t});\n\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent> = this._onDidChangeMenu.event;\n\n\taddCommand(command: ICommandAction): IDisposable {\n\t\tthis._commands.set(command.id, command);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\tif (this._commands.delete(command.id)) {\n\t\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\t\t\t}\n\t\t}));\n\t}\n\n\tgetCommand(id: string): ICommandAction | undefined {\n\t\treturn this._commands.get(id);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst map = new Map<string, ICommandAction>();\n\t\tthis._commands.forEach((value, key) => map.set(key, value));\n\t\treturn map;\n\t}\n\n\tappendMenuItem(id: MenuId, item: IMenuItem | ISubmenuItem): IDisposable {\n\t\tlet list = this._menuItems.get(id);\n\t\tif (!list) {\n\t\t\tlist = new LinkedList();\n\t\t\tthis._menuItems.set(id, list);\n\t\t}\n\t\tconst rm = list.push(item);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\trm();\n\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\t}));\n\t}\n\n\tappendMenuItems(items: Iterable<{ id: MenuId; item: IMenuItem | ISubmenuItem }>): IDisposable {\n\t\tconst result = new DisposableStore();\n\t\tfor (const { id, item } of items) {\n\t\t\tresult.add(this.appendMenuItem(id, item));\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMenuItems(id: MenuId): Array<IMenuItem | ISubmenuItem> {\n\t\tlet result: Array<IMenuItem | ISubmenuItem>;\n\t\tif (this._menuItems.has(id)) {\n\t\t\tresult = [...this._menuItems.get(id)!];\n\t\t} else {\n\t\t\tresult = [];\n\t\t}\n\t\tif (id === MenuId.CommandPalette) {\n\t\t\t// CommandPalette is special because it shows\n\t\t\t// all commands by default\n\t\t\tthis._appendImplicitItems(result);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _appendImplicitItems(result: Array<IMenuItem | ISubmenuItem>) {\n\t\tconst set = new Set<string>();\n\n\t\tfor (const item of result) {\n\t\t\tif (isIMenuItem(item)) {\n\t\t\t\tset.add(item.command.id);\n\t\t\t\tif (item.alt) {\n\t\t\t\t\tset.add(item.alt.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._commands.forEach((command, id) => {\n\t\t\tif (!set.has(id)) {\n\t\t\t\tresult.push({ command });\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport class SubmenuItemAction extends SubmenuAction {\n\n\tconstructor(\n\t\treadonly item: ISubmenuItem,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\tactions: readonly IAction[],\n\t) {\n\t\tsuper(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, actions, 'submenu');\n\t}\n}\n\nexport interface IMenuItemHide {\n\treadonly isHidden: boolean;\n\treadonly hide: IAction;\n\treadonly toggle: IAction;\n}\n\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nexport class MenuItemAction implements IAction {\n\n\tstatic label(action: ICommandAction, options?: IMenuActionOptions): string {\n\t\treturn options?.renderShortTitle && action.shortTitle\n\t\t\t? (typeof action.shortTitle === 'string' ? action.shortTitle : action.shortTitle.value)\n\t\t\t: (typeof action.title === 'string' ? action.title : action.title.value);\n\t}\n\n\treadonly item: ICommandAction;\n\treadonly alt: MenuItemAction | undefined;\n\n\tprivate readonly _options: IMenuActionOptions | undefined;\n\n\treadonly id: string;\n\treadonly label: string;\n\treadonly tooltip: string;\n\treadonly class: string | undefined;\n\treadonly enabled: boolean;\n\treadonly checked?: boolean;\n\n\tconstructor(\n\t\titem: ICommandAction,\n\t\talt: ICommandAction | undefined,\n\t\toptions: IMenuActionOptions | undefined,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\treadonly menuKeybinding: IAction | undefined,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@ICommandService private _commandService: ICommandService\n\t) {\n\t\tthis.id = item.id;\n\t\tthis.label = MenuItemAction.label(item, options);\n\t\tthis.tooltip = (typeof item.tooltip === 'string' ? item.tooltip : item.tooltip?.value) ?? '';\n\t\tthis.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n\t\tthis.checked = undefined;\n\n\t\tlet icon: ThemeIcon | undefined;\n\n\t\tif (item.toggled) {\n\t\t\tconst toggled = ((item.toggled as { condition: ContextKeyExpression }).condition ? item.toggled : { condition: item.toggled }) as {\n\t\t\t\tcondition: ContextKeyExpression; icon?: Icon; tooltip?: string | ILocalizedString; title?: string | ILocalizedString;\n\t\t\t};\n\t\t\tthis.checked = contextKeyService.contextMatchesRules(toggled.condition);\n\t\t\tif (this.checked && toggled.tooltip) {\n\t\t\t\tthis.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n\t\t\t}\n\n\t\t\tif (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {\n\t\t\t\ticon = toggled.icon;\n\t\t\t}\n\n\t\t\tif (this.checked && toggled.title) {\n\t\t\t\tthis.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n\t\t\t}\n\t\t}\n\n\t\tif (!icon) {\n\t\t\ticon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : undefined;\n\t\t}\n\n\t\tthis.item = item;\n\t\tthis.alt = alt ? new MenuItemAction(alt, undefined, options, hideActions, undefined, contextKeyService, _commandService) : undefined;\n\t\tthis._options = options;\n\t\tthis.class = icon && ThemeIcon.asClassName(icon);\n\n\t}\n\n\trun(...args: any[]): Promise<void> {\n\t\tlet runArgs: any[] = [];\n\n\t\tif (this._options?.arg) {\n\t\t\trunArgs = [...runArgs, this._options.arg];\n\t\t}\n\n\t\tif (this._options?.shouldForwardArgs) {\n\t\t\trunArgs = [...runArgs, ...args];\n\t\t}\n\n\t\treturn this._commandService.executeCommand(this.id, ...runArgs);\n\t}\n}\n\n//#region --- IAction2\n\ntype OneOrN<T> = T | T[];\n\ninterface IAction2CommonOptions extends ICommandAction {\n\t/**\n\t * One or many menu items.\n\t */\n\tmenu?: OneOrN<{ id: MenuId; precondition?: null } & Omit<IMenuItem, 'command'>>;\n\n\t/**\n\t * One keybinding.\n\t */\n\tkeybinding?: OneOrN<Omit<IKeybindingRule, 'id'>>;\n}\n\ninterface IBaseAction2Options extends IAction2CommonOptions {\n\n\t/**\n\t * This type is used when an action is not going to show up in the command palette.\n\t * In that case, it's able to use a string for the `title` and `category` properties.\n\t */\n\tf1?: false;\n}\n\nexport interface ICommandPaletteOptions extends IAction2CommonOptions {\n\n\t/**\n\t * The title of the command that will be displayed in the command palette after the category.\n\t * This overrides {@link ICommandAction.title} to ensure a string isn't used so that the title\n\t * includes the localized value and the original value for users using language packs.\n\t */\n\ttitle: ICommandActionTitle;\n\n\t/**\n\t * The category of the command that will be displayed in the command palette before the title suffixed.\n\t * with a colon This overrides {@link ICommandAction.title} to ensure a string isn't used so that\n\t * the title includes the localized value and the original value for users using language packs.\n\t */\n\tcategory?: keyof typeof Categories | ILocalizedString;\n\n\t/**\n\t * Shorthand to add this command to the command palette. Note: this is not the only way to declare that\n\t * a command should be in the command palette... however, enforcing ILocalizedString in the other scenarios\n\t * is much more challenging and this gets us most of the way there.\n\t */\n\tf1: true;\n}\n\nexport type IAction2Options = ICommandPaletteOptions | IBaseAction2Options;\n\nexport interface IAction2F1RequiredOptions {\n\ttitle: ICommandActionTitle;\n}\n\nexport abstract class Action2 {\n\tconstructor(readonly desc: Readonly<IAction2Options>) { }\n\tabstract run(accessor: ServicesAccessor, ...args: any[]): void;\n}\n\nexport function registerAction2(ctor: { new(): Action2 }): IDisposable {\n\tconst disposables: IDisposable[] = []; // not using `DisposableStore` to reduce startup perf cost\n\tconst action = new ctor();\n\n\tconst { f1, menu, keybinding, ...command } = action.desc;\n\n\tif (CommandsRegistry.getCommand(command.id)) {\n\t\tthrow new Error(`Cannot register two commands with the same id: ${command.id}`);\n\t}\n\n\t// command\n\tdisposables.push(CommandsRegistry.registerCommand({\n\t\tid: command.id,\n\t\thandler: (accessor, ...args) => action.run(accessor, ...args),\n\t\tmetadata: command.metadata ?? { description: action.desc.title }\n\t}));\n\n\t// menu\n\tif (Array.isArray(menu)) {\n\t\tfor (const item of menu) {\n\t\t\tdisposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? undefined : command.precondition }, ...item }));\n\t\t}\n\n\t} else if (menu) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? undefined : command.precondition }, ...menu }));\n\t}\n\tif (f1) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n\t\tdisposables.push(MenuRegistry.addCommand(command));\n\t}\n\n\t// keybinding\n\tif (Array.isArray(keybinding)) {\n\t\tfor (const item of keybinding) {\n\t\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t\t...item,\n\t\t\t\tid: command.id,\n\t\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n\t\t\t}));\n\t\t}\n\t} else if (keybinding) {\n\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t...keybinding,\n\t\t\tid: command.id,\n\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n\t\t}));\n\t}\n\n\treturn {\n\t\tdispose() {\n\t\t\tdispose(disposables);\n\t\t}\n\t};\n}\n//#endregion\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/actions/common/actions.ts","vs/platform/actions/common/actions.ts"],"names":[],"mappings":"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","file":"actions.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 { IAction, SubmenuAction } from '../../../base/common/actions.js';\nimport { Event, MicrotaskEmitter } from '../../../base/common/event.js';\nimport { DisposableStore, dispose, IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { ICommandAction, ICommandActionTitle, Icon, ILocalizedString } from '../../action/common/action.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\nimport { CommandsRegistry, ICommandService } from '../../commands/common/commands.js';\nimport { ContextKeyExpr, ContextKeyExpression, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingRule, KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\n\nexport interface IMenuItem {\n\tcommand: ICommandAction;\n\talt?: ICommandAction;\n\t/**\n\t * Menu item is hidden if this expression returns false.\n\t */\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisHiddenByDefault?: boolean;\n}\n\nexport interface ISubmenuItem {\n\ttitle: string | ICommandActionTitle;\n\tsubmenu: MenuId;\n\ticon?: Icon;\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisSelection?: boolean;\n\trememberDefaultAction?: boolean;\t// for dropdown menu: if true the last executed action is remembered as the default action\n}\n\nexport function isIMenuItem(item: any): item is IMenuItem {\n\treturn (item as IMenuItem).command !== undefined;\n}\n\nexport function isISubmenuItem(item: any): item is ISubmenuItem {\n\treturn (item as ISubmenuItem).submenu !== undefined;\n}\n\nexport class MenuId {\n\n\tprivate static readonly _instances = new Map<string, MenuId>();\n\n\tstatic readonly CommandPalette = new MenuId('CommandPalette');\n\tstatic readonly DebugBreakpointsContext = new MenuId('DebugBreakpointsContext');\n\tstatic readonly DebugCallStackContext = new MenuId('DebugCallStackContext');\n\tstatic readonly DebugConsoleContext = new MenuId('DebugConsoleContext');\n\tstatic readonly DebugVariablesContext = new MenuId('DebugVariablesContext');\n\tstatic readonly NotebookVariablesContext = new MenuId('NotebookVariablesContext');\n\tstatic readonly DebugHoverContext = new MenuId('DebugHoverContext');\n\tstatic readonly DebugWatchContext = new MenuId('DebugWatchContext');\n\tstatic readonly DebugToolBar = new MenuId('DebugToolBar');\n\tstatic readonly DebugToolBarStop = new MenuId('DebugToolBarStop');\n\tstatic readonly DebugDisassemblyContext = new MenuId('DebugDisassemblyContext');\n\tstatic readonly DebugCallStackToolbar = new MenuId('DebugCallStackToolbar');\n\tstatic readonly DebugCreateConfiguration = new MenuId('DebugCreateConfiguration');\n\tstatic readonly EditorContext = new MenuId('EditorContext');\n\tstatic readonly SimpleEditorContext = new MenuId('SimpleEditorContext');\n\tstatic readonly EditorContent = new MenuId('EditorContent');\n\tstatic readonly EditorLineNumberContext = new MenuId('EditorLineNumberContext');\n\tstatic readonly EditorContextCopy = new MenuId('EditorContextCopy');\n\tstatic readonly EditorContextPeek = new MenuId('EditorContextPeek');\n\tstatic readonly EditorContextShare = new MenuId('EditorContextShare');\n\tstatic readonly EditorTitle = new MenuId('EditorTitle');\n\tstatic readonly CompactWindowEditorTitle = new MenuId('CompactWindowEditorTitle');\n\tstatic readonly EditorTitleRun = new MenuId('EditorTitleRun');\n\tstatic readonly EditorTitleContext = new MenuId('EditorTitleContext');\n\tstatic readonly EditorTitleContextShare = new MenuId('EditorTitleContextShare');\n\tstatic readonly EmptyEditorGroup = new MenuId('EmptyEditorGroup');\n\tstatic readonly EmptyEditorGroupContext = new MenuId('EmptyEditorGroupContext');\n\tstatic readonly EditorTabsBarContext = new MenuId('EditorTabsBarContext');\n\tstatic readonly EditorTabsBarShowTabsSubmenu = new MenuId('EditorTabsBarShowTabsSubmenu');\n\tstatic readonly EditorTabsBarShowTabsZenModeSubmenu = new MenuId('EditorTabsBarShowTabsZenModeSubmenu');\n\tstatic readonly EditorActionsPositionSubmenu = new MenuId('EditorActionsPositionSubmenu');\n\tstatic readonly EditorSplitMoveSubmenu = new MenuId('EditorSplitMoveSubmenu');\n\tstatic readonly ExplorerContext = new MenuId('ExplorerContext');\n\tstatic readonly ExplorerContextShare = new MenuId('ExplorerContextShare');\n\tstatic readonly ExtensionContext = new MenuId('ExtensionContext');\n\tstatic readonly ExtensionEditorContextMenu = new MenuId('ExtensionEditorContextMenu');\n\tstatic readonly GlobalActivity = new MenuId('GlobalActivity');\n\tstatic readonly CommandCenter = new MenuId('CommandCenter');\n\tstatic readonly CommandCenterCenter = new MenuId('CommandCenterCenter');\n\tstatic readonly LayoutControlMenuSubmenu = new MenuId('LayoutControlMenuSubmenu');\n\tstatic readonly LayoutControlMenu = new MenuId('LayoutControlMenu');\n\tstatic readonly MenubarMainMenu = new MenuId('MenubarMainMenu');\n\tstatic readonly MenubarAppearanceMenu = new MenuId('MenubarAppearanceMenu');\n\tstatic readonly MenubarDebugMenu = new MenuId('MenubarDebugMenu');\n\tstatic readonly MenubarEditMenu = new MenuId('MenubarEditMenu');\n\tstatic readonly MenubarCopy = new MenuId('MenubarCopy');\n\tstatic readonly MenubarFileMenu = new MenuId('MenubarFileMenu');\n\tstatic readonly MenubarGoMenu = new MenuId('MenubarGoMenu');\n\tstatic readonly MenubarHelpMenu = new MenuId('MenubarHelpMenu');\n\tstatic readonly MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');\n\tstatic readonly MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');\n\tstatic readonly PanelAlignmentMenu = new MenuId('PanelAlignmentMenu');\n\tstatic readonly PanelPositionMenu = new MenuId('PanelPositionMenu');\n\tstatic readonly ActivityBarPositionMenu = new MenuId('ActivityBarPositionMenu');\n\tstatic readonly MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');\n\tstatic readonly MenubarRecentMenu = new MenuId('MenubarRecentMenu');\n\tstatic readonly MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\n\tstatic readonly MenubarShare = new MenuId('MenubarShare');\n\tstatic readonly MenubarSwitchEditorMenu = new MenuId('MenubarSwitchEditorMenu');\n\tstatic readonly MenubarSwitchGroupMenu = new MenuId('MenubarSwitchGroupMenu');\n\tstatic readonly MenubarTerminalMenu = new MenuId('MenubarTerminalMenu');\n\tstatic readonly MenubarTerminalSuggestStatusMenu = new MenuId('MenubarTerminalSuggestStatusMenu');\n\tstatic readonly MenubarViewMenu = new MenuId('MenubarViewMenu');\n\tstatic readonly MenubarHomeMenu = new MenuId('MenubarHomeMenu');\n\tstatic readonly OpenEditorsContext = new MenuId('OpenEditorsContext');\n\tstatic readonly OpenEditorsContextShare = new MenuId('OpenEditorsContextShare');\n\tstatic readonly ProblemsPanelContext = new MenuId('ProblemsPanelContext');\n\tstatic readonly SCMInputBox = new MenuId('SCMInputBox');\n\tstatic readonly SCMChangeContext = new MenuId('SCMChangeContext');\n\tstatic readonly SCMResourceContext = new MenuId('SCMResourceContext');\n\tstatic readonly SCMResourceContextShare = new MenuId('SCMResourceContextShare');\n\tstatic readonly SCMResourceFolderContext = new MenuId('SCMResourceFolderContext');\n\tstatic readonly SCMResourceGroupContext = new MenuId('SCMResourceGroupContext');\n\tstatic readonly SCMSourceControl = new MenuId('SCMSourceControl');\n\tstatic readonly SCMSourceControlInline = new MenuId('SCMSourceControlInline');\n\tstatic readonly SCMSourceControlTitle = new MenuId('SCMSourceControlTitle');\n\tstatic readonly SCMHistoryTitle = new MenuId('SCMHistoryTitle');\n\tstatic readonly SCMHistoryItemContext = new MenuId('SCMHistoryItemContext');\n\tstatic readonly SCMHistoryItemChangeContext = new MenuId('SCMHistoryItemChangeContext');\n\tstatic readonly SCMHistoryItemHover = new MenuId('SCMHistoryItemHover');\n\tstatic readonly SCMHistoryItemRefContext = new MenuId('SCMHistoryItemRefContext');\n\tstatic readonly SCMQuickDiffDecorations = new MenuId('SCMQuickDiffDecorations');\n\tstatic readonly SCMTitle = new MenuId('SCMTitle');\n\tstatic readonly SearchContext = new MenuId('SearchContext');\n\tstatic readonly SearchActionMenu = new MenuId('SearchActionContext');\n\tstatic readonly StatusBarWindowIndicatorMenu = new MenuId('StatusBarWindowIndicatorMenu');\n\tstatic readonly StatusBarRemoteIndicatorMenu = new MenuId('StatusBarRemoteIndicatorMenu');\n\tstatic readonly StickyScrollContext = new MenuId('StickyScrollContext');\n\tstatic readonly TestItem = new MenuId('TestItem');\n\tstatic readonly TestItemGutter = new MenuId('TestItemGutter');\n\tstatic readonly TestProfilesContext = new MenuId('TestProfilesContext');\n\tstatic readonly TestMessageContext = new MenuId('TestMessageContext');\n\tstatic readonly TestMessageContent = new MenuId('TestMessageContent');\n\tstatic readonly TestPeekElement = new MenuId('TestPeekElement');\n\tstatic readonly TestPeekTitle = new MenuId('TestPeekTitle');\n\tstatic readonly TestCallStack = new MenuId('TestCallStack');\n\tstatic readonly TestCoverageFilterItem = new MenuId('TestCoverageFilterItem');\n\tstatic readonly TouchBarContext = new MenuId('TouchBarContext');\n\tstatic readonly TitleBar = new MenuId('TitleBar');\n\tstatic readonly TitleBarContext = new MenuId('TitleBarContext');\n\tstatic readonly TitleBarTitleContext = new MenuId('TitleBarTitleContext');\n\tstatic readonly TunnelContext = new MenuId('TunnelContext');\n\tstatic readonly TunnelPrivacy = new MenuId('TunnelPrivacy');\n\tstatic readonly TunnelProtocol = new MenuId('TunnelProtocol');\n\tstatic readonly TunnelPortInline = new MenuId('TunnelInline');\n\tstatic readonly TunnelTitle = new MenuId('TunnelTitle');\n\tstatic readonly TunnelLocalAddressInline = new MenuId('TunnelLocalAddressInline');\n\tstatic readonly TunnelOriginInline = new MenuId('TunnelOriginInline');\n\tstatic readonly ViewItemContext = new MenuId('ViewItemContext');\n\tstatic readonly ViewContainerTitle = new MenuId('ViewContainerTitle');\n\tstatic readonly ViewContainerTitleContext = new MenuId('ViewContainerTitleContext');\n\tstatic readonly ViewTitle = new MenuId('ViewTitle');\n\tstatic readonly ViewTitleContext = new MenuId('ViewTitleContext');\n\tstatic readonly CommentEditorActions = new MenuId('CommentEditorActions');\n\tstatic readonly CommentThreadTitle = new MenuId('CommentThreadTitle');\n\tstatic readonly CommentThreadActions = new MenuId('CommentThreadActions');\n\tstatic readonly CommentThreadAdditionalActions = new MenuId('CommentThreadAdditionalActions');\n\tstatic readonly CommentThreadTitleContext = new MenuId('CommentThreadTitleContext');\n\tstatic readonly CommentThreadCommentContext = new MenuId('CommentThreadCommentContext');\n\tstatic readonly CommentTitle = new MenuId('CommentTitle');\n\tstatic readonly CommentActions = new MenuId('CommentActions');\n\tstatic readonly CommentsViewThreadActions = new MenuId('CommentsViewThreadActions');\n\tstatic readonly InteractiveToolbar = new MenuId('InteractiveToolbar');\n\tstatic readonly InteractiveCellTitle = new MenuId('InteractiveCellTitle');\n\tstatic readonly InteractiveCellDelete = new MenuId('InteractiveCellDelete');\n\tstatic readonly InteractiveCellExecute = new MenuId('InteractiveCellExecute');\n\tstatic readonly InteractiveInputExecute = new MenuId('InteractiveInputExecute');\n\tstatic readonly InteractiveInputConfig = new MenuId('InteractiveInputConfig');\n\tstatic readonly ReplInputExecute = new MenuId('ReplInputExecute');\n\tstatic readonly IssueReporter = new MenuId('IssueReporter');\n\tstatic readonly NotebookToolbar = new MenuId('NotebookToolbar');\n\tstatic readonly NotebookToolbarContext = new MenuId('NotebookToolbarContext');\n\tstatic readonly NotebookStickyScrollContext = new MenuId('NotebookStickyScrollContext');\n\tstatic readonly NotebookCellTitle = new MenuId('NotebookCellTitle');\n\tstatic readonly NotebookCellDelete = new MenuId('NotebookCellDelete');\n\tstatic readonly NotebookCellInsert = new MenuId('NotebookCellInsert');\n\tstatic readonly NotebookCellBetween = new MenuId('NotebookCellBetween');\n\tstatic readonly NotebookCellListTop = new MenuId('NotebookCellTop');\n\tstatic readonly NotebookCellExecute = new MenuId('NotebookCellExecute');\n\tstatic readonly NotebookCellExecuteGoTo = new MenuId('NotebookCellExecuteGoTo');\n\tstatic readonly NotebookCellExecutePrimary = new MenuId('NotebookCellExecutePrimary');\n\tstatic readonly NotebookDiffCellInputTitle = new MenuId('NotebookDiffCellInputTitle');\n\tstatic readonly NotebookDiffDocumentMetadata = new MenuId('NotebookDiffDocumentMetadata');\n\tstatic readonly NotebookDiffCellMetadataTitle = new MenuId('NotebookDiffCellMetadataTitle');\n\tstatic readonly NotebookDiffCellOutputsTitle = new MenuId('NotebookDiffCellOutputsTitle');\n\tstatic readonly NotebookOutputToolbar = new MenuId('NotebookOutputToolbar');\n\tstatic readonly NotebookOutlineFilter = new MenuId('NotebookOutlineFilter');\n\tstatic readonly NotebookOutlineActionMenu = new MenuId('NotebookOutlineActionMenu');\n\tstatic readonly NotebookEditorLayoutConfigure = new MenuId('NotebookEditorLayoutConfigure');\n\tstatic readonly NotebookKernelSource = new MenuId('NotebookKernelSource');\n\tstatic readonly BulkEditTitle = new MenuId('BulkEditTitle');\n\tstatic readonly BulkEditContext = new MenuId('BulkEditContext');\n\tstatic readonly TimelineItemContext = new MenuId('TimelineItemContext');\n\tstatic readonly TimelineTitle = new MenuId('TimelineTitle');\n\tstatic readonly TimelineTitleContext = new MenuId('TimelineTitleContext');\n\tstatic readonly TimelineFilterSubMenu = new MenuId('TimelineFilterSubMenu');\n\tstatic readonly AccountsContext = new MenuId('AccountsContext');\n\tstatic readonly SidebarTitle = new MenuId('SidebarTitle');\n\tstatic readonly PanelTitle = new MenuId('PanelTitle');\n\tstatic readonly AuxiliaryBarTitle = new MenuId('AuxiliaryBarTitle');\n\tstatic readonly TerminalInstanceContext = new MenuId('TerminalInstanceContext');\n\tstatic readonly TerminalEditorInstanceContext = new MenuId('TerminalEditorInstanceContext');\n\tstatic readonly TerminalNewDropdownContext = new MenuId('TerminalNewDropdownContext');\n\tstatic readonly TerminalTabContext = new MenuId('TerminalTabContext');\n\tstatic readonly TerminalTabEmptyAreaContext = new MenuId('TerminalTabEmptyAreaContext');\n\tstatic readonly TerminalStickyScrollContext = new MenuId('TerminalStickyScrollContext');\n\tstatic readonly WebviewContext = new MenuId('WebviewContext');\n\tstatic readonly InlineCompletionsActions = new MenuId('InlineCompletionsActions');\n\tstatic readonly InlineEditsActions = new MenuId('InlineEditsActions');\n\tstatic readonly NewFile = new MenuId('NewFile');\n\tstatic readonly MergeInput1Toolbar = new MenuId('MergeToolbar1Toolbar');\n\tstatic readonly MergeInput2Toolbar = new MenuId('MergeToolbar2Toolbar');\n\tstatic readonly MergeBaseToolbar = new MenuId('MergeBaseToolbar');\n\tstatic readonly MergeInputResultToolbar = new MenuId('MergeToolbarResultToolbar');\n\tstatic readonly InlineSuggestionToolbar = new MenuId('InlineSuggestionToolbar');\n\tstatic readonly InlineEditToolbar = new MenuId('InlineEditToolbar');\n\tstatic readonly ChatContext = new MenuId('ChatContext');\n\tstatic readonly ChatCodeBlock = new MenuId('ChatCodeblock');\n\tstatic readonly ChatCompareBlock = new MenuId('ChatCompareBlock');\n\tstatic readonly ChatMessageTitle = new MenuId('ChatMessageTitle');\n\tstatic readonly ChatHistory = new MenuId('ChatHistory');\n\tstatic readonly ChatWelcomeHistoryContext = new MenuId('ChatWelcomeHistoryContext');\n\tstatic readonly ChatMessageFooter = new MenuId('ChatMessageFooter');\n\tstatic readonly ChatExecute = new MenuId('ChatExecute');\n\tstatic readonly ChatExecuteSecondary = new MenuId('ChatExecuteSecondary');\n\tstatic readonly ChatInput = new MenuId('ChatInput');\n\tstatic readonly ChatInputSide = new MenuId('ChatInputSide');\n\tstatic readonly ChatModePicker = new MenuId('ChatModePicker');\n\tstatic readonly ChatEditingWidgetToolbar = new MenuId('ChatEditingWidgetToolbar');\n\tstatic readonly ChatEditingEditorContent = new MenuId('ChatEditingEditorContent');\n\tstatic readonly ChatEditingEditorHunk = new MenuId('ChatEditingEditorHunk');\n\tstatic readonly ChatEditingDeletedNotebookCell = new MenuId('ChatEditingDeletedNotebookCell');\n\tstatic readonly ChatInputAttachmentToolbar = new MenuId('ChatInputAttachmentToolbar');\n\tstatic readonly ChatEditingWidgetModifiedFilesToolbar = new MenuId('ChatEditingWidgetModifiedFilesToolbar');\n\tstatic readonly ChatInputResourceAttachmentContext = new MenuId('ChatInputResourceAttachmentContext');\n\tstatic readonly ChatInputSymbolAttachmentContext = new MenuId('ChatInputSymbolAttachmentContext');\n\tstatic readonly ChatInlineResourceAnchorContext = new MenuId('ChatInlineResourceAnchorContext');\n\tstatic readonly ChatInlineSymbolAnchorContext = new MenuId('ChatInlineSymbolAnchorContext');\n\tstatic readonly ChatMessageCheckpoint: MenuId = new MenuId('ChatMessageCheckpoint');\n\tstatic readonly ChatMessageRestoreCheckpoint: MenuId = new MenuId('ChatMessageRestoreCheckpoint');\n\tstatic readonly ChatEditingCodeBlockContext = new MenuId('ChatEditingCodeBlockContext');\n\tstatic readonly ChatTitleBarMenu = new MenuId('ChatTitleBarMenu');\n\tstatic readonly ChatAttachmentsContext = new MenuId('ChatAttachmentsContext');\n\tstatic readonly ChatToolOutputResourceToolbar = new MenuId('ChatToolOutputResourceToolbar');\n\tstatic readonly ChatTextEditorMenu = new MenuId('ChatTextEditorMenu');\n\tstatic readonly ChatToolOutputResourceContext = new MenuId('ChatToolOutputResourceContext');\n\tstatic readonly ChatMultiDiffContext = new MenuId('ChatMultiDiffContext');\n\tstatic readonly ChatSessionsMenu = new MenuId('ChatSessionsMenu');\n\tstatic readonly ChatConfirmationMenu = new MenuId('ChatConfirmationMenu');\n\tstatic readonly AccessibleView = new MenuId('AccessibleView');\n\tstatic readonly MultiDiffEditorFileToolbar = new MenuId('MultiDiffEditorFileToolbar');\n\tstatic readonly DiffEditorHunkToolbar = new MenuId('DiffEditorHunkToolbar');\n\tstatic readonly DiffEditorSelectionToolbar = new MenuId('DiffEditorSelectionToolbar');\n\n\treadonly id: string;\n\n\t/**\n\t * Create a new `MenuId` with the unique identifier. Will throw if a menu\n\t * with the identifier already exists, use `MenuId.for(ident)` or a unique\n\t * identifier\n\t */\n\tconstructor(identifier: string) {\n\t\tif (MenuId._instances.has(identifier)) {\n\t\t\tthrow new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n\t\t}\n\t\tMenuId._instances.set(identifier, this);\n\t\tthis.id = identifier;\n\t}\n}\n\nexport interface IMenuActionOptions {\n\targ?: any;\n\tshouldForwardArgs?: boolean;\n\trenderShortTitle?: boolean;\n}\n\nexport interface IMenuChangeEvent {\n\treadonly menu: IMenu;\n\treadonly isStructuralChange: boolean;\n\treadonly isToggleChange: boolean;\n\treadonly isEnablementChange: boolean;\n}\n\nexport interface IMenu extends IDisposable {\n\treadonly onDidChange: Event<IMenuChangeEvent>;\n\tgetActions(options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n}\n\nexport const IMenuService = createDecorator<IMenuService>('menuService');\n\nexport interface IMenuCreateOptions {\n\temitEventsForSubmenuChanges?: boolean;\n\teventDebounceDelay?: number;\n}\n\nexport interface IMenuService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Consider using getMenuActions if you don't need to listen to events.\n\t *\n\t * Create a new menu for the given menu identifier. A menu sends events when it's entries\n\t * have changed (placement, enablement, checked-state). By default it does not send events for\n\t * submenu entries. That is more expensive and must be explicitly enabled with the\n\t * `emitEventsForSubmenuChanges` flag.\n\t */\n\tcreateMenu(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuCreateOptions): IMenu;\n\n\t/**\n\t * Creates a new menu, gets the actions, and then disposes of the menu.\n\t */\n\tgetMenuActions(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n\n\t/**\n\t * Reset **all** menu item hidden states.\n\t */\n\tresetHiddenStates(): void;\n\n\t/**\n\t * Reset the menu's hidden states.\n\t */\n\tresetHiddenStates(menuIds: readonly MenuId[] | undefined): void;\n}\n\ntype ICommandsMap = Map<string, ICommandAction>;\n\nexport interface IMenuRegistryChangeEvent {\n\thas(id: MenuId): boolean;\n}\n\nclass MenuRegistryChangeEvent {\n\n\tprivate static _all = new Map<MenuId, MenuRegistryChangeEvent>();\n\n\tstatic for(id: MenuId): MenuRegistryChangeEvent {\n\t\tlet value = this._all.get(id);\n\t\tif (!value) {\n\t\t\tvalue = new MenuRegistryChangeEvent(id);\n\t\t\tthis._all.set(id, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tstatic merge(events: IMenuRegistryChangeEvent[]): IMenuRegistryChangeEvent {\n\t\tconst ids = new Set<MenuId>();\n\t\tfor (const item of events) {\n\t\t\tif (item instanceof MenuRegistryChangeEvent) {\n\t\t\t\tids.add(item.id);\n\t\t\t}\n\t\t}\n\t\treturn ids;\n\t}\n\n\treadonly has: (id: MenuId) => boolean;\n\n\tprivate constructor(private readonly id: MenuId) {\n\t\tthis.has = candidate => candidate === id;\n\t}\n}\n\nexport interface IMenuRegistry {\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent>;\n\taddCommand(userCommand: ICommandAction): IDisposable;\n\tappendMenuItem(menu: MenuId, item: IMenuItem | ISubmenuItem): IDisposable;\n\tgetMenuItems(loc: MenuId): Array<IMenuItem | ISubmenuItem>;\n}\n\nexport const MenuRegistry: IMenuRegistry = new class implements IMenuRegistry {\n\n\tprivate readonly _commands = new Map<string, ICommandAction>();\n\tprivate readonly _menuItems = new Map<MenuId, LinkedList<IMenuItem | ISubmenuItem>>();\n\tprivate readonly _onDidChangeMenu = new MicrotaskEmitter<IMenuRegistryChangeEvent>({\n\t\tmerge: MenuRegistryChangeEvent.merge\n\t});\n\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent> = this._onDidChangeMenu.event;\n\n\taddCommand(command: ICommandAction): IDisposable {\n\t\tthis._commands.set(command.id, command);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\tif (this._commands.delete(command.id)) {\n\t\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\t\t\t}\n\t\t}));\n\t}\n\n\tgetCommand(id: string): ICommandAction | undefined {\n\t\treturn this._commands.get(id);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst map = new Map<string, ICommandAction>();\n\t\tthis._commands.forEach((value, key) => map.set(key, value));\n\t\treturn map;\n\t}\n\n\tappendMenuItem(id: MenuId, item: IMenuItem | ISubmenuItem): IDisposable {\n\t\tlet list = this._menuItems.get(id);\n\t\tif (!list) {\n\t\t\tlist = new LinkedList();\n\t\t\tthis._menuItems.set(id, list);\n\t\t}\n\t\tconst rm = list.push(item);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\trm();\n\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\t}));\n\t}\n\n\tappendMenuItems(items: Iterable<{ id: MenuId; item: IMenuItem | ISubmenuItem }>): IDisposable {\n\t\tconst result = new DisposableStore();\n\t\tfor (const { id, item } of items) {\n\t\t\tresult.add(this.appendMenuItem(id, item));\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMenuItems(id: MenuId): Array<IMenuItem | ISubmenuItem> {\n\t\tlet result: Array<IMenuItem | ISubmenuItem>;\n\t\tif (this._menuItems.has(id)) {\n\t\t\tresult = [...this._menuItems.get(id)!];\n\t\t} else {\n\t\t\tresult = [];\n\t\t}\n\t\tif (id === MenuId.CommandPalette) {\n\t\t\t// CommandPalette is special because it shows\n\t\t\t// all commands by default\n\t\t\tthis._appendImplicitItems(result);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _appendImplicitItems(result: Array<IMenuItem | ISubmenuItem>) {\n\t\tconst set = new Set<string>();\n\n\t\tfor (const item of result) {\n\t\t\tif (isIMenuItem(item)) {\n\t\t\t\tset.add(item.command.id);\n\t\t\t\tif (item.alt) {\n\t\t\t\t\tset.add(item.alt.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._commands.forEach((command, id) => {\n\t\t\tif (!set.has(id)) {\n\t\t\t\tresult.push({ command });\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport class SubmenuItemAction extends SubmenuAction {\n\n\tconstructor(\n\t\treadonly item: ISubmenuItem,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\tactions: readonly IAction[],\n\t) {\n\t\tsuper(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, actions, 'submenu');\n\t}\n}\n\nexport interface IMenuItemHide {\n\treadonly isHidden: boolean;\n\treadonly hide: IAction;\n\treadonly toggle: IAction;\n}\n\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nexport class MenuItemAction implements IAction {\n\n\tstatic label(action: ICommandAction, options?: IMenuActionOptions): string {\n\t\treturn options?.renderShortTitle && action.shortTitle\n\t\t\t? (typeof action.shortTitle === 'string' ? action.shortTitle : action.shortTitle.value)\n\t\t\t: (typeof action.title === 'string' ? action.title : action.title.value);\n\t}\n\n\treadonly item: ICommandAction;\n\treadonly alt: MenuItemAction | undefined;\n\n\tprivate readonly _options: IMenuActionOptions | undefined;\n\n\treadonly id: string;\n\treadonly label: string;\n\treadonly tooltip: string;\n\treadonly class: string | undefined;\n\treadonly enabled: boolean;\n\treadonly checked?: boolean;\n\n\tconstructor(\n\t\titem: ICommandAction,\n\t\talt: ICommandAction | undefined,\n\t\toptions: IMenuActionOptions | undefined,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\treadonly menuKeybinding: IAction | undefined,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@ICommandService private _commandService: ICommandService\n\t) {\n\t\tthis.id = item.id;\n\t\tthis.label = MenuItemAction.label(item, options);\n\t\tthis.tooltip = (typeof item.tooltip === 'string' ? item.tooltip : item.tooltip?.value) ?? '';\n\t\tthis.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n\t\tthis.checked = undefined;\n\n\t\tlet icon: ThemeIcon | undefined;\n\n\t\tif (item.toggled) {\n\t\t\tconst toggled = ((item.toggled as { condition: ContextKeyExpression }).condition ? item.toggled : { condition: item.toggled }) as {\n\t\t\t\tcondition: ContextKeyExpression; icon?: Icon; tooltip?: string | ILocalizedString; title?: string | ILocalizedString;\n\t\t\t};\n\t\t\tthis.checked = contextKeyService.contextMatchesRules(toggled.condition);\n\t\t\tif (this.checked && toggled.tooltip) {\n\t\t\t\tthis.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n\t\t\t}\n\n\t\t\tif (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {\n\t\t\t\ticon = toggled.icon;\n\t\t\t}\n\n\t\t\tif (this.checked && toggled.title) {\n\t\t\t\tthis.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n\t\t\t}\n\t\t}\n\n\t\tif (!icon) {\n\t\t\ticon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : undefined;\n\t\t}\n\n\t\tthis.item = item;\n\t\tthis.alt = alt ? new MenuItemAction(alt, undefined, options, hideActions, undefined, contextKeyService, _commandService) : undefined;\n\t\tthis._options = options;\n\t\tthis.class = icon && ThemeIcon.asClassName(icon);\n\n\t}\n\n\trun(...args: unknown[]): Promise<void> {\n\t\tlet runArgs: any[] = [];\n\n\t\tif (this._options?.arg) {\n\t\t\trunArgs = [...runArgs, this._options.arg];\n\t\t}\n\n\t\tif (this._options?.shouldForwardArgs) {\n\t\t\trunArgs = [...runArgs, ...args];\n\t\t}\n\n\t\treturn this._commandService.executeCommand(this.id, ...runArgs);\n\t}\n}\n\n//#region --- IAction2\n\ntype OneOrN<T> = T | T[];\n\ninterface IAction2CommonOptions extends ICommandAction {\n\t/**\n\t * One or many menu items.\n\t */\n\tmenu?: OneOrN<{ id: MenuId; precondition?: null } & Omit<IMenuItem, 'command'>>;\n\n\t/**\n\t * One keybinding.\n\t */\n\tkeybinding?: OneOrN<Omit<IKeybindingRule, 'id'>>;\n}\n\ninterface IBaseAction2Options extends IAction2CommonOptions {\n\n\t/**\n\t * This type is used when an action is not going to show up in the command palette.\n\t * In that case, it's able to use a string for the `title` and `category` properties.\n\t */\n\tf1?: false;\n}\n\nexport interface ICommandPaletteOptions extends IAction2CommonOptions {\n\n\t/**\n\t * The title of the command that will be displayed in the command palette after the category.\n\t * This overrides {@link ICommandAction.title} to ensure a string isn't used so that the title\n\t * includes the localized value and the original value for users using language packs.\n\t */\n\ttitle: ICommandActionTitle;\n\n\t/**\n\t * The category of the command that will be displayed in the command palette before the title suffixed.\n\t * with a colon This overrides {@link ICommandAction.title} to ensure a string isn't used so that\n\t * the title includes the localized value and the original value for users using language packs.\n\t */\n\tcategory?: keyof typeof Categories | ILocalizedString;\n\n\t/**\n\t * Shorthand to add this command to the command palette. Note: this is not the only way to declare that\n\t * a command should be in the command palette... however, enforcing ILocalizedString in the other scenarios\n\t * is much more challenging and this gets us most of the way there.\n\t */\n\tf1: true;\n}\n\nexport type IAction2Options = ICommandPaletteOptions | IBaseAction2Options;\n\nexport interface IAction2F1RequiredOptions {\n\ttitle: ICommandActionTitle;\n}\n\nexport abstract class Action2 {\n\tconstructor(readonly desc: Readonly<IAction2Options>) { }\n\tabstract run(accessor: ServicesAccessor, ...args: unknown[]): void;\n}\n\nexport function registerAction2(ctor: { new(): Action2 }): IDisposable {\n\tconst disposables: IDisposable[] = []; // not using `DisposableStore` to reduce startup perf cost\n\tconst action = new ctor();\n\n\tconst { f1, menu, keybinding, ...command } = action.desc;\n\n\tif (CommandsRegistry.getCommand(command.id)) {\n\t\tthrow new Error(`Cannot register two commands with the same id: ${command.id}`);\n\t}\n\n\t// command\n\tdisposables.push(CommandsRegistry.registerCommand({\n\t\tid: command.id,\n\t\thandler: (accessor, ...args) => action.run(accessor, ...args),\n\t\tmetadata: command.metadata ?? { description: action.desc.title }\n\t}));\n\n\t// menu\n\tif (Array.isArray(menu)) {\n\t\tfor (const item of menu) {\n\t\t\tdisposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? undefined : command.precondition }, ...item }));\n\t\t}\n\n\t} else if (menu) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? undefined : command.precondition }, ...menu }));\n\t}\n\tif (f1) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n\t\tdisposables.push(MenuRegistry.addCommand(command));\n\t}\n\n\t// keybinding\n\tif (Array.isArray(keybinding)) {\n\t\tfor (const item of keybinding) {\n\t\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t\t...item,\n\t\t\t\tid: command.id,\n\t\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n\t\t\t}));\n\t\t}\n\t} else if (keybinding) {\n\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t...keybinding,\n\t\t\tid: command.id,\n\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n\t\t}));\n\t}\n\n\treturn {\n\t\tdispose() {\n\t\t\tdispose(disposables);\n\t\t}\n\t};\n}\n//#endregion\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IAction, SubmenuAction } from '../../../base/common/actions.js';\nimport { Event, MicrotaskEmitter } from '../../../base/common/event.js';\nimport { DisposableStore, dispose, IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { ICommandAction, ICommandActionTitle, Icon, ILocalizedString } from '../../action/common/action.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\nimport { CommandsRegistry, ICommandService } from '../../commands/common/commands.js';\nimport { ContextKeyExpr, ContextKeyExpression, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingRule, KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\n\nexport interface IMenuItem {\n\tcommand: ICommandAction;\n\talt?: ICommandAction;\n\t/**\n\t * Menu item is hidden if this expression returns false.\n\t */\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisHiddenByDefault?: boolean;\n}\n\nexport interface ISubmenuItem {\n\ttitle: string | ICommandActionTitle;\n\tsubmenu: MenuId;\n\ticon?: Icon;\n\twhen?: ContextKeyExpression;\n\tgroup?: 'navigation' | string;\n\torder?: number;\n\tisSelection?: boolean;\n\trememberDefaultAction?: boolean;\t// for dropdown menu: if true the last executed action is remembered as the default action\n}\n\nexport function isIMenuItem(item: any): item is IMenuItem {\n\treturn (item as IMenuItem).command !== undefined;\n}\n\nexport function isISubmenuItem(item: any): item is ISubmenuItem {\n\treturn (item as ISubmenuItem).submenu !== undefined;\n}\n\nexport class MenuId {\n\n\tprivate static readonly _instances = new Map<string, MenuId>();\n\n\tstatic readonly CommandPalette = new MenuId('CommandPalette');\n\tstatic readonly DebugBreakpointsContext = new MenuId('DebugBreakpointsContext');\n\tstatic readonly DebugCallStackContext = new MenuId('DebugCallStackContext');\n\tstatic readonly DebugConsoleContext = new MenuId('DebugConsoleContext');\n\tstatic readonly DebugVariablesContext = new MenuId('DebugVariablesContext');\n\tstatic readonly NotebookVariablesContext = new MenuId('NotebookVariablesContext');\n\tstatic readonly DebugHoverContext = new MenuId('DebugHoverContext');\n\tstatic readonly DebugWatchContext = new MenuId('DebugWatchContext');\n\tstatic readonly DebugToolBar = new MenuId('DebugToolBar');\n\tstatic readonly DebugToolBarStop = new MenuId('DebugToolBarStop');\n\tstatic readonly DebugDisassemblyContext = new MenuId('DebugDisassemblyContext');\n\tstatic readonly DebugCallStackToolbar = new MenuId('DebugCallStackToolbar');\n\tstatic readonly DebugCreateConfiguration = new MenuId('DebugCreateConfiguration');\n\tstatic readonly EditorContext = new MenuId('EditorContext');\n\tstatic readonly SimpleEditorContext = new MenuId('SimpleEditorContext');\n\tstatic readonly EditorContent = new MenuId('EditorContent');\n\tstatic readonly EditorLineNumberContext = new MenuId('EditorLineNumberContext');\n\tstatic readonly EditorContextCopy = new MenuId('EditorContextCopy');\n\tstatic readonly EditorContextPeek = new MenuId('EditorContextPeek');\n\tstatic readonly EditorContextShare = new MenuId('EditorContextShare');\n\tstatic readonly EditorTitle = new MenuId('EditorTitle');\n\tstatic readonly CompactWindowEditorTitle = new MenuId('CompactWindowEditorTitle');\n\tstatic readonly EditorTitleRun = new MenuId('EditorTitleRun');\n\tstatic readonly EditorTitleContext = new MenuId('EditorTitleContext');\n\tstatic readonly EditorTitleContextShare = new MenuId('EditorTitleContextShare');\n\tstatic readonly EmptyEditorGroup = new MenuId('EmptyEditorGroup');\n\tstatic readonly EmptyEditorGroupContext = new MenuId('EmptyEditorGroupContext');\n\tstatic readonly EditorTabsBarContext = new MenuId('EditorTabsBarContext');\n\tstatic readonly EditorTabsBarShowTabsSubmenu = new MenuId('EditorTabsBarShowTabsSubmenu');\n\tstatic readonly EditorTabsBarShowTabsZenModeSubmenu = new MenuId('EditorTabsBarShowTabsZenModeSubmenu');\n\tstatic readonly EditorActionsPositionSubmenu = new MenuId('EditorActionsPositionSubmenu');\n\tstatic readonly EditorSplitMoveSubmenu = new MenuId('EditorSplitMoveSubmenu');\n\tstatic readonly ExplorerContext = new MenuId('ExplorerContext');\n\tstatic readonly ExplorerContextShare = new MenuId('ExplorerContextShare');\n\tstatic readonly ExtensionContext = new MenuId('ExtensionContext');\n\tstatic readonly ExtensionEditorContextMenu = new MenuId('ExtensionEditorContextMenu');\n\tstatic readonly GlobalActivity = new MenuId('GlobalActivity');\n\tstatic readonly CommandCenter = new MenuId('CommandCenter');\n\tstatic readonly CommandCenterCenter = new MenuId('CommandCenterCenter');\n\tstatic readonly LayoutControlMenuSubmenu = new MenuId('LayoutControlMenuSubmenu');\n\tstatic readonly LayoutControlMenu = new MenuId('LayoutControlMenu');\n\tstatic readonly MenubarMainMenu = new MenuId('MenubarMainMenu');\n\tstatic readonly MenubarAppearanceMenu = new MenuId('MenubarAppearanceMenu');\n\tstatic readonly MenubarDebugMenu = new MenuId('MenubarDebugMenu');\n\tstatic readonly MenubarEditMenu = new MenuId('MenubarEditMenu');\n\tstatic readonly MenubarCopy = new MenuId('MenubarCopy');\n\tstatic readonly MenubarFileMenu = new MenuId('MenubarFileMenu');\n\tstatic readonly MenubarGoMenu = new MenuId('MenubarGoMenu');\n\tstatic readonly MenubarHelpMenu = new MenuId('MenubarHelpMenu');\n\tstatic readonly MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');\n\tstatic readonly MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');\n\tstatic readonly PanelAlignmentMenu = new MenuId('PanelAlignmentMenu');\n\tstatic readonly PanelPositionMenu = new MenuId('PanelPositionMenu');\n\tstatic readonly ActivityBarPositionMenu = new MenuId('ActivityBarPositionMenu');\n\tstatic readonly MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');\n\tstatic readonly MenubarRecentMenu = new MenuId('MenubarRecentMenu');\n\tstatic readonly MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\n\tstatic readonly MenubarShare = new MenuId('MenubarShare');\n\tstatic readonly MenubarSwitchEditorMenu = new MenuId('MenubarSwitchEditorMenu');\n\tstatic readonly MenubarSwitchGroupMenu = new MenuId('MenubarSwitchGroupMenu');\n\tstatic readonly MenubarTerminalMenu = new MenuId('MenubarTerminalMenu');\n\tstatic readonly MenubarTerminalSuggestStatusMenu = new MenuId('MenubarTerminalSuggestStatusMenu');\n\tstatic readonly MenubarViewMenu = new MenuId('MenubarViewMenu');\n\tstatic readonly MenubarHomeMenu = new MenuId('MenubarHomeMenu');\n\tstatic readonly OpenEditorsContext = new MenuId('OpenEditorsContext');\n\tstatic readonly OpenEditorsContextShare = new MenuId('OpenEditorsContextShare');\n\tstatic readonly ProblemsPanelContext = new MenuId('ProblemsPanelContext');\n\tstatic readonly SCMInputBox = new MenuId('SCMInputBox');\n\tstatic readonly SCMChangeContext = new MenuId('SCMChangeContext');\n\tstatic readonly SCMResourceContext = new MenuId('SCMResourceContext');\n\tstatic readonly SCMResourceContextShare = new MenuId('SCMResourceContextShare');\n\tstatic readonly SCMResourceFolderContext = new MenuId('SCMResourceFolderContext');\n\tstatic readonly SCMResourceGroupContext = new MenuId('SCMResourceGroupContext');\n\tstatic readonly SCMSourceControl = new MenuId('SCMSourceControl');\n\tstatic readonly SCMSourceControlInline = new MenuId('SCMSourceControlInline');\n\tstatic readonly SCMSourceControlTitle = new MenuId('SCMSourceControlTitle');\n\tstatic readonly SCMHistoryTitle = new MenuId('SCMHistoryTitle');\n\tstatic readonly SCMHistoryItemContext = new MenuId('SCMHistoryItemContext');\n\tstatic readonly SCMHistoryItemChangeContext = new MenuId('SCMHistoryItemChangeContext');\n\tstatic readonly SCMHistoryItemHover = new MenuId('SCMHistoryItemHover');\n\tstatic readonly SCMHistoryItemRefContext = new MenuId('SCMHistoryItemRefContext');\n\tstatic readonly SCMQuickDiffDecorations = new MenuId('SCMQuickDiffDecorations');\n\tstatic readonly SCMTitle = new MenuId('SCMTitle');\n\tstatic readonly SearchContext = new MenuId('SearchContext');\n\tstatic readonly SearchActionMenu = new MenuId('SearchActionContext');\n\tstatic readonly StatusBarWindowIndicatorMenu = new MenuId('StatusBarWindowIndicatorMenu');\n\tstatic readonly StatusBarRemoteIndicatorMenu = new MenuId('StatusBarRemoteIndicatorMenu');\n\tstatic readonly StickyScrollContext = new MenuId('StickyScrollContext');\n\tstatic readonly TestItem = new MenuId('TestItem');\n\tstatic readonly TestItemGutter = new MenuId('TestItemGutter');\n\tstatic readonly TestProfilesContext = new MenuId('TestProfilesContext');\n\tstatic readonly TestMessageContext = new MenuId('TestMessageContext');\n\tstatic readonly TestMessageContent = new MenuId('TestMessageContent');\n\tstatic readonly TestPeekElement = new MenuId('TestPeekElement');\n\tstatic readonly TestPeekTitle = new MenuId('TestPeekTitle');\n\tstatic readonly TestCallStack = new MenuId('TestCallStack');\n\tstatic readonly TestCoverageFilterItem = new MenuId('TestCoverageFilterItem');\n\tstatic readonly TouchBarContext = new MenuId('TouchBarContext');\n\tstatic readonly TitleBar = new MenuId('TitleBar');\n\tstatic readonly TitleBarContext = new MenuId('TitleBarContext');\n\tstatic readonly TitleBarTitleContext = new MenuId('TitleBarTitleContext');\n\tstatic readonly TunnelContext = new MenuId('TunnelContext');\n\tstatic readonly TunnelPrivacy = new MenuId('TunnelPrivacy');\n\tstatic readonly TunnelProtocol = new MenuId('TunnelProtocol');\n\tstatic readonly TunnelPortInline = new MenuId('TunnelInline');\n\tstatic readonly TunnelTitle = new MenuId('TunnelTitle');\n\tstatic readonly TunnelLocalAddressInline = new MenuId('TunnelLocalAddressInline');\n\tstatic readonly TunnelOriginInline = new MenuId('TunnelOriginInline');\n\tstatic readonly ViewItemContext = new MenuId('ViewItemContext');\n\tstatic readonly ViewContainerTitle = new MenuId('ViewContainerTitle');\n\tstatic readonly ViewContainerTitleContext = new MenuId('ViewContainerTitleContext');\n\tstatic readonly ViewTitle = new MenuId('ViewTitle');\n\tstatic readonly ViewTitleContext = new MenuId('ViewTitleContext');\n\tstatic readonly CommentEditorActions = new MenuId('CommentEditorActions');\n\tstatic readonly CommentThreadTitle = new MenuId('CommentThreadTitle');\n\tstatic readonly CommentThreadActions = new MenuId('CommentThreadActions');\n\tstatic readonly CommentThreadAdditionalActions = new MenuId('CommentThreadAdditionalActions');\n\tstatic readonly CommentThreadTitleContext = new MenuId('CommentThreadTitleContext');\n\tstatic readonly CommentThreadCommentContext = new MenuId('CommentThreadCommentContext');\n\tstatic readonly CommentTitle = new MenuId('CommentTitle');\n\tstatic readonly CommentActions = new MenuId('CommentActions');\n\tstatic readonly CommentsViewThreadActions = new MenuId('CommentsViewThreadActions');\n\tstatic readonly InteractiveToolbar = new MenuId('InteractiveToolbar');\n\tstatic readonly InteractiveCellTitle = new MenuId('InteractiveCellTitle');\n\tstatic readonly InteractiveCellDelete = new MenuId('InteractiveCellDelete');\n\tstatic readonly InteractiveCellExecute = new MenuId('InteractiveCellExecute');\n\tstatic readonly InteractiveInputExecute = new MenuId('InteractiveInputExecute');\n\tstatic readonly InteractiveInputConfig = new MenuId('InteractiveInputConfig');\n\tstatic readonly ReplInputExecute = new MenuId('ReplInputExecute');\n\tstatic readonly IssueReporter = new MenuId('IssueReporter');\n\tstatic readonly NotebookToolbar = new MenuId('NotebookToolbar');\n\tstatic readonly NotebookToolbarContext = new MenuId('NotebookToolbarContext');\n\tstatic readonly NotebookStickyScrollContext = new MenuId('NotebookStickyScrollContext');\n\tstatic readonly NotebookCellTitle = new MenuId('NotebookCellTitle');\n\tstatic readonly NotebookCellDelete = new MenuId('NotebookCellDelete');\n\tstatic readonly NotebookCellInsert = new MenuId('NotebookCellInsert');\n\tstatic readonly NotebookCellBetween = new MenuId('NotebookCellBetween');\n\tstatic readonly NotebookCellListTop = new MenuId('NotebookCellTop');\n\tstatic readonly NotebookCellExecute = new MenuId('NotebookCellExecute');\n\tstatic readonly NotebookCellExecuteGoTo = new MenuId('NotebookCellExecuteGoTo');\n\tstatic readonly NotebookCellExecutePrimary = new MenuId('NotebookCellExecutePrimary');\n\tstatic readonly NotebookDiffCellInputTitle = new MenuId('NotebookDiffCellInputTitle');\n\tstatic readonly NotebookDiffDocumentMetadata = new MenuId('NotebookDiffDocumentMetadata');\n\tstatic readonly NotebookDiffCellMetadataTitle = new MenuId('NotebookDiffCellMetadataTitle');\n\tstatic readonly NotebookDiffCellOutputsTitle = new MenuId('NotebookDiffCellOutputsTitle');\n\tstatic readonly NotebookOutputToolbar = new MenuId('NotebookOutputToolbar');\n\tstatic readonly NotebookOutlineFilter = new MenuId('NotebookOutlineFilter');\n\tstatic readonly NotebookOutlineActionMenu = new MenuId('NotebookOutlineActionMenu');\n\tstatic readonly NotebookEditorLayoutConfigure = new MenuId('NotebookEditorLayoutConfigure');\n\tstatic readonly NotebookKernelSource = new MenuId('NotebookKernelSource');\n\tstatic readonly BulkEditTitle = new MenuId('BulkEditTitle');\n\tstatic readonly BulkEditContext = new MenuId('BulkEditContext');\n\tstatic readonly TimelineItemContext = new MenuId('TimelineItemContext');\n\tstatic readonly TimelineTitle = new MenuId('TimelineTitle');\n\tstatic readonly TimelineTitleContext = new MenuId('TimelineTitleContext');\n\tstatic readonly TimelineFilterSubMenu = new MenuId('TimelineFilterSubMenu');\n\tstatic readonly AccountsContext = new MenuId('AccountsContext');\n\tstatic readonly SidebarTitle = new MenuId('SidebarTitle');\n\tstatic readonly PanelTitle = new MenuId('PanelTitle');\n\tstatic readonly AuxiliaryBarTitle = new MenuId('AuxiliaryBarTitle');\n\tstatic readonly TerminalInstanceContext = new MenuId('TerminalInstanceContext');\n\tstatic readonly TerminalEditorInstanceContext = new MenuId('TerminalEditorInstanceContext');\n\tstatic readonly TerminalNewDropdownContext = new MenuId('TerminalNewDropdownContext');\n\tstatic readonly TerminalTabContext = new MenuId('TerminalTabContext');\n\tstatic readonly TerminalTabEmptyAreaContext = new MenuId('TerminalTabEmptyAreaContext');\n\tstatic readonly TerminalStickyScrollContext = new MenuId('TerminalStickyScrollContext');\n\tstatic readonly WebviewContext = new MenuId('WebviewContext');\n\tstatic readonly InlineCompletionsActions = new MenuId('InlineCompletionsActions');\n\tstatic readonly InlineEditsActions = new MenuId('InlineEditsActions');\n\tstatic readonly NewFile = new MenuId('NewFile');\n\tstatic readonly MergeInput1Toolbar = new MenuId('MergeToolbar1Toolbar');\n\tstatic readonly MergeInput2Toolbar = new MenuId('MergeToolbar2Toolbar');\n\tstatic readonly MergeBaseToolbar = new MenuId('MergeBaseToolbar');\n\tstatic readonly MergeInputResultToolbar = new MenuId('MergeToolbarResultToolbar');\n\tstatic readonly InlineSuggestionToolbar = new MenuId('InlineSuggestionToolbar');\n\tstatic readonly InlineEditToolbar = new MenuId('InlineEditToolbar');\n\tstatic readonly ChatContext = new MenuId('ChatContext');\n\tstatic readonly ChatCodeBlock = new MenuId('ChatCodeblock');\n\tstatic readonly ChatCompareBlock = new MenuId('ChatCompareBlock');\n\tstatic readonly ChatMessageTitle = new MenuId('ChatMessageTitle');\n\tstatic readonly ChatHistory = new MenuId('ChatHistory');\n\tstatic readonly ChatWelcomeHistoryContext = new MenuId('ChatWelcomeHistoryContext');\n\tstatic readonly ChatMessageFooter = new MenuId('ChatMessageFooter');\n\tstatic readonly ChatExecute = new MenuId('ChatExecute');\n\tstatic readonly ChatExecuteSecondary = new MenuId('ChatExecuteSecondary');\n\tstatic readonly ChatInput = new MenuId('ChatInput');\n\tstatic readonly ChatInputSide = new MenuId('ChatInputSide');\n\tstatic readonly ChatModePicker = new MenuId('ChatModePicker');\n\tstatic readonly ChatEditingWidgetToolbar = new MenuId('ChatEditingWidgetToolbar');\n\tstatic readonly ChatEditingEditorContent = new MenuId('ChatEditingEditorContent');\n\tstatic readonly ChatEditingEditorHunk = new MenuId('ChatEditingEditorHunk');\n\tstatic readonly ChatEditingDeletedNotebookCell = new MenuId('ChatEditingDeletedNotebookCell');\n\tstatic readonly ChatInputAttachmentToolbar = new MenuId('ChatInputAttachmentToolbar');\n\tstatic readonly ChatEditingWidgetModifiedFilesToolbar = new MenuId('ChatEditingWidgetModifiedFilesToolbar');\n\tstatic readonly ChatInputResourceAttachmentContext = new MenuId('ChatInputResourceAttachmentContext');\n\tstatic readonly ChatInputSymbolAttachmentContext = new MenuId('ChatInputSymbolAttachmentContext');\n\tstatic readonly ChatInlineResourceAnchorContext = new MenuId('ChatInlineResourceAnchorContext');\n\tstatic readonly ChatInlineSymbolAnchorContext = new MenuId('ChatInlineSymbolAnchorContext');\n\tstatic readonly ChatMessageCheckpoint: MenuId = new MenuId('ChatMessageCheckpoint');\n\tstatic readonly ChatMessageRestoreCheckpoint: MenuId = new MenuId('ChatMessageRestoreCheckpoint');\n\tstatic readonly ChatEditingCodeBlockContext = new MenuId('ChatEditingCodeBlockContext');\n\tstatic readonly ChatTitleBarMenu = new MenuId('ChatTitleBarMenu');\n\tstatic readonly ChatAttachmentsContext = new MenuId('ChatAttachmentsContext');\n\tstatic readonly ChatToolOutputResourceToolbar = new MenuId('ChatToolOutputResourceToolbar');\n\tstatic readonly ChatTextEditorMenu = new MenuId('ChatTextEditorMenu');\n\tstatic readonly ChatToolOutputResourceContext = new MenuId('ChatToolOutputResourceContext');\n\tstatic readonly ChatMultiDiffContext = new MenuId('ChatMultiDiffContext');\n\tstatic readonly ChatSessionsMenu = new MenuId('ChatSessionsMenu');\n\tstatic readonly ChatConfirmationMenu = new MenuId('ChatConfirmationMenu');\n\tstatic readonly AccessibleView = new MenuId('AccessibleView');\n\tstatic readonly MultiDiffEditorFileToolbar = new MenuId('MultiDiffEditorFileToolbar');\n\tstatic readonly DiffEditorHunkToolbar = new MenuId('DiffEditorHunkToolbar');\n\tstatic readonly DiffEditorSelectionToolbar = new MenuId('DiffEditorSelectionToolbar');\n\n\treadonly id: string;\n\n\t/**\n\t * Create a new `MenuId` with the unique identifier. Will throw if a menu\n\t * with the identifier already exists, use `MenuId.for(ident)` or a unique\n\t * identifier\n\t */\n\tconstructor(identifier: string) {\n\t\tif (MenuId._instances.has(identifier)) {\n\t\t\tthrow new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n\t\t}\n\t\tMenuId._instances.set(identifier, this);\n\t\tthis.id = identifier;\n\t}\n}\n\nexport interface IMenuActionOptions {\n\targ?: any;\n\tshouldForwardArgs?: boolean;\n\trenderShortTitle?: boolean;\n}\n\nexport interface IMenuChangeEvent {\n\treadonly menu: IMenu;\n\treadonly isStructuralChange: boolean;\n\treadonly isToggleChange: boolean;\n\treadonly isEnablementChange: boolean;\n}\n\nexport interface IMenu extends IDisposable {\n\treadonly onDidChange: Event<IMenuChangeEvent>;\n\tgetActions(options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n}\n\nexport const IMenuService = createDecorator<IMenuService>('menuService');\n\nexport interface IMenuCreateOptions {\n\temitEventsForSubmenuChanges?: boolean;\n\teventDebounceDelay?: number;\n}\n\nexport interface IMenuService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Consider using getMenuActions if you don't need to listen to events.\n\t *\n\t * Create a new menu for the given menu identifier. A menu sends events when it's entries\n\t * have changed (placement, enablement, checked-state). By default it does not send events for\n\t * submenu entries. That is more expensive and must be explicitly enabled with the\n\t * `emitEventsForSubmenuChanges` flag.\n\t */\n\tcreateMenu(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuCreateOptions): IMenu;\n\n\t/**\n\t * Creates a new menu, gets the actions, and then disposes of the menu.\n\t */\n\tgetMenuActions(id: MenuId, contextKeyService: IContextKeyService, options?: IMenuActionOptions): [string, Array<MenuItemAction | SubmenuItemAction>][];\n\n\t/**\n\t * Reset **all** menu item hidden states.\n\t */\n\tresetHiddenStates(): void;\n\n\t/**\n\t * Reset the menu's hidden states.\n\t */\n\tresetHiddenStates(menuIds: readonly MenuId[] | undefined): void;\n}\n\ntype ICommandsMap = Map<string, ICommandAction>;\n\nexport interface IMenuRegistryChangeEvent {\n\thas(id: MenuId): boolean;\n}\n\nclass MenuRegistryChangeEvent {\n\n\tprivate static _all = new Map<MenuId, MenuRegistryChangeEvent>();\n\n\tstatic for(id: MenuId): MenuRegistryChangeEvent {\n\t\tlet value = this._all.get(id);\n\t\tif (!value) {\n\t\t\tvalue = new MenuRegistryChangeEvent(id);\n\t\t\tthis._all.set(id, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tstatic merge(events: IMenuRegistryChangeEvent[]): IMenuRegistryChangeEvent {\n\t\tconst ids = new Set<MenuId>();\n\t\tfor (const item of events) {\n\t\t\tif (item instanceof MenuRegistryChangeEvent) {\n\t\t\t\tids.add(item.id);\n\t\t\t}\n\t\t}\n\t\treturn ids;\n\t}\n\n\treadonly has: (id: MenuId) => boolean;\n\n\tprivate constructor(private readonly id: MenuId) {\n\t\tthis.has = candidate => candidate === id;\n\t}\n}\n\nexport interface IMenuRegistry {\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent>;\n\taddCommand(userCommand: ICommandAction): IDisposable;\n\tappendMenuItem(menu: MenuId, item: IMenuItem | ISubmenuItem): IDisposable;\n\tgetMenuItems(loc: MenuId): Array<IMenuItem | ISubmenuItem>;\n}\n\nexport const MenuRegistry: IMenuRegistry = new class implements IMenuRegistry {\n\n\tprivate readonly _commands = new Map<string, ICommandAction>();\n\tprivate readonly _menuItems = new Map<MenuId, LinkedList<IMenuItem | ISubmenuItem>>();\n\tprivate readonly _onDidChangeMenu = new MicrotaskEmitter<IMenuRegistryChangeEvent>({\n\t\tmerge: MenuRegistryChangeEvent.merge\n\t});\n\n\treadonly onDidChangeMenu: Event<IMenuRegistryChangeEvent> = this._onDidChangeMenu.event;\n\n\taddCommand(command: ICommandAction): IDisposable {\n\t\tthis._commands.set(command.id, command);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\tif (this._commands.delete(command.id)) {\n\t\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n\t\t\t}\n\t\t}));\n\t}\n\n\tgetCommand(id: string): ICommandAction | undefined {\n\t\treturn this._commands.get(id);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst map = new Map<string, ICommandAction>();\n\t\tthis._commands.forEach((value, key) => map.set(key, value));\n\t\treturn map;\n\t}\n\n\tappendMenuItem(id: MenuId, item: IMenuItem | ISubmenuItem): IDisposable {\n\t\tlet list = this._menuItems.get(id);\n\t\tif (!list) {\n\t\t\tlist = new LinkedList();\n\t\t\tthis._menuItems.set(id, list);\n\t\t}\n\t\tconst rm = list.push(item);\n\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\treturn markAsSingleton(toDisposable(() => {\n\t\t\trm();\n\t\t\tthis._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n\t\t}));\n\t}\n\n\tappendMenuItems(items: Iterable<{ id: MenuId; item: IMenuItem | ISubmenuItem }>): IDisposable {\n\t\tconst result = new DisposableStore();\n\t\tfor (const { id, item } of items) {\n\t\t\tresult.add(this.appendMenuItem(id, item));\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMenuItems(id: MenuId): Array<IMenuItem | ISubmenuItem> {\n\t\tlet result: Array<IMenuItem | ISubmenuItem>;\n\t\tif (this._menuItems.has(id)) {\n\t\t\tresult = [...this._menuItems.get(id)!];\n\t\t} else {\n\t\t\tresult = [];\n\t\t}\n\t\tif (id === MenuId.CommandPalette) {\n\t\t\t// CommandPalette is special because it shows\n\t\t\t// all commands by default\n\t\t\tthis._appendImplicitItems(result);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate _appendImplicitItems(result: Array<IMenuItem | ISubmenuItem>) {\n\t\tconst set = new Set<string>();\n\n\t\tfor (const item of result) {\n\t\t\tif (isIMenuItem(item)) {\n\t\t\t\tset.add(item.command.id);\n\t\t\t\tif (item.alt) {\n\t\t\t\t\tset.add(item.alt.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._commands.forEach((command, id) => {\n\t\t\tif (!set.has(id)) {\n\t\t\t\tresult.push({ command });\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport class SubmenuItemAction extends SubmenuAction {\n\n\tconstructor(\n\t\treadonly item: ISubmenuItem,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\tactions: readonly IAction[],\n\t) {\n\t\tsuper(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, actions, 'submenu');\n\t}\n}\n\nexport interface IMenuItemHide {\n\treadonly isHidden: boolean;\n\treadonly hide: IAction;\n\treadonly toggle: IAction;\n}\n\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nexport class MenuItemAction implements IAction {\n\n\tstatic label(action: ICommandAction, options?: IMenuActionOptions): string {\n\t\treturn options?.renderShortTitle && action.shortTitle\n\t\t\t? (typeof action.shortTitle === 'string' ? action.shortTitle : action.shortTitle.value)\n\t\t\t: (typeof action.title === 'string' ? action.title : action.title.value);\n\t}\n\n\treadonly item: ICommandAction;\n\treadonly alt: MenuItemAction | undefined;\n\n\tprivate readonly _options: IMenuActionOptions | undefined;\n\n\treadonly id: string;\n\treadonly label: string;\n\treadonly tooltip: string;\n\treadonly class: string | undefined;\n\treadonly enabled: boolean;\n\treadonly checked?: boolean;\n\n\tconstructor(\n\t\titem: ICommandAction,\n\t\talt: ICommandAction | undefined,\n\t\toptions: IMenuActionOptions | undefined,\n\t\treadonly hideActions: IMenuItemHide | undefined,\n\t\treadonly menuKeybinding: IAction | undefined,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@ICommandService private _commandService: ICommandService\n\t) {\n\t\tthis.id = item.id;\n\t\tthis.label = MenuItemAction.label(item, options);\n\t\tthis.tooltip = (typeof item.tooltip === 'string' ? item.tooltip : item.tooltip?.value) ?? '';\n\t\tthis.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n\t\tthis.checked = undefined;\n\n\t\tlet icon: ThemeIcon | undefined;\n\n\t\tif (item.toggled) {\n\t\t\tconst toggled = ((item.toggled as { condition: ContextKeyExpression }).condition ? item.toggled : { condition: item.toggled }) as {\n\t\t\t\tcondition: ContextKeyExpression; icon?: Icon; tooltip?: string | ILocalizedString; title?: string | ILocalizedString;\n\t\t\t};\n\t\t\tthis.checked = contextKeyService.contextMatchesRules(toggled.condition);\n\t\t\tif (this.checked && toggled.tooltip) {\n\t\t\t\tthis.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n\t\t\t}\n\n\t\t\tif (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {\n\t\t\t\ticon = toggled.icon;\n\t\t\t}\n\n\t\t\tif (this.checked && toggled.title) {\n\t\t\t\tthis.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n\t\t\t}\n\t\t}\n\n\t\tif (!icon) {\n\t\t\ticon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : undefined;\n\t\t}\n\n\t\tthis.item = item;\n\t\tthis.alt = alt ? new MenuItemAction(alt, undefined, options, hideActions, undefined, contextKeyService, _commandService) : undefined;\n\t\tthis._options = options;\n\t\tthis.class = icon && ThemeIcon.asClassName(icon);\n\n\t}\n\n\trun(...args: unknown[]): Promise<void> {\n\t\tlet runArgs: any[] = [];\n\n\t\tif (this._options?.arg) {\n\t\t\trunArgs = [...runArgs, this._options.arg];\n\t\t}\n\n\t\tif (this._options?.shouldForwardArgs) {\n\t\t\trunArgs = [...runArgs, ...args];\n\t\t}\n\n\t\treturn this._commandService.executeCommand(this.id, ...runArgs);\n\t}\n}\n\n//#region --- IAction2\n\ntype OneOrN<T> = T | T[];\n\ninterface IAction2CommonOptions extends ICommandAction {\n\t/**\n\t * One or many menu items.\n\t */\n\tmenu?: OneOrN<{ id: MenuId; precondition?: null } & Omit<IMenuItem, 'command'>>;\n\n\t/**\n\t * One keybinding.\n\t */\n\tkeybinding?: OneOrN<Omit<IKeybindingRule, 'id'>>;\n}\n\ninterface IBaseAction2Options extends IAction2CommonOptions {\n\n\t/**\n\t * This type is used when an action is not going to show up in the command palette.\n\t * In that case, it's able to use a string for the `title` and `category` properties.\n\t */\n\tf1?: false;\n}\n\nexport interface ICommandPaletteOptions extends IAction2CommonOptions {\n\n\t/**\n\t * The title of the command that will be displayed in the command palette after the category.\n\t * This overrides {@link ICommandAction.title} to ensure a string isn't used so that the title\n\t * includes the localized value and the original value for users using language packs.\n\t */\n\ttitle: ICommandActionTitle;\n\n\t/**\n\t * The category of the command that will be displayed in the command palette before the title suffixed.\n\t * with a colon This overrides {@link ICommandAction.title} to ensure a string isn't used so that\n\t * the title includes the localized value and the original value for users using language packs.\n\t */\n\tcategory?: keyof typeof Categories | ILocalizedString;\n\n\t/**\n\t * Shorthand to add this command to the command palette. Note: this is not the only way to declare that\n\t * a command should be in the command palette... however, enforcing ILocalizedString in the other scenarios\n\t * is much more challenging and this gets us most of the way there.\n\t */\n\tf1: true;\n}\n\nexport type IAction2Options = ICommandPaletteOptions | IBaseAction2Options;\n\nexport interface IAction2F1RequiredOptions {\n\ttitle: ICommandActionTitle;\n}\n\nexport abstract class Action2 {\n\tconstructor(readonly desc: Readonly<IAction2Options>) { }\n\tabstract run(accessor: ServicesAccessor, ...args: unknown[]): void;\n}\n\nexport function registerAction2(ctor: { new(): Action2 }): IDisposable {\n\tconst disposables: IDisposable[] = []; // not using `DisposableStore` to reduce startup perf cost\n\tconst action = new ctor();\n\n\tconst { f1, menu, keybinding, ...command } = action.desc;\n\n\tif (CommandsRegistry.getCommand(command.id)) {\n\t\tthrow new Error(`Cannot register two commands with the same id: ${command.id}`);\n\t}\n\n\t// command\n\tdisposables.push(CommandsRegistry.registerCommand({\n\t\tid: command.id,\n\t\thandler: (accessor, ...args) => action.run(accessor, ...args),\n\t\tmetadata: command.metadata ?? { description: action.desc.title }\n\t}));\n\n\t// menu\n\tif (Array.isArray(menu)) {\n\t\tfor (const item of menu) {\n\t\t\tdisposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? undefined : command.precondition }, ...item }));\n\t\t}\n\n\t} else if (menu) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? undefined : command.precondition }, ...menu }));\n\t}\n\tif (f1) {\n\t\tdisposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n\t\tdisposables.push(MenuRegistry.addCommand(command));\n\t}\n\n\t// keybinding\n\tif (Array.isArray(keybinding)) {\n\t\tfor (const item of keybinding) {\n\t\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t\t...item,\n\t\t\t\tid: command.id,\n\t\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n\t\t\t}));\n\t\t}\n\t} else if (keybinding) {\n\t\tdisposables.push(KeybindingsRegistry.registerKeybindingRule({\n\t\t\t...keybinding,\n\t\t\tid: command.id,\n\t\t\twhen: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n\t\t}));\n\t}\n\n\treturn {\n\t\tdispose() {\n\t\t\tdispose(disposables);\n\t\t}\n\t};\n}\n//#endregion\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/commands/common/commands.ts","vs/platform/commands/common/commands.ts"],"names":[],"mappings":"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","file":"commands.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 { Emitter, Event } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { IJSONSchema } from '../../../base/common/jsonSchema.js';\nimport { IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { TypeConstraint, validateConstraints } from '../../../base/common/types.js';\nimport { ILocalizedString } from '../../action/common/action.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\n\nexport const ICommandService = createDecorator<ICommandService>('commandService');\n\nexport interface ICommandEvent {\n\tcommandId: string;\n\targs: any[];\n}\n\nexport interface ICommandService {\n\treadonly _serviceBrand: undefined;\n\tonDidExecuteCommand: Event<ICommandEvent>;\n\texecuteCommand<T = any>(commandId: string, ...args: any[]): Promise<T | undefined>;\n}\n\nexport type ICommandsMap = Map<string, ICommand>;\n\nexport interface ICommandHandler {\n\t(accessor: ServicesAccessor, ...args: any[]): void;\n}\n\nexport interface ICommand {\n\tid: string;\n\thandler: ICommandHandler;\n\tmetadata?: ICommandMetadata | null;\n}\n\nexport interface ICommandMetadata {\n\t/**\n\t * NOTE: Please use an ILocalizedString. string is in the type for backcompat for now.\n\t * A short summary of what the command does. This will be used in:\n\t * - API commands\n\t * - when showing keybindings that have no other UX\n\t * - when searching for commands in the Command Palette\n\t */\n\treadonly description: ILocalizedString | string;\n\treadonly args?: ReadonlyArray<{\n\t\treadonly name: string;\n\t\treadonly isOptional?: boolean;\n\t\treadonly description?: string;\n\t\treadonly constraint?: TypeConstraint;\n\t\treadonly schema?: IJSONSchema;\n\t}>;\n}\n\nexport interface ICommandRegistry {\n\tregisterCommand(id: string, command: ICommandHandler): IDisposable;\n\tregisterCommand(command: ICommand): IDisposable;\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable;\n\tgetCommand(id: string): ICommand | undefined;\n}\n\nexport const CommandsRegistry: ICommandRegistry = new class implements ICommandRegistry {\n\n\tprivate readonly _commands = new Map<string, LinkedList<ICommand>>();\n\n\tprivate readonly _onDidRegisterCommand = new Emitter<string>();\n\treadonly onDidRegisterCommand: Event<string> = this._onDidRegisterCommand.event;\n\n\tregisterCommand(idOrCommand: string | ICommand, handler?: ICommandHandler): IDisposable {\n\n\t\tif (!idOrCommand) {\n\t\t\tthrow new Error(`invalid command`);\n\t\t}\n\n\t\tif (typeof idOrCommand === 'string') {\n\t\t\tif (!handler) {\n\t\t\t\tthrow new Error(`invalid command`);\n\t\t\t}\n\t\t\treturn this.registerCommand({ id: idOrCommand, handler });\n\t\t}\n\n\t\t// add argument validation if rich command metadata is provided\n\t\tif (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {\n\t\t\tconst constraints: Array<TypeConstraint | undefined> = [];\n\t\t\tfor (const arg of idOrCommand.metadata.args) {\n\t\t\t\tconstraints.push(arg.constraint);\n\t\t\t}\n\t\t\tconst actualHandler = idOrCommand.handler;\n\t\t\tidOrCommand.handler = function (accessor, ...args: any[]) {\n\t\t\t\tvalidateConstraints(args, constraints);\n\t\t\t\treturn actualHandler(accessor, ...args);\n\t\t\t};\n\t\t}\n\n\t\t// find a place to store the command\n\t\tconst { id } = idOrCommand;\n\n\t\tlet commands = this._commands.get(id);\n\t\tif (!commands) {\n\t\t\tcommands = new LinkedList<ICommand>();\n\t\t\tthis._commands.set(id, commands);\n\t\t}\n\n\t\tconst removeFn = commands.unshift(idOrCommand);\n\n\t\tconst ret = toDisposable(() => {\n\t\t\tremoveFn();\n\t\t\tconst command = this._commands.get(id);\n\t\t\tif (command?.isEmpty()) {\n\t\t\t\tthis._commands.delete(id);\n\t\t\t}\n\t\t});\n\n\t\t// tell the world about this command\n\t\tthis._onDidRegisterCommand.fire(id);\n\n\t\treturn markAsSingleton(ret);\n\t}\n\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable {\n\t\treturn CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n\t}\n\n\tgetCommand(id: string): ICommand | undefined {\n\t\tconst list = this._commands.get(id);\n\t\tif (!list || list.isEmpty()) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn Iterable.first(list);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst result = new Map<string, ICommand>();\n\t\tfor (const key of this._commands.keys()) {\n\t\t\tconst command = this.getCommand(key);\n\t\t\tif (command) {\n\t\t\t\tresult.set(key, command);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nCommandsRegistry.registerCommand('noop', () => { });\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { IJSONSchema } from '../../../base/common/jsonSchema.js';\nimport { IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { TypeConstraint, validateConstraints } from '../../../base/common/types.js';\nimport { ILocalizedString } from '../../action/common/action.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\n\nexport const ICommandService = createDecorator<ICommandService>('commandService');\n\nexport interface ICommandEvent {\n\tcommandId: string;\n\targs: any[];\n}\n\nexport interface ICommandService {\n\treadonly _serviceBrand: undefined;\n\tonDidExecuteCommand: Event<ICommandEvent>;\n\texecuteCommand<T = any>(commandId: string, ...args: any[]): Promise<T | undefined>;\n}\n\nexport type ICommandsMap = Map<string, ICommand>;\n\nexport interface ICommandHandler {\n\t(accessor: ServicesAccessor, ...args: any[]): void;\n}\n\nexport interface ICommand {\n\tid: string;\n\thandler: ICommandHandler;\n\tmetadata?: ICommandMetadata | null;\n}\n\nexport interface ICommandMetadata {\n\t/**\n\t * NOTE: Please use an ILocalizedString. string is in the type for backcompat for now.\n\t * A short summary of what the command does. This will be used in:\n\t * - API commands\n\t * - when showing keybindings that have no other UX\n\t * - when searching for commands in the Command Palette\n\t */\n\treadonly description: ILocalizedString | string;\n\treadonly args?: ReadonlyArray<{\n\t\treadonly name: string;\n\t\treadonly isOptional?: boolean;\n\t\treadonly description?: string;\n\t\treadonly constraint?: TypeConstraint;\n\t\treadonly schema?: IJSONSchema;\n\t}>;\n}\n\nexport interface ICommandRegistry {\n\tregisterCommand(id: string, command: ICommandHandler): IDisposable;\n\tregisterCommand(command: ICommand): IDisposable;\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable;\n\tgetCommand(id: string): ICommand | undefined;\n}\n\nexport const CommandsRegistry: ICommandRegistry = new class implements ICommandRegistry {\n\n\tprivate readonly _commands = new Map<string, LinkedList<ICommand>>();\n\n\tprivate readonly _onDidRegisterCommand = new Emitter<string>();\n\treadonly onDidRegisterCommand: Event<string> = this._onDidRegisterCommand.event;\n\n\tregisterCommand(idOrCommand: string | ICommand, handler?: ICommandHandler): IDisposable {\n\n\t\tif (!idOrCommand) {\n\t\t\tthrow new Error(`invalid command`);\n\t\t}\n\n\t\tif (typeof idOrCommand === 'string') {\n\t\t\tif (!handler) {\n\t\t\t\tthrow new Error(`invalid command`);\n\t\t\t}\n\t\t\treturn this.registerCommand({ id: idOrCommand, handler });\n\t\t}\n\n\t\t// add argument validation if rich command metadata is provided\n\t\tif (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {\n\t\t\tconst constraints: Array<TypeConstraint | undefined> = [];\n\t\t\tfor (const arg of idOrCommand.metadata.args) {\n\t\t\t\tconstraints.push(arg.constraint);\n\t\t\t}\n\t\t\tconst actualHandler = idOrCommand.handler;\n\t\t\tidOrCommand.handler = function (accessor, ...args: any[]) {\n\t\t\t\tvalidateConstraints(args, constraints);\n\t\t\t\treturn actualHandler(accessor, ...args);\n\t\t\t};\n\t\t}\n\n\t\t// find a place to store the command\n\t\tconst { id } = idOrCommand;\n\n\t\tlet commands = this._commands.get(id);\n\t\tif (!commands) {\n\t\t\tcommands = new LinkedList<ICommand>();\n\t\t\tthis._commands.set(id, commands);\n\t\t}\n\n\t\tconst removeFn = commands.unshift(idOrCommand);\n\n\t\tconst ret = toDisposable(() => {\n\t\t\tremoveFn();\n\t\t\tconst command = this._commands.get(id);\n\t\t\tif (command?.isEmpty()) {\n\t\t\t\tthis._commands.delete(id);\n\t\t\t}\n\t\t});\n\n\t\t// tell the world about this command\n\t\tthis._onDidRegisterCommand.fire(id);\n\n\t\treturn markAsSingleton(ret);\n\t}\n\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable {\n\t\treturn CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n\t}\n\n\tgetCommand(id: string): ICommand | undefined {\n\t\tconst list = this._commands.get(id);\n\t\tif (!list || list.isEmpty()) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn Iterable.first(list);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst result = new Map<string, ICommand>();\n\t\tfor (const key of this._commands.keys()) {\n\t\t\tconst command = this.getCommand(key);\n\t\t\tif (command) {\n\t\t\t\tresult.set(key, command);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nCommandsRegistry.registerCommand('noop', () => { });\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/commands/common/commands.ts","vs/platform/commands/common/commands.ts"],"names":[],"mappings":"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","file":"commands.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 { Emitter, Event } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { IJSONSchema } from '../../../base/common/jsonSchema.js';\nimport { IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { TypeConstraint, validateConstraints } from '../../../base/common/types.js';\nimport { ILocalizedString } from '../../action/common/action.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\n\nexport const ICommandService = createDecorator<ICommandService>('commandService');\n\nexport interface ICommandEvent {\n\treadonly commandId: string;\n\treadonly args: unknown[];\n}\n\nexport interface ICommandService {\n\treadonly _serviceBrand: undefined;\n\treadonly onDidExecuteCommand: Event<ICommandEvent>;\n\texecuteCommand<T = any>(commandId: string, ...args: unknown[]): Promise<T | undefined>;\n}\n\nexport type ICommandsMap = Map<string, ICommand>;\n\nexport interface ICommandHandler {\n\t(accessor: ServicesAccessor, ...args: any[]): void;\n}\n\nexport interface ICommand {\n\tid: string;\n\thandler: ICommandHandler;\n\tmetadata?: ICommandMetadata | null;\n}\n\nexport interface ICommandMetadata {\n\t/**\n\t * NOTE: Please use an ILocalizedString. string is in the type for backcompat for now.\n\t * A short summary of what the command does. This will be used in:\n\t * - API commands\n\t * - when showing keybindings that have no other UX\n\t * - when searching for commands in the Command Palette\n\t */\n\treadonly description: ILocalizedString | string;\n\treadonly args?: ReadonlyArray<{\n\t\treadonly name: string;\n\t\treadonly isOptional?: boolean;\n\t\treadonly description?: string;\n\t\treadonly constraint?: TypeConstraint;\n\t\treadonly schema?: IJSONSchema;\n\t}>;\n}\n\nexport interface ICommandRegistry {\n\tregisterCommand(id: string, command: ICommandHandler): IDisposable;\n\tregisterCommand(command: ICommand): IDisposable;\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable;\n\tgetCommand(id: string): ICommand | undefined;\n}\n\nexport const CommandsRegistry: ICommandRegistry = new class implements ICommandRegistry {\n\n\tprivate readonly _commands = new Map<string, LinkedList<ICommand>>();\n\n\tprivate readonly _onDidRegisterCommand = new Emitter<string>();\n\treadonly onDidRegisterCommand: Event<string> = this._onDidRegisterCommand.event;\n\n\tregisterCommand(idOrCommand: string | ICommand, handler?: ICommandHandler): IDisposable {\n\n\t\tif (!idOrCommand) {\n\t\t\tthrow new Error(`invalid command`);\n\t\t}\n\n\t\tif (typeof idOrCommand === 'string') {\n\t\t\tif (!handler) {\n\t\t\t\tthrow new Error(`invalid command`);\n\t\t\t}\n\t\t\treturn this.registerCommand({ id: idOrCommand, handler });\n\t\t}\n\n\t\t// add argument validation if rich command metadata is provided\n\t\tif (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {\n\t\t\tconst constraints: Array<TypeConstraint | undefined> = [];\n\t\t\tfor (const arg of idOrCommand.metadata.args) {\n\t\t\t\tconstraints.push(arg.constraint);\n\t\t\t}\n\t\t\tconst actualHandler = idOrCommand.handler;\n\t\t\tidOrCommand.handler = function (accessor, ...args: unknown[]) {\n\t\t\t\tvalidateConstraints(args, constraints);\n\t\t\t\treturn actualHandler(accessor, ...args);\n\t\t\t};\n\t\t}\n\n\t\t// find a place to store the command\n\t\tconst { id } = idOrCommand;\n\n\t\tlet commands = this._commands.get(id);\n\t\tif (!commands) {\n\t\t\tcommands = new LinkedList<ICommand>();\n\t\t\tthis._commands.set(id, commands);\n\t\t}\n\n\t\tconst removeFn = commands.unshift(idOrCommand);\n\n\t\tconst ret = toDisposable(() => {\n\t\t\tremoveFn();\n\t\t\tconst command = this._commands.get(id);\n\t\t\tif (command?.isEmpty()) {\n\t\t\t\tthis._commands.delete(id);\n\t\t\t}\n\t\t});\n\n\t\t// tell the world about this command\n\t\tthis._onDidRegisterCommand.fire(id);\n\n\t\treturn markAsSingleton(ret);\n\t}\n\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable {\n\t\treturn CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n\t}\n\n\tgetCommand(id: string): ICommand | undefined {\n\t\tconst list = this._commands.get(id);\n\t\tif (!list || list.isEmpty()) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn Iterable.first(list);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst result = new Map<string, ICommand>();\n\t\tfor (const key of this._commands.keys()) {\n\t\t\tconst command = this.getCommand(key);\n\t\t\tif (command) {\n\t\t\t\tresult.set(key, command);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nCommandsRegistry.registerCommand('noop', () => { });\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { IJSONSchema } from '../../../base/common/jsonSchema.js';\nimport { IDisposable, markAsSingleton, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { TypeConstraint, validateConstraints } from '../../../base/common/types.js';\nimport { ILocalizedString } from '../../action/common/action.js';\nimport { createDecorator, ServicesAccessor } from '../../instantiation/common/instantiation.js';\n\nexport const ICommandService = createDecorator<ICommandService>('commandService');\n\nexport interface ICommandEvent {\n\treadonly commandId: string;\n\treadonly args: unknown[];\n}\n\nexport interface ICommandService {\n\treadonly _serviceBrand: undefined;\n\treadonly onDidExecuteCommand: Event<ICommandEvent>;\n\texecuteCommand<T = any>(commandId: string, ...args: unknown[]): Promise<T | undefined>;\n}\n\nexport type ICommandsMap = Map<string, ICommand>;\n\nexport interface ICommandHandler {\n\t(accessor: ServicesAccessor, ...args: any[]): void;\n}\n\nexport interface ICommand {\n\tid: string;\n\thandler: ICommandHandler;\n\tmetadata?: ICommandMetadata | null;\n}\n\nexport interface ICommandMetadata {\n\t/**\n\t * NOTE: Please use an ILocalizedString. string is in the type for backcompat for now.\n\t * A short summary of what the command does. This will be used in:\n\t * - API commands\n\t * - when showing keybindings that have no other UX\n\t * - when searching for commands in the Command Palette\n\t */\n\treadonly description: ILocalizedString | string;\n\treadonly args?: ReadonlyArray<{\n\t\treadonly name: string;\n\t\treadonly isOptional?: boolean;\n\t\treadonly description?: string;\n\t\treadonly constraint?: TypeConstraint;\n\t\treadonly schema?: IJSONSchema;\n\t}>;\n}\n\nexport interface ICommandRegistry {\n\tregisterCommand(id: string, command: ICommandHandler): IDisposable;\n\tregisterCommand(command: ICommand): IDisposable;\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable;\n\tgetCommand(id: string): ICommand | undefined;\n}\n\nexport const CommandsRegistry: ICommandRegistry = new class implements ICommandRegistry {\n\n\tprivate readonly _commands = new Map<string, LinkedList<ICommand>>();\n\n\tprivate readonly _onDidRegisterCommand = new Emitter<string>();\n\treadonly onDidRegisterCommand: Event<string> = this._onDidRegisterCommand.event;\n\n\tregisterCommand(idOrCommand: string | ICommand, handler?: ICommandHandler): IDisposable {\n\n\t\tif (!idOrCommand) {\n\t\t\tthrow new Error(`invalid command`);\n\t\t}\n\n\t\tif (typeof idOrCommand === 'string') {\n\t\t\tif (!handler) {\n\t\t\t\tthrow new Error(`invalid command`);\n\t\t\t}\n\t\t\treturn this.registerCommand({ id: idOrCommand, handler });\n\t\t}\n\n\t\t// add argument validation if rich command metadata is provided\n\t\tif (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {\n\t\t\tconst constraints: Array<TypeConstraint | undefined> = [];\n\t\t\tfor (const arg of idOrCommand.metadata.args) {\n\t\t\t\tconstraints.push(arg.constraint);\n\t\t\t}\n\t\t\tconst actualHandler = idOrCommand.handler;\n\t\t\tidOrCommand.handler = function (accessor, ...args: unknown[]) {\n\t\t\t\tvalidateConstraints(args, constraints);\n\t\t\t\treturn actualHandler(accessor, ...args);\n\t\t\t};\n\t\t}\n\n\t\t// find a place to store the command\n\t\tconst { id } = idOrCommand;\n\n\t\tlet commands = this._commands.get(id);\n\t\tif (!commands) {\n\t\t\tcommands = new LinkedList<ICommand>();\n\t\t\tthis._commands.set(id, commands);\n\t\t}\n\n\t\tconst removeFn = commands.unshift(idOrCommand);\n\n\t\tconst ret = toDisposable(() => {\n\t\t\tremoveFn();\n\t\t\tconst command = this._commands.get(id);\n\t\t\tif (command?.isEmpty()) {\n\t\t\t\tthis._commands.delete(id);\n\t\t\t}\n\t\t});\n\n\t\t// tell the world about this command\n\t\tthis._onDidRegisterCommand.fire(id);\n\n\t\treturn markAsSingleton(ret);\n\t}\n\n\tregisterCommandAlias(oldId: string, newId: string): IDisposable {\n\t\treturn CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n\t}\n\n\tgetCommand(id: string): ICommand | undefined {\n\t\tconst list = this._commands.get(id);\n\t\tif (!list || list.isEmpty()) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn Iterable.first(list);\n\t}\n\n\tgetCommands(): ICommandsMap {\n\t\tconst result = new Map<string, ICommand>();\n\t\tfor (const key of this._commands.keys()) {\n\t\t\tconst command = this.getCommand(key);\n\t\t\tif (command) {\n\t\t\t\tresult.set(key, command);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nCommandsRegistry.registerCommand('noop', () => { });\n"]}
@@ -635,6 +635,7 @@ export class ContextKeyInExpr {
635
635
  const source = context.getValue(this.valueKey);
636
636
  const item = context.getValue(this.key);
637
637
  if (Array.isArray(source)) {
638
+ // eslint-disable-next-line local/code-no-any-casts
638
639
  return source.includes(item);
639
640
  }
640
641
  if (typeof item === 'string' && typeof source === 'object' && source !== null) {
@@ -841,6 +842,7 @@ export class ContextKeyGreaterExpr {
841
842
  if (typeof this.value === 'string') {
842
843
  return false;
843
844
  }
845
+ // eslint-disable-next-line local/code-no-any-casts
844
846
  return (parseFloat(context.getValue(this.key)) > this.value);
845
847
  }
846
848
  serialize() {
@@ -885,6 +887,7 @@ export class ContextKeyGreaterEqualsExpr {
885
887
  if (typeof this.value === 'string') {
886
888
  return false;
887
889
  }
890
+ // eslint-disable-next-line local/code-no-any-casts
888
891
  return (parseFloat(context.getValue(this.key)) >= this.value);
889
892
  }
890
893
  serialize() {
@@ -929,6 +932,7 @@ export class ContextKeySmallerExpr {
929
932
  if (typeof this.value === 'string') {
930
933
  return false;
931
934
  }
935
+ // eslint-disable-next-line local/code-no-any-casts
932
936
  return (parseFloat(context.getValue(this.key)) < this.value);
933
937
  }
934
938
  serialize() {
@@ -973,6 +977,7 @@ export class ContextKeySmallerEqualsExpr {
973
977
  if (typeof this.value === 'string') {
974
978
  return false;
975
979
  }
980
+ // eslint-disable-next-line local/code-no-any-casts
976
981
  return (parseFloat(context.getValue(this.key)) <= this.value);
977
982
  }
978
983
  serialize() {