monaco-editor11 1.1.1 → 1.1.2

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 (1068) hide show
  1. package/dist/index.d.ts +0 -7
  2. package/dist/monaco-editor11.es.js +0 -49
  3. package/dist/monaco-editor11.umd.js +1 -1
  4. package/dist/workers/_.contribution.js +120 -0
  5. package/dist/workers/abap.contribution.js +8 -0
  6. package/dist/workers/abap.js +1397 -0
  7. package/dist/workers/abstractCodeEditorService.js +129 -0
  8. package/dist/workers/abstractKeybindingService.js +286 -0
  9. package/dist/workers/abstractScrollbar.js +214 -0
  10. package/dist/workers/abstractSyntaxTokenBackend.js +128 -0
  11. package/dist/workers/abstractText.js +89 -0
  12. package/dist/workers/abstractTree.js +2027 -0
  13. package/dist/workers/accessibility.js +11 -0
  14. package/dist/workers/accessibilityService.js +111 -0
  15. package/dist/workers/accessibilitySignalService.js +331 -0
  16. package/dist/workers/accessibleDiffViewer.js +588 -0
  17. package/dist/workers/accessibleViewRegistry.js +25 -0
  18. package/dist/workers/action.js +15 -0
  19. package/dist/workers/actionCommonCategories.js +16 -0
  20. package/dist/workers/actionList.js +344 -0
  21. package/dist/workers/actionViewItemService.js +29 -0
  22. package/dist/workers/actionViewItems.js +376 -0
  23. package/dist/workers/actionWidget.js +236 -0
  24. package/dist/workers/actionbar.js +462 -0
  25. package/dist/workers/actions.js +483 -0
  26. package/dist/workers/anchorSelect.js +160 -0
  27. package/dist/workers/animation.js +74 -0
  28. package/dist/workers/apex.contribution.js +9 -0
  29. package/dist/workers/apex.js +329 -0
  30. package/dist/workers/aria.js +84 -0
  31. package/dist/workers/arrays.js +529 -0
  32. package/dist/workers/arraysFind.js +177 -0
  33. package/dist/workers/assert.js +79 -0
  34. package/dist/workers/ast.js +485 -0
  35. package/dist/workers/async.js +938 -0
  36. package/dist/workers/asyncDataTree.js +946 -0
  37. package/dist/workers/autoIndent.js +390 -0
  38. package/dist/workers/autorun.js +89 -0
  39. package/dist/workers/autorunImpl.js +215 -0
  40. package/dist/workers/azcli.contribution.js +8 -0
  41. package/dist/workers/azcli.js +67 -0
  42. package/dist/workers/bannerController.js +118 -0
  43. package/dist/workers/base.js +19 -0
  44. package/dist/workers/baseColors.js +31 -0
  45. package/dist/workers/baseObservable.js +106 -0
  46. package/dist/workers/baseRenderStrategy.js +19 -0
  47. package/dist/workers/baseResolvedKeybinding.js +56 -0
  48. package/dist/workers/bat.contribution.js +8 -0
  49. package/dist/workers/bat.js +99 -0
  50. package/dist/workers/beforeEditPositionMapper.js +110 -0
  51. package/dist/workers/bicep.contribution.js +8 -0
  52. package/dist/workers/bicep.js +108 -0
  53. package/dist/workers/blockCommentCommand.js +149 -0
  54. package/dist/workers/blockDecorations.js +97 -0
  55. package/dist/workers/bracketMatching.js +359 -0
  56. package/dist/workers/bracketPairsImpl.js +717 -0
  57. package/dist/workers/bracketPairsTree.js +343 -0
  58. package/dist/workers/bracketSelections.js +149 -0
  59. package/dist/workers/brackets.js +108 -0
  60. package/dist/workers/browser.js +57 -0
  61. package/dist/workers/buffer.js +81 -0
  62. package/dist/workers/bufferDirtyTracker.js +45 -0
  63. package/dist/workers/bulkEditService.js +76 -0
  64. package/dist/workers/button.js +226 -0
  65. package/dist/workers/cache.js +61 -0
  66. package/dist/workers/cameligo.contribution.js +8 -0
  67. package/dist/workers/cameligo.js +173 -0
  68. package/dist/workers/canIUse.js +23 -0
  69. package/dist/workers/cancellation.js +116 -0
  70. package/dist/workers/caretOperations.js +48 -0
  71. package/dist/workers/changeRecorder.js +78 -0
  72. package/dist/workers/changeTracker.js +80 -0
  73. package/dist/workers/charWidthReader.js +104 -0
  74. package/dist/workers/characterClassifier.js +59 -0
  75. package/dist/workers/characterPair.js +40 -0
  76. package/dist/workers/chartsColors.js +18 -0
  77. package/dist/workers/clickLinkGesture.js +161 -0
  78. package/dist/workers/clipboard.js +308 -0
  79. package/dist/workers/clipboardService.js +9 -0
  80. package/dist/workers/clipboardUtils.js +85 -0
  81. package/dist/workers/clojure.contribution.js +8 -0
  82. package/dist/workers/clojure.js +760 -0
  83. package/dist/workers/codeAction.js +306 -0
  84. package/dist/workers/codeActionCommands.js +230 -0
  85. package/dist/workers/codeActionContributions.js +55 -0
  86. package/dist/workers/codeActionController.js +372 -0
  87. package/dist/workers/codeActionKeybindingResolver.js +90 -0
  88. package/dist/workers/codeActionMenu.js +68 -0
  89. package/dist/workers/codeActionModel.js +334 -0
  90. package/dist/workers/codeEditorContributions.js +132 -0
  91. package/dist/workers/codeEditorService.js +9 -0
  92. package/dist/workers/codeEditorWidget.js +1856 -0
  93. package/dist/workers/codeLensCache.js +112 -0
  94. package/dist/workers/codelens.js +114 -0
  95. package/dist/workers/codelensController.js +469 -0
  96. package/dist/workers/codelensWidget.js +265 -0
  97. package/dist/workers/codicons.js +50 -0
  98. package/dist/workers/codiconsLibrary.js +642 -0
  99. package/dist/workers/codiconsUtil.js +22 -0
  100. package/dist/workers/coffee.contribution.js +9 -0
  101. package/dist/workers/coffee.js +231 -0
  102. package/dist/workers/collections.js +98 -0
  103. package/dist/workers/color.js +94 -0
  104. package/dist/workers/colorDetector.js +245 -0
  105. package/dist/workers/colorPickerBody.js +71 -0
  106. package/dist/workers/colorPickerCloseButton.js +34 -0
  107. package/dist/workers/colorPickerContribution.js +50 -0
  108. package/dist/workers/colorPickerHeader.js +79 -0
  109. package/dist/workers/colorPickerInsertButton.js +27 -0
  110. package/dist/workers/colorPickerModel.js +74 -0
  111. package/dist/workers/colorPickerParticipantUtils.js +52 -0
  112. package/dist/workers/colorPickerSaturationBox.js +106 -0
  113. package/dist/workers/colorPickerStrip.js +98 -0
  114. package/dist/workers/colorPickerWidget.js +32 -0
  115. package/dist/workers/colorUtils.js +199 -0
  116. package/dist/workers/colorizedBracketPairsDecorationProvider.js +97 -0
  117. package/dist/workers/colorizer.js +120 -0
  118. package/dist/workers/colors.js +20 -0
  119. package/dist/workers/columnRange.js +35 -0
  120. package/dist/workers/combineTextEditInfos.js +124 -0
  121. package/dist/workers/commandIds.js +12 -0
  122. package/dist/workers/commands.js +329 -0
  123. package/dist/workers/commandsQuickAccess.js +40 -0
  124. package/dist/workers/comment.js +147 -0
  125. package/dist/workers/common.js +20 -0
  126. package/dist/workers/comparers.js +87 -0
  127. package/dist/workers/completionModel.js +227 -0
  128. package/dist/workers/compressedObjectTreeModel.js +385 -0
  129. package/dist/workers/computeGhostText.js +182 -0
  130. package/dist/workers/computeMovedLines.js +249 -0
  131. package/dist/workers/concat23Trees.js +192 -0
  132. package/dist/workers/configuration.js +92 -0
  133. package/dist/workers/configurationModels.js +614 -0
  134. package/dist/workers/configurationRegistry.js +400 -0
  135. package/dist/workers/configurations.js +46 -0
  136. package/dist/workers/consoleObservableLogger.js +83 -0
  137. package/dist/workers/constObservable.js +35 -0
  138. package/dist/workers/contentHoverComputer.js +71 -0
  139. package/dist/workers/contentHoverController.js +320 -0
  140. package/dist/workers/contentHoverRendered.js +336 -0
  141. package/dist/workers/contentHoverStatusBar.js +52 -0
  142. package/dist/workers/contentHoverTypes.js +29 -0
  143. package/dist/workers/contentHoverWidget.js +394 -0
  144. package/dist/workers/contentHoverWidgetWrapper.js +362 -0
  145. package/dist/workers/contentSegmenter.js +52 -0
  146. package/dist/workers/contentWidgets.js +495 -0
  147. package/dist/workers/contextKeyService.js +468 -0
  148. package/dist/workers/contextMenuHandler.js +126 -0
  149. package/dist/workers/contextMenuService.js +103 -0
  150. package/dist/workers/contextScopedHistoryWidget.js +106 -0
  151. package/dist/workers/contextViewService.js +73 -0
  152. package/dist/workers/contextkey.js +1551 -0
  153. package/dist/workers/contextkeys.js +21 -0
  154. package/dist/workers/contextmenu.js +334 -0
  155. package/dist/workers/contextview.js +298 -0
  156. package/dist/workers/contiguousMultilineTokens.js +32 -0
  157. package/dist/workers/contiguousMultilineTokensBuilder.js +23 -0
  158. package/dist/workers/contiguousTokensEditing.js +128 -0
  159. package/dist/workers/contiguousTokensStore.js +207 -0
  160. package/dist/workers/contribution.js +36 -0
  161. package/dist/workers/coordinatesConverter.js +51 -0
  162. package/dist/workers/copyLinesCommand.js +73 -0
  163. package/dist/workers/copyPasteContribution.js +114 -0
  164. package/dist/workers/copyPasteController.js +585 -0
  165. package/dist/workers/copySelection.js +47 -0
  166. package/dist/workers/coreCommands.js +1731 -0
  167. package/dist/workers/countBadge.js +52 -0
  168. package/dist/workers/cpp.contribution.js +14 -0
  169. package/dist/workers/cpp.js +388 -0
  170. package/dist/workers/csharp.contribution.js +8 -0
  171. package/dist/workers/csharp.js +325 -0
  172. package/dist/workers/csp.contribution.js +8 -0
  173. package/dist/workers/csp.js +52 -0
  174. package/dist/workers/css.contribution.js +9 -0
  175. package/dist/workers/css.js +184 -0
  176. package/dist/workers/cssMode.js +198 -0
  177. package/dist/workers/cssValue.js +69 -0
  178. package/dist/workers/cssWorker.js +183 -0
  179. package/dist/workers/currentLineHighlight.js +205 -0
  180. package/dist/workers/cursor.js +899 -0
  181. package/dist/workers/cursorAtomicMoveOperations.js +145 -0
  182. package/dist/workers/cursorCollection.js +194 -0
  183. package/dist/workers/cursorColumnSelection.js +93 -0
  184. package/dist/workers/cursorColumns.js +112 -0
  185. package/dist/workers/cursorCommon.js +250 -0
  186. package/dist/workers/cursorContext.js +15 -0
  187. package/dist/workers/cursorDeleteOperations.js +231 -0
  188. package/dist/workers/cursorMoveCommands.js +676 -0
  189. package/dist/workers/cursorMoveOperations.js +290 -0
  190. package/dist/workers/cursorTypeEditOperations.js +968 -0
  191. package/dist/workers/cursorTypeOperations.js +173 -0
  192. package/dist/workers/cursorUndo.js +133 -0
  193. package/dist/workers/cursorUtils.js +75 -0
  194. package/dist/workers/cursorWordOperations.js +720 -0
  195. package/dist/workers/cypher.contribution.js +8 -0
  196. package/dist/workers/cypher.js +262 -0
  197. package/dist/workers/dart.contribution.js +9 -0
  198. package/dist/workers/dart.js +280 -0
  199. package/dist/workers/dataChannel.js +12 -0
  200. package/dist/workers/dataTransfer.js +80 -0
  201. package/dist/workers/dataTree.js +20 -0
  202. package/dist/workers/date.js +57 -0
  203. package/dist/workers/debugLocation.js +66 -0
  204. package/dist/workers/debugName.js +110 -0
  205. package/dist/workers/debuggerRpc.js +67 -0
  206. package/dist/workers/decorationCssRuleExtractor.js +73 -0
  207. package/dist/workers/decorationStyleCache.js +40 -0
  208. package/dist/workers/decorations.js +196 -0
  209. package/dist/workers/decorationsOverviewRuler.js +416 -0
  210. package/dist/workers/decorators.js +33 -0
  211. package/dist/workers/defaultDocumentColorProvider.js +55 -0
  212. package/dist/workers/defaultDocumentColorsComputer.js +138 -0
  213. package/dist/workers/defaultLinesDiffComputer.js +188 -0
  214. package/dist/workers/defaultProviders.js +230 -0
  215. package/dist/workers/defaultStyles.js +194 -0
  216. package/dist/workers/delegatingEditorImpl.js +111 -0
  217. package/dist/workers/derived.js +80 -0
  218. package/dist/workers/derivedImpl.js +353 -0
  219. package/dist/workers/descriptors.js +13 -0
  220. package/dist/workers/devToolsLogger.js +442 -0
  221. package/dist/workers/dialogs.js +5 -0
  222. package/dist/workers/diff.js +902 -0
  223. package/dist/workers/diffAlgorithm.js +139 -0
  224. package/dist/workers/diffChange.js +34 -0
  225. package/dist/workers/diffEditor.contribution.js +83 -0
  226. package/dist/workers/diffEditor.js +38 -0
  227. package/dist/workers/diffEditorDecorations.js +115 -0
  228. package/dist/workers/diffEditorEditors.js +190 -0
  229. package/dist/workers/diffEditorItemTemplate.js +272 -0
  230. package/dist/workers/diffEditorOptions.js +152 -0
  231. package/dist/workers/diffEditorSash.js +86 -0
  232. package/dist/workers/diffEditorViewModel.js +608 -0
  233. package/dist/workers/diffEditorViewZones.js +525 -0
  234. package/dist/workers/diffEditorWidget.js +590 -0
  235. package/dist/workers/diffProviderFactoryService.js +142 -0
  236. package/dist/workers/dnd.js +198 -0
  237. package/dist/workers/dockerfile.contribution.js +9 -0
  238. package/dist/workers/dockerfile.js +129 -0
  239. package/dist/workers/documentSemanticTokens.js +362 -0
  240. package/dist/workers/documentSymbols.js +24 -0
  241. package/dist/workers/dom.js +1454 -0
  242. package/dist/workers/domFontInfo.js +28 -0
  243. package/dist/workers/domLineBreaksComputer.js +301 -0
  244. package/dist/workers/domReadingContext.js +43 -0
  245. package/dist/workers/domSanitize.js +312 -0
  246. package/dist/workers/domStylesheets.js +145 -0
  247. package/dist/workers/dompurify.js +1347 -0
  248. package/dist/workers/dragAndDropCommand.js +65 -0
  249. package/dist/workers/dragScrolling.js +174 -0
  250. package/dist/workers/dropIntoEditorContribution.js +41 -0
  251. package/dist/workers/dropIntoEditorController.js +173 -0
  252. package/dist/workers/dropdown.js +141 -0
  253. package/dist/workers/dropdownActionViewItem.js +109 -0
  254. package/dist/workers/dynamicProgrammingDiffing.js +101 -0
  255. package/dist/workers/dynamicViewOverlay.js +10 -0
  256. package/dist/workers/ecl.contribution.js +8 -0
  257. package/dist/workers/ecl.js +455 -0
  258. package/dist/workers/edcore.main.js +74 -0
  259. package/dist/workers/edit.js +83 -0
  260. package/dist/workers/editContext.js +10 -0
  261. package/dist/workers/editContextFactory.js +16 -0
  262. package/dist/workers/editOperation.js +36 -0
  263. package/dist/workers/editStack.js +363 -0
  264. package/dist/workers/editor.all.js +65 -0
  265. package/dist/workers/editor.api.js +2 -0
  266. package/dist/workers/editor.api2.js +60 -0
  267. package/dist/workers/editor.js +15 -0
  268. package/dist/workers/editor.main.js +170 -0
  269. package/dist/workers/editor.worker.start.js +44 -0
  270. package/dist/workers/editorAction.js +26 -0
  271. package/dist/workers/editorBaseApi.js +43 -0
  272. package/dist/workers/editorBrowser.js +53 -0
  273. package/dist/workers/editorColorRegistry.js +102 -0
  274. package/dist/workers/editorColors.js +128 -0
  275. package/dist/workers/editorCommon.js +13 -0
  276. package/dist/workers/editorConfiguration.js +292 -0
  277. package/dist/workers/editorConfigurationSchema.js +338 -0
  278. package/dist/workers/editorContextKeys.js +84 -0
  279. package/dist/workers/editorDom.js +299 -0
  280. package/dist/workers/editorExtensions.js +489 -0
  281. package/dist/workers/editorFeatures.js +17 -0
  282. package/dist/workers/editorGutter.js +117 -0
  283. package/dist/workers/editorMarkdownCodeBlockRenderer.js +85 -0
  284. package/dist/workers/editorNavigationQuickAccess.js +152 -0
  285. package/dist/workers/editorOptions.js +3440 -0
  286. package/dist/workers/editorScrollbar.js +151 -0
  287. package/dist/workers/editorState.js +115 -0
  288. package/dist/workers/editorTheme.js +23 -0
  289. package/dist/workers/editorWebWorker.js +299 -0
  290. package/dist/workers/editorWorker.js +9 -0
  291. package/dist/workers/editorWorkerHost.js +15 -0
  292. package/dist/workers/editorWorkerService.js +366 -0
  293. package/dist/workers/editorZoom.js +26 -0
  294. package/dist/workers/electricCharacter.js +55 -0
  295. package/dist/workers/elementSizeObserver.js +107 -0
  296. package/dist/workers/elixir.contribution.js +8 -0
  297. package/dist/workers/elixir.js +568 -0
  298. package/dist/workers/embeddedCodeEditorWidget.js +66 -0
  299. package/dist/workers/encodedTokenAttributes.js +79 -0
  300. package/dist/workers/enterAction.js +53 -0
  301. package/dist/workers/environment.js +5 -0
  302. package/dist/workers/eolCounter.js +44 -0
  303. package/dist/workers/equals.js +84 -0
  304. package/dist/workers/errorMessage.js +71 -0
  305. package/dist/workers/errors.js +163 -0
  306. package/dist/workers/event.js +1197 -0
  307. package/dist/workers/extensions.js +18 -0
  308. package/dist/workers/extpath.js +147 -0
  309. package/dist/workers/fastDomNode.js +255 -0
  310. package/dist/workers/files.js +19 -0
  311. package/dist/workers/filters.js +742 -0
  312. package/dist/workers/findController.js +970 -0
  313. package/dist/workers/findDecorations.js +311 -0
  314. package/dist/workers/findInput.js +294 -0
  315. package/dist/workers/findInputToggles.js +52 -0
  316. package/dist/workers/findModel.js +497 -0
  317. package/dist/workers/findOptionsWidget.js +155 -0
  318. package/dist/workers/findSectionHeaders.js +128 -0
  319. package/dist/workers/findState.js +244 -0
  320. package/dist/workers/findWidget.js +1168 -0
  321. package/dist/workers/findWidgetSearchHistory.js +85 -0
  322. package/dist/workers/fixBrackets.js +67 -0
  323. package/dist/workers/fixedArray.js +70 -0
  324. package/dist/workers/floatingMenu.contribution.js +9 -0
  325. package/dist/workers/floatingMenu.js +94 -0
  326. package/dist/workers/flow9.contribution.js +8 -0
  327. package/dist/workers/flow9.js +141 -0
  328. package/dist/workers/folding.js +1136 -0
  329. package/dist/workers/foldingDecorations.js +158 -0
  330. package/dist/workers/foldingModel.js +532 -0
  331. package/dist/workers/foldingRanges.js +354 -0
  332. package/dist/workers/fontInfo.js +172 -0
  333. package/dist/workers/fontInfoFromSettings.js +29 -0
  334. package/dist/workers/fontMeasurements.js +206 -0
  335. package/dist/workers/fontZoom.js +47 -0
  336. package/dist/workers/fonts.js +17 -0
  337. package/dist/workers/format.js +367 -0
  338. package/dist/workers/formatActions.js +263 -0
  339. package/dist/workers/formattedTextRenderer.js +160 -0
  340. package/dist/workers/formattingEdit.js +57 -0
  341. package/dist/workers/forwardingTelemetryService.js +60 -0
  342. package/dist/workers/freemarker2.contribution.js +52 -0
  343. package/dist/workers/freemarker2.js +1062 -0
  344. package/dist/workers/fsharp.contribution.js +8 -0
  345. package/dist/workers/fsharp.js +216 -0
  346. package/dist/workers/fullFileRenderStrategy.js +414 -0
  347. package/dist/workers/fullFileRenderStrategy.wgsl.js +93 -0
  348. package/dist/workers/functional.js +24 -0
  349. package/dist/workers/fuzzyScorer.js +143 -0
  350. package/dist/workers/getHover.js +56 -0
  351. package/dist/workers/getIconClasses.js +106 -0
  352. package/dist/workers/getLinks.js +157 -0
  353. package/dist/workers/getPositionOffsetTransformerFromTextModel.js +24 -0
  354. package/dist/workers/getSemanticTokens.js +211 -0
  355. package/dist/workers/ghostText.js +111 -0
  356. package/dist/workers/ghostTextView.js +449 -0
  357. package/dist/workers/glob.js +581 -0
  358. package/dist/workers/globalPointerMoveMonitor.js +83 -0
  359. package/dist/workers/glyphHoverComputer.js +40 -0
  360. package/dist/workers/glyphHoverController.js +171 -0
  361. package/dist/workers/glyphHoverWidget.js +184 -0
  362. package/dist/workers/glyphLanesModel.js +61 -0
  363. package/dist/workers/glyphMargin.js +403 -0
  364. package/dist/workers/glyphRasterizer.js +276 -0
  365. package/dist/workers/go.contribution.js +8 -0
  366. package/dist/workers/go.js +217 -0
  367. package/dist/workers/goToCommands.js +694 -0
  368. package/dist/workers/goToDefinitionAtPosition.js +267 -0
  369. package/dist/workers/goToSymbol.js +128 -0
  370. package/dist/workers/gotoError.js +272 -0
  371. package/dist/workers/gotoErrorWidget.js +352 -0
  372. package/dist/workers/gotoLineQuickAccess.js +183 -0
  373. package/dist/workers/gotoSymbolQuickAccess.js +395 -0
  374. package/dist/workers/gpuActions.js +126 -0
  375. package/dist/workers/gpuDisposable.js +48 -0
  376. package/dist/workers/gpuMark.js +80 -0
  377. package/dist/workers/gpuUtils.js +58 -0
  378. package/dist/workers/graph.js +74 -0
  379. package/dist/workers/graphql.contribution.js +9 -0
  380. package/dist/workers/graphql.js +150 -0
  381. package/dist/workers/guidesTextModelPart.js +405 -0
  382. package/dist/workers/gutterFeature.js +238 -0
  383. package/dist/workers/gutterIndicatorMenu.js +252 -0
  384. package/dist/workers/gutterIndicatorView.js +456 -0
  385. package/dist/workers/handlebars.contribution.js +9 -0
  386. package/dist/workers/handlebars.js +485 -0
  387. package/dist/workers/hash.js +256 -0
  388. package/dist/workers/hcl.contribution.js +8 -0
  389. package/dist/workers/hcl.js +182 -0
  390. package/dist/workers/helpQuickAccess.js +77 -0
  391. package/dist/workers/heuristicSequenceOptimizations.js +374 -0
  392. package/dist/workers/hiddenRangeModel.js +126 -0
  393. package/dist/workers/hideUnchangedRegionsFeature.js +433 -0
  394. package/dist/workers/hierarchicalKind.js +26 -0
  395. package/dist/workers/highlightDecorations.js +111 -0
  396. package/dist/workers/highlightedLabel.js +129 -0
  397. package/dist/workers/history.js +85 -0
  398. package/dist/workers/historyWidgetKeybindingHint.js +9 -0
  399. package/dist/workers/horizontalScrollbar.js +91 -0
  400. package/dist/workers/hotReloadHelpers.js +17 -0
  401. package/dist/workers/hover.js +11 -0
  402. package/dist/workers/hoverAccessibleViews.js +8 -0
  403. package/dist/workers/hoverActionIds.js +23 -0
  404. package/dist/workers/hoverActions.js +424 -0
  405. package/dist/workers/hoverColorPicker.js +14 -0
  406. package/dist/workers/hoverColorPickerContribution.js +44 -0
  407. package/dist/workers/hoverColorPickerParticipant.js +151 -0
  408. package/dist/workers/hoverContribution.js +56 -0
  409. package/dist/workers/hoverCopyButton.js +54 -0
  410. package/dist/workers/hoverDelegate2.js +39 -0
  411. package/dist/workers/hoverDelegateFactory.js +34 -0
  412. package/dist/workers/hoverOperation.js +168 -0
  413. package/dist/workers/hoverParticipant.js +161 -0
  414. package/dist/workers/hoverService.js +542 -0
  415. package/dist/workers/hoverTypes.js +64 -0
  416. package/dist/workers/hoverUtils.js +18 -0
  417. package/dist/workers/hoverWidget.js +93 -0
  418. package/dist/workers/html.contribution.js +9 -0
  419. package/dist/workers/html.js +374 -0
  420. package/dist/workers/htmlContent.js +164 -0
  421. package/dist/workers/htmlMode.js +213 -0
  422. package/dist/workers/htmlWorker.js +126 -0
  423. package/dist/workers/iPadShowKeyboard.js +74 -0
  424. package/dist/workers/iconLabel.js +291 -0
  425. package/dist/workers/iconLabels.js +33 -0
  426. package/dist/workers/iconRegistry.js +183 -0
  427. package/dist/workers/iconsStyleSheet.js +75 -0
  428. package/dist/workers/idGenerator.js +16 -0
  429. package/dist/workers/iframe.js +87 -0
  430. package/dist/workers/ime.js +33 -0
  431. package/dist/workers/inPlaceReplace.js +151 -0
  432. package/dist/workers/inPlaceReplaceCommand.js +27 -0
  433. package/dist/workers/indentGuides.js +254 -0
  434. package/dist/workers/indentRangeProvider.js +166 -0
  435. package/dist/workers/indentRules.js +63 -0
  436. package/dist/workers/indentUtils.js +33 -0
  437. package/dist/workers/indentation.js +100 -0
  438. package/dist/workers/indentationGuesser.js +178 -0
  439. package/dist/workers/indentationLineProcessor.js +193 -0
  440. package/dist/workers/index.js +21 -0
  441. package/dist/workers/indexTreeModel.js +538 -0
  442. package/dist/workers/ini.contribution.js +9 -0
  443. package/dist/workers/ini.js +70 -0
  444. package/dist/workers/initialize.js +11 -0
  445. package/dist/workers/inlayHints.js +147 -0
  446. package/dist/workers/inlayHintsContribution.js +11 -0
  447. package/dist/workers/inlayHintsController.js +686 -0
  448. package/dist/workers/inlayHintsHover.js +162 -0
  449. package/dist/workers/inlayHintsLocations.js +96 -0
  450. package/dist/workers/inlineCompletionContextKeys.js +23 -0
  451. package/dist/workers/inlineCompletions.contribution.js +31 -0
  452. package/dist/workers/inlineCompletionsAccessibleView.js +4 -0
  453. package/dist/workers/inlineCompletionsController.js +427 -0
  454. package/dist/workers/inlineCompletionsHintsWidget.js +356 -0
  455. package/dist/workers/inlineCompletionsModel.js +1048 -0
  456. package/dist/workers/inlineCompletionsService.js +170 -0
  457. package/dist/workers/inlineCompletionsSource.js +548 -0
  458. package/dist/workers/inlineCompletionsView.js +86 -0
  459. package/dist/workers/inlineDecorations.js +26 -0
  460. package/dist/workers/inlineDiffDeletedCodeMargin.js +138 -0
  461. package/dist/workers/inlineEdit.js +17 -0
  462. package/dist/workers/inlineEditWithChanges.js +30 -0
  463. package/dist/workers/inlineEditsCollapsedView.js +132 -0
  464. package/dist/workers/inlineEditsCustomView.js +256 -0
  465. package/dist/workers/inlineEditsDeletionView.js +178 -0
  466. package/dist/workers/inlineEditsInsertionView.js +267 -0
  467. package/dist/workers/inlineEditsLineReplacementView.js +329 -0
  468. package/dist/workers/inlineEditsModel.js +59 -0
  469. package/dist/workers/inlineEditsNewUsers.js +174 -0
  470. package/dist/workers/inlineEditsSideBySideView.js +517 -0
  471. package/dist/workers/inlineEditsView.js +561 -0
  472. package/dist/workers/inlineEditsViewInterface.js +21 -0
  473. package/dist/workers/inlineEditsViewProducer.js +119 -0
  474. package/dist/workers/inlineEditsWordReplacementView.js +211 -0
  475. package/dist/workers/inlineProgress.js +139 -0
  476. package/dist/workers/inlineSuggestionItem.js +497 -0
  477. package/dist/workers/inplaceReplaceSupport.js +87 -0
  478. package/dist/workers/inputBox.js +510 -0
  479. package/dist/workers/inputColors.js +66 -0
  480. package/dist/workers/inputMode.js +22 -0
  481. package/dist/workers/insertFinalNewLine.js +32 -0
  482. package/dist/workers/insertFinalNewLineCommand.js +39 -0
  483. package/dist/workers/inspectTokens.js +240 -0
  484. package/dist/workers/instantiation.js +44 -0
  485. package/dist/workers/instantiationService.js +403 -0
  486. package/dist/workers/intervalTree.js +1002 -0
  487. package/dist/workers/iterator.js +186 -0
  488. package/dist/workers/java.contribution.js +9 -0
  489. package/dist/workers/java.js +231 -0
  490. package/dist/workers/javascript.contribution.js +11 -0
  491. package/dist/workers/javascript.js +70 -0
  492. package/dist/workers/jsonContributionRegistry.js +42 -0
  493. package/dist/workers/jsonMode.js +224 -0
  494. package/dist/workers/jsonWorker.js +187 -0
  495. package/dist/workers/julia.contribution.js +8 -0
  496. package/dist/workers/julia.js +510 -0
  497. package/dist/workers/keyCodes.js +351 -0
  498. package/dist/workers/keybinding.js +9 -0
  499. package/dist/workers/keybindingCancellation.js +81 -0
  500. package/dist/workers/keybindingLabel.js +122 -0
  501. package/dist/workers/keybindingLabels.js +139 -0
  502. package/dist/workers/keybindingResolver.js +304 -0
  503. package/dist/workers/keybindings.js +104 -0
  504. package/dist/workers/keybindingsRegistry.js +111 -0
  505. package/dist/workers/keyboardEvent.js +125 -0
  506. package/dist/workers/korean.js +321 -0
  507. package/dist/workers/kotlin.contribution.js +9 -0
  508. package/dist/workers/kotlin.js +251 -0
  509. package/dist/workers/label.js +5 -0
  510. package/dist/workers/labels.js +15 -0
  511. package/dist/workers/language.js +9 -0
  512. package/dist/workers/languageBracketsConfiguration.js +133 -0
  513. package/dist/workers/languageConfiguration.js +138 -0
  514. package/dist/workers/languageConfigurationRegistry.js +361 -0
  515. package/dist/workers/languageFeatureDebounce.js +137 -0
  516. package/dist/workers/languageFeatureRegistry.js +180 -0
  517. package/dist/workers/languageFeatures.js +9 -0
  518. package/dist/workers/languageFeaturesService.js +47 -0
  519. package/dist/workers/languageSelector.js +112 -0
  520. package/dist/workers/languageService.js +92 -0
  521. package/dist/workers/languages.js +522 -0
  522. package/dist/workers/languagesAssociations.js +193 -0
  523. package/dist/workers/languagesRegistry.js +237 -0
  524. package/dist/workers/layoutService.js +9 -0
  525. package/dist/workers/lazy.js +49 -0
  526. package/dist/workers/lazyObservableValue.js +125 -0
  527. package/dist/workers/legacyLinesDiffComputer.js +468 -0
  528. package/dist/workers/length.js +129 -0
  529. package/dist/workers/less.contribution.js +9 -0
  530. package/dist/workers/less.js +160 -0
  531. package/dist/workers/lexon.contribution.js +8 -0
  532. package/dist/workers/lexon.js +156 -0
  533. package/dist/workers/lib.index.js +103 -0
  534. package/dist/workers/lib.js +1107 -0
  535. package/dist/workers/lifecycle.js +311 -0
  536. package/dist/workers/lightBulbWidget.js +427 -0
  537. package/dist/workers/lineCommentCommand.js +328 -0
  538. package/dist/workers/lineDecorations.js +208 -0
  539. package/dist/workers/lineEdit.js +75 -0
  540. package/dist/workers/lineHeights.js +370 -0
  541. package/dist/workers/lineNumbers.js +184 -0
  542. package/dist/workers/linePart.js +25 -0
  543. package/dist/workers/lineRange.js +312 -0
  544. package/dist/workers/lineSelection.js +36 -0
  545. package/dist/workers/lineSequence.js +36 -0
  546. package/dist/workers/lineTokens.js +405 -0
  547. package/dist/workers/linesDecorations.js +104 -0
  548. package/dist/workers/linesDiffComputer.js +29 -0
  549. package/dist/workers/linesDiffComputers.js +13 -0
  550. package/dist/workers/linesLayout.js +765 -0
  551. package/dist/workers/linesOperations.js +1187 -0
  552. package/dist/workers/linesSliceCharSequence.js +205 -0
  553. package/dist/workers/link.js +95 -0
  554. package/dist/workers/linkComputer.js +269 -0
  555. package/dist/workers/linkedEditing.js +381 -0
  556. package/dist/workers/linkedList.js +126 -0
  557. package/dist/workers/linkedText.js +48 -0
  558. package/dist/workers/links.js +376 -0
  559. package/dist/workers/liquid.contribution.js +9 -0
  560. package/dist/workers/liquid.js +306 -0
  561. package/dist/workers/list.js +11 -0
  562. package/dist/workers/listColors.js +51 -0
  563. package/dist/workers/listPaging.js +128 -0
  564. package/dist/workers/listService.js +1025 -0
  565. package/dist/workers/listView.js +1173 -0
  566. package/dist/workers/listWidget.js +1535 -0
  567. package/dist/workers/log.js +271 -0
  568. package/dist/workers/logService.js +40 -0
  569. package/dist/workers/logging.js +86 -0
  570. package/dist/workers/longLinesHelper.js +23 -0
  571. package/dist/workers/lspLanguageFeatures.js +716 -0
  572. package/dist/workers/lua.contribution.js +8 -0
  573. package/dist/workers/lua.js +161 -0
  574. package/dist/workers/m3.contribution.js +8 -0
  575. package/dist/workers/m3.js +209 -0
  576. package/dist/workers/map.js +670 -0
  577. package/dist/workers/margin.js +71 -0
  578. package/dist/workers/marginDecorations.js +84 -0
  579. package/dist/workers/markdown.contribution.js +8 -0
  580. package/dist/workers/markdown.js +228 -0
  581. package/dist/workers/markdownHoverParticipant.js +419 -0
  582. package/dist/workers/markdownRenderer.js +73 -0
  583. package/dist/workers/marked.js +2478 -0
  584. package/dist/workers/markerDecorations.js +9 -0
  585. package/dist/workers/markerDecorationsService.js +248 -0
  586. package/dist/workers/markerHoverParticipant.js +270 -0
  587. package/dist/workers/markerNavigationService.js +223 -0
  588. package/dist/workers/markerService.js +330 -0
  589. package/dist/workers/markers.js +127 -0
  590. package/dist/workers/marshalling.js +62 -0
  591. package/dist/workers/mdx.contribution.js +8 -0
  592. package/dist/workers/mdx.js +230 -0
  593. package/dist/workers/menu.js +1147 -0
  594. package/dist/workers/menuColors.js +19 -0
  595. package/dist/workers/menuEntryActionViewItem.js +519 -0
  596. package/dist/workers/menuService.js +436 -0
  597. package/dist/workers/messageController.js +186 -0
  598. package/dist/workers/middleScroll.contribution.js +8 -0
  599. package/dist/workers/middleScrollController.js +128 -0
  600. package/dist/workers/migrateOptions.js +220 -0
  601. package/dist/workers/mime.js +11 -0
  602. package/dist/workers/minimap.js +1662 -0
  603. package/dist/workers/minimapCharRenderer.js +90 -0
  604. package/dist/workers/minimapCharRendererFactory.js +136 -0
  605. package/dist/workers/minimapCharSheet.js +25 -0
  606. package/dist/workers/minimapColors.js +23 -0
  607. package/dist/workers/minimapPreBaked.js +52 -0
  608. package/dist/workers/minimapTokensColorTracker.js +58 -0
  609. package/dist/workers/mips.contribution.js +9 -0
  610. package/dist/workers/mips.js +197 -0
  611. package/dist/workers/mirrorTextModel.js +117 -0
  612. package/dist/workers/miscColors.js +32 -0
  613. package/dist/workers/model.js +9 -0
  614. package/dist/workers/modelLineProjection.js +350 -0
  615. package/dist/workers/modelLineProjectionData.js +297 -0
  616. package/dist/workers/modelService.js +413 -0
  617. package/dist/workers/modesRegistry.js +75 -0
  618. package/dist/workers/monaco.contribution.js +302 -0
  619. package/dist/workers/monarchCommon.js +147 -0
  620. package/dist/workers/monarchCompile.js +546 -0
  621. package/dist/workers/monarchLexer.js +764 -0
  622. package/dist/workers/monospaceLineBreaksComputer.js +473 -0
  623. package/dist/workers/mouseCursor.js +9 -0
  624. package/dist/workers/mouseEvent.js +153 -0
  625. package/dist/workers/mouseHandler.js +539 -0
  626. package/dist/workers/mouseTarget.js +978 -0
  627. package/dist/workers/moveCaretCommand.js +49 -0
  628. package/dist/workers/moveLinesCommand.js +394 -0
  629. package/dist/workers/movedBlocksLinesFeature.js +277 -0
  630. package/dist/workers/msdax.contribution.js +8 -0
  631. package/dist/workers/msdax.js +374 -0
  632. package/dist/workers/multiDiffEditorWidget.js +43 -0
  633. package/dist/workers/multiDiffEditorWidgetImpl.js +427 -0
  634. package/dist/workers/multicursor.js +1004 -0
  635. package/dist/workers/myersDiffAlgorithm.js +159 -0
  636. package/dist/workers/mysql.contribution.js +8 -0
  637. package/dist/workers/mysql.js +877 -0
  638. package/dist/workers/nativeEditContext.js +518 -0
  639. package/dist/workers/nativeEditContextRegistry.js +23 -0
  640. package/dist/workers/nativeEditContextUtils.js +85 -0
  641. package/dist/workers/navigator.js +36 -0
  642. package/dist/workers/network.js +267 -0
  643. package/dist/workers/nls.js +76 -0
  644. package/dist/workers/nls.messages.js +18 -0
  645. package/dist/workers/nodeReader.js +127 -0
  646. package/dist/workers/normalization.js +41 -0
  647. package/dist/workers/notification.js +9 -0
  648. package/dist/workers/nullTokenize.js +29 -0
  649. package/dist/workers/numbers.js +45 -0
  650. package/dist/workers/objectCollectionBuffer.js +102 -0
  651. package/dist/workers/objectPool.js +47 -0
  652. package/dist/workers/objectTree.js +204 -0
  653. package/dist/workers/objectTreeModel.js +220 -0
  654. package/dist/workers/objective-c.contribution.js +8 -0
  655. package/dist/workers/objective-c.js +182 -0
  656. package/dist/workers/objects.js +152 -0
  657. package/dist/workers/observableCodeEditor.js +373 -0
  658. package/dist/workers/observableFromEvent.js +123 -0
  659. package/dist/workers/observableSignal.js +47 -0
  660. package/dist/workers/observableSignalFromEvent.js +41 -0
  661. package/dist/workers/observableValue.js +105 -0
  662. package/dist/workers/observableValueOpts.js +20 -0
  663. package/dist/workers/offsetRange.js +225 -0
  664. package/dist/workers/onEnter.js +109 -0
  665. package/dist/workers/oneCursor.js +117 -0
  666. package/dist/workers/opener.js +43 -0
  667. package/dist/workers/openerService.js +222 -0
  668. package/dist/workers/originalEditorInlineDiffView.js +215 -0
  669. package/dist/workers/outlineModel.js +265 -0
  670. package/dist/workers/overlayWidgets.js +181 -0
  671. package/dist/workers/overviewRuler.js +134 -0
  672. package/dist/workers/overviewRulerFeature.js +168 -0
  673. package/dist/workers/overviewZoneManager.js +176 -0
  674. package/dist/workers/parameterHints.js +126 -0
  675. package/dist/workers/parameterHintsModel.js +258 -0
  676. package/dist/workers/parameterHintsWidget.js +318 -0
  677. package/dist/workers/parser.js +121 -0
  678. package/dist/workers/pascal.contribution.js +9 -0
  679. package/dist/workers/pascal.js +250 -0
  680. package/dist/workers/pascaligo.contribution.js +8 -0
  681. package/dist/workers/pascaligo.js +163 -0
  682. package/dist/workers/path.js +1451 -0
  683. package/dist/workers/peekView.js +246 -0
  684. package/dist/workers/performance.js +222 -0
  685. package/dist/workers/perl.contribution.js +8 -0
  686. package/dist/workers/perl.js +625 -0
  687. package/dist/workers/pgsql.contribution.js +8 -0
  688. package/dist/workers/pgsql.js +850 -0
  689. package/dist/workers/php.contribution.js +9 -0
  690. package/dist/workers/php.js +499 -0
  691. package/dist/workers/pickerQuickAccess.js +271 -0
  692. package/dist/workers/pieceTreeBase.js +1473 -0
  693. package/dist/workers/pieceTreeTextBuffer.js +461 -0
  694. package/dist/workers/pieceTreeTextBufferBuilder.js +140 -0
  695. package/dist/workers/pixelRatio.js +88 -0
  696. package/dist/workers/pla.contribution.js +7 -0
  697. package/dist/workers/pla.js +136 -0
  698. package/dist/workers/placeholderText.contribution.js +14 -0
  699. package/dist/workers/placeholderTextContribution.js +77 -0
  700. package/dist/workers/platform.js +32 -0
  701. package/dist/workers/platformObservableUtils.js +31 -0
  702. package/dist/workers/point.js +50 -0
  703. package/dist/workers/pointerHandler.js +132 -0
  704. package/dist/workers/position.js +142 -0
  705. package/dist/workers/positionToOffset.js +17 -0
  706. package/dist/workers/positionToOffsetImpl.js +98 -0
  707. package/dist/workers/postEditWidget.js +220 -0
  708. package/dist/workers/postiats.contribution.js +8 -0
  709. package/dist/workers/postiats.js +906 -0
  710. package/dist/workers/powerquery.contribution.js +8 -0
  711. package/dist/workers/powerquery.js +889 -0
  712. package/dist/workers/powershell.contribution.js +8 -0
  713. package/dist/workers/powershell.js +238 -0
  714. package/dist/workers/prefixSumComputer.js +226 -0
  715. package/dist/workers/process.js +61 -0
  716. package/dist/workers/product.js +70 -0
  717. package/dist/workers/productService.js +9 -0
  718. package/dist/workers/progress.js +16 -0
  719. package/dist/workers/progressbar.js +105 -0
  720. package/dist/workers/promise.js +56 -0
  721. package/dist/workers/protobuf.contribution.js +8 -0
  722. package/dist/workers/protobuf.js +419 -0
  723. package/dist/workers/provideInlineCompletions.js +372 -0
  724. package/dist/workers/provideSignatureHelp.js +59 -0
  725. package/dist/workers/pug.contribution.js +8 -0
  726. package/dist/workers/pug.js +401 -0
  727. package/dist/workers/python.contribution.js +9 -0
  728. package/dist/workers/python.js +366 -0
  729. package/dist/workers/qsharp.contribution.js +8 -0
  730. package/dist/workers/qsharp.js +300 -0
  731. package/dist/workers/quickAccess.js +56 -0
  732. package/dist/workers/quickInput.js +108 -0
  733. package/dist/workers/quickInputActions.js +189 -0
  734. package/dist/workers/quickInputBox.js +104 -0
  735. package/dist/workers/quickInputController.js +901 -0
  736. package/dist/workers/quickInputDelegate.js +19 -0
  737. package/dist/workers/quickInputList.js +1391 -0
  738. package/dist/workers/quickInputService.js +197 -0
  739. package/dist/workers/quickInputTree.js +37 -0
  740. package/dist/workers/quickInputTreeAccessibilityProvider.js +39 -0
  741. package/dist/workers/quickInputTreeController.js +181 -0
  742. package/dist/workers/quickInputTreeFilter.js +42 -0
  743. package/dist/workers/quickInputTreeRenderer.js +141 -0
  744. package/dist/workers/quickInputTreeSorter.js +48 -0
  745. package/dist/workers/quickInputUtils.js +89 -0
  746. package/dist/workers/quickpickColors.js +21 -0
  747. package/dist/workers/r.contribution.js +8 -0
  748. package/dist/workers/r.js +242 -0
  749. package/dist/workers/range.js +421 -0
  750. package/dist/workers/rangeMap.js +161 -0
  751. package/dist/workers/rangeMapping.js +229 -0
  752. package/dist/workers/rangeSingleLine.js +17 -0
  753. package/dist/workers/rangeUtil.js +117 -0
  754. package/dist/workers/razor.contribution.js +9 -0
  755. package/dist/workers/razor.js +616 -0
  756. package/dist/workers/rbTreeBase.js +362 -0
  757. package/dist/workers/rect.js +163 -0
  758. package/dist/workers/rectangleRenderer.js +214 -0
  759. package/dist/workers/rectangleRenderer.wgsl.js +68 -0
  760. package/dist/workers/redis.contribution.js +8 -0
  761. package/dist/workers/redis.js +301 -0
  762. package/dist/workers/redshift.contribution.js +8 -0
  763. package/dist/workers/redshift.js +808 -0
  764. package/dist/workers/reducer.js +46 -0
  765. package/dist/workers/referencesController.js +382 -0
  766. package/dist/workers/referencesModel.js +241 -0
  767. package/dist/workers/referencesTree.js +200 -0
  768. package/dist/workers/referencesWidget.js +525 -0
  769. package/dist/workers/registrations.contribution.js +82 -0
  770. package/dist/workers/rename.js +458 -0
  771. package/dist/workers/renameWidget.js +741 -0
  772. package/dist/workers/renderLines.js +185 -0
  773. package/dist/workers/renderingContext.js +118 -0
  774. package/dist/workers/replaceAllCommand.js +54 -0
  775. package/dist/workers/replaceCommand.js +158 -0
  776. package/dist/workers/replaceInput.js +176 -0
  777. package/dist/workers/replacePattern.js +289 -0
  778. package/dist/workers/replaceWidgetHistory.js +85 -0
  779. package/dist/workers/resizable.js +150 -0
  780. package/dist/workers/resizableContentWidget.js +92 -0
  781. package/dist/workers/resolvedKeybindingItem.js +35 -0
  782. package/dist/workers/resolverService.js +5 -0
  783. package/dist/workers/resources.js +231 -0
  784. package/dist/workers/restructuredtext.contribution.js +8 -0
  785. package/dist/workers/restructuredtext.js +173 -0
  786. package/dist/workers/revertButtonsFeature.js +149 -0
  787. package/dist/workers/rgba.js +35 -0
  788. package/dist/workers/richEditBrackets.js +356 -0
  789. package/dist/workers/rowCache.js +110 -0
  790. package/dist/workers/rpc.js +57 -0
  791. package/dist/workers/ruby.contribution.js +9 -0
  792. package/dist/workers/ruby.js +510 -0
  793. package/dist/workers/rulers.js +82 -0
  794. package/dist/workers/rulersGpu.js +66 -0
  795. package/dist/workers/runOnChange.js +61 -0
  796. package/dist/workers/rust.contribution.js +8 -0
  797. package/dist/workers/rust.js +342 -0
  798. package/dist/workers/sash.js +451 -0
  799. package/dist/workers/sb.contribution.js +8 -0
  800. package/dist/workers/sb.js +114 -0
  801. package/dist/workers/scala.contribution.js +9 -0
  802. package/dist/workers/scala.js +369 -0
  803. package/dist/workers/scanner.js +287 -0
  804. package/dist/workers/scheme.contribution.js +8 -0
  805. package/dist/workers/scheme.js +107 -0
  806. package/dist/workers/screenReaderContentRich.js +337 -0
  807. package/dist/workers/screenReaderContentSimple.js +194 -0
  808. package/dist/workers/screenReaderSupport.js +175 -0
  809. package/dist/workers/screenReaderUtils.js +111 -0
  810. package/dist/workers/scrollDecoration.js +70 -0
  811. package/dist/workers/scrollable.js +323 -0
  812. package/dist/workers/scrollableElement.js +603 -0
  813. package/dist/workers/scrollbarArrow.js +78 -0
  814. package/dist/workers/scrollbarState.js +163 -0
  815. package/dist/workers/scrollbarVisibilityController.js +93 -0
  816. package/dist/workers/scss.contribution.js +9 -0
  817. package/dist/workers/scss.js +259 -0
  818. package/dist/workers/search.js +52 -0
  819. package/dist/workers/searchColors.js +13 -0
  820. package/dist/workers/sectionHeaders.js +179 -0
  821. package/dist/workers/selectBox.js +47 -0
  822. package/dist/workers/selectBoxCustom.js +858 -0
  823. package/dist/workers/selectBoxNative.js +142 -0
  824. package/dist/workers/selection.js +145 -0
  825. package/dist/workers/selections.js +338 -0
  826. package/dist/workers/semanticTokensConfig.js +14 -0
  827. package/dist/workers/semanticTokensDto.js +82 -0
  828. package/dist/workers/semanticTokensProviderStyling.js +263 -0
  829. package/dist/workers/semanticTokensStyling.js +9 -0
  830. package/dist/workers/semanticTokensStylingService.js +47 -0
  831. package/dist/workers/serviceCollection.js +22 -0
  832. package/dist/workers/severity.js +52 -0
  833. package/dist/workers/severityIcon.js +29 -0
  834. package/dist/workers/shell.contribution.js +8 -0
  835. package/dist/workers/shell.js +220 -0
  836. package/dist/workers/shiftCommand.js +241 -0
  837. package/dist/workers/singleTextEditHelpers.js +32 -0
  838. package/dist/workers/smallImmutableSet.js +108 -0
  839. package/dist/workers/smartSelect.js +281 -0
  840. package/dist/workers/snippetController2.js +297 -0
  841. package/dist/workers/snippetParser.js +890 -0
  842. package/dist/workers/snippetSession.js +650 -0
  843. package/dist/workers/snippetVariables.js +323 -0
  844. package/dist/workers/solidity.contribution.js +8 -0
  845. package/dist/workers/solidity.js +1366 -0
  846. package/dist/workers/sophia.contribution.js +8 -0
  847. package/dist/workers/sophia.js +198 -0
  848. package/dist/workers/sortLinesCommand.js +81 -0
  849. package/dist/workers/sparql.contribution.js +8 -0
  850. package/dist/workers/sparql.js +200 -0
  851. package/dist/workers/sparseMultilineTokens.js +548 -0
  852. package/dist/workers/sparseTokensStore.js +210 -0
  853. package/dist/workers/splice.js +14 -0
  854. package/dist/workers/splitview.js +829 -0
  855. package/dist/workers/sql.contribution.js +8 -0
  856. package/dist/workers/sql.js +852 -0
  857. package/dist/workers/st.contribution.js +8 -0
  858. package/dist/workers/st.js +415 -0
  859. package/dist/workers/stableEditorScroll.js +52 -0
  860. package/dist/workers/standaloneCodeEditor.js +335 -0
  861. package/dist/workers/standaloneCodeEditorService.js +96 -0
  862. package/dist/workers/standaloneColorPickerActions.js +81 -0
  863. package/dist/workers/standaloneColorPickerController.js +62 -0
  864. package/dist/workers/standaloneColorPickerParticipant.js +117 -0
  865. package/dist/workers/standaloneColorPickerWidget.js +215 -0
  866. package/dist/workers/standaloneCommandsQuickAccess.js +82 -0
  867. package/dist/workers/standaloneEditor.js +519 -0
  868. package/dist/workers/standaloneEnums.js +1017 -0
  869. package/dist/workers/standaloneGotoLineQuickAccess.js +67 -0
  870. package/dist/workers/standaloneGotoSymbolQuickAccess.js +77 -0
  871. package/dist/workers/standaloneHelpQuickAccess.js +14 -0
  872. package/dist/workers/standaloneLanguages.js +621 -0
  873. package/dist/workers/standaloneLayoutService.js +74 -0
  874. package/dist/workers/standaloneQuickInputService.js +150 -0
  875. package/dist/workers/standaloneReferenceSearch.js +38 -0
  876. package/dist/workers/standaloneServices.js +787 -0
  877. package/dist/workers/standaloneStrings.js +42 -0
  878. package/dist/workers/standaloneTheme.js +9 -0
  879. package/dist/workers/standaloneThemeService.js +367 -0
  880. package/dist/workers/standaloneTreeSitterLibraryService.js +23 -0
  881. package/dist/workers/standaloneWebWorker.js +55 -0
  882. package/dist/workers/stickyScrollActions.js +132 -0
  883. package/dist/workers/stickyScrollContribution.js +16 -0
  884. package/dist/workers/stickyScrollController.js +566 -0
  885. package/dist/workers/stickyScrollElement.js +39 -0
  886. package/dist/workers/stickyScrollModelProvider.js +338 -0
  887. package/dist/workers/stickyScrollProvider.js +197 -0
  888. package/dist/workers/stickyScrollWidget.js +474 -0
  889. package/dist/workers/stopwatch.js +30 -0
  890. package/dist/workers/storage.js +200 -0
  891. package/dist/workers/stringBuilder.js +122 -0
  892. package/dist/workers/stringEdit.js +165 -0
  893. package/dist/workers/strings.js +834 -0
  894. package/dist/workers/structuredLogger.js +56 -0
  895. package/dist/workers/suggest.js +322 -0
  896. package/dist/workers/suggestAlternatives.js +95 -0
  897. package/dist/workers/suggestCommitCharacters.js +59 -0
  898. package/dist/workers/suggestController.js +941 -0
  899. package/dist/workers/suggestInlineCompletions.js +193 -0
  900. package/dist/workers/suggestMemory.js +254 -0
  901. package/dist/workers/suggestModel.js +667 -0
  902. package/dist/workers/suggestOvertypingCapturer.js +62 -0
  903. package/dist/workers/suggestWidget.js +890 -0
  904. package/dist/workers/suggestWidgetAdapter.js +210 -0
  905. package/dist/workers/suggestWidgetDetails.js +393 -0
  906. package/dist/workers/suggestWidgetRenderer.js +208 -0
  907. package/dist/workers/suggestWidgetStatus.js +74 -0
  908. package/dist/workers/supports.js +58 -0
  909. package/dist/workers/surroundSelectionCommand.js +44 -0
  910. package/dist/workers/swift.contribution.js +9 -0
  911. package/dist/workers/swift.js +311 -0
  912. package/dist/workers/symbolIcons.js +101 -0
  913. package/dist/workers/symbolNavigation.js +178 -0
  914. package/dist/workers/symbols.js +10 -0
  915. package/dist/workers/syntaxRangeProvider.js +177 -0
  916. package/dist/workers/systemverilog.contribution.js +14 -0
  917. package/dist/workers/systemverilog.js +575 -0
  918. package/dist/workers/tabFocus.js +29 -0
  919. package/dist/workers/tableWidget.js +181 -0
  920. package/dist/workers/taskQueue.js +116 -0
  921. package/dist/workers/tcl.contribution.js +8 -0
  922. package/dist/workers/tcl.js +231 -0
  923. package/dist/workers/telemetry.js +9 -0
  924. package/dist/workers/ternarySearchTree.js +674 -0
  925. package/dist/workers/textAreaEditContext.js +720 -0
  926. package/dist/workers/textAreaEditContextInput.js +588 -0
  927. package/dist/workers/textAreaEditContextState.js +160 -0
  928. package/dist/workers/textChange.js +248 -0
  929. package/dist/workers/textEdit.js +269 -0
  930. package/dist/workers/textLength.js +87 -0
  931. package/dist/workers/textModel.js +2031 -0
  932. package/dist/workers/textModelBracketPairs.js +45 -0
  933. package/dist/workers/textModelDefaults.js +18 -0
  934. package/dist/workers/textModelEditSource.js +166 -0
  935. package/dist/workers/textModelEvents.js +216 -0
  936. package/dist/workers/textModelGuides.js +40 -0
  937. package/dist/workers/textModelPart.js +23 -0
  938. package/dist/workers/textModelSearch.js +455 -0
  939. package/dist/workers/textModelStringEdit.js +11 -0
  940. package/dist/workers/textModelSync.impl.js +307 -0
  941. package/dist/workers/textModelText.js +26 -0
  942. package/dist/workers/textModelTokens.js +436 -0
  943. package/dist/workers/textResourceConfiguration.js +6 -0
  944. package/dist/workers/textToHtmlTokenizer.js +139 -0
  945. package/dist/workers/textualHighlightProvider.js +78 -0
  946. package/dist/workers/textureAtlas.js +179 -0
  947. package/dist/workers/textureAtlasPage.js +110 -0
  948. package/dist/workers/textureAtlasShelfAllocator.js +129 -0
  949. package/dist/workers/textureAtlasSlabAllocator.js +346 -0
  950. package/dist/workers/tfIdf.js +179 -0
  951. package/dist/workers/themables.js +100 -0
  952. package/dist/workers/theme.js +110 -0
  953. package/dist/workers/themeService.js +67 -0
  954. package/dist/workers/themes.js +242 -0
  955. package/dist/workers/toggle.js +242 -0
  956. package/dist/workers/toggleHighContrast.js +35 -0
  957. package/dist/workers/toggleTabFocusMode.js +42 -0
  958. package/dist/workers/tokenStore.js +407 -0
  959. package/dist/workers/tokenWithTextArray.js +73 -0
  960. package/dist/workers/tokenization.js +29 -0
  961. package/dist/workers/tokenizationRegistry.js +123 -0
  962. package/dist/workers/tokenizationTextModelPart.js +275 -0
  963. package/dist/workers/tokenizer.js +301 -0
  964. package/dist/workers/tokenizerSyntaxTokenBackend.js +261 -0
  965. package/dist/workers/toolbar.js +244 -0
  966. package/dist/workers/touch.js +270 -0
  967. package/dist/workers/transaction.js +109 -0
  968. package/dist/workers/transpose.js +65 -0
  969. package/dist/workers/tree.js +45 -0
  970. package/dist/workers/treeSitterLibraryService.js +9 -0
  971. package/dist/workers/treeSitterSyntaxTokenBackend.js +167 -0
  972. package/dist/workers/treeSitterThemeService.js +9 -0
  973. package/dist/workers/treeSitterTokenizationImpl.js +713 -0
  974. package/dist/workers/treeSitterTree.js +395 -0
  975. package/dist/workers/treeViewsDnd.js +24 -0
  976. package/dist/workers/treeViewsDndService.js +12 -0
  977. package/dist/workers/triggerInlineEditCommandsRegistry.js +18 -0
  978. package/dist/workers/trimTrailingWhitespaceCommand.js +98 -0
  979. package/dist/workers/trustedTypes.js +29 -0
  980. package/dist/workers/tsMode.js +212 -0
  981. package/dist/workers/tsWorker.js +352 -0
  982. package/dist/workers/twig.contribution.js +9 -0
  983. package/dist/workers/twig.js +391 -0
  984. package/dist/workers/types.js +144 -0
  985. package/dist/workers/typescript.contribution.js +11 -0
  986. package/dist/workers/typescript.js +408 -0
  987. package/dist/workers/typescriptServices.js +210154 -0
  988. package/dist/workers/typescriptServicesMetadata.js +3 -0
  989. package/dist/workers/typespec.contribution.js +8 -0
  990. package/dist/workers/typespec.js +126 -0
  991. package/dist/workers/typingSpeed.js +165 -0
  992. package/dist/workers/uint.js +24 -0
  993. package/dist/workers/undoRedo.js +43 -0
  994. package/dist/workers/undoRedoService.js +1076 -0
  995. package/dist/workers/unicodeHighlighter.js +673 -0
  996. package/dist/workers/unicodeTextModelHighlighter.js +188 -0
  997. package/dist/workers/unusualLineTerminators.js +113 -0
  998. package/dist/workers/updatableHoverWidget.js +107 -0
  999. package/dist/workers/uri.js +606 -0
  1000. package/dist/workers/usLayoutResolvedKeybinding.js +175 -0
  1001. package/dist/workers/utils.js +209 -0
  1002. package/dist/workers/utilsCancellation.js +63 -0
  1003. package/dist/workers/uuid.js +53 -0
  1004. package/dist/workers/validation.js +159 -0
  1005. package/dist/workers/vb.contribution.js +8 -0
  1006. package/dist/workers/vb.js +371 -0
  1007. package/dist/workers/verticalScrollbar.js +94 -0
  1008. package/dist/workers/view.js +720 -0
  1009. package/dist/workers/viewContext.js +22 -0
  1010. package/dist/workers/viewController.js +274 -0
  1011. package/dist/workers/viewCursor.js +218 -0
  1012. package/dist/workers/viewCursors.js +339 -0
  1013. package/dist/workers/viewEventHandler.js +186 -0
  1014. package/dist/workers/viewEvents.js +180 -0
  1015. package/dist/workers/viewGpuContext.js +241 -0
  1016. package/dist/workers/viewLayer.js +478 -0
  1017. package/dist/workers/viewLayout.js +368 -0
  1018. package/dist/workers/viewLine.js +544 -0
  1019. package/dist/workers/viewLineOptions.js +43 -0
  1020. package/dist/workers/viewLineRenderer.js +948 -0
  1021. package/dist/workers/viewLines.js +721 -0
  1022. package/dist/workers/viewLinesGpu.js +571 -0
  1023. package/dist/workers/viewLinesViewportData.js +30 -0
  1024. package/dist/workers/viewModel.js +98 -0
  1025. package/dist/workers/viewModelDecoration.js +55 -0
  1026. package/dist/workers/viewModelDecorations.js +132 -0
  1027. package/dist/workers/viewModelEventDispatcher.js +398 -0
  1028. package/dist/workers/viewModelImpl.js +1163 -0
  1029. package/dist/workers/viewModelLines.js +938 -0
  1030. package/dist/workers/viewOverlays.js +204 -0
  1031. package/dist/workers/viewPart.js +49 -0
  1032. package/dist/workers/viewUserInputEvents.js +91 -0
  1033. package/dist/workers/viewZones.js +335 -0
  1034. package/dist/workers/viewportRenderStrategy.js +316 -0
  1035. package/dist/workers/viewportSemanticTokens.js +166 -0
  1036. package/dist/workers/webWorker.js +396 -0
  1037. package/dist/workers/webWorkerBootstrap.js +20 -0
  1038. package/dist/workers/webWorkerFactory.js +171 -0
  1039. package/dist/workers/wgsl.contribution.js +8 -0
  1040. package/dist/workers/wgsl.js +452 -0
  1041. package/dist/workers/whitespace.js +277 -0
  1042. package/dist/workers/widget.js +44 -0
  1043. package/dist/workers/window.js +60 -0
  1044. package/dist/workers/wordCharacterClassifier.js +87 -0
  1045. package/dist/workers/wordContextKey.js +69 -0
  1046. package/dist/workers/wordDistance.js +64 -0
  1047. package/dist/workers/wordHelper.js +127 -0
  1048. package/dist/workers/wordHighlighter.js +796 -0
  1049. package/dist/workers/wordOperations.js +442 -0
  1050. package/dist/workers/wordPartOperations.js +145 -0
  1051. package/dist/workers/wordSelections.js +82 -0
  1052. package/dist/workers/workerManager.js +147 -0
  1053. package/dist/workers/workers.js +141 -0
  1054. package/dist/workers/workspace.js +84 -0
  1055. package/dist/workers/workspaceTrust.js +9 -0
  1056. package/dist/workers/wrapInHotClass.js +41 -0
  1057. package/dist/workers/wrapInReloadableClass.js +35 -0
  1058. package/dist/workers/xml.contribution.js +28 -0
  1059. package/dist/workers/xml.js +160 -0
  1060. package/dist/workers/yaml.contribution.js +9 -0
  1061. package/dist/workers/yaml.js +271 -0
  1062. package/dist/workers/zoneWidget.js +406 -0
  1063. package/package.json +2 -2
  1064. package/dist/assets/css.worker-C7FogG4G.js +0 -93
  1065. package/dist/assets/editor.worker-iXcRX1Tq.js +0 -26
  1066. package/dist/assets/html.worker-C8VxctEJ.js +0 -470
  1067. package/dist/assets/json.worker-CMC9kgPL.js +0 -58
  1068. package/dist/assets/ts.worker-CtTJ3hNN.js +0 -67731
