monaco-editor-core 0.56.0-dev-20251125 → 0.56.0-dev-20251217

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 (336) 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 +30 -4
  18. package/esm/vs/base/browser/dom.js +1 -4
  19. package/esm/vs/base/browser/dom.js.map +1 -1
  20. package/esm/vs/base/browser/markdownRenderer.js +25 -11
  21. package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
  22. package/esm/vs/base/browser/ui/button/button.js +15 -8
  23. package/esm/vs/base/browser/ui/button/button.js.map +1 -1
  24. package/esm/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css +3 -8
  25. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  26. package/esm/vs/base/browser/ui/list/list.css +1 -0
  27. package/esm/vs/base/browser/ui/toolbar/toolbar.js +3 -0
  28. package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
  29. package/esm/vs/base/common/codiconsLibrary.js +11 -2
  30. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  31. package/esm/vs/base/common/defaultAccount.js +6 -0
  32. package/esm/vs/base/common/defaultAccount.js.map +1 -0
  33. package/esm/vs/base/common/equals.js +73 -24
  34. package/esm/vs/base/common/equals.js.map +1 -1
  35. package/esm/vs/base/common/event.js +14 -4
  36. package/esm/vs/base/common/event.js.map +1 -1
  37. package/esm/vs/base/common/iterator.js.map +1 -1
  38. package/esm/vs/base/common/keybindings.js +0 -8
  39. package/esm/vs/base/common/keybindings.js.map +1 -1
  40. package/esm/vs/base/common/lifecycle.js +2 -2
  41. package/esm/vs/base/common/lifecycle.js.map +1 -1
  42. package/esm/vs/base/common/marshallingIds.js.map +1 -1
  43. package/esm/vs/base/common/observableInternal/index.js +1 -1
  44. package/esm/vs/base/common/observableInternal/index.js.map +1 -1
  45. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -1
  46. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  47. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +16 -0
  48. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  49. package/esm/vs/base/common/observableInternal/utils/utils.js +11 -0
  50. package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
  51. package/esm/vs/base/common/product.js.map +1 -1
  52. package/esm/vs/base/common/strings.js +3 -1
  53. package/esm/vs/base/common/strings.js.map +1 -1
  54. package/esm/vs/editor/browser/controller/dragScrolling.js +2 -1
  55. package/esm/vs/editor/browser/controller/dragScrolling.js.map +1 -1
  56. package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js +73 -2
  57. package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js.map +1 -1
  58. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +7 -51
  59. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
  60. package/esm/vs/editor/browser/controller/editContext/screenReaderUtils.js.map +1 -1
  61. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +7 -20
  62. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js.map +1 -1
  63. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js +14 -44
  64. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js.map +1 -1
  65. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextRegistry.js +19 -0
  66. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextRegistry.js.map +1 -0
  67. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js +14 -1
  68. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js.map +1 -1
  69. package/esm/vs/editor/browser/controller/mouseHandler.js +5 -2
  70. package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
  71. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  72. package/esm/vs/editor/browser/observableCodeEditor.js +32 -15
  73. package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
  74. package/esm/vs/editor/browser/view.js +11 -2
  75. package/esm/vs/editor/browser/view.js.map +1 -1
  76. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +5 -2
  77. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
  78. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +10 -0
  79. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  80. package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js.map +1 -1
  81. package/esm/vs/editor/browser/widget/multiDiffEditor/style.css +48 -0
  82. package/esm/vs/editor/common/config/fontInfo.js +1 -1
  83. package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
  84. package/esm/vs/editor/common/core/edits/edit.js +19 -0
  85. package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
  86. package/esm/vs/editor/common/core/edits/stringEdit.js +13 -0
  87. package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
  88. package/esm/vs/editor/common/core/edits/textEdit.js +0 -3
  89. package/esm/vs/editor/common/core/edits/textEdit.js.map +1 -1
  90. package/esm/vs/editor/common/core/text/positionToOffsetImpl.js +24 -10
  91. package/esm/vs/editor/common/core/text/positionToOffsetImpl.js.map +1 -1
  92. package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
  93. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  94. package/esm/vs/editor/common/cursor/cursorWordOperations.js +6 -3
  95. package/esm/vs/editor/common/cursor/cursorWordOperations.js.map +1 -1
  96. package/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js +2 -2
  97. package/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js.map +1 -1
  98. package/esm/vs/editor/common/languages/nullTokenize.js +1 -1
  99. package/esm/vs/editor/common/languages/nullTokenize.js.map +1 -1
  100. package/esm/vs/editor/common/languages/supports/tokenization.js +3 -0
  101. package/esm/vs/editor/common/languages/supports/tokenization.js.map +1 -1
  102. package/esm/vs/editor/common/languages.js +2 -1
  103. package/esm/vs/editor/common/languages.js.map +1 -1
  104. package/esm/vs/editor/common/model/decorationProvider.js +21 -1
  105. package/esm/vs/editor/common/model/decorationProvider.js.map +1 -1
  106. package/esm/vs/editor/common/model/textModel.js +49 -30
  107. package/esm/vs/editor/common/model/textModel.js.map +1 -1
  108. package/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js +6 -3
  109. package/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js.map +1 -1
  110. package/esm/vs/editor/common/model/tokens/annotations.js +177 -0
  111. package/esm/vs/editor/common/model/tokens/annotations.js.map +1 -0
  112. package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js +131 -0
  113. package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js.map +1 -0
  114. package/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js +9 -0
  115. package/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js.map +1 -1
  116. package/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js +9 -0
  117. package/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js.map +1 -1
  118. package/esm/vs/editor/common/textModelEditSource.js +2 -0
  119. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  120. package/esm/vs/editor/common/textModelEvents.js.map +1 -1
  121. package/esm/vs/editor/common/viewLayout/lineDecorations.js.map +1 -1
  122. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +1 -1
  123. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
  124. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +54 -36
  125. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js.map +1 -1
  126. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +14 -1
  127. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js.map +1 -1
  128. package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
  129. package/esm/vs/editor/contrib/hover/browser/hover.css +1 -1
  130. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +1 -1
  131. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
  132. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  133. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +1 -0
  134. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
  135. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js +1 -0
  136. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js.map +1 -1
  137. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +33 -4
  138. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js.map +1 -1
  139. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -12
  140. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js.map +1 -1
  141. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +7 -1
  142. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
  143. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  144. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  145. package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js +2 -1
  146. package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js.map +1 -1
  147. package/esm/vs/editor/contrib/inlineCompletions/browser/model/InlineSuggestAlternativeAction.js +8 -0
  148. package/esm/vs/editor/contrib/inlineCompletions/browser/model/InlineSuggestAlternativeAction.js.map +1 -0
  149. package/esm/vs/editor/contrib/inlineCompletions/browser/model/editKind.js +198 -0
  150. package/esm/vs/editor/contrib/inlineCompletions/browser/model/editKind.js.map +1 -0
  151. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionIsVisible.js +40 -0
  152. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionIsVisible.js.map +1 -0
  153. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +128 -70
  154. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  155. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +59 -11
  156. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  157. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +152 -95
  158. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
  159. package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js +113 -54
  160. package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js.map +1 -1
  161. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +317 -75
  162. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js.map +1 -1
  163. package/esm/vs/editor/contrib/inlineCompletions/browser/telemetry.js.map +1 -1
  164. package/esm/vs/editor/contrib/inlineCompletions/browser/utils.js +20 -0
  165. package/esm/vs/editor/contrib/inlineCompletions/browser/utils.js.map +1 -1
  166. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +59 -42
  167. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  168. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +29 -8
  169. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
  170. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +78 -46
  171. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  172. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +9 -4
  173. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  174. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +11 -4
  175. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  176. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +81 -41
  177. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  178. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js +48 -0
  179. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
  180. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +18 -15
  181. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  182. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js +3 -4
  183. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js.map +1 -1
  184. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +6 -7
  185. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
  186. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +4 -5
  187. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
  188. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +4 -3
  189. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  190. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +8 -8
  191. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
  192. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +9 -7
  193. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
  194. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +203 -41
  195. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
  196. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js +189 -0
  197. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js.map +1 -0
  198. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +85 -102
  199. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
  200. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +75 -32
  201. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -1
  202. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistnaceWidgetPlacement.js +121 -0
  203. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistnaceWidgetPlacement.js.map +1 -0
  204. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
  205. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
  206. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +22 -20
  207. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  208. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +15 -5
  209. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
  210. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.css +39 -6
  211. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +10 -5
  212. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -1
  213. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  214. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  215. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -32
  216. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
  217. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  218. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  219. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  220. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  221. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  222. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  223. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  224. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  225. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  226. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  227. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  228. package/esm/vs/editor/contrib/rename/browser/rename.js +19 -15
  229. package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
  230. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  231. package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js +3 -2
  232. package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js.map +1 -1
  233. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  234. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  235. package/esm/vs/editor/contrib/snippet/browser/snippetParser.js +33 -0
  236. package/esm/vs/editor/contrib/snippet/browser/snippetParser.js.map +1 -1
  237. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  238. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  239. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +12 -4
  240. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
  241. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +1 -0
  242. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
  243. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -8
  244. package/esm/vs/editor/contrib/suggest/browser/suggest.js.map +1 -1
  245. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +39 -28
  246. package/esm/vs/editor/contrib/suggest/browser/suggestController.js.map +1 -1
  247. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +1 -0
  248. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js.map +1 -1
  249. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +22 -18
  250. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js.map +1 -1
  251. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +28 -6
  252. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
  253. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  254. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  255. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  256. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  257. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  258. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  259. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  260. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  261. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  262. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  263. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +19 -2
  264. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js.map +1 -1
  265. package/esm/vs/editor/editor.api.d.ts +34 -3
  266. package/esm/vs/editor/standalone/browser/standaloneLanguages.js +2 -2
  267. package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
  268. package/esm/vs/editor/standalone/browser/standaloneServices.js +11 -1
  269. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  270. package/esm/vs/editor/standalone/common/monarch/monarchLexer.js +1 -1
  271. package/esm/vs/editor/standalone/common/monarch/monarchLexer.js.map +1 -1
  272. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  273. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  274. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  275. package/esm/vs/platform/actionWidget/browser/actionWidget.css +11 -8
  276. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  277. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  278. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  279. package/esm/vs/platform/actions/common/actions.js +11 -5
  280. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  281. package/esm/vs/platform/actions/common/menuService.js +2 -2
  282. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  283. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  284. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  285. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  286. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  287. package/esm/vs/platform/{product/common/productService.js → defaultAccount/common/defaultAccount.js} +2 -2
  288. package/esm/vs/platform/defaultAccount/common/defaultAccount.js.map +1 -0
  289. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  290. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  291. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  292. package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
  293. package/esm/vs/platform/instantiation/common/instantiationService.js +1 -8
  294. package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
  295. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  296. package/esm/vs/platform/list/browser/listService.js +27 -27
  297. package/esm/vs/platform/log/common/log.js +1 -1
  298. package/esm/vs/platform/log/common/log.js.map +1 -1
  299. package/esm/vs/platform/markers/common/markerService.js +6 -6
  300. package/esm/vs/platform/markers/common/markerService.js.map +1 -1
  301. package/esm/vs/platform/markers/common/markers.js +6 -6
  302. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  303. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  304. package/esm/vs/platform/quickinput/browser/media/quickInput.css +7 -3
  305. package/esm/vs/platform/quickinput/browser/quickInput.js +19 -11
  306. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  307. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  308. package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
  309. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  310. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  311. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  312. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  313. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -17
  314. package/esm/vs/platform/theme/common/colors/baseColors.js.map +1 -1
  315. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  316. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  317. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  318. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  319. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  320. package/esm/vs/platform/theme/common/colors/minimapColors.js +13 -13
  321. package/esm/vs/platform/theme/common/colors/minimapColors.js.map +1 -1
  322. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  323. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  324. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  325. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  326. package/esm/vs/platform/undoRedo/common/undoRedoService.js +21 -21
  327. package/esm/vs/platform/undoRedo/common/undoRedoService.js.map +1 -1
  328. package/esm/vs/platform/window/common/window.js +1 -1
  329. package/esm/vs/platform/window/common/window.js.map +1 -1
  330. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  331. package/monaco.d.ts +34 -3
  332. package/package.json +2 -2
  333. package/version.txt +1 -1
  334. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +0 -16
  335. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +0 -1
  336. package/esm/vs/platform/product/common/productService.js.map +0 -1
