monaco-editor-core 0.55.0 → 0.56.0-dev-20251121

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 (416) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +2 -2
  3. package/esm/nls.messages.de.js +2 -2
  4. package/esm/nls.messages.es.js +2 -2
  5. package/esm/nls.messages.fr.js +2 -2
  6. package/esm/nls.messages.it.js +2 -2
  7. package/esm/nls.messages.ja.js +2 -2
  8. package/esm/nls.messages.js +1 -1
  9. package/esm/nls.messages.json +1 -1
  10. package/esm/nls.messages.ko.js +2 -2
  11. package/esm/nls.messages.pl.js +2 -2
  12. package/esm/nls.messages.pt-br.js +2 -2
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +2 -2
  15. package/esm/nls.messages.zh-cn.js +2 -2
  16. package/esm/nls.messages.zh-tw.js +2 -2
  17. package/esm/nls.metadata.json +27 -8
  18. package/esm/vs/base/browser/dom.js +31 -34
  19. package/esm/vs/base/browser/dom.js.map +1 -1
  20. package/esm/vs/base/browser/dompurify/dompurify.js +0 -1
  21. package/esm/vs/base/browser/keyboardEvent.js +3 -3
  22. package/esm/vs/base/browser/keyboardEvent.js.map +1 -1
  23. package/esm/vs/base/browser/markdownRenderer.js +5 -2
  24. package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
  25. package/esm/vs/base/browser/pixelRatio.js +5 -5
  26. package/esm/vs/base/browser/pixelRatio.js.map +1 -1
  27. package/esm/vs/base/browser/trustedTypes.js +1 -1
  28. package/esm/vs/base/browser/trustedTypes.js.map +1 -1
  29. package/esm/vs/base/browser/ui/actionbar/actionbar.js +3 -0
  30. package/esm/vs/base/browser/ui/actionbar/actionbar.js.map +1 -1
  31. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  32. package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +7 -0
  33. package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js.map +1 -1
  34. package/esm/vs/base/browser/ui/hover/hoverWidget.css +0 -13
  35. package/esm/vs/base/browser/ui/inputbox/inputBox.js +7 -0
  36. package/esm/vs/base/browser/ui/inputbox/inputBox.js.map +1 -1
  37. package/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css +4 -2
  38. package/esm/vs/base/browser/ui/list/listView.js +7 -2
  39. package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
  40. package/esm/vs/base/browser/ui/selectBox/selectBox.js +4 -0
  41. package/esm/vs/base/browser/ui/selectBox/selectBox.js.map +1 -1
  42. package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css +12 -32
  43. package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js +8 -18
  44. package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js.map +1 -1
  45. package/esm/vs/base/browser/ui/toolbar/toolbar.js +41 -14
  46. package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
  47. package/esm/vs/base/browser/ui/tree/abstractTree.js +11 -0
  48. package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
  49. package/esm/vs/base/browser/ui/tree/asyncDataTree.js +1 -0
  50. package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
  51. package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
  52. package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
  53. package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
  54. package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
  55. package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
  56. package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
  57. package/esm/vs/base/common/arrays.js +10 -0
  58. package/esm/vs/base/common/arrays.js.map +1 -1
  59. package/esm/vs/base/common/async.js +34 -0
  60. package/esm/vs/base/common/async.js.map +1 -1
  61. package/esm/vs/base/common/buffer.js +1 -1
  62. package/esm/vs/base/common/buffer.js.map +1 -1
  63. package/esm/vs/base/common/cancellation.js.map +1 -1
  64. package/esm/vs/base/common/codiconsLibrary.js +3 -0
  65. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  66. package/esm/vs/base/common/collections.js.map +1 -1
  67. package/esm/vs/base/common/equals.js.map +1 -1
  68. package/esm/vs/base/common/event.js +32 -15
  69. package/esm/vs/base/common/event.js.map +1 -1
  70. package/esm/vs/base/common/filters.js +22 -3
  71. package/esm/vs/base/common/filters.js.map +1 -1
  72. package/esm/vs/base/common/hotReload.js +2 -2
  73. package/esm/vs/base/common/hotReload.js.map +1 -1
  74. package/esm/vs/base/common/iterator.js +1 -1
  75. package/esm/vs/base/common/iterator.js.map +1 -1
  76. package/esm/vs/base/common/keyCodes.js +7 -6
  77. package/esm/vs/base/common/keyCodes.js.map +1 -1
  78. package/esm/vs/base/common/linkedList.js.map +1 -1
  79. package/esm/vs/base/common/map.js.map +1 -1
  80. package/esm/vs/base/common/marked/marked.js +0 -1
  81. package/esm/vs/base/common/network.js +26 -1
  82. package/esm/vs/base/common/network.js.map +1 -1
  83. package/esm/vs/base/common/normalization.js +19 -6
  84. package/esm/vs/base/common/normalization.js.map +1 -1
  85. package/esm/vs/base/common/observableInternal/debugLocation.js +1 -2
  86. package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
  87. package/esm/vs/base/common/observableInternal/debugName.js +0 -1
  88. package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
  89. package/esm/vs/base/common/observableInternal/index.js +4 -4
  90. package/esm/vs/base/common/observableInternal/index.js.map +1 -1
  91. package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +38 -10
  92. package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js.map +1 -1
  93. package/esm/vs/base/common/observableInternal/observables/baseObservable.js +3 -3
  94. package/esm/vs/base/common/observableInternal/observables/baseObservable.js.map +1 -1
  95. package/esm/vs/base/common/observableInternal/utils/utils.js +46 -5
  96. package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
  97. package/esm/vs/base/common/path.js +1 -0
  98. package/esm/vs/base/common/path.js.map +1 -1
  99. package/esm/vs/base/common/strings.js +27 -19
  100. package/esm/vs/base/common/strings.js.map +1 -1
  101. package/esm/vs/editor/browser/config/elementSizeObserver.js +5 -5
  102. package/esm/vs/editor/browser/config/elementSizeObserver.js.map +1 -1
  103. package/esm/vs/editor/browser/config/fontMeasurements.js.map +1 -1
  104. package/esm/vs/editor/browser/config/migrateOptions.js +6 -0
  105. package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
  106. package/esm/vs/editor/browser/config/tabFocus.js +4 -2
  107. package/esm/vs/editor/browser/config/tabFocus.js.map +1 -1
  108. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +8 -0
  109. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
  110. package/esm/vs/editor/browser/coreCommands.js +1 -2
  111. package/esm/vs/editor/browser/coreCommands.js.map +1 -1
  112. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  113. package/esm/vs/editor/browser/observableCodeEditor.js +32 -1
  114. package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
  115. package/esm/vs/editor/browser/services/contribution.js +9 -0
  116. package/esm/vs/editor/browser/services/contribution.js.map +1 -0
  117. package/esm/vs/editor/browser/services/editorWorkerService.js +27 -14
  118. package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
  119. package/esm/vs/editor/browser/services/openerService.js +5 -1
  120. package/esm/vs/editor/browser/services/openerService.js.map +1 -1
  121. package/esm/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  122. package/esm/vs/editor/browser/view/domLineBreaksComputer.js.map +1 -1
  123. package/esm/vs/editor/browser/view/renderingContext.js +1 -1
  124. package/esm/vs/editor/browser/view/renderingContext.js.map +1 -1
  125. package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +10 -3
  126. package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js.map +1 -1
  127. package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +3 -4
  128. package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js.map +1 -1
  129. package/esm/vs/editor/browser/viewParts/minimap/minimap.js +1 -1
  130. package/esm/vs/editor/browser/viewParts/minimap/minimap.js.map +1 -1
  131. package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +1 -1
  132. package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js.map +1 -1
  133. package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +4 -2
  134. package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js.map +1 -1
  135. package/esm/vs/editor/browser/viewParts/rulers/rulers.js +1 -3
  136. package/esm/vs/editor/browser/viewParts/rulers/rulers.js.map +1 -1
  137. package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +1 -1
  138. package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js.map +1 -1
  139. package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js +2 -1
  140. package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js.map +1 -1
  141. package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +6 -18
  142. package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js.map +1 -1
  143. package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +0 -7
  144. package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js.map +1 -1
  145. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +7 -2
  146. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  147. package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +1 -0
  148. package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js.map +1 -1
  149. package/esm/vs/editor/common/commands/replaceCommand.js +2 -2
  150. package/esm/vs/editor/common/commands/replaceCommand.js.map +1 -1
  151. package/esm/vs/editor/common/config/editorOptions.js +374 -360
  152. package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
  153. package/esm/vs/editor/common/core/2d/rect.js +7 -0
  154. package/esm/vs/editor/common/core/2d/rect.js.map +1 -1
  155. package/esm/vs/editor/common/core/2d/size.js +20 -0
  156. package/esm/vs/editor/common/core/2d/size.js.map +1 -0
  157. package/esm/vs/editor/common/core/editorColorRegistry.js +69 -68
  158. package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
  159. package/esm/vs/editor/common/core/ranges/offsetRange.js +9 -0
  160. package/esm/vs/editor/common/core/ranges/offsetRange.js.map +1 -1
  161. package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
  162. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  163. package/esm/vs/editor/common/editorContextKeys.js +47 -47
  164. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  165. package/esm/vs/editor/common/languages.js +56 -56
  166. package/esm/vs/editor/common/languages.js.map +1 -1
  167. package/esm/vs/editor/common/model/editStack.js +1 -1
  168. package/esm/vs/editor/common/services/languagesAssociations.js +6 -8
  169. package/esm/vs/editor/common/services/languagesAssociations.js.map +1 -1
  170. package/esm/vs/editor/common/standaloneStrings.js +11 -10
  171. package/esm/vs/editor/common/standaloneStrings.js.map +1 -1
  172. package/esm/vs/editor/common/textModelEditSource.js +1 -1
  173. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  174. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  175. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  176. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  177. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  178. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  179. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  180. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  181. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  182. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  183. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  184. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  185. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  186. package/esm/vs/editor/contrib/codelens/browser/codelens.js.map +1 -1
  187. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  188. package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
  189. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  190. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  191. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  192. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  193. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  194. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  195. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  196. package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js +14 -0
  197. package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js.map +1 -1
  198. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  199. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  200. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  201. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  202. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  203. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  204. package/esm/vs/editor/contrib/find/browser/findController.js +17 -17
  205. package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
  206. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  207. package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
  208. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  209. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  210. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  211. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  212. package/esm/vs/editor/contrib/format/browser/format.js +21 -6
  213. package/esm/vs/editor/contrib/format/browser/format.js.map +1 -1
  214. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  215. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  216. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  217. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  218. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  219. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  220. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  221. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  222. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  223. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  224. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  225. package/esm/vs/editor/contrib/hover/browser/contentHoverController.js +5 -10
  226. package/esm/vs/editor/contrib/hover/browser/contentHoverController.js.map +1 -1
  227. package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js +11 -6
  228. package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js.map +1 -1
  229. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  230. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  231. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  232. package/esm/vs/editor/contrib/hover/browser/hoverUtils.js +24 -0
  233. package/esm/vs/editor/contrib/hover/browser/hoverUtils.js.map +1 -1
  234. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  235. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  236. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  237. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  238. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  239. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
  240. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  241. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +18 -16
  242. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
  243. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  244. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  245. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +42 -37
  246. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  247. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +3 -3
  248. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +1 -1
  249. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +8 -8
  250. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
  251. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +54 -43
  252. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  253. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +12 -12
  254. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
  255. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +74 -48
  256. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  257. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +8 -36
  258. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  259. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js +10 -11
  260. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js.map +1 -1
  261. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +105 -119
  262. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  263. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
  264. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +8 -36
  265. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  266. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js +95 -0
  267. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js.map +1 -0
  268. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +17 -9
  269. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  270. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +415 -0
  271. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -0
  272. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +253 -0
  273. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -0
  274. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  275. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js +103 -0
  276. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js.map +1 -0
  277. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js +32 -0
  278. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js.map +1 -0
  279. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +44 -11
  280. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
  281. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +181 -0
  282. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -0
  283. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  284. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  285. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -31
  286. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
  287. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  288. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  289. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  290. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  291. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  292. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  293. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  294. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  295. package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +2 -2
  296. package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js.map +1 -1
  297. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +18 -13
  298. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
  299. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  300. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  301. package/esm/vs/editor/contrib/rename/browser/rename.js +12 -12
  302. package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
  303. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  304. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  305. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  306. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  307. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  308. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +1 -1
  309. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
  310. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  311. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  312. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  313. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  314. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  315. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  316. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  317. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  318. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  319. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  320. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +29 -29
  321. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  322. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  323. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  324. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +4 -4
  325. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js.map +1 -1
  326. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  327. package/esm/vs/editor/editor.all.js +1 -0
  328. package/esm/vs/editor/editor.all.js.map +1 -1
  329. package/esm/vs/editor/editor.api.d.ts +9 -5
  330. package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js +22 -2
  331. package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js.map +1 -1
  332. package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js +39 -0
  333. package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js.map +1 -0
  334. package/esm/vs/editor/standalone/browser/standaloneEditor.js +2 -1
  335. package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
  336. package/esm/vs/editor/standalone/browser/standaloneServices.js +3 -21
  337. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  338. package/esm/vs/editor/standalone/browser/standaloneWebWorker.js +4 -4
  339. package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
  340. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  341. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  342. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  343. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  344. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +7 -9
  345. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
  346. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  347. package/esm/vs/platform/actions/common/actions.js +2 -0
  348. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  349. package/esm/vs/platform/actions/common/menuService.js +2 -2
  350. package/esm/vs/platform/configuration/common/configuration.js +5 -4
  351. package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
  352. package/esm/vs/platform/configuration/common/configurationModels.js +21 -10
  353. package/esm/vs/platform/configuration/common/configurationModels.js.map +1 -1
  354. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  355. package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
  356. package/esm/vs/platform/configuration/common/configurations.js.map +1 -1
  357. package/esm/vs/platform/contextkey/browser/contextKeyService.js +3 -3
  358. package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
  359. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  360. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  361. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  362. package/esm/vs/platform/contextview/browser/contextViewService.js.map +1 -1
  363. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  364. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  365. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  366. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  367. package/esm/vs/platform/list/browser/listService.js +27 -27
  368. package/esm/vs/platform/list/browser/listService.js.map +1 -1
  369. package/esm/vs/platform/markers/common/markerService.js +2 -2
  370. package/esm/vs/platform/markers/common/markers.js +6 -6
  371. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +11 -32
  372. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
  373. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  374. package/esm/vs/platform/quickinput/browser/media/quickInput.css +9 -3
  375. package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
  376. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  377. package/esm/vs/platform/quickinput/browser/quickInputController.js +35 -14
  378. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  379. package/esm/vs/platform/quickinput/browser/quickInputList.js +4 -1
  380. package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
  381. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  382. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  383. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +71 -40
  384. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
  385. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +21 -8
  386. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
  387. package/esm/vs/platform/telemetry/common/gdprTypings.js.map +1 -1
  388. package/esm/vs/platform/telemetry/common/telemetry.js.map +1 -1
  389. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  390. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  391. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  392. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  393. package/esm/vs/platform/theme/common/colors/editorColors.js.map +1 -1
  394. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  395. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  396. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  397. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  398. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  399. package/esm/vs/platform/theme/common/colors/miscColors.js.map +1 -1
  400. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  401. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  402. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  403. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  404. package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js +12 -0
  405. package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js.map +1 -0
  406. package/esm/vs/platform/webWorker/browser/webWorkerService.js +7 -0
  407. package/esm/vs/platform/webWorker/browser/webWorkerService.js.map +1 -0
  408. package/esm/vs/{base/browser/webWorkerFactory.js → platform/webWorker/browser/webWorkerServiceImpl.js} +47 -66
  409. package/esm/vs/platform/webWorker/browser/webWorkerServiceImpl.js.map +1 -0
  410. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  411. package/monaco.d.ts +9 -5
  412. package/package.json +2 -2
  413. package/version.txt +1 -1
  414. package/esm/vs/base/browser/webWorkerFactory.js.map +0 -1
  415. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js +0 -82
  416. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/core/ranges/offsetRange.ts","vs/editor/common/core/ranges/offsetRange.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAOvE;;EAEE;AACF,MAAM,OAAO,WAAW;IAChB,MAAM,CAAC,MAAM,CAAC,KAAa,EAAE,YAAoB;QACvD,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAkB,EAAE,YAA2B;QACrE,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9E,CAAC,EAAE,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC/E,CAAC,EAAE,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC3E,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;IACF,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAa,EAAE,YAAoB;QAC1D,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,MAAc;QACpC,OAAO,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,KAAa,EAAE,MAAc;QAC3D,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,MAAc;QACnC,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,YAA4B,KAAa,EAAkB,YAAoB;QAAnD,UAAK,GAAL,KAAK,CAAQ;QAAkB,iBAAY,GAAZ,YAAY,CAAQ;QAC9E,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;IACF,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,MAAc;QAC1B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;IACzE,CAAC;IAEM,UAAU,CAAC,MAAc;QAC/B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC7B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;IACvC,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,GAAG,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,KAAkB;QAC/B,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;IAC/E,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACI,IAAI,CAAC,KAAkB;QAC7B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,KAAkB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YAClB,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,kBAAkB,CAAC,KAAkB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,KAAkB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,OAAO,KAAK,GAAG,GAAG,CAAC;IACpB,CAAC;IAEM,mBAAmB,CAAC,KAAkB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,OAAO,KAAK,IAAI,GAAG,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,KAAkB;QACjC,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,KAAkB;QAChC,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC;IACzC,CAAC;IAEM,KAAK,CAAI,GAAiB;QAChC,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAEM,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACI,IAAI,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,kBAAkB,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,kBAAkB,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,CAA2B;QACzC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;IACF,CAAC;IAED;;;MAGE;IACK,iBAAiB,CAAC,KAAkB;QAC1C,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;CACD;AAED,MAAM,OAAO,cAAc;IAA3B;QACkB,kBAAa,GAAkB,EAAE,CAAC;IAuDpD,CAAC;IArDO,QAAQ,CAAC,KAAkB;QACjC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1F,CAAC,EAAE,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC3F,CAAC,EAAE,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,KAAkB;QACzC,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3F,CAAC,EAAE,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1F,CAAC;IAEM,kBAAkB,CAAC,KAAkB;QAC3C,iCAAiC;QACjC,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,wBAAwB,CAAC,KAAkB;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;CACD","file":"offsetRange.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\n\nexport interface IOffsetRange {\n\treadonly start: number;\n\treadonly endExclusive: number;\n}\n\n/**\n * A range of offsets (0-based).\n*/\nexport class OffsetRange implements IOffsetRange {\n\tpublic static fromTo(start: number, endExclusive: number): OffsetRange {\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static addRange(range: OffsetRange, sortedRanges: OffsetRange[]): void {\n\t\tlet i = 0;\n\t\twhile (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tsortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive);\n\t\t\tsortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic static tryCreate(start: number, endExclusive: number): OffsetRange | undefined {\n\t\tif (start > endExclusive) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static ofLength(length: number): OffsetRange {\n\t\treturn new OffsetRange(0, length);\n\t}\n\n\tpublic static ofStartAndLength(start: number, length: number): OffsetRange {\n\t\treturn new OffsetRange(start, start + length);\n\t}\n\n\tpublic static emptyAt(offset: number): OffsetRange {\n\t\treturn new OffsetRange(offset, offset);\n\t}\n\n\tconstructor(public readonly start: number, public readonly endExclusive: number) {\n\t\tif (start > endExclusive) {\n\t\t\tthrow new BugIndicatingError(`Invalid range: ${this.toString()}`);\n\t\t}\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.start === this.endExclusive;\n\t}\n\n\tpublic delta(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive + offset);\n\t}\n\n\tpublic deltaStart(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive);\n\t}\n\n\tpublic deltaEnd(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start, this.endExclusive + offset);\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.endExclusive - this.start;\n\t}\n\n\tpublic toString() {\n\t\treturn `[${this.start}, ${this.endExclusive})`;\n\t}\n\n\tpublic equals(other: OffsetRange): boolean {\n\t\treturn this.start === other.start && this.endExclusive === other.endExclusive;\n\t}\n\n\tpublic contains(offset: number): boolean {\n\t\treturn this.start <= offset && offset < this.endExclusive;\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)\n\t * The joined range is the smallest range that contains both ranges.\n\t */\n\tpublic join(other: OffsetRange): OffsetRange {\n\t\treturn new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)\n\t *\n\t * The resulting range is empty if the ranges do not intersect, but touch.\n\t * If the ranges don't even touch, the result is undefined.\n\t */\n\tpublic intersect(other: OffsetRange): OffsetRange | undefined {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\tif (start <= end) {\n\t\t\treturn new OffsetRange(start, end);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic intersectionLength(range: OffsetRange): number {\n\t\tconst start = Math.max(this.start, range.start);\n\t\tconst end = Math.min(this.endExclusive, range.endExclusive);\n\t\treturn Math.max(0, end - start);\n\t}\n\n\tpublic intersects(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start < end;\n\t}\n\n\tpublic intersectsOrTouches(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start <= end;\n\t}\n\n\tpublic isBefore(other: OffsetRange): boolean {\n\t\treturn this.endExclusive <= other.start;\n\t}\n\n\tpublic isAfter(other: OffsetRange): boolean {\n\t\treturn this.start >= other.endExclusive;\n\t}\n\n\tpublic slice<T>(arr: readonly T[]): T[] {\n\t\treturn arr.slice(this.start, this.endExclusive);\n\t}\n\n\tpublic substring(str: string): string {\n\t\treturn str.substring(this.start, this.endExclusive);\n\t}\n\n\t/**\n\t * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.\n\t * The range must not be empty.\n\t */\n\tpublic clip(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\treturn Math.max(this.start, Math.min(this.endExclusive - 1, value));\n\t}\n\n\t/**\n\t * Returns `r := value + k * length` such that `r` is contained in this range.\n\t * The range must not be empty.\n\t *\n\t * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.\n\t */\n\tpublic clipCyclic(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\tif (value < this.start) {\n\t\t\treturn this.endExclusive - ((this.start - value) % this.length);\n\t\t}\n\t\tif (value >= this.endExclusive) {\n\t\t\treturn this.start + ((value - this.start) % this.length);\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic forEach(f: (offset: number) => void): void {\n\t\tfor (let i = this.start; i < this.endExclusive; i++) {\n\t\t\tf(i);\n\t\t}\n\t}\n\n\t/**\n\t * this: [ 5, 10), range: [10, 15) => [5, 15)]\n\t * Throws if the ranges are not touching.\n\t*/\n\tpublic joinRightTouching(range: OffsetRange): OffsetRange {\n\t\tif (this.endExclusive !== range.start) {\n\t\t\tthrow new BugIndicatingError(`Invalid join: ${this.toString()} and ${range.toString()}`);\n\t\t}\n\t\treturn new OffsetRange(this.start, range.endExclusive);\n\t}\n}\n\nexport class OffsetRangeSet {\n\tprivate readonly _sortedRanges: OffsetRange[] = [];\n\n\tpublic addRange(range: OffsetRange): void {\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < this._sortedRanges.length && this._sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tthis._sortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, this._sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, this._sortedRanges[j - 1].endExclusive);\n\t\t\tthis._sortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn this._sortedRanges.map(r => r.toString()).join(', ');\n\t}\n\n\t/**\n\t * Returns of there is a value that is contained in this instance and the given range.\n\t */\n\tpublic intersectsStrict(other: OffsetRange): boolean {\n\t\t// TODO use binary search\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive <= other.start) {\n\t\t\ti++;\n\t\t}\n\t\treturn i < this._sortedRanges.length && this._sortedRanges[i].start < other.endExclusive;\n\t}\n\n\tpublic intersectWithRange(other: OffsetRange): OffsetRangeSet {\n\t\t// TODO use binary search + slice\n\t\tconst result = new OffsetRangeSet();\n\t\tfor (const range of this._sortedRanges) {\n\t\t\tconst intersection = range.intersect(other);\n\t\t\tif (intersection) {\n\t\t\t\tresult.addRange(intersection);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic intersectWithRangeLength(other: OffsetRange): number {\n\t\treturn this.intersectWithRange(other).length;\n\t}\n\n\tpublic get length(): number {\n\t\treturn this._sortedRanges.reduce((prev, cur) => prev + cur.length, 0);\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\n\nexport interface IOffsetRange {\n\treadonly start: number;\n\treadonly endExclusive: number;\n}\n\n/**\n * A range of offsets (0-based).\n*/\nexport class OffsetRange implements IOffsetRange {\n\tpublic static fromTo(start: number, endExclusive: number): OffsetRange {\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static addRange(range: OffsetRange, sortedRanges: OffsetRange[]): void {\n\t\tlet i = 0;\n\t\twhile (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tsortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive);\n\t\t\tsortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic static tryCreate(start: number, endExclusive: number): OffsetRange | undefined {\n\t\tif (start > endExclusive) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static ofLength(length: number): OffsetRange {\n\t\treturn new OffsetRange(0, length);\n\t}\n\n\tpublic static ofStartAndLength(start: number, length: number): OffsetRange {\n\t\treturn new OffsetRange(start, start + length);\n\t}\n\n\tpublic static emptyAt(offset: number): OffsetRange {\n\t\treturn new OffsetRange(offset, offset);\n\t}\n\n\tconstructor(public readonly start: number, public readonly endExclusive: number) {\n\t\tif (start > endExclusive) {\n\t\t\tthrow new BugIndicatingError(`Invalid range: ${this.toString()}`);\n\t\t}\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.start === this.endExclusive;\n\t}\n\n\tpublic delta(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive + offset);\n\t}\n\n\tpublic deltaStart(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive);\n\t}\n\n\tpublic deltaEnd(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start, this.endExclusive + offset);\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.endExclusive - this.start;\n\t}\n\n\tpublic toString() {\n\t\treturn `[${this.start}, ${this.endExclusive})`;\n\t}\n\n\tpublic equals(other: OffsetRange): boolean {\n\t\treturn this.start === other.start && this.endExclusive === other.endExclusive;\n\t}\n\n\tpublic contains(offset: number): boolean {\n\t\treturn this.start <= offset && offset < this.endExclusive;\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)\n\t * The joined range is the smallest range that contains both ranges.\n\t */\n\tpublic join(other: OffsetRange): OffsetRange {\n\t\treturn new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)\n\t *\n\t * The resulting range is empty if the ranges do not intersect, but touch.\n\t * If the ranges don't even touch, the result is undefined.\n\t */\n\tpublic intersect(other: OffsetRange): OffsetRange | undefined {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\tif (start <= end) {\n\t\t\treturn new OffsetRange(start, end);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic intersectionLength(range: OffsetRange): number {\n\t\tconst start = Math.max(this.start, range.start);\n\t\tconst end = Math.min(this.endExclusive, range.endExclusive);\n\t\treturn Math.max(0, end - start);\n\t}\n\n\tpublic intersects(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start < end;\n\t}\n\n\tpublic intersectsOrTouches(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start <= end;\n\t}\n\n\tpublic isBefore(other: OffsetRange): boolean {\n\t\treturn this.endExclusive <= other.start;\n\t}\n\n\tpublic isAfter(other: OffsetRange): boolean {\n\t\treturn this.start >= other.endExclusive;\n\t}\n\n\tpublic slice<T>(arr: readonly T[]): T[] {\n\t\treturn arr.slice(this.start, this.endExclusive);\n\t}\n\n\tpublic substring(str: string): string {\n\t\treturn str.substring(this.start, this.endExclusive);\n\t}\n\n\t/**\n\t * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.\n\t * The range must not be empty.\n\t */\n\tpublic clip(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\treturn Math.max(this.start, Math.min(this.endExclusive - 1, value));\n\t}\n\n\t/**\n\t * Returns `r := value + k * length` such that `r` is contained in this range.\n\t * The range must not be empty.\n\t *\n\t * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.\n\t */\n\tpublic clipCyclic(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\tif (value < this.start) {\n\t\t\treturn this.endExclusive - ((this.start - value) % this.length);\n\t\t}\n\t\tif (value >= this.endExclusive) {\n\t\t\treturn this.start + ((value - this.start) % this.length);\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic forEach(f: (offset: number) => void): void {\n\t\tfor (let i = this.start; i < this.endExclusive; i++) {\n\t\t\tf(i);\n\t\t}\n\t}\n\n\t/**\n\t * this: [ 5, 10), range: [10, 15) => [5, 15)]\n\t * Throws if the ranges are not touching.\n\t*/\n\tpublic joinRightTouching(range: OffsetRange): OffsetRange {\n\t\tif (this.endExclusive !== range.start) {\n\t\t\tthrow new BugIndicatingError(`Invalid join: ${this.toString()} and ${range.toString()}`);\n\t\t}\n\t\treturn new OffsetRange(this.start, range.endExclusive);\n\t}\n}\n\nexport class OffsetRangeSet {\n\tprivate readonly _sortedRanges: OffsetRange[] = [];\n\n\tpublic addRange(range: OffsetRange): void {\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < this._sortedRanges.length && this._sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tthis._sortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, this._sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, this._sortedRanges[j - 1].endExclusive);\n\t\t\tthis._sortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn this._sortedRanges.map(r => r.toString()).join(', ');\n\t}\n\n\t/**\n\t * Returns of there is a value that is contained in this instance and the given range.\n\t */\n\tpublic intersectsStrict(other: OffsetRange): boolean {\n\t\t// TODO use binary search\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive <= other.start) {\n\t\t\ti++;\n\t\t}\n\t\treturn i < this._sortedRanges.length && this._sortedRanges[i].start < other.endExclusive;\n\t}\n\n\tpublic intersectWithRange(other: OffsetRange): OffsetRangeSet {\n\t\t// TODO use binary search + slice\n\t\tconst result = new OffsetRangeSet();\n\t\tfor (const range of this._sortedRanges) {\n\t\t\tconst intersection = range.intersect(other);\n\t\t\tif (intersection) {\n\t\t\t\tresult.addRange(intersection);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic intersectWithRangeLength(other: OffsetRange): number {\n\t\treturn this.intersectWithRange(other).length;\n\t}\n\n\tpublic get length(): number {\n\t\treturn this._sortedRanges.reduce((prev, cur) => prev + cur.length, 0);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/core/ranges/offsetRange.ts","vs/editor/common/core/ranges/offsetRange.ts"],"names":[],"mappings":"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","file":"offsetRange.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\n\nexport interface IOffsetRange {\n\treadonly start: number;\n\treadonly endExclusive: number;\n}\n\n/**\n * A range of offsets (0-based).\n*/\nexport class OffsetRange implements IOffsetRange {\n\tpublic static fromTo(start: number, endExclusive: number): OffsetRange {\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static addRange(range: OffsetRange, sortedRanges: OffsetRange[]): void {\n\t\tlet i = 0;\n\t\twhile (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tsortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive);\n\t\t\tsortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic static tryCreate(start: number, endExclusive: number): OffsetRange | undefined {\n\t\tif (start > endExclusive) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static ofLength(length: number): OffsetRange {\n\t\treturn new OffsetRange(0, length);\n\t}\n\n\tpublic static ofStartAndLength(start: number, length: number): OffsetRange {\n\t\treturn new OffsetRange(start, start + length);\n\t}\n\n\tpublic static emptyAt(offset: number): OffsetRange {\n\t\treturn new OffsetRange(offset, offset);\n\t}\n\n\tconstructor(public readonly start: number, public readonly endExclusive: number) {\n\t\tif (start > endExclusive) {\n\t\t\tthrow new BugIndicatingError(`Invalid range: ${this.toString()}`);\n\t\t}\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.start === this.endExclusive;\n\t}\n\n\tpublic delta(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive + offset);\n\t}\n\n\tpublic deltaStart(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive);\n\t}\n\n\tpublic deltaEnd(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start, this.endExclusive + offset);\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.endExclusive - this.start;\n\t}\n\n\tpublic toString() {\n\t\treturn `[${this.start}, ${this.endExclusive})`;\n\t}\n\n\tpublic equals(other: OffsetRange): boolean {\n\t\treturn this.start === other.start && this.endExclusive === other.endExclusive;\n\t}\n\n\tpublic containsRange(other: OffsetRange): boolean {\n\t\treturn this.start <= other.start && other.endExclusive <= this.endExclusive;\n\t}\n\n\tpublic contains(offset: number): boolean {\n\t\treturn this.start <= offset && offset < this.endExclusive;\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)\n\t * The joined range is the smallest range that contains both ranges.\n\t */\n\tpublic join(other: OffsetRange): OffsetRange {\n\t\treturn new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)\n\t *\n\t * The resulting range is empty if the ranges do not intersect, but touch.\n\t * If the ranges don't even touch, the result is undefined.\n\t */\n\tpublic intersect(other: OffsetRange): OffsetRange | undefined {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\tif (start <= end) {\n\t\t\treturn new OffsetRange(start, end);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic intersectionLength(range: OffsetRange): number {\n\t\tconst start = Math.max(this.start, range.start);\n\t\tconst end = Math.min(this.endExclusive, range.endExclusive);\n\t\treturn Math.max(0, end - start);\n\t}\n\n\tpublic intersects(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start < end;\n\t}\n\n\tpublic intersectsOrTouches(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start <= end;\n\t}\n\n\tpublic isBefore(other: OffsetRange): boolean {\n\t\treturn this.endExclusive <= other.start;\n\t}\n\n\tpublic isAfter(other: OffsetRange): boolean {\n\t\treturn this.start >= other.endExclusive;\n\t}\n\n\tpublic slice<T>(arr: readonly T[]): T[] {\n\t\treturn arr.slice(this.start, this.endExclusive);\n\t}\n\n\tpublic substring(str: string): string {\n\t\treturn str.substring(this.start, this.endExclusive);\n\t}\n\n\t/**\n\t * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.\n\t * The range must not be empty.\n\t */\n\tpublic clip(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\treturn Math.max(this.start, Math.min(this.endExclusive - 1, value));\n\t}\n\n\t/**\n\t * Returns `r := value + k * length` such that `r` is contained in this range.\n\t * The range must not be empty.\n\t *\n\t * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.\n\t */\n\tpublic clipCyclic(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\tif (value < this.start) {\n\t\t\treturn this.endExclusive - ((this.start - value) % this.length);\n\t\t}\n\t\tif (value >= this.endExclusive) {\n\t\t\treturn this.start + ((value - this.start) % this.length);\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic forEach(f: (offset: number) => void): void {\n\t\tfor (let i = this.start; i < this.endExclusive; i++) {\n\t\t\tf(i);\n\t\t}\n\t}\n\n\t/**\n\t * this: [ 5, 10), range: [10, 15) => [5, 15)]\n\t * Throws if the ranges are not touching.\n\t*/\n\tpublic joinRightTouching(range: OffsetRange): OffsetRange {\n\t\tif (this.endExclusive !== range.start) {\n\t\t\tthrow new BugIndicatingError(`Invalid join: ${this.toString()} and ${range.toString()}`);\n\t\t}\n\t\treturn new OffsetRange(this.start, range.endExclusive);\n\t}\n\n\tpublic withMargin(margin: number): OffsetRange;\n\tpublic withMargin(marginStart: number, marginEnd: number): OffsetRange;\n\tpublic withMargin(marginStart: number, marginEnd?: number): OffsetRange {\n\t\tif (marginEnd === undefined) {\n\t\t\tmarginEnd = marginStart;\n\t\t}\n\t\treturn new OffsetRange(this.start - marginStart, this.endExclusive + marginEnd);\n\t}\n}\n\nexport class OffsetRangeSet {\n\tprivate readonly _sortedRanges: OffsetRange[] = [];\n\n\tpublic addRange(range: OffsetRange): void {\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < this._sortedRanges.length && this._sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tthis._sortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, this._sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, this._sortedRanges[j - 1].endExclusive);\n\t\t\tthis._sortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn this._sortedRanges.map(r => r.toString()).join(', ');\n\t}\n\n\t/**\n\t * Returns of there is a value that is contained in this instance and the given range.\n\t */\n\tpublic intersectsStrict(other: OffsetRange): boolean {\n\t\t// TODO use binary search\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive <= other.start) {\n\t\t\ti++;\n\t\t}\n\t\treturn i < this._sortedRanges.length && this._sortedRanges[i].start < other.endExclusive;\n\t}\n\n\tpublic intersectWithRange(other: OffsetRange): OffsetRangeSet {\n\t\t// TODO use binary search + slice\n\t\tconst result = new OffsetRangeSet();\n\t\tfor (const range of this._sortedRanges) {\n\t\t\tconst intersection = range.intersect(other);\n\t\t\tif (intersection) {\n\t\t\t\tresult.addRange(intersection);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic intersectWithRangeLength(other: OffsetRange): number {\n\t\treturn this.intersectWithRange(other).length;\n\t}\n\n\tpublic get length(): number {\n\t\treturn this._sortedRanges.reduce((prev, cur) => prev + cur.length, 0);\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\n\nexport interface IOffsetRange {\n\treadonly start: number;\n\treadonly endExclusive: number;\n}\n\n/**\n * A range of offsets (0-based).\n*/\nexport class OffsetRange implements IOffsetRange {\n\tpublic static fromTo(start: number, endExclusive: number): OffsetRange {\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static addRange(range: OffsetRange, sortedRanges: OffsetRange[]): void {\n\t\tlet i = 0;\n\t\twhile (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tsortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive);\n\t\t\tsortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic static tryCreate(start: number, endExclusive: number): OffsetRange | undefined {\n\t\tif (start > endExclusive) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn new OffsetRange(start, endExclusive);\n\t}\n\n\tpublic static ofLength(length: number): OffsetRange {\n\t\treturn new OffsetRange(0, length);\n\t}\n\n\tpublic static ofStartAndLength(start: number, length: number): OffsetRange {\n\t\treturn new OffsetRange(start, start + length);\n\t}\n\n\tpublic static emptyAt(offset: number): OffsetRange {\n\t\treturn new OffsetRange(offset, offset);\n\t}\n\n\tconstructor(public readonly start: number, public readonly endExclusive: number) {\n\t\tif (start > endExclusive) {\n\t\t\tthrow new BugIndicatingError(`Invalid range: ${this.toString()}`);\n\t\t}\n\t}\n\n\tget isEmpty(): boolean {\n\t\treturn this.start === this.endExclusive;\n\t}\n\n\tpublic delta(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive + offset);\n\t}\n\n\tpublic deltaStart(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start + offset, this.endExclusive);\n\t}\n\n\tpublic deltaEnd(offset: number): OffsetRange {\n\t\treturn new OffsetRange(this.start, this.endExclusive + offset);\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.endExclusive - this.start;\n\t}\n\n\tpublic toString() {\n\t\treturn `[${this.start}, ${this.endExclusive})`;\n\t}\n\n\tpublic equals(other: OffsetRange): boolean {\n\t\treturn this.start === other.start && this.endExclusive === other.endExclusive;\n\t}\n\n\tpublic containsRange(other: OffsetRange): boolean {\n\t\treturn this.start <= other.start && other.endExclusive <= this.endExclusive;\n\t}\n\n\tpublic contains(offset: number): boolean {\n\t\treturn this.start <= offset && offset < this.endExclusive;\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)\n\t * The joined range is the smallest range that contains both ranges.\n\t */\n\tpublic join(other: OffsetRange): OffsetRange {\n\t\treturn new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));\n\t}\n\n\t/**\n\t * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)\n\t *\n\t * The resulting range is empty if the ranges do not intersect, but touch.\n\t * If the ranges don't even touch, the result is undefined.\n\t */\n\tpublic intersect(other: OffsetRange): OffsetRange | undefined {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\tif (start <= end) {\n\t\t\treturn new OffsetRange(start, end);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic intersectionLength(range: OffsetRange): number {\n\t\tconst start = Math.max(this.start, range.start);\n\t\tconst end = Math.min(this.endExclusive, range.endExclusive);\n\t\treturn Math.max(0, end - start);\n\t}\n\n\tpublic intersects(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start < end;\n\t}\n\n\tpublic intersectsOrTouches(other: OffsetRange): boolean {\n\t\tconst start = Math.max(this.start, other.start);\n\t\tconst end = Math.min(this.endExclusive, other.endExclusive);\n\t\treturn start <= end;\n\t}\n\n\tpublic isBefore(other: OffsetRange): boolean {\n\t\treturn this.endExclusive <= other.start;\n\t}\n\n\tpublic isAfter(other: OffsetRange): boolean {\n\t\treturn this.start >= other.endExclusive;\n\t}\n\n\tpublic slice<T>(arr: readonly T[]): T[] {\n\t\treturn arr.slice(this.start, this.endExclusive);\n\t}\n\n\tpublic substring(str: string): string {\n\t\treturn str.substring(this.start, this.endExclusive);\n\t}\n\n\t/**\n\t * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.\n\t * The range must not be empty.\n\t */\n\tpublic clip(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\treturn Math.max(this.start, Math.min(this.endExclusive - 1, value));\n\t}\n\n\t/**\n\t * Returns `r := value + k * length` such that `r` is contained in this range.\n\t * The range must not be empty.\n\t *\n\t * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.\n\t */\n\tpublic clipCyclic(value: number): number {\n\t\tif (this.isEmpty) {\n\t\t\tthrow new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n\t\t}\n\t\tif (value < this.start) {\n\t\t\treturn this.endExclusive - ((this.start - value) % this.length);\n\t\t}\n\t\tif (value >= this.endExclusive) {\n\t\t\treturn this.start + ((value - this.start) % this.length);\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic forEach(f: (offset: number) => void): void {\n\t\tfor (let i = this.start; i < this.endExclusive; i++) {\n\t\t\tf(i);\n\t\t}\n\t}\n\n\t/**\n\t * this: [ 5, 10), range: [10, 15) => [5, 15)]\n\t * Throws if the ranges are not touching.\n\t*/\n\tpublic joinRightTouching(range: OffsetRange): OffsetRange {\n\t\tif (this.endExclusive !== range.start) {\n\t\t\tthrow new BugIndicatingError(`Invalid join: ${this.toString()} and ${range.toString()}`);\n\t\t}\n\t\treturn new OffsetRange(this.start, range.endExclusive);\n\t}\n\n\tpublic withMargin(margin: number): OffsetRange;\n\tpublic withMargin(marginStart: number, marginEnd: number): OffsetRange;\n\tpublic withMargin(marginStart: number, marginEnd?: number): OffsetRange {\n\t\tif (marginEnd === undefined) {\n\t\t\tmarginEnd = marginStart;\n\t\t}\n\t\treturn new OffsetRange(this.start - marginStart, this.endExclusive + marginEnd);\n\t}\n}\n\nexport class OffsetRangeSet {\n\tprivate readonly _sortedRanges: OffsetRange[] = [];\n\n\tpublic addRange(range: OffsetRange): void {\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive < range.start) {\n\t\t\ti++;\n\t\t}\n\t\tlet j = i;\n\t\twhile (j < this._sortedRanges.length && this._sortedRanges[j].start <= range.endExclusive) {\n\t\t\tj++;\n\t\t}\n\t\tif (i === j) {\n\t\t\tthis._sortedRanges.splice(i, 0, range);\n\t\t} else {\n\t\t\tconst start = Math.min(range.start, this._sortedRanges[i].start);\n\t\t\tconst end = Math.max(range.endExclusive, this._sortedRanges[j - 1].endExclusive);\n\t\t\tthis._sortedRanges.splice(i, j - i, new OffsetRange(start, end));\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn this._sortedRanges.map(r => r.toString()).join(', ');\n\t}\n\n\t/**\n\t * Returns of there is a value that is contained in this instance and the given range.\n\t */\n\tpublic intersectsStrict(other: OffsetRange): boolean {\n\t\t// TODO use binary search\n\t\tlet i = 0;\n\t\twhile (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive <= other.start) {\n\t\t\ti++;\n\t\t}\n\t\treturn i < this._sortedRanges.length && this._sortedRanges[i].start < other.endExclusive;\n\t}\n\n\tpublic intersectWithRange(other: OffsetRange): OffsetRangeSet {\n\t\t// TODO use binary search + slice\n\t\tconst result = new OffsetRangeSet();\n\t\tfor (const range of this._sortedRanges) {\n\t\t\tconst intersection = range.intersect(other);\n\t\t\tif (intersection) {\n\t\t\t\tresult.addRange(intersection);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic intersectWithRangeLength(other: OffsetRange): number {\n\t\treturn this.intersectWithRange(other).length;\n\t}\n\n\tpublic get length(): number {\n\t\treturn this._sortedRanges.reduce((prev, cur) => prev + cur.length, 0);\n\t}\n}\n"]}
@@ -143,14 +143,14 @@ export class CursorMoveCommands {
143
143
  : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position));
144
144
  if (!inSelectionMode) {
145
145
  // Entering line selection for the first time
146
- const lineCount = viewModel.model.getLineCount();
147
- let selectToLineNumber = position.lineNumber + 1;
146
+ const lineCount = viewModel.getLineCount();
147
+ let selectToLineNumber = viewPosition.lineNumber + 1;
148
148
  let selectToColumn = 1;
149
149
  if (selectToLineNumber > lineCount) {
150
150
  selectToLineNumber = lineCount;
151
- selectToColumn = viewModel.model.getLineMaxColumn(selectToLineNumber);
151
+ selectToColumn = viewModel.getLineMaxColumn(selectToLineNumber);
152
152
  }
153
- return CursorState.fromModelState(new SingleCursorState(new Range(position.lineNumber, 1, selectToLineNumber, selectToColumn), 2 /* SelectionStartKind.Line */, 0, new Position(selectToLineNumber, selectToColumn), 0));
153
+ return CursorState.fromViewState(new SingleCursorState(new Range(viewPosition.lineNumber, 1, selectToLineNumber, selectToColumn), 2 /* SelectionStartKind.Line */, 0, new Position(selectToLineNumber, selectToColumn), 0));
154
154
  }
155
155
  // Continuing line selection
156
156
  const enteringLineNumber = cursor.modelState.selectionStart.getStartPosition().lineNumber;