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,968 @@
1
+ import { onUnexpectedError } from '../../../base/common/errors.js';
2
+ import { getLeadingWhitespace, firstNonWhitespaceIndex, splitLines, lastNonWhitespaceIndex } from '../../../base/common/strings.js';
3
+ import { ReplaceCommandWithoutChangingPosition, ReplaceCommandWithOffsetCursorState, ReplaceCommand, ReplaceOvertypeCommand, ReplaceOvertypeCommandOnCompositionEnd, ReplaceCommandThatPreservesSelection } from '../commands/replaceCommand.js';
4
+ import { ShiftCommand } from '../commands/shiftCommand.js';
5
+ import { SurroundSelectionCommand } from '../commands/surroundSelectionCommand.js';
6
+ import { EditOperationResult, isQuote } from '../cursorCommon.js';
7
+ import { getMapForWordSeparators } from '../core/wordCharacterClassifier.js';
8
+ import { Range } from '../core/range.js';
9
+ import { Position } from '../core/position.js';
10
+ import { IndentAction } from '../languages/languageConfiguration.js';
11
+ import { getIndentationAtPosition } from '../languages/languageConfigurationRegistry.js';
12
+ import { createScopedLineTokens } from '../languages/supports.js';
13
+ import { getIndentForEnter, getInheritIndentForLine, getIndentActionForType } from '../languages/autoIndent.js';
14
+ import { getEnterAction } from '../languages/enterAction.js';
15
+
16
+ /*---------------------------------------------------------------------------------------------
17
+ * Copyright (c) Microsoft Corporation. All rights reserved.
18
+ * Licensed under the MIT License. See License.txt in the project root for license information.
19
+ *--------------------------------------------------------------------------------------------*/
20
+ class AutoIndentOperation {
21
+ static getEdits(config, model, selections, ch, isDoingComposition) {
22
+ if (!isDoingComposition && this._isAutoIndentType(config, model, selections)) {
23
+ const indentationForSelections = [];
24
+ for (const selection of selections) {
25
+ const indentation = this._findActualIndentationForSelection(config, model, selection, ch);
26
+ if (indentation === null) {
27
+ // Auto indentation failed
28
+ return;
29
+ }
30
+ indentationForSelections.push({ selection, indentation });
31
+ }
32
+ const autoClosingPairClose = AutoClosingOpenCharTypeOperation.getAutoClosingPairClose(config, model, selections, ch, false);
33
+ return this._getIndentationAndAutoClosingPairEdits(config, model, indentationForSelections, ch, autoClosingPairClose);
34
+ }
35
+ return;
36
+ }
37
+ static _isAutoIndentType(config, model, selections) {
38
+ if (config.autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {
39
+ return false;
40
+ }
41
+ for (let i = 0, len = selections.length; i < len; i++) {
42
+ if (!model.tokenization.isCheapToTokenize(selections[i].getEndPosition().lineNumber)) {
43
+ return false;
44
+ }
45
+ }
46
+ return true;
47
+ }
48
+ static _findActualIndentationForSelection(config, model, selection, ch) {
49
+ const actualIndentation = getIndentActionForType(config, model, selection, ch, {
50
+ shiftIndent: (indentation) => {
51
+ return shiftIndent(config, indentation);
52
+ },
53
+ unshiftIndent: (indentation) => {
54
+ return unshiftIndent(config, indentation);
55
+ },
56
+ }, config.languageConfigurationService);
57
+ if (actualIndentation === null) {
58
+ return null;
59
+ }
60
+ const currentIndentation = getIndentationAtPosition(model, selection.startLineNumber, selection.startColumn);
61
+ if (actualIndentation === config.normalizeIndentation(currentIndentation)) {
62
+ return null;
63
+ }
64
+ return actualIndentation;
65
+ }
66
+ static _getIndentationAndAutoClosingPairEdits(config, model, indentationForSelections, ch, autoClosingPairClose) {
67
+ const commands = indentationForSelections.map(({ selection, indentation }) => {
68
+ if (autoClosingPairClose !== null) {
69
+ // Apply both auto closing pair edits and auto indentation edits
70
+ const indentationEdit = this._getEditFromIndentationAndSelection(config, model, indentation, selection, ch, false);
71
+ return new TypeWithIndentationAndAutoClosingCommand(indentationEdit, selection, ch, autoClosingPairClose);
72
+ }
73
+ else {
74
+ // Apply only auto indentation edits
75
+ const indentationEdit = this._getEditFromIndentationAndSelection(config, model, indentation, selection, ch, true);
76
+ return typeCommand(indentationEdit.range, indentationEdit.text, false);
77
+ }
78
+ });
79
+ const editOptions = { shouldPushStackElementBefore: true, shouldPushStackElementAfter: false };
80
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, editOptions);
81
+ }
82
+ static _getEditFromIndentationAndSelection(config, model, indentation, selection, ch, includeChInEdit = true) {
83
+ const startLineNumber = selection.startLineNumber;
84
+ const firstNonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(startLineNumber);
85
+ let text = config.normalizeIndentation(indentation);
86
+ if (firstNonWhitespaceColumn !== 0) {
87
+ const startLine = model.getLineContent(startLineNumber);
88
+ text += startLine.substring(firstNonWhitespaceColumn - 1, selection.startColumn - 1);
89
+ }
90
+ text += includeChInEdit ? ch : '';
91
+ const range = new Range(startLineNumber, 1, selection.endLineNumber, selection.endColumn);
92
+ return { range, text };
93
+ }
94
+ }
95
+ class AutoClosingOvertypeOperation {
96
+ static getEdits(prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {
97
+ if (isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {
98
+ return this._runAutoClosingOvertype(prevEditOperationType, selections, ch);
99
+ }
100
+ return;
101
+ }
102
+ static _runAutoClosingOvertype(prevEditOperationType, selections, ch) {
103
+ const commands = [];
104
+ for (let i = 0, len = selections.length; i < len; i++) {
105
+ const selection = selections[i];
106
+ const position = selection.getPosition();
107
+ const typeSelection = new Range(position.lineNumber, position.column, position.lineNumber, position.column + 1);
108
+ commands[i] = new ReplaceCommand(typeSelection, ch);
109
+ }
110
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {
111
+ shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* EditOperationType.TypingOther */),
112
+ shouldPushStackElementAfter: false
113
+ });
114
+ }
115
+ }
116
+ class AutoClosingOvertypeWithInterceptorsOperation {
117
+ static getEdits(config, model, selections, autoClosedCharacters, ch) {
118
+ if (isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {
119
+ // Unfortunately, the close character is at this point "doubled", so we need to delete it...
120
+ const commands = selections.map(s => new ReplaceCommand(new Range(s.positionLineNumber, s.positionColumn, s.positionLineNumber, s.positionColumn + 1), '', false));
121
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {
122
+ shouldPushStackElementBefore: true,
123
+ shouldPushStackElementAfter: false
124
+ });
125
+ }
126
+ return;
127
+ }
128
+ }
129
+ class AutoClosingOpenCharTypeOperation {
130
+ static getEdits(config, model, selections, ch, chIsAlreadyTyped, isDoingComposition) {
131
+ if (!isDoingComposition) {
132
+ const autoClosingPairClose = this.getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped);
133
+ if (autoClosingPairClose !== null) {
134
+ return this._runAutoClosingOpenCharType(selections, ch, chIsAlreadyTyped, autoClosingPairClose);
135
+ }
136
+ }
137
+ return;
138
+ }
139
+ static _runAutoClosingOpenCharType(selections, ch, chIsAlreadyTyped, autoClosingPairClose) {
140
+ const commands = [];
141
+ for (let i = 0, len = selections.length; i < len; i++) {
142
+ const selection = selections[i];
143
+ commands[i] = new TypeWithAutoClosingCommand(selection, ch, !chIsAlreadyTyped, autoClosingPairClose);
144
+ }
145
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {
146
+ shouldPushStackElementBefore: true,
147
+ shouldPushStackElementAfter: false
148
+ });
149
+ }
150
+ static getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped) {
151
+ for (const selection of selections) {
152
+ if (!selection.isEmpty()) {
153
+ return null;
154
+ }
155
+ }
156
+ // This method is called both when typing (regularly) and when composition ends
157
+ // This means that we need to work with a text buffer where sometimes `ch` is not
158
+ // there (it is being typed right now) or with a text buffer where `ch` has already been typed
159
+ //
160
+ // In order to avoid adding checks for `chIsAlreadyTyped` in all places, we will work
161
+ // with two conceptual positions, the position before `ch` and the position after `ch`
162
+ //
163
+ const positions = selections.map((s) => {
164
+ const position = s.getPosition();
165
+ if (chIsAlreadyTyped) {
166
+ return { lineNumber: position.lineNumber, beforeColumn: position.column - ch.length, afterColumn: position.column };
167
+ }
168
+ else {
169
+ return { lineNumber: position.lineNumber, beforeColumn: position.column, afterColumn: position.column };
170
+ }
171
+ });
172
+ // Find the longest auto-closing open pair in case of multiple ending in `ch`
173
+ // e.g. when having [f","] and [","], it picks [f","] if the character before is f
174
+ const pair = this._findAutoClosingPairOpen(config, model, positions.map(p => new Position(p.lineNumber, p.beforeColumn)), ch);
175
+ if (!pair) {
176
+ return null;
177
+ }
178
+ let autoCloseConfig;
179
+ let shouldAutoCloseBefore;
180
+ const chIsQuote = isQuote(ch);
181
+ if (chIsQuote) {
182
+ autoCloseConfig = config.autoClosingQuotes;
183
+ shouldAutoCloseBefore = config.shouldAutoCloseBefore.quote;
184
+ }
185
+ else {
186
+ const pairIsForComments = config.blockCommentStartToken ? pair.open.includes(config.blockCommentStartToken) : false;
187
+ if (pairIsForComments) {
188
+ autoCloseConfig = config.autoClosingComments;
189
+ shouldAutoCloseBefore = config.shouldAutoCloseBefore.comment;
190
+ }
191
+ else {
192
+ autoCloseConfig = config.autoClosingBrackets;
193
+ shouldAutoCloseBefore = config.shouldAutoCloseBefore.bracket;
194
+ }
195
+ }
196
+ if (autoCloseConfig === 'never') {
197
+ return null;
198
+ }
199
+ // Sometimes, it is possible to have two auto-closing pairs that have a containment relationship
200
+ // e.g. when having [(,)] and [(*,*)]
201
+ // - when typing (, the resulting state is (|)
202
+ // - when typing *, the desired resulting state is (*|*), not (*|*))
203
+ const containedPair = this._findContainedAutoClosingPair(config, pair);
204
+ const containedPairClose = containedPair ? containedPair.close : '';
205
+ let isContainedPairPresent = true;
206
+ for (const position of positions) {
207
+ const { lineNumber, beforeColumn, afterColumn } = position;
208
+ const lineText = model.getLineContent(lineNumber);
209
+ const lineBefore = lineText.substring(0, beforeColumn - 1);
210
+ const lineAfter = lineText.substring(afterColumn - 1);
211
+ if (!lineAfter.startsWith(containedPairClose)) {
212
+ isContainedPairPresent = false;
213
+ }
214
+ // Only consider auto closing the pair if an allowed character follows or if another autoclosed pair closing brace follows
215
+ if (lineAfter.length > 0) {
216
+ const characterAfter = lineAfter.charAt(0);
217
+ const isBeforeCloseBrace = this._isBeforeClosingBrace(config, lineAfter);
218
+ if (!isBeforeCloseBrace && !shouldAutoCloseBefore(characterAfter)) {
219
+ return null;
220
+ }
221
+ }
222
+ // Do not auto-close ' or " after a word character
223
+ if (pair.open.length === 1 && (ch === '\'' || ch === '"') && autoCloseConfig !== 'always') {
224
+ const wordSeparators = getMapForWordSeparators(config.wordSeparators, []);
225
+ if (lineBefore.length > 0) {
226
+ const characterBefore = lineBefore.charCodeAt(lineBefore.length - 1);
227
+ if (wordSeparators.get(characterBefore) === 0 /* WordCharacterClass.Regular */) {
228
+ return null;
229
+ }
230
+ }
231
+ }
232
+ if (!model.tokenization.isCheapToTokenize(lineNumber)) {
233
+ // Do not force tokenization
234
+ return null;
235
+ }
236
+ model.tokenization.forceTokenization(lineNumber);
237
+ const lineTokens = model.tokenization.getLineTokens(lineNumber);
238
+ const scopedLineTokens = createScopedLineTokens(lineTokens, beforeColumn - 1);
239
+ if (!pair.shouldAutoClose(scopedLineTokens, beforeColumn - scopedLineTokens.firstCharOffset)) {
240
+ return null;
241
+ }
242
+ // Typing for example a quote could either start a new string, in which case auto-closing is desirable
243
+ // or it could end a previously started string, in which case auto-closing is not desirable
244
+ //
245
+ // In certain cases, it is really not possible to look at the previous token to determine
246
+ // what would happen. That's why we do something really unusual, we pretend to type a different
247
+ // character and ask the tokenizer what the outcome of doing that is: after typing a neutral
248
+ // character, are we in a string (i.e. the quote would most likely end a string) or not?
249
+ //
250
+ const neutralCharacter = pair.findNeutralCharacter();
251
+ if (neutralCharacter) {
252
+ const tokenType = model.tokenization.getTokenTypeIfInsertingCharacter(lineNumber, beforeColumn, neutralCharacter);
253
+ if (!pair.isOK(tokenType)) {
254
+ return null;
255
+ }
256
+ }
257
+ }
258
+ if (isContainedPairPresent) {
259
+ return pair.close.substring(0, pair.close.length - containedPairClose.length);
260
+ }
261
+ else {
262
+ return pair.close;
263
+ }
264
+ }
265
+ /**
266
+ * Find another auto-closing pair that is contained by the one passed in.
267
+ *
268
+ * e.g. when having [(,)] and [(*,*)] as auto-closing pairs
269
+ * this method will find [(,)] as a containment pair for [(*,*)]
270
+ */
271
+ static _findContainedAutoClosingPair(config, pair) {
272
+ if (pair.open.length <= 1) {
273
+ return null;
274
+ }
275
+ const lastChar = pair.close.charAt(pair.close.length - 1);
276
+ // get candidates with the same last character as close
277
+ const candidates = config.autoClosingPairs.autoClosingPairsCloseByEnd.get(lastChar) || [];
278
+ let result = null;
279
+ for (const candidate of candidates) {
280
+ if (candidate.open !== pair.open && pair.open.includes(candidate.open) && pair.close.endsWith(candidate.close)) {
281
+ if (!result || candidate.open.length > result.open.length) {
282
+ result = candidate;
283
+ }
284
+ }
285
+ }
286
+ return result;
287
+ }
288
+ /**
289
+ * Determine if typing `ch` at all `positions` in the `model` results in an
290
+ * auto closing open sequence being typed.
291
+ *
292
+ * Auto closing open sequences can consist of multiple characters, which
293
+ * can lead to ambiguities. In such a case, the longest auto-closing open
294
+ * sequence is returned.
295
+ */
296
+ static _findAutoClosingPairOpen(config, model, positions, ch) {
297
+ const candidates = config.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);
298
+ if (!candidates) {
299
+ return null;
300
+ }
301
+ // Determine which auto-closing pair it is
302
+ let result = null;
303
+ for (const candidate of candidates) {
304
+ if (result === null || candidate.open.length > result.open.length) {
305
+ let candidateIsMatch = true;
306
+ for (const position of positions) {
307
+ const relevantText = model.getValueInRange(new Range(position.lineNumber, position.column - candidate.open.length + 1, position.lineNumber, position.column));
308
+ if (relevantText + ch !== candidate.open) {
309
+ candidateIsMatch = false;
310
+ break;
311
+ }
312
+ }
313
+ if (candidateIsMatch) {
314
+ result = candidate;
315
+ }
316
+ }
317
+ }
318
+ return result;
319
+ }
320
+ static _isBeforeClosingBrace(config, lineAfter) {
321
+ // If the start of lineAfter can be interpretted as both a starting or ending brace, default to returning false
322
+ const nextChar = lineAfter.charAt(0);
323
+ const potentialStartingBraces = config.autoClosingPairs.autoClosingPairsOpenByStart.get(nextChar) || [];
324
+ const potentialClosingBraces = config.autoClosingPairs.autoClosingPairsCloseByStart.get(nextChar) || [];
325
+ const isBeforeStartingBrace = potentialStartingBraces.some(x => lineAfter.startsWith(x.open));
326
+ const isBeforeClosingBrace = potentialClosingBraces.some(x => lineAfter.startsWith(x.close));
327
+ return !isBeforeStartingBrace && isBeforeClosingBrace;
328
+ }
329
+ }
330
+ class CompositionEndOvertypeOperation {
331
+ static getEdits(config, compositions) {
332
+ const isOvertypeMode = config.inputMode === 'overtype';
333
+ if (!isOvertypeMode) {
334
+ return null;
335
+ }
336
+ const commands = compositions.map(composition => new ReplaceOvertypeCommandOnCompositionEnd(composition.insertedTextRange));
337
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {
338
+ shouldPushStackElementBefore: true,
339
+ shouldPushStackElementAfter: false
340
+ });
341
+ }
342
+ }
343
+ class SurroundSelectionOperation {
344
+ static getEdits(config, model, selections, ch, isDoingComposition) {
345
+ if (!isDoingComposition && this._isSurroundSelectionType(config, model, selections, ch)) {
346
+ return this._runSurroundSelectionType(config, selections, ch);
347
+ }
348
+ return;
349
+ }
350
+ static _runSurroundSelectionType(config, selections, ch) {
351
+ const commands = [];
352
+ for (let i = 0, len = selections.length; i < len; i++) {
353
+ const selection = selections[i];
354
+ const closeCharacter = config.surroundingPairs[ch];
355
+ commands[i] = new SurroundSelectionCommand(selection, ch, closeCharacter);
356
+ }
357
+ return new EditOperationResult(0 /* EditOperationType.Other */, commands, {
358
+ shouldPushStackElementBefore: true,
359
+ shouldPushStackElementAfter: true
360
+ });
361
+ }
362
+ static _isSurroundSelectionType(config, model, selections, ch) {
363
+ if (!shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {
364
+ return false;
365
+ }
366
+ const isTypingAQuoteCharacter = isQuote(ch);
367
+ for (const selection of selections) {
368
+ if (selection.isEmpty()) {
369
+ return false;
370
+ }
371
+ let selectionContainsOnlyWhitespace = true;
372
+ for (let lineNumber = selection.startLineNumber; lineNumber <= selection.endLineNumber; lineNumber++) {
373
+ const lineText = model.getLineContent(lineNumber);
374
+ const startIndex = (lineNumber === selection.startLineNumber ? selection.startColumn - 1 : 0);
375
+ const endIndex = (lineNumber === selection.endLineNumber ? selection.endColumn - 1 : lineText.length);
376
+ const selectedText = lineText.substring(startIndex, endIndex);
377
+ if (/[^ \t]/.test(selectedText)) {
378
+ // this selected text contains something other than whitespace
379
+ selectionContainsOnlyWhitespace = false;
380
+ break;
381
+ }
382
+ }
383
+ if (selectionContainsOnlyWhitespace) {
384
+ return false;
385
+ }
386
+ if (isTypingAQuoteCharacter && selection.startLineNumber === selection.endLineNumber && selection.startColumn + 1 === selection.endColumn) {
387
+ const selectionText = model.getValueInRange(selection);
388
+ if (isQuote(selectionText)) {
389
+ // Typing a quote character on top of another quote character
390
+ // => disable surround selection type
391
+ return false;
392
+ }
393
+ }
394
+ }
395
+ return true;
396
+ }
397
+ }
398
+ class InterceptorElectricCharOperation {
399
+ static getEdits(prevEditOperationType, config, model, selections, ch, isDoingComposition) {
400
+ // Electric characters make sense only when dealing with a single cursor,
401
+ // as multiple cursors typing brackets for example would interfer with bracket matching
402
+ if (!isDoingComposition && this._isTypeInterceptorElectricChar(config, model, selections)) {
403
+ const r = this._typeInterceptorElectricChar(prevEditOperationType, config, model, selections[0], ch);
404
+ if (r) {
405
+ return r;
406
+ }
407
+ }
408
+ return;
409
+ }
410
+ static _isTypeInterceptorElectricChar(config, model, selections) {
411
+ if (selections.length === 1 && model.tokenization.isCheapToTokenize(selections[0].getEndPosition().lineNumber)) {
412
+ return true;
413
+ }
414
+ return false;
415
+ }
416
+ static _typeInterceptorElectricChar(prevEditOperationType, config, model, selection, ch) {
417
+ if (!config.electricChars.hasOwnProperty(ch) || !selection.isEmpty()) {
418
+ return null;
419
+ }
420
+ const position = selection.getPosition();
421
+ model.tokenization.forceTokenization(position.lineNumber);
422
+ const lineTokens = model.tokenization.getLineTokens(position.lineNumber);
423
+ let electricAction;
424
+ try {
425
+ electricAction = config.onElectricCharacter(ch, lineTokens, position.column);
426
+ }
427
+ catch (e) {
428
+ onUnexpectedError(e);
429
+ return null;
430
+ }
431
+ if (!electricAction) {
432
+ return null;
433
+ }
434
+ if (electricAction.matchOpenBracket) {
435
+ const endColumn = (lineTokens.getLineContent() + ch).lastIndexOf(electricAction.matchOpenBracket) + 1;
436
+ const match = model.bracketPairs.findMatchingBracketUp(electricAction.matchOpenBracket, {
437
+ lineNumber: position.lineNumber,
438
+ column: endColumn
439
+ }, 500 /* give at most 500ms to compute */);
440
+ if (match) {
441
+ if (match.startLineNumber === position.lineNumber) {
442
+ // matched something on the same line => no change in indentation
443
+ return null;
444
+ }
445
+ const matchLine = model.getLineContent(match.startLineNumber);
446
+ const matchLineIndentation = getLeadingWhitespace(matchLine);
447
+ const newIndentation = config.normalizeIndentation(matchLineIndentation);
448
+ const lineText = model.getLineContent(position.lineNumber);
449
+ const lineFirstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber) || position.column;
450
+ const prefix = lineText.substring(lineFirstNonBlankColumn - 1, position.column - 1);
451
+ const typeText = newIndentation + prefix + ch;
452
+ const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, position.column);
453
+ const command = new ReplaceCommand(typeSelection, typeText);
454
+ return new EditOperationResult(getTypingOperation(typeText, prevEditOperationType), [command], {
455
+ shouldPushStackElementBefore: false,
456
+ shouldPushStackElementAfter: true
457
+ });
458
+ }
459
+ }
460
+ return null;
461
+ }
462
+ }
463
+ class SimpleCharacterTypeOperation {
464
+ static getEdits(config, prevEditOperationType, selections, ch, isDoingComposition) {
465
+ // A simple character type
466
+ const commands = [];
467
+ for (let i = 0, len = selections.length; i < len; i++) {
468
+ const ChosenReplaceCommand = config.inputMode === 'overtype' && !isDoingComposition ? ReplaceOvertypeCommand : ReplaceCommand;
469
+ commands[i] = new ChosenReplaceCommand(selections[i], ch);
470
+ }
471
+ const opType = getTypingOperation(ch, prevEditOperationType);
472
+ return new EditOperationResult(opType, commands, {
473
+ shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),
474
+ shouldPushStackElementAfter: false
475
+ });
476
+ }
477
+ }
478
+ class EnterOperation {
479
+ static getEdits(config, model, selections, ch, isDoingComposition) {
480
+ if (!isDoingComposition && ch === '\n') {
481
+ const commands = [];
482
+ for (let i = 0, len = selections.length; i < len; i++) {
483
+ commands[i] = this._enter(config, model, false, selections[i]);
484
+ }
485
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {
486
+ shouldPushStackElementBefore: true,
487
+ shouldPushStackElementAfter: false,
488
+ });
489
+ }
490
+ return;
491
+ }
492
+ static _enter(config, model, keepPosition, range) {
493
+ if (config.autoIndent === 0 /* EditorAutoIndentStrategy.None */) {
494
+ return typeCommand(range, '\n', keepPosition);
495
+ }
496
+ if (!model.tokenization.isCheapToTokenize(range.getStartPosition().lineNumber) || config.autoIndent === 1 /* EditorAutoIndentStrategy.Keep */) {
497
+ const lineText = model.getLineContent(range.startLineNumber);
498
+ const indentation = getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);
499
+ return typeCommand(range, '\n' + config.normalizeIndentation(indentation), keepPosition);
500
+ }
501
+ const r = getEnterAction(config.autoIndent, model, range, config.languageConfigurationService);
502
+ if (r) {
503
+ if (r.indentAction === IndentAction.None) {
504
+ // Nothing special
505
+ return typeCommand(range, '\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);
506
+ }
507
+ else if (r.indentAction === IndentAction.Indent) {
508
+ // Indent once
509
+ return typeCommand(range, '\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);
510
+ }
511
+ else if (r.indentAction === IndentAction.IndentOutdent) {
512
+ // Ultra special
513
+ const normalIndent = config.normalizeIndentation(r.indentation);
514
+ const increasedIndent = config.normalizeIndentation(r.indentation + r.appendText);
515
+ const typeText = '\n' + increasedIndent + '\n' + normalIndent;
516
+ if (keepPosition) {
517
+ return new ReplaceCommandWithoutChangingPosition(range, typeText, true);
518
+ }
519
+ else {
520
+ return new ReplaceCommandWithOffsetCursorState(range, typeText, -1, increasedIndent.length - normalIndent.length, true);
521
+ }
522
+ }
523
+ else if (r.indentAction === IndentAction.Outdent) {
524
+ const actualIndentation = unshiftIndent(config, r.indentation);
525
+ return typeCommand(range, '\n' + config.normalizeIndentation(actualIndentation + r.appendText), keepPosition);
526
+ }
527
+ }
528
+ const lineText = model.getLineContent(range.startLineNumber);
529
+ const indentation = getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);
530
+ if (config.autoIndent >= 4 /* EditorAutoIndentStrategy.Full */) {
531
+ const ir = getIndentForEnter(config.autoIndent, model, range, {
532
+ unshiftIndent: (indent) => {
533
+ return unshiftIndent(config, indent);
534
+ },
535
+ shiftIndent: (indent) => {
536
+ return shiftIndent(config, indent);
537
+ },
538
+ normalizeIndentation: (indent) => {
539
+ return config.normalizeIndentation(indent);
540
+ }
541
+ }, config.languageConfigurationService);
542
+ if (ir) {
543
+ let oldEndViewColumn = config.visibleColumnFromColumn(model, range.getEndPosition());
544
+ const oldEndColumn = range.endColumn;
545
+ const newLineContent = model.getLineContent(range.endLineNumber);
546
+ const firstNonWhitespace = firstNonWhitespaceIndex(newLineContent);
547
+ if (firstNonWhitespace >= 0) {
548
+ range = range.setEndPosition(range.endLineNumber, Math.max(range.endColumn, firstNonWhitespace + 1));
549
+ }
550
+ else {
551
+ range = range.setEndPosition(range.endLineNumber, model.getLineMaxColumn(range.endLineNumber));
552
+ }
553
+ if (keepPosition) {
554
+ return new ReplaceCommandWithoutChangingPosition(range, '\n' + config.normalizeIndentation(ir.afterEnter), true);
555
+ }
556
+ else {
557
+ let offset = 0;
558
+ if (oldEndColumn <= firstNonWhitespace + 1) {
559
+ if (!config.insertSpaces) {
560
+ oldEndViewColumn = Math.ceil(oldEndViewColumn / config.indentSize);
561
+ }
562
+ offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0);
563
+ }
564
+ return new ReplaceCommandWithOffsetCursorState(range, '\n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true);
565
+ }
566
+ }
567
+ }
568
+ return typeCommand(range, '\n' + config.normalizeIndentation(indentation), keepPosition);
569
+ }
570
+ static lineInsertBefore(config, model, selections) {
571
+ if (model === null || selections === null) {
572
+ return [];
573
+ }
574
+ const commands = [];
575
+ for (let i = 0, len = selections.length; i < len; i++) {
576
+ let lineNumber = selections[i].positionLineNumber;
577
+ if (lineNumber === 1) {
578
+ commands[i] = new ReplaceCommandWithoutChangingPosition(new Range(1, 1, 1, 1), '\n');
579
+ }
580
+ else {
581
+ lineNumber--;
582
+ const column = model.getLineMaxColumn(lineNumber);
583
+ commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));
584
+ }
585
+ }
586
+ return commands;
587
+ }
588
+ static lineInsertAfter(config, model, selections) {
589
+ if (model === null || selections === null) {
590
+ return [];
591
+ }
592
+ const commands = [];
593
+ for (let i = 0, len = selections.length; i < len; i++) {
594
+ const lineNumber = selections[i].positionLineNumber;
595
+ const column = model.getLineMaxColumn(lineNumber);
596
+ commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));
597
+ }
598
+ return commands;
599
+ }
600
+ static lineBreakInsert(config, model, selections) {
601
+ const commands = [];
602
+ for (let i = 0, len = selections.length; i < len; i++) {
603
+ commands[i] = this._enter(config, model, true, selections[i]);
604
+ }
605
+ return commands;
606
+ }
607
+ }
608
+ class PasteOperation {
609
+ static getEdits(config, model, selections, text, pasteOnNewLine, multicursorText) {
610
+ const distributedPaste = this._distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText);
611
+ if (distributedPaste) {
612
+ selections = selections.sort(Range.compareRangesUsingStarts);
613
+ return this._distributedPaste(config, model, selections, distributedPaste);
614
+ }
615
+ else {
616
+ return this._simplePaste(config, model, selections, text, pasteOnNewLine);
617
+ }
618
+ }
619
+ static _distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText) {
620
+ if (pasteOnNewLine) {
621
+ return null;
622
+ }
623
+ if (selections.length === 1) {
624
+ return null;
625
+ }
626
+ if (multicursorText && multicursorText.length === selections.length) {
627
+ return multicursorText;
628
+ }
629
+ if (config.multiCursorPaste === 'spread') {
630
+ // Try to spread the pasted text in case the line count matches the cursor count
631
+ // Remove trailing \n if present
632
+ if (text.charCodeAt(text.length - 1) === 10 /* CharCode.LineFeed */) {
633
+ text = text.substring(0, text.length - 1);
634
+ }
635
+ // Remove trailing \r if present
636
+ if (text.charCodeAt(text.length - 1) === 13 /* CharCode.CarriageReturn */) {
637
+ text = text.substring(0, text.length - 1);
638
+ }
639
+ const lines = splitLines(text);
640
+ if (lines.length === selections.length) {
641
+ return lines;
642
+ }
643
+ }
644
+ return null;
645
+ }
646
+ static _distributedPaste(config, model, selections, text) {
647
+ const commands = [];
648
+ for (let i = 0, len = selections.length; i < len; i++) {
649
+ const shouldOvertypeOnPaste = config.overtypeOnPaste && config.inputMode === 'overtype';
650
+ const ChosenReplaceCommand = shouldOvertypeOnPaste ? ReplaceOvertypeCommand : ReplaceCommand;
651
+ commands[i] = new ChosenReplaceCommand(selections[i], text[i]);
652
+ }
653
+ return new EditOperationResult(0 /* EditOperationType.Other */, commands, {
654
+ shouldPushStackElementBefore: true,
655
+ shouldPushStackElementAfter: true
656
+ });
657
+ }
658
+ static _simplePaste(config, model, selections, text, pasteOnNewLine) {
659
+ const commands = [];
660
+ for (let i = 0, len = selections.length; i < len; i++) {
661
+ const selection = selections[i];
662
+ const position = selection.getPosition();
663
+ if (pasteOnNewLine && !selection.isEmpty()) {
664
+ pasteOnNewLine = false;
665
+ }
666
+ if (pasteOnNewLine && text.indexOf('\n') !== text.length - 1) {
667
+ pasteOnNewLine = false;
668
+ }
669
+ if (pasteOnNewLine) {
670
+ // Paste entire line at the beginning of line
671
+ const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, 1);
672
+ commands[i] = new ReplaceCommandThatPreservesSelection(typeSelection, text, selection, true);
673
+ }
674
+ else {
675
+ const shouldOvertypeOnPaste = config.overtypeOnPaste && config.inputMode === 'overtype';
676
+ const ChosenReplaceCommand = shouldOvertypeOnPaste ? ReplaceOvertypeCommand : ReplaceCommand;
677
+ commands[i] = new ChosenReplaceCommand(selection, text);
678
+ }
679
+ }
680
+ return new EditOperationResult(0 /* EditOperationType.Other */, commands, {
681
+ shouldPushStackElementBefore: true,
682
+ shouldPushStackElementAfter: true
683
+ });
684
+ }
685
+ }
686
+ class CompositionOperation {
687
+ static getEdits(prevEditOperationType, config, model, selections, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {
688
+ const commands = selections.map(selection => this._compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta));
689
+ return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {
690
+ shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* EditOperationType.TypingOther */),
691
+ shouldPushStackElementAfter: false
692
+ });
693
+ }
694
+ static _compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {
695
+ if (!selection.isEmpty()) {
696
+ // looks like https://github.com/microsoft/vscode/issues/2773
697
+ // where a cursor operation occurred before a canceled composition
698
+ // => ignore composition
699
+ return null;
700
+ }
701
+ const pos = selection.getPosition();
702
+ const startColumn = Math.max(1, pos.column - replacePrevCharCnt);
703
+ const endColumn = Math.min(model.getLineMaxColumn(pos.lineNumber), pos.column + replaceNextCharCnt);
704
+ const range = new Range(pos.lineNumber, startColumn, pos.lineNumber, endColumn);
705
+ return new ReplaceCommandWithOffsetCursorState(range, text, 0, positionDelta);
706
+ }
707
+ }
708
+ class TypeWithoutInterceptorsOperation {
709
+ static getEdits(prevEditOperationType, selections, str) {
710
+ const commands = [];
711
+ for (let i = 0, len = selections.length; i < len; i++) {
712
+ commands[i] = new ReplaceCommand(selections[i], str);
713
+ }
714
+ const opType = getTypingOperation(str, prevEditOperationType);
715
+ return new EditOperationResult(opType, commands, {
716
+ shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),
717
+ shouldPushStackElementAfter: false
718
+ });
719
+ }
720
+ }
721
+ class TabOperation {
722
+ static getCommands(config, model, selections) {
723
+ const commands = [];
724
+ for (let i = 0, len = selections.length; i < len; i++) {
725
+ const selection = selections[i];
726
+ if (selection.isEmpty()) {
727
+ const lineText = model.getLineContent(selection.startLineNumber);
728
+ if (/^\s*$/.test(lineText) && model.tokenization.isCheapToTokenize(selection.startLineNumber)) {
729
+ let goodIndent = this._goodIndentForLine(config, model, selection.startLineNumber);
730
+ goodIndent = goodIndent || '\t';
731
+ const possibleTypeText = config.normalizeIndentation(goodIndent);
732
+ if (!lineText.startsWith(possibleTypeText)) {
733
+ commands[i] = new ReplaceCommand(new Range(selection.startLineNumber, 1, selection.startLineNumber, lineText.length + 1), possibleTypeText, true);
734
+ continue;
735
+ }
736
+ }
737
+ commands[i] = this._replaceJumpToNextIndent(config, model, selection, true);
738
+ }
739
+ else {
740
+ if (selection.startLineNumber === selection.endLineNumber) {
741
+ const lineMaxColumn = model.getLineMaxColumn(selection.startLineNumber);
742
+ if (selection.startColumn !== 1 || selection.endColumn !== lineMaxColumn) {
743
+ // This is a single line selection that is not the entire line
744
+ commands[i] = this._replaceJumpToNextIndent(config, model, selection, false);
745
+ continue;
746
+ }
747
+ }
748
+ commands[i] = new ShiftCommand(selection, {
749
+ isUnshift: false,
750
+ tabSize: config.tabSize,
751
+ indentSize: config.indentSize,
752
+ insertSpaces: config.insertSpaces,
753
+ useTabStops: config.useTabStops,
754
+ autoIndent: config.autoIndent
755
+ }, config.languageConfigurationService);
756
+ }
757
+ }
758
+ return commands;
759
+ }
760
+ static _goodIndentForLine(config, model, lineNumber) {
761
+ let action = null;
762
+ let indentation = '';
763
+ const expectedIndentAction = getInheritIndentForLine(config.autoIndent, model, lineNumber, false, config.languageConfigurationService);
764
+ if (expectedIndentAction) {
765
+ action = expectedIndentAction.action;
766
+ indentation = expectedIndentAction.indentation;
767
+ }
768
+ else if (lineNumber > 1) {
769
+ let lastLineNumber;
770
+ for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {
771
+ const lineText = model.getLineContent(lastLineNumber);
772
+ const nonWhitespaceIdx = lastNonWhitespaceIndex(lineText);
773
+ if (nonWhitespaceIdx >= 0) {
774
+ break;
775
+ }
776
+ }
777
+ if (lastLineNumber < 1) {
778
+ // No previous line with content found
779
+ return null;
780
+ }
781
+ const maxColumn = model.getLineMaxColumn(lastLineNumber);
782
+ const expectedEnterAction = getEnterAction(config.autoIndent, model, new Range(lastLineNumber, maxColumn, lastLineNumber, maxColumn), config.languageConfigurationService);
783
+ if (expectedEnterAction) {
784
+ indentation = expectedEnterAction.indentation + expectedEnterAction.appendText;
785
+ }
786
+ }
787
+ if (action) {
788
+ if (action === IndentAction.Indent) {
789
+ indentation = shiftIndent(config, indentation);
790
+ }
791
+ if (action === IndentAction.Outdent) {
792
+ indentation = unshiftIndent(config, indentation);
793
+ }
794
+ indentation = config.normalizeIndentation(indentation);
795
+ }
796
+ if (!indentation) {
797
+ return null;
798
+ }
799
+ return indentation;
800
+ }
801
+ static _replaceJumpToNextIndent(config, model, selection, insertsAutoWhitespace) {
802
+ let typeText = '';
803
+ const position = selection.getStartPosition();
804
+ if (config.insertSpaces) {
805
+ const visibleColumnFromColumn = config.visibleColumnFromColumn(model, position);
806
+ const indentSize = config.indentSize;
807
+ const spacesCnt = indentSize - (visibleColumnFromColumn % indentSize);
808
+ for (let i = 0; i < spacesCnt; i++) {
809
+ typeText += ' ';
810
+ }
811
+ }
812
+ else {
813
+ typeText = '\t';
814
+ }
815
+ return new ReplaceCommand(selection, typeText, insertsAutoWhitespace);
816
+ }
817
+ }
818
+ class BaseTypeWithAutoClosingCommand extends ReplaceCommandWithOffsetCursorState {
819
+ constructor(selection, text, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter) {
820
+ super(selection, text, lineNumberDeltaOffset, columnDeltaOffset);
821
+ this._openCharacter = openCharacter;
822
+ this._closeCharacter = closeCharacter;
823
+ this.closeCharacterRange = null;
824
+ this.enclosingRange = null;
825
+ }
826
+ _computeCursorStateWithRange(model, range, helper) {
827
+ this.closeCharacterRange = new Range(range.startLineNumber, range.endColumn - this._closeCharacter.length, range.endLineNumber, range.endColumn);
828
+ this.enclosingRange = new Range(range.startLineNumber, range.endColumn - this._openCharacter.length - this._closeCharacter.length, range.endLineNumber, range.endColumn);
829
+ return super.computeCursorState(model, helper);
830
+ }
831
+ }
832
+ class TypeWithAutoClosingCommand extends BaseTypeWithAutoClosingCommand {
833
+ constructor(selection, openCharacter, insertOpenCharacter, closeCharacter) {
834
+ const text = (insertOpenCharacter ? openCharacter : '') + closeCharacter;
835
+ const lineNumberDeltaOffset = 0;
836
+ const columnDeltaOffset = -closeCharacter.length;
837
+ super(selection, text, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter);
838
+ }
839
+ computeCursorState(model, helper) {
840
+ const inverseEditOperations = helper.getInverseEditOperations();
841
+ const range = inverseEditOperations[0].range;
842
+ return this._computeCursorStateWithRange(model, range, helper);
843
+ }
844
+ }
845
+ class TypeWithIndentationAndAutoClosingCommand extends BaseTypeWithAutoClosingCommand {
846
+ constructor(autoIndentationEdit, selection, openCharacter, closeCharacter) {
847
+ const text = openCharacter + closeCharacter;
848
+ const lineNumberDeltaOffset = 0;
849
+ const columnDeltaOffset = openCharacter.length;
850
+ super(selection, text, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter);
851
+ this._autoIndentationEdit = autoIndentationEdit;
852
+ this._autoClosingEdit = { range: selection, text };
853
+ }
854
+ getEditOperations(model, builder) {
855
+ builder.addTrackedEditOperation(this._autoIndentationEdit.range, this._autoIndentationEdit.text);
856
+ builder.addTrackedEditOperation(this._autoClosingEdit.range, this._autoClosingEdit.text);
857
+ }
858
+ computeCursorState(model, helper) {
859
+ const inverseEditOperations = helper.getInverseEditOperations();
860
+ if (inverseEditOperations.length !== 2) {
861
+ throw new Error('There should be two inverse edit operations!');
862
+ }
863
+ const range1 = inverseEditOperations[0].range;
864
+ const range2 = inverseEditOperations[1].range;
865
+ const range = range1.plusRange(range2);
866
+ return this._computeCursorStateWithRange(model, range, helper);
867
+ }
868
+ }
869
+ function getTypingOperation(typedText, previousTypingOperation) {
870
+ if (typedText === ' ') {
871
+ return previousTypingOperation === 5 /* EditOperationType.TypingFirstSpace */
872
+ || previousTypingOperation === 6 /* EditOperationType.TypingConsecutiveSpace */
873
+ ? 6 /* EditOperationType.TypingConsecutiveSpace */
874
+ : 5 /* EditOperationType.TypingFirstSpace */;
875
+ }
876
+ return 4 /* EditOperationType.TypingOther */;
877
+ }
878
+ function shouldPushStackElementBetween(previousTypingOperation, typingOperation) {
879
+ if (isTypingOperation(previousTypingOperation) && !isTypingOperation(typingOperation)) {
880
+ // Always set an undo stop before non-type operations
881
+ return true;
882
+ }
883
+ if (previousTypingOperation === 5 /* EditOperationType.TypingFirstSpace */) {
884
+ // `abc |d`: No undo stop
885
+ // `abc |d`: Undo stop
886
+ return false;
887
+ }
888
+ // Insert undo stop between different operation types
889
+ return normalizeOperationType(previousTypingOperation) !== normalizeOperationType(typingOperation);
890
+ }
891
+ function normalizeOperationType(type) {
892
+ return (type === 6 /* EditOperationType.TypingConsecutiveSpace */ || type === 5 /* EditOperationType.TypingFirstSpace */)
893
+ ? 'space'
894
+ : type;
895
+ }
896
+ function isTypingOperation(type) {
897
+ return type === 4 /* EditOperationType.TypingOther */
898
+ || type === 5 /* EditOperationType.TypingFirstSpace */
899
+ || type === 6 /* EditOperationType.TypingConsecutiveSpace */;
900
+ }
901
+ function isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch) {
902
+ if (config.autoClosingOvertype === 'never') {
903
+ return false;
904
+ }
905
+ if (!config.autoClosingPairs.autoClosingPairsCloseSingleChar.has(ch)) {
906
+ return false;
907
+ }
908
+ for (let i = 0, len = selections.length; i < len; i++) {
909
+ const selection = selections[i];
910
+ if (!selection.isEmpty()) {
911
+ return false;
912
+ }
913
+ const position = selection.getPosition();
914
+ const lineText = model.getLineContent(position.lineNumber);
915
+ const afterCharacter = lineText.charAt(position.column - 1);
916
+ if (afterCharacter !== ch) {
917
+ return false;
918
+ }
919
+ // Do not over-type quotes after a backslash
920
+ const chIsQuote = isQuote(ch);
921
+ const beforeCharacter = position.column > 2 ? lineText.charCodeAt(position.column - 2) : 0 /* CharCode.Null */;
922
+ if (beforeCharacter === 92 /* CharCode.Backslash */ && chIsQuote) {
923
+ return false;
924
+ }
925
+ // Must over-type a closing character typed by the editor
926
+ if (config.autoClosingOvertype === 'auto') {
927
+ let found = false;
928
+ for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {
929
+ const autoClosedCharacter = autoClosedCharacters[j];
930
+ if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {
931
+ found = true;
932
+ break;
933
+ }
934
+ }
935
+ if (!found) {
936
+ return false;
937
+ }
938
+ }
939
+ }
940
+ return true;
941
+ }
942
+ function typeCommand(range, text, keepPosition) {
943
+ if (keepPosition) {
944
+ return new ReplaceCommandWithoutChangingPosition(range, text, true);
945
+ }
946
+ else {
947
+ return new ReplaceCommand(range, text, true);
948
+ }
949
+ }
950
+ function shiftIndent(config, indentation, count) {
951
+ count = count || 1;
952
+ return ShiftCommand.shiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);
953
+ }
954
+ function unshiftIndent(config, indentation, count) {
955
+ count = count || 1;
956
+ return ShiftCommand.unshiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);
957
+ }
958
+ function shouldSurroundChar(config, ch) {
959
+ if (isQuote(ch)) {
960
+ return (config.autoSurround === 'quotes' || config.autoSurround === 'languageDefined');
961
+ }
962
+ else {
963
+ // Character is a bracket
964
+ return (config.autoSurround === 'brackets' || config.autoSurround === 'languageDefined');
965
+ }
966
+ }
967
+
968
+ export { AutoClosingOpenCharTypeOperation, AutoClosingOvertypeOperation, AutoClosingOvertypeWithInterceptorsOperation, AutoIndentOperation, BaseTypeWithAutoClosingCommand, CompositionEndOvertypeOperation, CompositionOperation, EnterOperation, InterceptorElectricCharOperation, PasteOperation, SimpleCharacterTypeOperation, SurroundSelectionOperation, TabOperation, TypeWithoutInterceptorsOperation, shiftIndent, shouldSurroundChar, unshiftIndent };