@@ -3,7 +3,6 @@
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { BugIndicatingError } from '../../../../../base/common/errors.js';
6
- import { matchesSubString } from '../../../../../base/common/filters.js';
7
6
  import { observableSignal, observableValue } from '../../../../../base/common/observable.js';
8
7
  import { commonPrefixLength, commonSuffixLength, splitLines } from '../../../../../base/common/strings.js';
9
8
  import { applyEditsToRanges, StringEdit, StringReplacement } from '../../../../common/core/edits/stringEdit.js';
@@ -16,19 +15,25 @@ import { TextLength } from '../../../../common/core/text/textLength.js';
16
15
  import { linesDiffComputers } from '../../../../common/diff/linesDiffComputers.js';
17
16
  import { InlineCompletionTriggerKind } from '../../../../common/languages.js';
18
17
  import { TextModelText } from '../../../../common/model/textModelText.js';
19
- import { singleTextRemoveCommonPrefix } from './singleTextEditHelpers.js';
18
+ import { computeEditKind } from './editKind.js';
19
+ import { inlineCompletionIsVisible } from './inlineCompletionIsVisible.js';
20
+ import { InlineSuggestAlternativeAction } from './InlineSuggestAlternativeAction.js';
20
21
  export var InlineSuggestionItem;
21
22
  (function (InlineSuggestionItem) {
22
- function create(data, textModel) {
23
- if (!data.isInlineEdit && !data.uri) {
24
- return InlineCompletionItem.create(data, textModel);
23
+ function create(data, textModel, shouldDiffEdit = true) {
24
+ if (!data.isInlineEdit && !data.action?.uri && data.action?.kind === 'edit') {
25
+ return InlineCompletionItem.create(data, textModel, data.action);
25
26
  }
26
27
  else {
27
- return InlineEditItem.create(data, textModel);
28
+ return InlineEditItem.create(data, textModel, shouldDiffEdit);
28
29
  }
29
30
  }
30
31
  InlineSuggestionItem.create = create;
31
32
  })(InlineSuggestionItem || (InlineSuggestionItem = {}));
33
+ function hashInlineSuggestionAction(action) {
34
+ const obj = action?.kind === 'edit' ? { ...action, alternativeAction: InlineSuggestAlternativeAction.toString(action.alternativeAction) } : action;
35
+ return JSON.stringify(obj);
36
+ }
32
37
  class InlineSuggestionItemBase {
33
38
  constructor(_data, identity, hint) {
34
39
  this._data = _data;
@@ -42,21 +47,26 @@ class InlineSuggestionItemBase {
42
47
  get source() { return this._data.source; }
43
48
  get isFromExplicitRequest() { return this._data.context.triggerKind === InlineCompletionTriggerKind.Explicit; }
44
49
  get forwardStable() { return this.source.inlineSuggestions.enableForwardStability ?? false; }
45
- get editRange() { return this.getSingleTextEdit().range; }
46
- get targetRange() { return this.hint?.range ?? this.editRange; }
47
- get insertText() { return this.getSingleTextEdit().text; }
50
+ get targetRange() {
51
+ if (this.hint) {
52
+ return this.hint.range;
53
+ }
54
+ if (this.action?.kind === 'edit') {
55
+ return this.action.textReplacement.range;
56
+ }
57
+ else if (this.action?.kind === 'jumpTo') {
58
+ return Range.fromPositions(this.action.position);
59
+ }
60
+ throw new BugIndicatingError('InlineSuggestionItem: Either hint or action must be set');
61
+ }
48
62
  get semanticId() { return this.hash; }
49
- get action() { return this._sourceInlineCompletion.gutterMenuLinkAction; }
63
+ get gutterMenuLinkAction() { return this._sourceInlineCompletion.gutterMenuLinkAction; }
50
64
  get command() { return this._sourceInlineCompletion.command; }
51
65
  get supportsRename() { return this._data.supportsRename; }
52
- get renameCommand() { return this._data.renameCommand; }
53
66
  get warning() { return this._sourceInlineCompletion.warning; }
54
67
  get showInlineEditMenu() { return !!this._sourceInlineCompletion.showInlineEditMenu; }
55
68
  get hash() {
56
- return JSON.stringify([
57
- this.getSingleTextEdit().text,
58
- this.getSingleTextEdit().range.getStartPosition().toString()
59
- ]);
69
+ return hashInlineSuggestionAction(this.action);
60
70
  }
61
71
  get requestUuid() { return this._data.context.requestUuid; }
62
72
  get partialAccepts() { return this._data.partialAccepts; }
@@ -73,8 +83,9 @@ class InlineSuggestionItemBase {
73
83
  this.identity.removeRef();
74
84
  this.source.removeRef();
75
85
  }
76
- reportInlineEditShown(commandService, viewKind, viewData) {
77
- this._data.reportInlineEditShown(commandService, this.insertText, viewKind, viewData);
86
+ reportInlineEditShown(commandService, viewKind, viewData, model, timeWhenShown) {
87
+ const insertText = this.action?.kind === 'edit' ? this.action.textReplacement.text : ''; // TODO@hediet support insertText === undefined
88
+ this._data.reportInlineEditShown(commandService, insertText, viewKind, viewData, this.computeEditKind(model), timeWhenShown);
78
89
  }
79
90
  reportPartialAccept(acceptedCharacters, info, partialAcceptance) {
80
91
  this._data.reportPartialAccept(acceptedCharacters, info, partialAcceptance);
@@ -100,8 +111,11 @@ class InlineSuggestionItemBase {
100
111
  setRenameProcessingInfo(info) {
101
112
  this._data.setRenameProcessingInfo(info);
102
113
  }
103
- withRename(command, hint) {
104
- return this._data.withRename(command, hint);
114
+ withAction(action) {
115
+ return this._data.withAction(action);
116
+ }
117
+ addPerformanceMarker(marker) {
118
+ this._data.addPerformanceMarker(marker);
105
119
  }
106
120
  }
107
121
  export class InlineSuggestionIdentity {
@@ -148,15 +162,15 @@ export class InlineSuggestHint {
148
162
  }
149
163
  }
150
164
  export class InlineCompletionItem extends InlineSuggestionItemBase {
151
- static create(data, textModel) {
165
+ static create(data, textModel, action) {
152
166
  const identity = new InlineSuggestionIdentity();
153
167
  const transformer = getPositionOffsetTransformerFromTextModel(textModel);
154
- const insertText = data.insertText.replace(/\r\n|\r|\n/g, textModel.getEOL());
155
- const edit = reshapeInlineCompletion(new StringReplacement(transformer.getOffsetRange(data.range), insertText), textModel);
168
+ const insertText = action.insertText.replace(/\r\n|\r|\n/g, textModel.getEOL());
169
+ const edit = reshapeInlineCompletion(new StringReplacement(transformer.getOffsetRange(action.range), insertText), textModel);
156
170
  const trimmedEdit = edit.removeCommonSuffixAndPrefix(textModel.getValue());
157
171
  const textEdit = transformer.getTextReplacement(edit);
158
172
  const displayLocation = data.hint ? InlineSuggestHint.create(data.hint) : undefined;
159
- return new InlineCompletionItem(edit, trimmedEdit, textEdit, textEdit.range, data.snippetInfo, data.additionalTextEdits, data, identity, displayLocation);
173
+ return new InlineCompletionItem(edit, trimmedEdit, textEdit, textEdit.range, action.snippetInfo, data.additionalTextEdits, data, identity, displayLocation);
160
174
  }
161
175
  constructor(_edit, _trimmedEdit, _textEdit, _originalRange, snippetInfo, additionalTextEdits, data, identity, displayLocation) {
162
176
  super(data, identity, displayLocation);
@@ -168,6 +182,16 @@ export class InlineCompletionItem extends InlineSuggestionItemBase {
168
182
  this.additionalTextEdits = additionalTextEdits;
169
183
  this.isInlineEdit = false;
170
184
  }
185
+ get action() {
186
+ return {
187
+ kind: 'edit',
188
+ textReplacement: this.getSingleTextEdit(),
189
+ snippetInfo: this.snippetInfo,
190
+ stringEdit: new StringEdit([this._trimmedEdit]),
191
+ uri: undefined,
192
+ alternativeAction: undefined,
193
+ };
194
+ }
171
195
  get hash() {
172
196
  return JSON.stringify(this._trimmedEdit.toJson());
173
197
  }
@@ -206,61 +230,55 @@ export class InlineCompletionItem extends InlineSuggestionItemBase {
206
230
  const singleTextEdit = this.getSingleTextEdit();
207
231
  return inlineCompletionIsVisible(singleTextEdit, this._originalRange, model, cursorPosition);
208
232
  }
209
- }
210
- export function inlineCompletionIsVisible(singleTextEdit, originalRange, model, cursorPosition) {
211
- const minimizedReplacement = singleTextRemoveCommonPrefix(singleTextEdit, model);
212
- const editRange = singleTextEdit.range;
213
- if (!editRange
214
- || (originalRange && !originalRange.getStartPosition().equals(editRange.getStartPosition()))
215
- || cursorPosition.lineNumber !== minimizedReplacement.range.startLineNumber
216
- || minimizedReplacement.isEmpty // if the completion is empty after removing the common prefix of the completion and the model, the completion item would not be visible
217
- ) {
218
- return false;
219
- }
220
- // We might consider comparing by .toLowerText, but this requires GhostTextReplacement
221
- const originalValue = model.getValueInRange(minimizedReplacement.range, 1 /* EndOfLinePreference.LF */);
222
- const filterText = minimizedReplacement.text;
223
- const cursorPosIndex = Math.max(0, cursorPosition.column - minimizedReplacement.range.startColumn);
224
- let filterTextBefore = filterText.substring(0, cursorPosIndex);
225
- let filterTextAfter = filterText.substring(cursorPosIndex);
226
- let originalValueBefore = originalValue.substring(0, cursorPosIndex);
227
- let originalValueAfter = originalValue.substring(cursorPosIndex);
228
- const originalValueIndent = model.getLineIndentColumn(minimizedReplacement.range.startLineNumber);
229
- if (minimizedReplacement.range.startColumn <= originalValueIndent) {
230
- // Remove indentation
231
- originalValueBefore = originalValueBefore.trimStart();
232
- if (originalValueBefore.length === 0) {
233
- originalValueAfter = originalValueAfter.trimStart();
234
- }
235
- filterTextBefore = filterTextBefore.trimStart();
236
- if (filterTextBefore.length === 0) {
237
- filterTextAfter = filterTextAfter.trimStart();
238
- }
233
+ computeEditKind(model) {
234
+ return computeEditKind(new StringEdit([this._edit]), model);
239
235
  }
240
- return filterTextBefore.startsWith(originalValueBefore)
241
- && !!matchesSubString(originalValueAfter, filterTextAfter);
236
+ get editRange() { return this.getSingleTextEdit().range; }
242
237
  }
243
238
  export class InlineEditItem extends InlineSuggestionItemBase {
244
- static create(data, textModel) {
245
- const offsetEdit = getStringEdit(textModel, data.range, data.insertText); // TODO compute async
246
- const text = new TextModelText(textModel);
247
- const textEdit = TextEdit.fromStringEdit(offsetEdit, text);
248
- const singleTextEdit = offsetEdit.isEmpty() ? new TextReplacement(new Range(1, 1, 1, 1), '') : textEdit.toReplacement(text); // FIXME: .toReplacement() can throw because offsetEdit is empty because we get an empty diff in getStringEdit after diffing
239
+ static create(data, textModel, shouldDiffEdit = true) {
240
+ let action;
241
+ let edits = [];
242
+ if (data.action?.kind === 'edit') {
243
+ const offsetEdit = shouldDiffEdit ? getDiffedStringEdit(textModel, data.action.range, data.action.insertText) : getStringEdit(textModel, data.action.range, data.action.insertText); // TODO compute async
244
+ const text = new TextModelText(textModel);
245
+ const textEdit = TextEdit.fromStringEdit(offsetEdit, text);
246
+ const singleTextEdit = offsetEdit.isEmpty() ? new TextReplacement(new Range(1, 1, 1, 1), '') : textEdit.toReplacement(text); // FIXME: .toReplacement() can throw because offsetEdit is empty because we get an empty diff in getStringEdit after diffing
247
+ edits = offsetEdit.replacements.map(edit => {
248
+ const replacedRange = Range.fromPositions(textModel.getPositionAt(edit.replaceRange.start), textModel.getPositionAt(edit.replaceRange.endExclusive));
249
+ const replacedText = textModel.getValueInRange(replacedRange);
250
+ return SingleUpdatedNextEdit.create(edit, replacedText);
251
+ });
252
+ action = {
253
+ kind: 'edit',
254
+ snippetInfo: data.action.snippetInfo,
255
+ stringEdit: offsetEdit,
256
+ textReplacement: singleTextEdit,
257
+ uri: data.action.uri,
258
+ alternativeAction: data.action.alternativeAction,
259
+ };
260
+ }
261
+ else if (data.action?.kind === 'jumpTo') {
262
+ action = {
263
+ kind: 'jumpTo',
264
+ position: data.action.position,
265
+ offset: textModel.getOffsetAt(data.action.position),
266
+ uri: data.action.uri,
267
+ };
268
+ }
269
+ else {
270
+ action = undefined;
271
+ if (!data.hint) {
272
+ throw new BugIndicatingError('InlineEditItem: action is undefined and no hint is provided');
273
+ }
274
+ }
249
275
  const identity = new InlineSuggestionIdentity();
250
- const edits = offsetEdit.replacements.map(edit => {
251
- const replacedRange = Range.fromPositions(textModel.getPositionAt(edit.replaceRange.start), textModel.getPositionAt(edit.replaceRange.endExclusive));
252
- const replacedText = textModel.getValueInRange(replacedRange);
253
- return SingleUpdatedNextEdit.create(edit, replacedText);
254
- });
255
276
  const hint = data.hint ? InlineSuggestHint.create(data.hint) : undefined;
256
- return new InlineEditItem(offsetEdit, singleTextEdit, data.uri, data, identity, edits, hint, false, textModel.getVersionId());
277
+ return new InlineEditItem(action, data, identity, edits, hint, false, textModel.getVersionId());
257
278
  }
258
- constructor(_edit, // TODO@hediet remove, compute & cache from _edits
259
- _textEdit, uri, data, identity, _edits, hint, _lastChangePartOfInlineEdit = false, _inlineEditModelVersion) {
279
+ constructor(_action, data, identity, _edits, hint, _lastChangePartOfInlineEdit = false, _inlineEditModelVersion) {
260
280
  super(data, identity, hint);
261
- this._edit = _edit;
262
- this._textEdit = _textEdit;
263
- this.uri = uri;
281
+ this._action = _action;
264
282
  this._edits = _edits;
265
283
  this._lastChangePartOfInlineEdit = _lastChangePartOfInlineEdit;
266
284
  this._inlineEditModelVersion = _inlineEditModelVersion;
@@ -269,12 +287,12 @@ export class InlineEditItem extends InlineSuggestionItemBase {
269
287
  this.isInlineEdit = true;
270
288
  }
271
289
  get updatedEditModelVersion() { return this._inlineEditModelVersion; }
272
- get updatedEdit() { return this._edit; }
273
- getSingleTextEdit() {
274
- return this._textEdit;
290
+ // public get updatedEdit(): StringEdit { return this._edit; }
291
+ get action() {
292
+ return this._action;
275
293
  }
276
294
  withIdentity(identity) {
277
- return new InlineEditItem(this._edit, this._textEdit, this.uri, this._data, identity, this._edits, this.hint, this._lastChangePartOfInlineEdit, this._inlineEditModelVersion);
295
+ return new InlineEditItem(this._action, this._data, identity, this._edits, this.hint, this._lastChangePartOfInlineEdit, this._inlineEditModelVersion);
278
296
  }
279
297
  canBeReused(model, position) {
280
298
  // TODO@hediet I believe this can be simplified to `return true;`, as applying an edit should kick out this suggestion.
@@ -285,26 +303,55 @@ export class InlineEditItem extends InlineSuggestionItemBase {
285
303
  return edit;
286
304
  }
287
305
  _applyTextModelChanges(textModelChanges, edits, textModel) {
288
- edits = edits.map(innerEdit => innerEdit.applyTextModelChanges(textModelChanges));
289
- if (edits.some(edit => edit.edit === undefined)) {
290
- return undefined; // change is invalid, so we will have to drop the completion
291
- }
292
- const newTextModelVersion = textModel.getVersionId();
306
+ const positionOffsetTransformer = getPositionOffsetTransformerFromTextModel(textModel);
307
+ let lastChangePartOfInlineEdit = false;
293
308
  let inlineEditModelVersion = this._inlineEditModelVersion;
294
- const lastChangePartOfInlineEdit = edits.some(edit => edit.lastChangeUpdatedEdit);
295
- if (lastChangePartOfInlineEdit) {
296
- inlineEditModelVersion = newTextModelVersion ?? -1;
309
+ let newAction;
310
+ if (this.action?.kind === 'edit') { // TODO What about rename?
311
+ edits = edits.map(innerEdit => innerEdit.applyTextModelChanges(textModelChanges));
312
+ if (edits.some(edit => edit.edit === undefined)) {
313
+ return undefined; // change is invalid, so we will have to drop the completion
314
+ }
315
+ const newTextModelVersion = textModel.getVersionId();
316
+ lastChangePartOfInlineEdit = edits.some(edit => edit.lastChangeUpdatedEdit);
317
+ if (lastChangePartOfInlineEdit) {
318
+ inlineEditModelVersion = newTextModelVersion ?? -1;
319
+ }
320
+ if (newTextModelVersion === null || inlineEditModelVersion + 20 < newTextModelVersion) {
321
+ return undefined; // the completion has been ignored for a while, remove it
322
+ }
323
+ edits = edits.filter(innerEdit => !innerEdit.edit.isEmpty);
324
+ if (edits.length === 0) {
325
+ return undefined; // the completion has been typed by the user
326
+ }
327
+ const newEdit = new StringEdit(edits.map(edit => edit.edit));
328
+ const newTextEdit = positionOffsetTransformer.getTextEdit(newEdit).toReplacement(new TextModelText(textModel));
329
+ newAction = {
330
+ kind: 'edit',
331
+ textReplacement: newTextEdit,
332
+ snippetInfo: this.snippetInfo,
333
+ stringEdit: newEdit,
334
+ uri: this.action.uri,
335
+ alternativeAction: this.action.alternativeAction,
336
+ };
297
337
  }
298
- if (newTextModelVersion === null || inlineEditModelVersion + 20 < newTextModelVersion) {
299
- return undefined; // the completion has been ignored for a while, remove it
338
+ else if (this.action?.kind === 'jumpTo') {
339
+ const jumpToOffset = this.action.offset;
340
+ const newJumpToOffset = textModelChanges.applyToOffsetOrUndefined(jumpToOffset);
341
+ if (newJumpToOffset === undefined) {
342
+ return undefined;
343
+ }
344
+ const newJumpToPosition = positionOffsetTransformer.getPosition(newJumpToOffset);
345
+ newAction = {
346
+ kind: 'jumpTo',
347
+ position: newJumpToPosition,
348
+ offset: newJumpToOffset,
349
+ uri: this.action.uri,
350
+ };
300
351
  }
301
- edits = edits.filter(innerEdit => !innerEdit.edit.isEmpty);
302
- if (edits.length === 0) {
303
- return undefined; // the completion has been typed by the user
352
+ else {
353
+ newAction = undefined;
304
354
  }
305
- const newEdit = new StringEdit(edits.map(edit => edit.edit));
306
- const positionOffsetTransformer = getPositionOffsetTransformerFromTextModel(textModel);
307
- const newTextEdit = positionOffsetTransformer.getTextEdit(newEdit).toReplacement(new TextModelText(textModel));
308
355
  let newDisplayLocation = this.hint;
309
356
  if (newDisplayLocation) {
310
357
  newDisplayLocation = newDisplayLocation.withEdit(textModelChanges, positionOffsetTransformer);
@@ -312,10 +359,17 @@ export class InlineEditItem extends InlineSuggestionItemBase {
312
359
  return undefined;
313
360
  }
314
361
  }
315
- return new InlineEditItem(newEdit, newTextEdit, this.uri, this._data, this.identity, edits, newDisplayLocation, lastChangePartOfInlineEdit, inlineEditModelVersion);
362
+ return new InlineEditItem(newAction, this._data, this.identity, edits, newDisplayLocation, lastChangePartOfInlineEdit, inlineEditModelVersion);
363
+ }
364
+ computeEditKind(model) {
365
+ const edit = this.action?.kind === 'edit' ? this.action.stringEdit : undefined;
366
+ if (!edit) {
367
+ return undefined;
368
+ }
369
+ return computeEditKind(edit, model);
316
370
  }
317
371
  }
318
- function getStringEdit(textModel, editRange, replaceText) {
372
+ function getDiffedStringEdit(textModel, editRange, replaceText) {
319
373
  const eol = textModel.getEOL();
320
374
  const editOriginalText = textModel.getValueInRange(editRange);
321
375
  const editReplaceText = replaceText.replace(/\r\n|\r|\n/g, eol);
@@ -324,7 +378,7 @@ function getStringEdit(textModel, editRange, replaceText) {
324
378
  ignoreTrimWhitespace: false,
325
379
  computeMoves: false,
326
380
  extendToSubwords: true,
327
- maxComputationTimeMs: 500,
381
+ maxComputationTimeMs: 50,
328
382
  });
329
383
  const innerChanges = lineDiffs.changes.flatMap(c => c.innerChanges ?? []);
330
384
  function addRangeToPos(pos, range) {
@@ -342,6 +396,9 @@ function getStringEdit(textModel, editRange, replaceText) {
342
396
  }));
343
397
  return offsetEdit;
344
398
  }
399
+ function getStringEdit(textModel, editRange, replaceText) {
400
+ return new StringEdit([new StringReplacement(getPositionOffsetTransformerFromTextModel(textModel).getOffsetRange(editRange), replaceText)]);
401
+ }
345
402
  class SingleUpdatedNextEdit {
346
403
  static create(edit, replacedText) {
347
404
  const prefixLength = commonPrefixLength(edit.newText, replacedText);
@@ -392,7 +449,7 @@ class SingleUpdatedNextEdit {
392
449
  if (isInsertion && !shouldPreserveEditShape && change.replaceRange.start === editStart && editReplaceText.startsWith(change.newText)) {
393
450
  editStart += change.newText.length;
394
451
  editReplaceText = editReplaceText.substring(change.newText.length);
395
- editEnd = Math.max(editStart, editEnd);
452
+ editEnd += change.newText.length;
396
453
  editHasChanged = true;
397
454
  continue;
398
455
  }