@@ -0,0 +1,1391 @@
1
+ import { asCSSUrl } from '../../../base/browser/cssValue.js';
2
+ import { append, $ as $$1, addStandardDisposableListener, EventType, prepend, addDisposableListener, isHTMLAnchorElement, isAncestor } from '../../../base/browser/dom.js';
3
+ import { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';
4
+ import { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';
5
+ import { IconLabel } from '../../../base/browser/ui/iconLabel/iconLabel.js';
6
+ import { KeybindingLabel } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';
7
+ import { Checkbox } from '../../../base/browser/ui/toggle/toggle.js';
8
+ import { RenderIndentGuides } from '../../../base/browser/ui/tree/abstractTree.js';
9
+ import { equals } from '../../../base/common/arrays.js';
10
+ import { ThrottledDelayer } from '../../../base/common/async.js';
11
+ import { compareAnything } from '../../../base/common/comparers.js';
12
+ import { memoize } from '../../../base/common/decorators.js';
13
+ import { isCancellationError } from '../../../base/common/errors.js';
14
+ import { Emitter, Event, EventBufferer } from '../../../base/common/event.js';
15
+ import { matchesFuzzyIconAware, parseLabelWithIcons, getCodiconAriaLabel } from '../../../base/common/iconLabels.js';
16
+ import { Lazy } from '../../../base/common/lazy.js';
17
+ import { DisposableStore, MutableDisposable, Disposable } from '../../../base/common/lifecycle.js';
18
+ import '../../../base/common/observableInternal/index.js';
19
+ import { OS } from '../../../base/common/platform.js';
20
+ import { escape, ltrim } from '../../../base/common/strings.js';
21
+ import { URI } from '../../../base/common/uri.js';
22
+ import { localize } from '../../../nls.js';
23
+ import { IAccessibilityService } from '../../accessibility/common/accessibility.js';
24
+ import { IInstantiationService } from '../../instantiation/common/instantiation.js';
25
+ import { WorkbenchObjectTree } from '../../list/browser/listService.js';
26
+ import { defaultCheckboxStyles } from '../../theme/browser/defaultStyles.js';
27
+ import { isDark } from '../../theme/common/theme.js';
28
+ import { IThemeService } from '../../theme/common/themeService.js';
29
+ import { QuickPickFocus } from '../common/quickInput.js';
30
+ import { quickInputButtonToAction } from './quickInputUtils.js';
31
+ import { observableValue } from '../../../base/common/observableInternal/observables/observableValue.js';
32
+ import { observableValueOpts } from '../../../base/common/observableInternal/observables/observableValueOpts.js';
33
+ import { transaction } from '../../../base/common/observableInternal/transaction.js';
34
+
35
+ /*---------------------------------------------------------------------------------------------
36
+ * Copyright (c) Microsoft Corporation. All rights reserved.
37
+ * Licensed under the MIT License. See License.txt in the project root for license information.
38
+ *--------------------------------------------------------------------------------------------*/
39
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
43
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
44
+ };
45
+ var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
46
+ return function (target, key) { decorator(target, key, paramIndex); }
47
+ };
48
+ var QuickPickItemElementRenderer_1;
49
+ const $ = $$1;
50
+ class BaseQuickPickItemElement {
51
+ constructor(index, hasCheckbox, mainItem) {
52
+ this.index = index;
53
+ this.hasCheckbox = hasCheckbox;
54
+ this._hidden = false;
55
+ this._init = new Lazy(() => {
56
+ const saneLabel = mainItem.label ?? '';
57
+ const saneSortLabel = parseLabelWithIcons(saneLabel).text.trim();
58
+ const saneAriaLabel = mainItem.ariaLabel || [saneLabel, this.saneDescription, this.saneDetail]
59
+ .map(s => getCodiconAriaLabel(s))
60
+ .filter(s => !!s)
61
+ .join(', ');
62
+ return {
63
+ saneLabel,
64
+ saneSortLabel,
65
+ saneAriaLabel
66
+ };
67
+ });
68
+ this._saneDescription = mainItem.description;
69
+ this._saneTooltip = mainItem.tooltip;
70
+ }
71
+ // #region Lazy Getters
72
+ get saneLabel() {
73
+ return this._init.value.saneLabel;
74
+ }
75
+ get saneSortLabel() {
76
+ return this._init.value.saneSortLabel;
77
+ }
78
+ get saneAriaLabel() {
79
+ return this._init.value.saneAriaLabel;
80
+ }
81
+ get element() {
82
+ return this._element;
83
+ }
84
+ set element(value) {
85
+ this._element = value;
86
+ }
87
+ get hidden() {
88
+ return this._hidden;
89
+ }
90
+ set hidden(value) {
91
+ this._hidden = value;
92
+ }
93
+ get saneDescription() {
94
+ return this._saneDescription;
95
+ }
96
+ set saneDescription(value) {
97
+ this._saneDescription = value;
98
+ }
99
+ get saneDetail() {
100
+ return this._saneDetail;
101
+ }
102
+ set saneDetail(value) {
103
+ this._saneDetail = value;
104
+ }
105
+ get saneTooltip() {
106
+ return this._saneTooltip;
107
+ }
108
+ set saneTooltip(value) {
109
+ this._saneTooltip = value;
110
+ }
111
+ get labelHighlights() {
112
+ return this._labelHighlights;
113
+ }
114
+ set labelHighlights(value) {
115
+ this._labelHighlights = value;
116
+ }
117
+ get descriptionHighlights() {
118
+ return this._descriptionHighlights;
119
+ }
120
+ set descriptionHighlights(value) {
121
+ this._descriptionHighlights = value;
122
+ }
123
+ get detailHighlights() {
124
+ return this._detailHighlights;
125
+ }
126
+ set detailHighlights(value) {
127
+ this._detailHighlights = value;
128
+ }
129
+ }
130
+ class QuickPickItemElement extends BaseQuickPickItemElement {
131
+ constructor(index, childIndex, hasCheckbox, fireButtonTriggered, _onChecked, item, _separator) {
132
+ super(index, hasCheckbox, item);
133
+ this.childIndex = childIndex;
134
+ this.fireButtonTriggered = fireButtonTriggered;
135
+ this._onChecked = _onChecked;
136
+ this.item = item;
137
+ this._separator = _separator;
138
+ this._checked = false;
139
+ this.onChecked = hasCheckbox
140
+ ? Event.map(Event.filter(this._onChecked.event, e => e.element === this), e => e.checked)
141
+ : Event.None;
142
+ this._saneDetail = item.detail;
143
+ this._labelHighlights = item.highlights?.label;
144
+ this._descriptionHighlights = item.highlights?.description;
145
+ this._detailHighlights = item.highlights?.detail;
146
+ }
147
+ get separator() {
148
+ return this._separator;
149
+ }
150
+ set separator(value) {
151
+ this._separator = value;
152
+ }
153
+ get checked() {
154
+ return this._checked;
155
+ }
156
+ set checked(value) {
157
+ if (value !== this._checked) {
158
+ this._checked = value;
159
+ this._onChecked.fire({ element: this, checked: value });
160
+ }
161
+ }
162
+ get checkboxDisabled() {
163
+ return !!this.item.disabled;
164
+ }
165
+ }
166
+ var QuickPickSeparatorFocusReason;
167
+ (function (QuickPickSeparatorFocusReason) {
168
+ /**
169
+ * No item is hovered or active
170
+ */
171
+ QuickPickSeparatorFocusReason[QuickPickSeparatorFocusReason["NONE"] = 0] = "NONE";
172
+ /**
173
+ * Some item within this section is hovered
174
+ */
175
+ QuickPickSeparatorFocusReason[QuickPickSeparatorFocusReason["MOUSE_HOVER"] = 1] = "MOUSE_HOVER";
176
+ /**
177
+ * Some item within this section is active
178
+ */
179
+ QuickPickSeparatorFocusReason[QuickPickSeparatorFocusReason["ACTIVE_ITEM"] = 2] = "ACTIVE_ITEM";
180
+ })(QuickPickSeparatorFocusReason || (QuickPickSeparatorFocusReason = {}));
181
+ class QuickPickSeparatorElement extends BaseQuickPickItemElement {
182
+ constructor(index, fireSeparatorButtonTriggered, separator) {
183
+ super(index, false, separator);
184
+ this.fireSeparatorButtonTriggered = fireSeparatorButtonTriggered;
185
+ this.separator = separator;
186
+ this.children = new Array();
187
+ /**
188
+ * If this item is >0, it means that there is some item in the list that is either:
189
+ * * hovered over
190
+ * * active
191
+ */
192
+ this.focusInsideSeparator = QuickPickSeparatorFocusReason.NONE;
193
+ }
194
+ }
195
+ class QuickInputItemDelegate {
196
+ getHeight(element) {
197
+ if (element instanceof QuickPickSeparatorElement) {
198
+ return 30;
199
+ }
200
+ return element.saneDetail ? 44 : 22;
201
+ }
202
+ getTemplateId(element) {
203
+ if (element instanceof QuickPickItemElement) {
204
+ return QuickPickItemElementRenderer.ID;
205
+ }
206
+ else {
207
+ return QuickPickSeparatorElementRenderer.ID;
208
+ }
209
+ }
210
+ }
211
+ class QuickInputAccessibilityProvider {
212
+ getWidgetAriaLabel() {
213
+ return localize(1770, "Quick Input");
214
+ }
215
+ getAriaLabel(element) {
216
+ return element.separator?.label
217
+ ? `${element.saneAriaLabel}, ${element.separator.label}`
218
+ : element.saneAriaLabel;
219
+ }
220
+ getWidgetRole() {
221
+ return 'listbox';
222
+ }
223
+ getRole(element) {
224
+ return element.hasCheckbox ? 'checkbox' : 'option';
225
+ }
226
+ isChecked(element) {
227
+ if (!element.hasCheckbox || !(element instanceof QuickPickItemElement)) {
228
+ return undefined;
229
+ }
230
+ return {
231
+ get value() { return element.checked; },
232
+ onDidChange: e => element.onChecked(() => e()),
233
+ };
234
+ }
235
+ }
236
+ class BaseQuickInputListRenderer {
237
+ constructor(hoverDelegate) {
238
+ this.hoverDelegate = hoverDelegate;
239
+ }
240
+ // TODO: only do the common stuff here and have a subclass handle their specific stuff
241
+ renderTemplate(container) {
242
+ const data = Object.create(null);
243
+ data.toDisposeElement = new DisposableStore();
244
+ data.toDisposeTemplate = new DisposableStore();
245
+ data.entry = append(container, $('.quick-input-list-entry'));
246
+ // Checkbox
247
+ const label = append(data.entry, $('label.quick-input-list-label'));
248
+ data.outerLabel = label;
249
+ data.checkbox = data.toDisposeTemplate.add(new MutableDisposable());
250
+ data.toDisposeTemplate.add(addStandardDisposableListener(label, EventType.CLICK, e => {
251
+ // `label` elements with role=checkboxes don't automatically toggle them like normal <checkbox> elements
252
+ if (data.checkbox.value && !e.defaultPrevented && data.checkbox.value.enabled) {
253
+ const checked = !data.checkbox.value.checked;
254
+ data.checkbox.value.checked = checked;
255
+ data.element.checked = checked;
256
+ }
257
+ }));
258
+ // Rows
259
+ const rows = append(label, $('.quick-input-list-rows'));
260
+ const row1 = append(rows, $('.quick-input-list-row'));
261
+ const row2 = append(rows, $('.quick-input-list-row'));
262
+ // Label
263
+ data.label = new IconLabel(row1, { supportHighlights: true, supportDescriptionHighlights: true, supportIcons: true, hoverDelegate: this.hoverDelegate });
264
+ data.toDisposeTemplate.add(data.label);
265
+ data.icon = prepend(data.label.element, $('.quick-input-list-icon'));
266
+ // Keybinding
267
+ const keybindingContainer = append(row1, $('.quick-input-list-entry-keybinding'));
268
+ data.keybinding = new KeybindingLabel(keybindingContainer, OS);
269
+ data.toDisposeTemplate.add(data.keybinding);
270
+ // Detail
271
+ const detailContainer = append(row2, $('.quick-input-list-label-meta'));
272
+ data.detail = new IconLabel(detailContainer, { supportHighlights: true, supportIcons: true, hoverDelegate: this.hoverDelegate });
273
+ data.toDisposeTemplate.add(data.detail);
274
+ // Separator
275
+ data.separator = append(data.entry, $('.quick-input-list-separator'));
276
+ // Actions
277
+ data.actionBar = new ActionBar(data.entry, this.hoverDelegate ? { hoverDelegate: this.hoverDelegate } : undefined);
278
+ data.actionBar.domNode.classList.add('quick-input-list-entry-action-bar');
279
+ data.toDisposeTemplate.add(data.actionBar);
280
+ return data;
281
+ }
282
+ disposeTemplate(data) {
283
+ data.toDisposeElement.dispose();
284
+ data.toDisposeTemplate.dispose();
285
+ }
286
+ disposeElement(_element, _index, data) {
287
+ data.toDisposeElement.clear();
288
+ data.actionBar.clear();
289
+ }
290
+ }
291
+ let QuickPickItemElementRenderer = class QuickPickItemElementRenderer extends BaseQuickInputListRenderer {
292
+ static { QuickPickItemElementRenderer_1 = this; }
293
+ static { this.ID = 'quickpickitem'; }
294
+ constructor(hoverDelegate, themeService) {
295
+ super(hoverDelegate);
296
+ this.themeService = themeService;
297
+ // Follow what we do in the separator renderer
298
+ this._itemsWithSeparatorsFrequency = new Map();
299
+ }
300
+ get templateId() {
301
+ return QuickPickItemElementRenderer_1.ID;
302
+ }
303
+ ensureCheckbox(element, data) {
304
+ if (!element.hasCheckbox) {
305
+ data.checkbox.value?.domNode.remove();
306
+ data.checkbox.clear();
307
+ return;
308
+ }
309
+ let checkbox = data.checkbox.value;
310
+ if (!checkbox) {
311
+ checkbox = new Checkbox(element.saneLabel, element.checked, { ...defaultCheckboxStyles, size: 15 });
312
+ data.checkbox.value = checkbox;
313
+ data.outerLabel.prepend(checkbox.domNode);
314
+ }
315
+ else {
316
+ checkbox.setTitle(element.saneLabel);
317
+ }
318
+ if (element.checkboxDisabled) {
319
+ checkbox.disable();
320
+ }
321
+ else {
322
+ checkbox.enable();
323
+ }
324
+ checkbox.checked = element.checked;
325
+ data.toDisposeElement.add(element.onChecked(checked => checkbox.checked = checked));
326
+ data.toDisposeElement.add(checkbox.onChange(() => element.checked = checkbox.checked));
327
+ }
328
+ renderElement(node, index, data) {
329
+ const element = node.element;
330
+ data.element = element;
331
+ element.element = data.entry ?? undefined;
332
+ const mainItem = element.item;
333
+ element.element.classList.toggle('not-pickable', element.item.pickable === false);
334
+ this.ensureCheckbox(element, data);
335
+ const { labelHighlights, descriptionHighlights, detailHighlights } = element;
336
+ // Icon
337
+ if (mainItem.iconPath) {
338
+ const icon = isDark(this.themeService.getColorTheme().type) ? mainItem.iconPath.dark : (mainItem.iconPath.light ?? mainItem.iconPath.dark);
339
+ const iconUrl = URI.revive(icon);
340
+ data.icon.className = 'quick-input-list-icon';
341
+ data.icon.style.backgroundImage = asCSSUrl(iconUrl);
342
+ }
343
+ else {
344
+ data.icon.style.backgroundImage = '';
345
+ data.icon.className = mainItem.iconClass ? `quick-input-list-icon ${mainItem.iconClass}` : '';
346
+ }
347
+ // Label
348
+ let descriptionTitle;
349
+ // if we have a tooltip, that will be the hover,
350
+ // with the saneDescription as fallback if it
351
+ // is defined
352
+ if (!element.saneTooltip && element.saneDescription) {
353
+ descriptionTitle = {
354
+ markdown: {
355
+ value: escape(element.saneDescription),
356
+ supportThemeIcons: true
357
+ },
358
+ markdownNotSupportedFallback: element.saneDescription
359
+ };
360
+ }
361
+ const options = {
362
+ matches: labelHighlights || [],
363
+ // If we have a tooltip, we want that to be shown and not any other hover
364
+ descriptionTitle,
365
+ descriptionMatches: descriptionHighlights || [],
366
+ labelEscapeNewLines: true
367
+ };
368
+ options.extraClasses = mainItem.iconClasses;
369
+ options.italic = mainItem.italic;
370
+ options.strikethrough = mainItem.strikethrough;
371
+ data.entry.classList.remove('quick-input-list-separator-as-item');
372
+ data.label.setLabel(element.saneLabel, element.saneDescription, options);
373
+ // Keybinding
374
+ data.keybinding.set(mainItem.keybinding);
375
+ // Detail
376
+ if (element.saneDetail) {
377
+ let title;
378
+ // If we have a tooltip, we want that to be shown and not any other hover
379
+ if (!element.saneTooltip) {
380
+ title = {
381
+ markdown: {
382
+ value: escape(element.saneDetail),
383
+ supportThemeIcons: true
384
+ },
385
+ markdownNotSupportedFallback: element.saneDetail
386
+ };
387
+ }
388
+ data.detail.element.style.display = '';
389
+ data.detail.setLabel(element.saneDetail, undefined, {
390
+ matches: detailHighlights,
391
+ title,
392
+ labelEscapeNewLines: true
393
+ });
394
+ }
395
+ else {
396
+ data.detail.element.style.display = 'none';
397
+ }
398
+ // Separator
399
+ if (element.separator?.label) {
400
+ data.separator.textContent = element.separator.label;
401
+ data.separator.style.display = '';
402
+ this.addItemWithSeparator(element);
403
+ }
404
+ else {
405
+ data.separator.style.display = 'none';
406
+ }
407
+ data.entry.classList.toggle('quick-input-list-separator-border', !!element.separator && element.childIndex !== 0);
408
+ // Actions
409
+ const buttons = mainItem.buttons;
410
+ if (buttons && buttons.length) {
411
+ data.actionBar.push(buttons.map((button, index) => quickInputButtonToAction(button, `id-${index}`, () => element.fireButtonTriggered({ button, item: element.item }))), { icon: true, label: false });
412
+ data.entry.classList.add('has-actions');
413
+ }
414
+ else {
415
+ data.entry.classList.remove('has-actions');
416
+ }
417
+ }
418
+ disposeElement(element, _index, data) {
419
+ this.removeItemWithSeparator(element.element);
420
+ super.disposeElement(element, _index, data);
421
+ }
422
+ isItemWithSeparatorVisible(item) {
423
+ return this._itemsWithSeparatorsFrequency.has(item);
424
+ }
425
+ addItemWithSeparator(item) {
426
+ this._itemsWithSeparatorsFrequency.set(item, (this._itemsWithSeparatorsFrequency.get(item) || 0) + 1);
427
+ }
428
+ removeItemWithSeparator(item) {
429
+ const frequency = this._itemsWithSeparatorsFrequency.get(item) || 0;
430
+ if (frequency > 1) {
431
+ this._itemsWithSeparatorsFrequency.set(item, frequency - 1);
432
+ }
433
+ else {
434
+ this._itemsWithSeparatorsFrequency.delete(item);
435
+ }
436
+ }
437
+ };
438
+ QuickPickItemElementRenderer = QuickPickItemElementRenderer_1 = __decorate([
439
+ __param(1, IThemeService)
440
+ ], QuickPickItemElementRenderer);
441
+ class QuickPickSeparatorElementRenderer extends BaseQuickInputListRenderer {
442
+ constructor() {
443
+ super(...arguments);
444
+ // This is a frequency map because sticky scroll re-uses the same renderer to render a second
445
+ // instance of the same separator.
446
+ this._visibleSeparatorsFrequency = new Map();
447
+ }
448
+ static { this.ID = 'quickpickseparator'; }
449
+ get templateId() {
450
+ return QuickPickSeparatorElementRenderer.ID;
451
+ }
452
+ get visibleSeparators() {
453
+ return [...this._visibleSeparatorsFrequency.keys()];
454
+ }
455
+ isSeparatorVisible(separator) {
456
+ return this._visibleSeparatorsFrequency.has(separator);
457
+ }
458
+ renderElement(node, index, data) {
459
+ const element = node.element;
460
+ data.element = element;
461
+ element.element = data.entry ?? undefined;
462
+ element.element.classList.toggle('focus-inside', !!element.focusInsideSeparator);
463
+ const mainItem = element.separator;
464
+ const { labelHighlights, descriptionHighlights } = element;
465
+ // Icon
466
+ data.icon.style.backgroundImage = '';
467
+ data.icon.className = '';
468
+ // Label
469
+ let descriptionTitle;
470
+ // if we have a tooltip, that will be the hover,
471
+ // with the saneDescription as fallback if it
472
+ // is defined
473
+ if (!element.saneTooltip && element.saneDescription) {
474
+ descriptionTitle = {
475
+ markdown: {
476
+ value: escape(element.saneDescription),
477
+ supportThemeIcons: true
478
+ },
479
+ markdownNotSupportedFallback: element.saneDescription
480
+ };
481
+ }
482
+ const options = {
483
+ matches: labelHighlights || [],
484
+ // If we have a tooltip, we want that to be shown and not any other hover
485
+ descriptionTitle,
486
+ descriptionMatches: descriptionHighlights || [],
487
+ labelEscapeNewLines: true
488
+ };
489
+ data.entry.classList.add('quick-input-list-separator-as-item');
490
+ data.label.setLabel(element.saneLabel, element.saneDescription, options);
491
+ // Separator
492
+ data.separator.style.display = 'none';
493
+ data.entry.classList.add('quick-input-list-separator-border');
494
+ // Actions
495
+ const buttons = mainItem.buttons;
496
+ if (buttons && buttons.length) {
497
+ data.actionBar.push(buttons.map((button, index) => quickInputButtonToAction(button, `id-${index}`, () => element.fireSeparatorButtonTriggered({ button, separator: element.separator }))), { icon: true, label: false });
498
+ data.entry.classList.add('has-actions');
499
+ }
500
+ else {
501
+ data.entry.classList.remove('has-actions');
502
+ }
503
+ this.addSeparator(element);
504
+ }
505
+ disposeElement(element, _index, data) {
506
+ this.removeSeparator(element.element);
507
+ if (!this.isSeparatorVisible(element.element)) {
508
+ element.element.element?.classList.remove('focus-inside');
509
+ }
510
+ super.disposeElement(element, _index, data);
511
+ }
512
+ addSeparator(separator) {
513
+ this._visibleSeparatorsFrequency.set(separator, (this._visibleSeparatorsFrequency.get(separator) || 0) + 1);
514
+ }
515
+ removeSeparator(separator) {
516
+ const frequency = this._visibleSeparatorsFrequency.get(separator) || 0;
517
+ if (frequency > 1) {
518
+ this._visibleSeparatorsFrequency.set(separator, frequency - 1);
519
+ }
520
+ else {
521
+ this._visibleSeparatorsFrequency.delete(separator);
522
+ }
523
+ }
524
+ }
525
+ let QuickInputList = class QuickInputList extends Disposable {
526
+ constructor(parent, hoverDelegate, linkOpenerDelegate, id, instantiationService, accessibilityService) {
527
+ super();
528
+ this.parent = parent;
529
+ this.hoverDelegate = hoverDelegate;
530
+ this.linkOpenerDelegate = linkOpenerDelegate;
531
+ this.accessibilityService = accessibilityService;
532
+ //#region QuickInputList Events
533
+ this._onKeyDown = new Emitter();
534
+ this._onLeave = new Emitter();
535
+ /**
536
+ * Event that is fired when the tree would no longer have focus.
537
+ */
538
+ this.onLeave = this._onLeave.event;
539
+ this._visibleCountObservable = observableValue('VisibleCount', 0);
540
+ this.onChangedVisibleCount = Event.fromObservable(this._visibleCountObservable, this._store);
541
+ this._allVisibleCheckedObservable = observableValue('AllVisibleChecked', false);
542
+ this.onChangedAllVisibleChecked = Event.fromObservable(this._allVisibleCheckedObservable, this._store);
543
+ this._checkedCountObservable = observableValue('CheckedCount', 0);
544
+ this.onChangedCheckedCount = Event.fromObservable(this._checkedCountObservable, this._store);
545
+ this._checkedElementsObservable = observableValueOpts({ equalsFn: equals }, new Array());
546
+ this.onChangedCheckedElements = Event.fromObservable(this._checkedElementsObservable, this._store);
547
+ this._onButtonTriggered = new Emitter();
548
+ this.onButtonTriggered = this._onButtonTriggered.event;
549
+ this._onSeparatorButtonTriggered = new Emitter();
550
+ this.onSeparatorButtonTriggered = this._onSeparatorButtonTriggered.event;
551
+ this._elementChecked = new Emitter();
552
+ this._elementCheckedEventBufferer = new EventBufferer();
553
+ //#endregion
554
+ this._hasCheckboxes = false;
555
+ this._inputElements = new Array();
556
+ this._elementTree = new Array();
557
+ this._itemElements = new Array();
558
+ // Elements that apply to the current set of elements
559
+ this._elementDisposable = this._register(new DisposableStore());
560
+ this._matchOnDescription = false;
561
+ this._matchOnDetail = false;
562
+ this._matchOnLabel = true;
563
+ this._matchOnLabelMode = 'fuzzy';
564
+ this._sortByLabel = true;
565
+ this._shouldLoop = true;
566
+ this._container = append(this.parent, $('.quick-input-list'));
567
+ this._separatorRenderer = new QuickPickSeparatorElementRenderer(hoverDelegate);
568
+ this._itemRenderer = instantiationService.createInstance(QuickPickItemElementRenderer, hoverDelegate);
569
+ this._tree = this._register(instantiationService.createInstance((WorkbenchObjectTree), 'QuickInput', this._container, new QuickInputItemDelegate(), [this._itemRenderer, this._separatorRenderer], {
570
+ filter: {
571
+ filter(element) {
572
+ return element.hidden
573
+ ? 0 /* TreeVisibility.Hidden */
574
+ : element instanceof QuickPickSeparatorElement
575
+ ? 2 /* TreeVisibility.Recurse */
576
+ : 1 /* TreeVisibility.Visible */;
577
+ },
578
+ },
579
+ sorter: {
580
+ compare: (element, otherElement) => {
581
+ if (!this.sortByLabel || !this._lastQueryString) {
582
+ return 0;
583
+ }
584
+ const normalizedSearchValue = this._lastQueryString.toLowerCase();
585
+ return compareEntries(element, otherElement, normalizedSearchValue);
586
+ },
587
+ },
588
+ accessibilityProvider: new QuickInputAccessibilityProvider(),
589
+ setRowLineHeight: false,
590
+ multipleSelectionSupport: false,
591
+ hideTwistiesOfChildlessElements: true,
592
+ renderIndentGuides: RenderIndentGuides.None,
593
+ findWidgetEnabled: false,
594
+ indent: 0,
595
+ horizontalScrolling: false,
596
+ allowNonCollapsibleParents: true,
597
+ alwaysConsumeMouseWheel: true
598
+ }));
599
+ this._tree.getHTMLElement().id = id;
600
+ this._registerListeners();
601
+ }
602
+ //#region public getters/setters
603
+ get onDidChangeFocus() {
604
+ return Event.map(this._tree.onDidChangeFocus, e => e.elements.filter((e) => e instanceof QuickPickItemElement).map(e => e.item), this._store);
605
+ }
606
+ get onDidChangeSelection() {
607
+ return Event.map(this._tree.onDidChangeSelection, e => ({
608
+ items: e.elements.filter((e) => e instanceof QuickPickItemElement).map(e => e.item),
609
+ event: e.browserEvent
610
+ }), this._store);
611
+ }
612
+ get displayed() {
613
+ return this._container.style.display !== 'none';
614
+ }
615
+ set displayed(value) {
616
+ this._container.style.display = value ? '' : 'none';
617
+ }
618
+ get scrollTop() {
619
+ return this._tree.scrollTop;
620
+ }
621
+ set scrollTop(scrollTop) {
622
+ this._tree.scrollTop = scrollTop;
623
+ }
624
+ get ariaLabel() {
625
+ return this._tree.ariaLabel;
626
+ }
627
+ set ariaLabel(label) {
628
+ this._tree.ariaLabel = label ?? '';
629
+ }
630
+ set enabled(value) {
631
+ this._tree.getHTMLElement().style.pointerEvents = value ? '' : 'none';
632
+ }
633
+ get matchOnDescription() {
634
+ return this._matchOnDescription;
635
+ }
636
+ set matchOnDescription(value) {
637
+ this._matchOnDescription = value;
638
+ }
639
+ get matchOnDetail() {
640
+ return this._matchOnDetail;
641
+ }
642
+ set matchOnDetail(value) {
643
+ this._matchOnDetail = value;
644
+ }
645
+ get matchOnLabel() {
646
+ return this._matchOnLabel;
647
+ }
648
+ set matchOnLabel(value) {
649
+ this._matchOnLabel = value;
650
+ }
651
+ get matchOnLabelMode() {
652
+ return this._matchOnLabelMode;
653
+ }
654
+ set matchOnLabelMode(value) {
655
+ this._matchOnLabelMode = value;
656
+ }
657
+ get sortByLabel() {
658
+ return this._sortByLabel;
659
+ }
660
+ set sortByLabel(value) {
661
+ this._sortByLabel = value;
662
+ }
663
+ get shouldLoop() {
664
+ return this._shouldLoop;
665
+ }
666
+ set shouldLoop(value) {
667
+ this._shouldLoop = value;
668
+ }
669
+ //#endregion
670
+ //#region register listeners
671
+ _registerListeners() {
672
+ this._registerOnKeyDown();
673
+ this._registerOnContainerClick();
674
+ this._registerOnMouseMiddleClick();
675
+ this._registerOnTreeModelChanged();
676
+ this._registerOnElementChecked();
677
+ this._registerOnContextMenu();
678
+ this._registerHoverListeners();
679
+ this._registerSelectionChangeListener();
680
+ this._registerSeparatorActionShowingListeners();
681
+ }
682
+ _registerOnKeyDown() {
683
+ // TODO: Should this be added at a higher level?
684
+ this._register(this._tree.onKeyDown(e => {
685
+ const event = new StandardKeyboardEvent(e);
686
+ switch (event.keyCode) {
687
+ case 10 /* KeyCode.Space */:
688
+ this.toggleCheckbox();
689
+ break;
690
+ }
691
+ this._onKeyDown.fire(event);
692
+ }));
693
+ }
694
+ _registerOnContainerClick() {
695
+ this._register(addDisposableListener(this._container, EventType.CLICK, e => {
696
+ if (e.x || e.y) { // Avoid 'click' triggered by 'space' on checkbox.
697
+ this._onLeave.fire();
698
+ }
699
+ }));
700
+ }
701
+ _registerOnMouseMiddleClick() {
702
+ this._register(addDisposableListener(this._container, EventType.AUXCLICK, e => {
703
+ if (e.button === 1) {
704
+ this._onLeave.fire();
705
+ }
706
+ }));
707
+ }
708
+ _registerOnTreeModelChanged() {
709
+ this._register(this._tree.onDidChangeModel(() => {
710
+ const visibleCount = this._itemElements.filter(e => !e.hidden).length;
711
+ this._visibleCountObservable.set(visibleCount, undefined);
712
+ if (this._hasCheckboxes) {
713
+ this._updateCheckedObservables();
714
+ }
715
+ }));
716
+ }
717
+ _registerOnElementChecked() {
718
+ // Only fire the last event when buffered
719
+ this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event, (_, e) => e)(_ => this._updateCheckedObservables()));
720
+ }
721
+ _registerOnContextMenu() {
722
+ this._register(this._tree.onContextMenu(e => {
723
+ if (e.element) {
724
+ e.browserEvent.preventDefault();
725
+ // we want to treat a context menu event as
726
+ // a gesture to open the item at the index
727
+ // since we do not have any context menu
728
+ // this enables for example macOS to Ctrl-
729
+ // click on an item to open it.
730
+ this._tree.setSelection([e.element]);
731
+ }
732
+ }));
733
+ }
734
+ _registerHoverListeners() {
735
+ const delayer = this._register(new ThrottledDelayer(typeof this.hoverDelegate.delay === 'function' ? this.hoverDelegate.delay() : this.hoverDelegate.delay));
736
+ this._register(this._tree.onMouseOver(async (e) => {
737
+ // If we hover over an anchor element, we don't want to show the hover because
738
+ // the anchor may have a tooltip that we want to show instead.
739
+ if (isHTMLAnchorElement(e.browserEvent.target)) {
740
+ delayer.cancel();
741
+ return;
742
+ }
743
+ if (
744
+ // anchors are an exception as called out above so we skip them here
745
+ !(isHTMLAnchorElement(e.browserEvent.relatedTarget)) &&
746
+ // check if the mouse is still over the same element
747
+ isAncestor(e.browserEvent.relatedTarget, e.element?.element)) {
748
+ return;
749
+ }
750
+ try {
751
+ await delayer.trigger(async () => {
752
+ if (e.element instanceof QuickPickItemElement) {
753
+ this.showHover(e.element);
754
+ }
755
+ });
756
+ }
757
+ catch (e) {
758
+ // Ignore cancellation errors due to mouse out
759
+ if (!isCancellationError(e)) {
760
+ throw e;
761
+ }
762
+ }
763
+ }));
764
+ this._register(this._tree.onMouseOut(e => {
765
+ // onMouseOut triggers every time a new element has been moused over
766
+ // even if it's on the same list item. We only want one event, so we
767
+ // check if the mouse is still over the same element.
768
+ if (isAncestor(e.browserEvent.relatedTarget, e.element?.element)) {
769
+ return;
770
+ }
771
+ delayer.cancel();
772
+ }));
773
+ }
774
+ /**
775
+ * Register's focus change and mouse events so that we can track when items inside of a
776
+ * separator's section are focused or hovered so that we can display the separator's actions
777
+ */
778
+ _registerSeparatorActionShowingListeners() {
779
+ this._register(this._tree.onDidChangeFocus(e => {
780
+ const parent = e.elements[0]
781
+ ? this._tree.getParentElement(e.elements[0])
782
+ // treat null as focus lost and when we have no separators
783
+ : null;
784
+ for (const separator of this._separatorRenderer.visibleSeparators) {
785
+ const value = separator === parent;
786
+ // get bitness of ACTIVE_ITEM and check if it changed
787
+ const currentActive = !!(separator.focusInsideSeparator & QuickPickSeparatorFocusReason.ACTIVE_ITEM);
788
+ if (currentActive !== value) {
789
+ if (value) {
790
+ separator.focusInsideSeparator |= QuickPickSeparatorFocusReason.ACTIVE_ITEM;
791
+ }
792
+ else {
793
+ separator.focusInsideSeparator &= ~QuickPickSeparatorFocusReason.ACTIVE_ITEM;
794
+ }
795
+ this._tree.rerender(separator);
796
+ }
797
+ }
798
+ }));
799
+ this._register(this._tree.onMouseOver(e => {
800
+ const parent = e.element
801
+ ? this._tree.getParentElement(e.element)
802
+ : null;
803
+ for (const separator of this._separatorRenderer.visibleSeparators) {
804
+ if (separator !== parent) {
805
+ continue;
806
+ }
807
+ const currentMouse = !!(separator.focusInsideSeparator & QuickPickSeparatorFocusReason.MOUSE_HOVER);
808
+ if (!currentMouse) {
809
+ separator.focusInsideSeparator |= QuickPickSeparatorFocusReason.MOUSE_HOVER;
810
+ this._tree.rerender(separator);
811
+ }
812
+ }
813
+ }));
814
+ this._register(this._tree.onMouseOut(e => {
815
+ const parent = e.element
816
+ ? this._tree.getParentElement(e.element)
817
+ : null;
818
+ for (const separator of this._separatorRenderer.visibleSeparators) {
819
+ if (separator !== parent) {
820
+ continue;
821
+ }
822
+ const currentMouse = !!(separator.focusInsideSeparator & QuickPickSeparatorFocusReason.MOUSE_HOVER);
823
+ if (currentMouse) {
824
+ separator.focusInsideSeparator &= ~QuickPickSeparatorFocusReason.MOUSE_HOVER;
825
+ this._tree.rerender(separator);
826
+ }
827
+ }
828
+ }));
829
+ }
830
+ _registerSelectionChangeListener() {
831
+ // When the user selects a separator, the separator will move to the top and focus will be
832
+ // set to the first element after the separator.
833
+ this._register(this._tree.onDidChangeSelection(e => {
834
+ const elementsWithoutSeparators = e.elements.filter((e) => e instanceof QuickPickItemElement);
835
+ if (elementsWithoutSeparators.length !== e.elements.length) {
836
+ if (e.elements.length === 1 && e.elements[0] instanceof QuickPickSeparatorElement) {
837
+ this._tree.setFocus([e.elements[0].children[0]]);
838
+ this._tree.reveal(e.elements[0], 0);
839
+ }
840
+ this._tree.setSelection(elementsWithoutSeparators);
841
+ }
842
+ }));
843
+ }
844
+ //#endregion
845
+ //#region public methods
846
+ setAllVisibleChecked(checked) {
847
+ this._elementCheckedEventBufferer.bufferEvents(() => {
848
+ this._itemElements.forEach(element => {
849
+ if (!element.hidden && !element.checkboxDisabled && element.item.pickable !== false) {
850
+ // Would fire an event if we didn't beffer the events
851
+ element.checked = checked;
852
+ }
853
+ });
854
+ });
855
+ }
856
+ setElements(inputElements) {
857
+ this._elementDisposable.clear();
858
+ this._lastQueryString = undefined;
859
+ this._inputElements = inputElements;
860
+ this._hasCheckboxes = this.parent.classList.contains('show-checkboxes');
861
+ let currentSeparatorElement;
862
+ this._itemElements = new Array();
863
+ this._elementTree = inputElements.reduce((result, item, index) => {
864
+ let element;
865
+ if (item.type === 'separator') {
866
+ if (!item.buttons) {
867
+ // This separator will be rendered as a part of the list item
868
+ return result;
869
+ }
870
+ currentSeparatorElement = new QuickPickSeparatorElement(index, e => this._onSeparatorButtonTriggered.fire(e), item);
871
+ element = currentSeparatorElement;
872
+ }
873
+ else {
874
+ const previous = index > 0 ? inputElements[index - 1] : undefined;
875
+ let separator;
876
+ if (previous && previous.type === 'separator' && !previous.buttons) {
877
+ separator = previous;
878
+ }
879
+ const qpi = new QuickPickItemElement(index, currentSeparatorElement?.children
880
+ ? currentSeparatorElement.children.length
881
+ : index, this._hasCheckboxes && item.pickable !== false, e => this._onButtonTriggered.fire(e), this._elementChecked, item, separator);
882
+ this._itemElements.push(qpi);
883
+ if (currentSeparatorElement) {
884
+ currentSeparatorElement.children.push(qpi);
885
+ return result;
886
+ }
887
+ element = qpi;
888
+ }
889
+ result.push(element);
890
+ return result;
891
+ }, new Array());
892
+ this._setElementsToTree(this._elementTree);
893
+ // Accessibility hack, unfortunately on next tick
894
+ // https://github.com/microsoft/vscode/issues/211976
895
+ if (this.accessibilityService.isScreenReaderOptimized()) {
896
+ setTimeout(() => {
897
+ // eslint-disable-next-line no-restricted-syntax
898
+ const focusedElement = this._tree.getHTMLElement().querySelector(`.monaco-list-row.focused`);
899
+ const parent = focusedElement?.parentNode;
900
+ if (focusedElement && parent) {
901
+ const nextSibling = focusedElement.nextSibling;
902
+ focusedElement.remove();
903
+ parent.insertBefore(focusedElement, nextSibling);
904
+ }
905
+ }, 0);
906
+ }
907
+ }
908
+ setFocusedElements(items) {
909
+ const elements = items.map(item => this._itemElements.find(e => e.item === item))
910
+ .filter((e) => !!e)
911
+ .filter(e => !e.hidden);
912
+ this._tree.setFocus(elements);
913
+ if (items.length > 0) {
914
+ const focused = this._tree.getFocus()[0];
915
+ if (focused) {
916
+ this._tree.reveal(focused);
917
+ }
918
+ }
919
+ }
920
+ getActiveDescendant() {
921
+ return this._tree.getHTMLElement().getAttribute('aria-activedescendant');
922
+ }
923
+ setSelectedElements(items) {
924
+ const elements = items.map(item => this._itemElements.find(e => e.item === item))
925
+ .filter((e) => !!e);
926
+ this._tree.setSelection(elements);
927
+ }
928
+ getCheckedElements() {
929
+ return this._itemElements.filter(e => e.checked)
930
+ .map(e => e.item);
931
+ }
932
+ setCheckedElements(items) {
933
+ this._elementCheckedEventBufferer.bufferEvents(() => {
934
+ const checked = new Set();
935
+ for (const item of items) {
936
+ checked.add(item);
937
+ }
938
+ for (const element of this._itemElements) {
939
+ // Would fire an event if we didn't beffer the events
940
+ element.checked = checked.has(element.item);
941
+ }
942
+ });
943
+ }
944
+ focus(what) {
945
+ if (!this._itemElements.length) {
946
+ return;
947
+ }
948
+ if (what === QuickPickFocus.Second && this._itemElements.length < 2) {
949
+ what = QuickPickFocus.First;
950
+ }
951
+ switch (what) {
952
+ case QuickPickFocus.First:
953
+ this._tree.scrollTop = 0;
954
+ this._tree.focusFirst(undefined, (e) => e.element instanceof QuickPickItemElement);
955
+ break;
956
+ case QuickPickFocus.Second: {
957
+ this._tree.scrollTop = 0;
958
+ let isSecondItem = false;
959
+ this._tree.focusFirst(undefined, (e) => {
960
+ if (!(e.element instanceof QuickPickItemElement)) {
961
+ return false;
962
+ }
963
+ if (isSecondItem) {
964
+ return true;
965
+ }
966
+ isSecondItem = !isSecondItem;
967
+ return false;
968
+ });
969
+ break;
970
+ }
971
+ case QuickPickFocus.Last:
972
+ this._tree.scrollTop = this._tree.scrollHeight;
973
+ this._tree.focusLast(undefined, (e) => e.element instanceof QuickPickItemElement);
974
+ break;
975
+ case QuickPickFocus.Next: {
976
+ const prevFocus = this._tree.getFocus();
977
+ this._tree.focusNext(undefined, this._shouldLoop, undefined, (e) => {
978
+ if (!(e.element instanceof QuickPickItemElement)) {
979
+ return false;
980
+ }
981
+ this._tree.reveal(e.element);
982
+ return true;
983
+ });
984
+ const currentFocus = this._tree.getFocus();
985
+ if (prevFocus.length && prevFocus[0] === currentFocus[0]) {
986
+ this._onLeave.fire();
987
+ }
988
+ break;
989
+ }
990
+ case QuickPickFocus.Previous: {
991
+ const prevFocus = this._tree.getFocus();
992
+ this._tree.focusPrevious(undefined, this._shouldLoop, undefined, (e) => {
993
+ if (!(e.element instanceof QuickPickItemElement)) {
994
+ return false;
995
+ }
996
+ const parent = this._tree.getParentElement(e.element);
997
+ if (parent === null || parent.children[0] !== e.element) {
998
+ this._tree.reveal(e.element);
999
+ }
1000
+ else {
1001
+ // Only if we are the first child of a separator do we reveal the separator
1002
+ this._tree.reveal(parent);
1003
+ }
1004
+ return true;
1005
+ });
1006
+ const currentFocus = this._tree.getFocus();
1007
+ if (prevFocus.length && prevFocus[0] === currentFocus[0]) {
1008
+ this._onLeave.fire();
1009
+ }
1010
+ break;
1011
+ }
1012
+ case QuickPickFocus.NextPage:
1013
+ this._tree.focusNextPage(undefined, (e) => {
1014
+ if (!(e.element instanceof QuickPickItemElement)) {
1015
+ return false;
1016
+ }
1017
+ this._tree.reveal(e.element);
1018
+ return true;
1019
+ });
1020
+ break;
1021
+ case QuickPickFocus.PreviousPage:
1022
+ this._tree.focusPreviousPage(undefined, (e) => {
1023
+ if (!(e.element instanceof QuickPickItemElement)) {
1024
+ return false;
1025
+ }
1026
+ const parent = this._tree.getParentElement(e.element);
1027
+ if (parent === null || parent.children[0] !== e.element) {
1028
+ this._tree.reveal(e.element);
1029
+ }
1030
+ else {
1031
+ this._tree.reveal(parent);
1032
+ }
1033
+ return true;
1034
+ });
1035
+ break;
1036
+ case QuickPickFocus.NextSeparator: {
1037
+ let foundSeparatorAsItem = false;
1038
+ const before = this._tree.getFocus()[0];
1039
+ this._tree.focusNext(undefined, true, undefined, (e) => {
1040
+ if (foundSeparatorAsItem) {
1041
+ // This should be the index right after the separator so it
1042
+ // is the item we want to focus.
1043
+ return true;
1044
+ }
1045
+ if (e.element instanceof QuickPickSeparatorElement) {
1046
+ foundSeparatorAsItem = true;
1047
+ // If the separator is visible, then we should just reveal its first child so it's not as jarring.
1048
+ if (this._separatorRenderer.isSeparatorVisible(e.element)) {
1049
+ this._tree.reveal(e.element.children[0]);
1050
+ }
1051
+ else {
1052
+ // If the separator is not visible, then we should
1053
+ // push it up to the top of the list.
1054
+ this._tree.reveal(e.element, 0);
1055
+ }
1056
+ }
1057
+ else if (e.element instanceof QuickPickItemElement) {
1058
+ if (e.element.separator) {
1059
+ if (this._itemRenderer.isItemWithSeparatorVisible(e.element)) {
1060
+ this._tree.reveal(e.element);
1061
+ }
1062
+ else {
1063
+ this._tree.reveal(e.element, 0);
1064
+ }
1065
+ return true;
1066
+ }
1067
+ else if (e.element === this._elementTree[0]) {
1068
+ // We should stop at the first item in the list if it's a regular item.
1069
+ this._tree.reveal(e.element, 0);
1070
+ return true;
1071
+ }
1072
+ }
1073
+ return false;
1074
+ });
1075
+ const after = this._tree.getFocus()[0];
1076
+ if (before === after) {
1077
+ // If we didn't move, then we should just move to the end
1078
+ // of the list.
1079
+ this._tree.scrollTop = this._tree.scrollHeight;
1080
+ this._tree.focusLast(undefined, (e) => e.element instanceof QuickPickItemElement);
1081
+ }
1082
+ break;
1083
+ }
1084
+ case QuickPickFocus.PreviousSeparator: {
1085
+ let focusElement;
1086
+ // If we are already sitting on an inline separator, then we
1087
+ // have already found the _current_ separator and need to
1088
+ // move to the previous one.
1089
+ let foundSeparator = !!this._tree.getFocus()[0]?.separator;
1090
+ this._tree.focusPrevious(undefined, true, undefined, (e) => {
1091
+ if (e.element instanceof QuickPickSeparatorElement) {
1092
+ if (foundSeparator) {
1093
+ if (!focusElement) {
1094
+ if (this._separatorRenderer.isSeparatorVisible(e.element)) {
1095
+ this._tree.reveal(e.element);
1096
+ }
1097
+ else {
1098
+ this._tree.reveal(e.element, 0);
1099
+ }
1100
+ focusElement = e.element.children[0];
1101
+ }
1102
+ }
1103
+ else {
1104
+ foundSeparator = true;
1105
+ }
1106
+ }
1107
+ else if (e.element instanceof QuickPickItemElement) {
1108
+ if (!focusElement) {
1109
+ if (e.element.separator) {
1110
+ if (this._itemRenderer.isItemWithSeparatorVisible(e.element)) {
1111
+ this._tree.reveal(e.element);
1112
+ }
1113
+ else {
1114
+ this._tree.reveal(e.element, 0);
1115
+ }
1116
+ focusElement = e.element;
1117
+ }
1118
+ else if (e.element === this._elementTree[0]) {
1119
+ // We should stop at the first item in the list if it's a regular item.
1120
+ this._tree.reveal(e.element, 0);
1121
+ return true;
1122
+ }
1123
+ }
1124
+ }
1125
+ return false;
1126
+ });
1127
+ if (focusElement) {
1128
+ this._tree.setFocus([focusElement]);
1129
+ }
1130
+ break;
1131
+ }
1132
+ }
1133
+ }
1134
+ clearFocus() {
1135
+ this._tree.setFocus([]);
1136
+ }
1137
+ domFocus() {
1138
+ this._tree.domFocus();
1139
+ }
1140
+ layout(maxHeight) {
1141
+ this._tree.getHTMLElement().style.maxHeight = maxHeight ? `${
1142
+ // Make sure height aligns with list item heights
1143
+ Math.floor(maxHeight / 44) * 44
1144
+ // Add some extra height so that it's clear there's more to scroll
1145
+ + 6}px` : '';
1146
+ this._tree.layout();
1147
+ }
1148
+ filter(query) {
1149
+ this._lastQueryString = query;
1150
+ if (!(this._sortByLabel || this._matchOnLabel || this._matchOnDescription || this._matchOnDetail)) {
1151
+ this._tree.layout();
1152
+ return false;
1153
+ }
1154
+ const queryWithWhitespace = query;
1155
+ query = query.trim();
1156
+ // Reset filtering
1157
+ if (!query || !(this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) {
1158
+ this._itemElements.forEach(element => {
1159
+ element.labelHighlights = undefined;
1160
+ element.descriptionHighlights = undefined;
1161
+ element.detailHighlights = undefined;
1162
+ element.hidden = false;
1163
+ const previous = element.index && this._inputElements[element.index - 1];
1164
+ if (element.item) {
1165
+ element.separator = previous && previous.type === 'separator' && !previous.buttons ? previous : undefined;
1166
+ }
1167
+ });
1168
+ }
1169
+ // Filter by value (since we support icons in labels, use $(..) aware fuzzy matching)
1170
+ else {
1171
+ let currentSeparator;
1172
+ this._itemElements.forEach(element => {
1173
+ let labelHighlights;
1174
+ if (this.matchOnLabelMode === 'fuzzy') {
1175
+ labelHighlights = this.matchOnLabel ? matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneLabel)) ?? undefined : undefined;
1176
+ }
1177
+ else {
1178
+ labelHighlights = this.matchOnLabel ? matchesContiguousIconAware(queryWithWhitespace, parseLabelWithIcons(element.saneLabel)) ?? undefined : undefined;
1179
+ }
1180
+ const descriptionHighlights = this.matchOnDescription ? matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneDescription || '')) ?? undefined : undefined;
1181
+ const detailHighlights = this.matchOnDetail ? matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneDetail || '')) ?? undefined : undefined;
1182
+ if (labelHighlights || descriptionHighlights || detailHighlights) {
1183
+ element.labelHighlights = labelHighlights;
1184
+ element.descriptionHighlights = descriptionHighlights;
1185
+ element.detailHighlights = detailHighlights;
1186
+ element.hidden = false;
1187
+ }
1188
+ else {
1189
+ element.labelHighlights = undefined;
1190
+ element.descriptionHighlights = undefined;
1191
+ element.detailHighlights = undefined;
1192
+ element.hidden = element.item ? !element.item.alwaysShow : true;
1193
+ }
1194
+ // Ensure separators are filtered out first before deciding if we need to bring them back
1195
+ if (element.item) {
1196
+ element.separator = undefined;
1197
+ }
1198
+ else if (element.separator) {
1199
+ element.hidden = true;
1200
+ }
1201
+ // we can show the separator unless the list gets sorted by match
1202
+ if (!this.sortByLabel) {
1203
+ const previous = element.index && this._inputElements[element.index - 1] || undefined;
1204
+ if (previous?.type === 'separator' && !previous.buttons) {
1205
+ currentSeparator = previous;
1206
+ }
1207
+ if (currentSeparator && !element.hidden) {
1208
+ element.separator = currentSeparator;
1209
+ currentSeparator = undefined;
1210
+ }
1211
+ }
1212
+ });
1213
+ }
1214
+ this._setElementsToTree(this._sortByLabel && query
1215
+ // We don't render any separators if we're sorting so just render the elements
1216
+ ? this._itemElements
1217
+ // Render the full tree
1218
+ : this._elementTree);
1219
+ this._tree.layout();
1220
+ return true;
1221
+ }
1222
+ toggleCheckbox() {
1223
+ this._elementCheckedEventBufferer.bufferEvents(() => {
1224
+ const elements = this._tree.getFocus().filter((e) => e instanceof QuickPickItemElement);
1225
+ const allChecked = this._allVisibleChecked(elements);
1226
+ for (const element of elements) {
1227
+ if (!element.checkboxDisabled) {
1228
+ // Would fire an event if we didn't have the flag set
1229
+ element.checked = !allChecked;
1230
+ }
1231
+ }
1232
+ });
1233
+ }
1234
+ style(styles) {
1235
+ this._tree.style(styles);
1236
+ }
1237
+ toggleHover() {
1238
+ const focused = this._tree.getFocus()[0];
1239
+ if (!focused?.saneTooltip || !(focused instanceof QuickPickItemElement)) {
1240
+ return;
1241
+ }
1242
+ // if there's a hover already, hide it (toggle off)
1243
+ if (this._lastHover && !this._lastHover.isDisposed) {
1244
+ this._lastHover.dispose();
1245
+ return;
1246
+ }
1247
+ // If there is no hover, show it (toggle on)
1248
+ this.showHover(focused);
1249
+ const store = new DisposableStore();
1250
+ store.add(this._tree.onDidChangeFocus(e => {
1251
+ if (e.elements[0] instanceof QuickPickItemElement) {
1252
+ this.showHover(e.elements[0]);
1253
+ }
1254
+ }));
1255
+ if (this._lastHover) {
1256
+ store.add(this._lastHover);
1257
+ }
1258
+ this._elementDisposable.add(store);
1259
+ }
1260
+ //#endregion
1261
+ //#region private methods
1262
+ _setElementsToTree(elements) {
1263
+ const treeElements = new Array();
1264
+ for (const element of elements) {
1265
+ if (element instanceof QuickPickSeparatorElement) {
1266
+ treeElements.push({
1267
+ element,
1268
+ collapsible: false,
1269
+ collapsed: false,
1270
+ children: element.children.map(e => ({
1271
+ element: e,
1272
+ collapsible: false,
1273
+ collapsed: false,
1274
+ })),
1275
+ });
1276
+ }
1277
+ else {
1278
+ treeElements.push({
1279
+ element,
1280
+ collapsible: false,
1281
+ collapsed: false,
1282
+ });
1283
+ }
1284
+ }
1285
+ this._tree.setChildren(null, treeElements);
1286
+ }
1287
+ _allVisibleChecked(elements, whenNoneVisible = true) {
1288
+ for (let i = 0, n = elements.length; i < n; i++) {
1289
+ const element = elements[i];
1290
+ if (!element.hidden && element.item.pickable !== false) {
1291
+ if (!element.checked) {
1292
+ return false;
1293
+ }
1294
+ else {
1295
+ whenNoneVisible = true;
1296
+ }
1297
+ }
1298
+ }
1299
+ return whenNoneVisible;
1300
+ }
1301
+ _updateCheckedObservables() {
1302
+ transaction((tx) => {
1303
+ this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements, false), tx);
1304
+ const checkedCount = this._itemElements.filter(element => element.checked).length;
1305
+ this._checkedCountObservable.set(checkedCount, tx);
1306
+ this._checkedElementsObservable.set(this.getCheckedElements(), tx);
1307
+ });
1308
+ }
1309
+ /**
1310
+ * Disposes of the hover and shows a new one for the given index if it has a tooltip.
1311
+ * @param element The element to show the hover for
1312
+ */
1313
+ showHover(element) {
1314
+ if (this._lastHover && !this._lastHover.isDisposed) {
1315
+ this.hoverDelegate.onDidHideHover?.();
1316
+ this._lastHover?.dispose();
1317
+ }
1318
+ if (!element.element || !element.saneTooltip) {
1319
+ return;
1320
+ }
1321
+ this._lastHover = this.hoverDelegate.showHover({
1322
+ content: element.saneTooltip,
1323
+ target: element.element,
1324
+ linkHandler: (url) => {
1325
+ this.linkOpenerDelegate(url);
1326
+ },
1327
+ appearance: {
1328
+ showPointer: true,
1329
+ },
1330
+ container: this._container,
1331
+ position: {
1332
+ hoverPosition: 1 /* HoverPosition.RIGHT */
1333
+ }
1334
+ }, false);
1335
+ }
1336
+ };
1337
+ __decorate([
1338
+ memoize
1339
+ ], QuickInputList.prototype, "onDidChangeFocus", null);
1340
+ __decorate([
1341
+ memoize
1342
+ ], QuickInputList.prototype, "onDidChangeSelection", null);
1343
+ QuickInputList = __decorate([
1344
+ __param(4, IInstantiationService),
1345
+ __param(5, IAccessibilityService)
1346
+ ], QuickInputList);
1347
+ function matchesContiguousIconAware(query, target) {
1348
+ const { text, iconOffsets } = target;
1349
+ // Return early if there are no icon markers in the word to match against
1350
+ if (!iconOffsets || iconOffsets.length === 0) {
1351
+ return matchesContiguous(query, text);
1352
+ }
1353
+ // Trim the word to match against because it could have leading
1354
+ // whitespace now if the word started with an icon
1355
+ const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text, ' ');
1356
+ const leadingWhitespaceOffset = text.length - wordToMatchAgainstWithoutIconsTrimmed.length;
1357
+ // match on value without icon
1358
+ const matches = matchesContiguous(query, wordToMatchAgainstWithoutIconsTrimmed);
1359
+ // Map matches back to offsets with icon and trimming
1360
+ if (matches) {
1361
+ for (const match of matches) {
1362
+ const iconOffset = iconOffsets[match.start + leadingWhitespaceOffset] /* icon offsets at index */ + leadingWhitespaceOffset /* overall leading whitespace offset */;
1363
+ match.start += iconOffset;
1364
+ match.end += iconOffset;
1365
+ }
1366
+ }
1367
+ return matches;
1368
+ }
1369
+ function matchesContiguous(word, wordToMatchAgainst) {
1370
+ const matchIndex = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());
1371
+ if (matchIndex !== -1) {
1372
+ return [{ start: matchIndex, end: matchIndex + word.length }];
1373
+ }
1374
+ return null;
1375
+ }
1376
+ function compareEntries(elementA, elementB, lookFor) {
1377
+ const labelHighlightsA = elementA.labelHighlights || [];
1378
+ const labelHighlightsB = elementB.labelHighlights || [];
1379
+ if (labelHighlightsA.length && !labelHighlightsB.length) {
1380
+ return -1;
1381
+ }
1382
+ if (!labelHighlightsA.length && labelHighlightsB.length) {
1383
+ return 1;
1384
+ }
1385
+ if (labelHighlightsA.length === 0 && labelHighlightsB.length === 0) {
1386
+ return 0;
1387
+ }
1388
+ return compareAnything(elementA.saneSortLabel, elementB.saneSortLabel, lookFor);
1389
+ }
1390
+
1391
+ export { QuickInputList };