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
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.ts","vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.ts"],"names":[],"mappings":"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","file":"inlineEditsDeletionView.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 *--------------------------------------------------------------------------------------------*/\nimport { n } from '../../../../../../../base/browser/dom.js';\nimport { IMouseEvent } from '../../../../../../../base/browser/mouseEvent.js';\nimport { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, derivedObservableWithCache, IObservable } from '../../../../../../../base/common/observable.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { EditorOption } from '../../../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { IInlineEditsView, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { InlineEditWithChanges } from '../inlineEditWithChanges.js';\nimport { getOriginalBorderColor, originalBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy, maxContentWidthInRange } from '../utils/utils.js';\n\nconst HORIZONTAL_PADDING = 0;\nconst VERTICAL_PADDING = 0;\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = 4;\n\nexport class InlineEditsDeletionView extends Disposable implements IInlineEditsView {\n\n\tprivate readonly _onDidClick = this._register(new Emitter<IMouseEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _originalVerticalStartPosition: IObservable<number | undefined>;\n\tprivate readonly _originalVerticalEndPosition: IObservable<number | undefined>;\n\n\tprivate readonly _originalDisplayRange: IObservable<LineRange | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _edit: IObservable<InlineEditWithChanges | undefined>,\n\t\tprivate readonly _uiState: IObservable<{\n\t\t\toriginalRange: LineRange;\n\t\t\tdeletions: Range[];\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tconst originalStartPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.startLineNumber, 1) : null;\n\t\t});\n\n\t\tconst originalEndPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.endLineNumberExclusive, 1) : null;\n\t\t});\n\n\t\tthis._originalDisplayRange = this._uiState.map(s => s?.originalRange);\n\t\tthis._originalVerticalStartPosition = this._editorObs.observePosition(originalStartPosition, this._store).map(p => p?.y);\n\t\tthis._originalVerticalEndPosition = this._editorObs.observePosition(originalEndPosition, this._store).map(p => p?.y);\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._nonOverflowView.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._editorLayoutInfo.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.codeRect.width;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._uiState.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst originalDisplayRange = this._originalDisplayRange.read(reader);\n\t\tif (!originalDisplayRange) {\n\t\t\treturn constObservable(0);\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn derivedObservableWithCache<number>(this, (reader, lastValue) => {\n\t\t\tconst maxWidth = maxContentWidthInRange(this._editorObs, originalDisplayRange, reader);\n\t\t\treturn Math.max(maxWidth, lastValue ?? 0);\n\t\t});\n\t}).map((v, r) => v.read(r));\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixTrim: 0, prefixLeftOffset: 0 };\n\t\t}\n\t\treturn getPrefixTrim(state.deletions, state.originalRange, [], this._editor);\n\t});\n\n\tprivate readonly _editorLayoutInfo = derived(this, (reader) => {\n\t\tconst inlineEdit = this._edit.read(reader);\n\t\tif (!inlineEdit) {\n\t\t\treturn null;\n\t\t}\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst w = this._editorObs.getOption(EditorOption.fontInfo).map(f => f.typicalHalfwidthCharacterWidth).read(reader);\n\n\t\tconst right = editorLayout.contentLeft + Math.max(this._editorMaxContentWidthInRange.read(reader), w) - horizontalScrollOffset;\n\n\t\tconst range = inlineEdit.originalLineRange;\n\t\tconst selectionTop = this._originalVerticalStartPosition.read(reader) ?? this._editor.getTopForLineNumber(range.startLineNumber) - this._editorObs.scrollTop.read(reader);\n\t\tconst selectionBottom = this._originalVerticalEndPosition.read(reader) ?? this._editor.getTopForLineNumber(range.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);\n\n\t\tconst left = editorLayout.contentLeft + this._maxPrefixTrim.read(reader).prefixLeftOffset - horizontalScrollOffset;\n\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst codeRect = Rect.fromLeftTopRightBottom(left, selectionTop, right, selectionBottom).withMargin(VERTICAL_PADDING, HORIZONTAL_PADDING);\n\n\t\treturn {\n\t\t\tcodeRect,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _originalOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst layoutInfoObs = mapOutFalsy(this._editorLayoutInfo).read(reader);\n\t\tif (!layoutInfoObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayhider = layoutInfoObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.codeRect.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.codeRect.bottom\n\t\t));\n\n\t\tconst overlayRect = derived(this, reader => {\n\t\t\tconst rect = layoutInfoObs.read(reader).codeRect;\n\t\t\tconst overlayHider = overlayhider.read(reader);\n\t\t\treturn rect.intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER));\n\t\t});\n\n\t\tconst separatorWidth = this._uiState.map(s => s?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst separatorRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalSeparatorDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...separatorRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: getOriginalBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(originalBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayhider.read(reader).toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _nonOverflowView = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._originalOverlay],\n\t]).keepUpdated(this._store);\n\n\treadonly isHovered = constObservable(false);\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 *--------------------------------------------------------------------------------------------*/\nimport { n } from '../../../../../../../base/browser/dom.js';\nimport { IMouseEvent } from '../../../../../../../base/browser/mouseEvent.js';\nimport { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, derivedObservableWithCache, IObservable } from '../../../../../../../base/common/observable.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { EditorOption } from '../../../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { IInlineEditsView, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { InlineEditWithChanges } from '../inlineEditWithChanges.js';\nimport { getOriginalBorderColor, originalBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy, maxContentWidthInRange } from '../utils/utils.js';\n\nconst HORIZONTAL_PADDING = 0;\nconst VERTICAL_PADDING = 0;\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = 4;\n\nexport class InlineEditsDeletionView extends Disposable implements IInlineEditsView {\n\n\tprivate readonly _onDidClick = this._register(new Emitter<IMouseEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _originalVerticalStartPosition: IObservable<number | undefined>;\n\tprivate readonly _originalVerticalEndPosition: IObservable<number | undefined>;\n\n\tprivate readonly _originalDisplayRange: IObservable<LineRange | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _edit: IObservable<InlineEditWithChanges | undefined>,\n\t\tprivate readonly _uiState: IObservable<{\n\t\t\toriginalRange: LineRange;\n\t\t\tdeletions: Range[];\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tconst originalStartPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.startLineNumber, 1) : null;\n\t\t});\n\n\t\tconst originalEndPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.endLineNumberExclusive, 1) : null;\n\t\t});\n\n\t\tthis._originalDisplayRange = this._uiState.map(s => s?.originalRange);\n\t\tthis._originalVerticalStartPosition = this._editorObs.observePosition(originalStartPosition, this._store).map(p => p?.y);\n\t\tthis._originalVerticalEndPosition = this._editorObs.observePosition(originalEndPosition, this._store).map(p => p?.y);\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._nonOverflowView.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._editorLayoutInfo.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.codeRect.width;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._uiState.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst originalDisplayRange = this._originalDisplayRange.read(reader);\n\t\tif (!originalDisplayRange) {\n\t\t\treturn constObservable(0);\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn derivedObservableWithCache<number>(this, (reader, lastValue) => {\n\t\t\tconst maxWidth = maxContentWidthInRange(this._editorObs, originalDisplayRange, reader);\n\t\t\treturn Math.max(maxWidth, lastValue ?? 0);\n\t\t});\n\t}).map((v, r) => v.read(r));\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixTrim: 0, prefixLeftOffset: 0 };\n\t\t}\n\t\treturn getPrefixTrim(state.deletions, state.originalRange, [], this._editor);\n\t});\n\n\tprivate readonly _editorLayoutInfo = derived(this, (reader) => {\n\t\tconst inlineEdit = this._edit.read(reader);\n\t\tif (!inlineEdit) {\n\t\t\treturn null;\n\t\t}\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst w = this._editorObs.getOption(EditorOption.fontInfo).map(f => f.typicalHalfwidthCharacterWidth).read(reader);\n\n\t\tconst right = editorLayout.contentLeft + Math.max(this._editorMaxContentWidthInRange.read(reader), w) - horizontalScrollOffset;\n\n\t\tconst range = inlineEdit.originalLineRange;\n\t\tconst selectionTop = this._originalVerticalStartPosition.read(reader) ?? this._editor.getTopForLineNumber(range.startLineNumber) - this._editorObs.scrollTop.read(reader);\n\t\tconst selectionBottom = this._originalVerticalEndPosition.read(reader) ?? this._editor.getTopForLineNumber(range.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);\n\n\t\tconst left = editorLayout.contentLeft + this._maxPrefixTrim.read(reader).prefixLeftOffset - horizontalScrollOffset;\n\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst codeRect = Rect.fromLeftTopRightBottom(left, selectionTop, right, selectionBottom).withMargin(VERTICAL_PADDING, HORIZONTAL_PADDING);\n\n\t\treturn {\n\t\t\tcodeRect,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _originalOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst layoutInfoObs = mapOutFalsy(this._editorLayoutInfo).read(reader);\n\t\tif (!layoutInfoObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayhider = layoutInfoObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.codeRect.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.codeRect.bottom\n\t\t));\n\n\t\tconst overlayRect = derived(this, reader => {\n\t\t\tconst rect = layoutInfoObs.read(reader).codeRect;\n\t\t\tconst overlayHider = overlayhider.read(reader);\n\t\t\treturn rect.intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER));\n\t\t});\n\n\t\tconst separatorWidth = this._uiState.map(s => s?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst separatorRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalSeparatorDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...separatorRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: getOriginalBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(originalBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayhider.read(reader).toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _nonOverflowView = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._originalOverlay],\n\t]).keepUpdated(this._store);\n\n\treadonly isHovered = constObservable(false);\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.ts","vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.ts"],"names":[],"mappings":"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","file":"inlineEditsDeletionView.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 *--------------------------------------------------------------------------------------------*/\nimport { n } from '../../../../../../../base/browser/dom.js';\nimport { Event } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, derivedObservableWithCache, IObservable } from '../../../../../../../base/common/observable.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { EditorOption } from '../../../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { IInlineEditsView, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { InlineEditWithChanges } from '../inlineEditWithChanges.js';\nimport { getOriginalBorderColor, INLINE_EDITS_BORDER_RADIUS, originalBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy, maxContentWidthInRange } from '../utils/utils.js';\n\nconst HORIZONTAL_PADDING = 0;\nconst VERTICAL_PADDING = 0;\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = INLINE_EDITS_BORDER_RADIUS;\n\nexport class InlineEditsDeletionView extends Disposable implements IInlineEditsView {\n\n\treadonly onDidClick = Event.None;\n\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _originalVerticalStartPosition: IObservable<number | undefined>;\n\tprivate readonly _originalVerticalEndPosition: IObservable<number | undefined>;\n\n\tprivate readonly _originalDisplayRange: IObservable<LineRange | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _edit: IObservable<InlineEditWithChanges | undefined>,\n\t\tprivate readonly _uiState: IObservable<{\n\t\t\toriginalRange: LineRange;\n\t\t\tdeletions: Range[];\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tconst originalStartPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.startLineNumber, 1) : null;\n\t\t});\n\n\t\tconst originalEndPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.endLineNumberExclusive, 1) : null;\n\t\t});\n\n\t\tthis._originalDisplayRange = this._uiState.map(s => s?.originalRange);\n\t\tthis._originalVerticalStartPosition = this._editorObs.observePosition(originalStartPosition, this._store).map(p => p?.y);\n\t\tthis._originalVerticalEndPosition = this._editorObs.observePosition(originalEndPosition, this._store).map(p => p?.y);\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._nonOverflowView.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._editorLayoutInfo.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.codeRect.width;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._uiState.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst originalDisplayRange = this._originalDisplayRange.read(reader);\n\t\tif (!originalDisplayRange) {\n\t\t\treturn constObservable(0);\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn derivedObservableWithCache<number>(this, (reader, lastValue) => {\n\t\t\tconst maxWidth = maxContentWidthInRange(this._editorObs, originalDisplayRange, reader);\n\t\t\treturn Math.max(maxWidth, lastValue ?? 0);\n\t\t});\n\t}).map((v, r) => v.read(r));\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixTrim: 0, prefixLeftOffset: 0 };\n\t\t}\n\t\treturn getPrefixTrim(state.deletions, state.originalRange, [], this._editor);\n\t});\n\n\tprivate readonly _editorLayoutInfo = derived(this, (reader) => {\n\t\tconst inlineEdit = this._edit.read(reader);\n\t\tif (!inlineEdit) {\n\t\t\treturn null;\n\t\t}\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst w = this._editorObs.getOption(EditorOption.fontInfo).map(f => f.typicalHalfwidthCharacterWidth).read(reader);\n\n\t\tconst right = editorLayout.contentLeft + Math.max(this._editorMaxContentWidthInRange.read(reader), w) - horizontalScrollOffset;\n\n\t\tconst range = inlineEdit.originalLineRange;\n\t\tconst selectionTop = this._originalVerticalStartPosition.read(reader) ?? this._editor.getTopForLineNumber(range.startLineNumber) - this._editorObs.scrollTop.read(reader);\n\t\tconst selectionBottom = this._originalVerticalEndPosition.read(reader) ?? this._editor.getTopForLineNumber(range.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);\n\n\t\tconst left = editorLayout.contentLeft + this._maxPrefixTrim.read(reader).prefixLeftOffset - horizontalScrollOffset;\n\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst codeRect = Rect.fromLeftTopRightBottom(left, selectionTop, right, selectionBottom).withMargin(VERTICAL_PADDING, HORIZONTAL_PADDING);\n\n\t\treturn {\n\t\t\tcodeRect,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _originalOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst layoutInfoObs = mapOutFalsy(this._editorLayoutInfo).read(reader);\n\t\tif (!layoutInfoObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayhider = layoutInfoObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.codeRect.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.codeRect.bottom\n\t\t));\n\n\t\tconst overlayRect = derived(this, reader => {\n\t\t\tconst rect = layoutInfoObs.read(reader).codeRect;\n\t\t\tconst overlayHider = overlayhider.read(reader);\n\t\t\treturn rect.intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER));\n\t\t});\n\n\t\tconst separatorWidth = this._uiState.map(s => s?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst separatorRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalSeparatorDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...separatorRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: getOriginalBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(originalBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayhider.read(reader).toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _nonOverflowView = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._originalOverlay],\n\t]).keepUpdated(this._store);\n\n\treadonly isHovered = constObservable(false);\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 *--------------------------------------------------------------------------------------------*/\nimport { n } from '../../../../../../../base/browser/dom.js';\nimport { Event } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, derivedObservableWithCache, IObservable } from '../../../../../../../base/common/observable.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { EditorOption } from '../../../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { IInlineEditsView, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { InlineEditWithChanges } from '../inlineEditWithChanges.js';\nimport { getOriginalBorderColor, INLINE_EDITS_BORDER_RADIUS, originalBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy, maxContentWidthInRange } from '../utils/utils.js';\n\nconst HORIZONTAL_PADDING = 0;\nconst VERTICAL_PADDING = 0;\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = INLINE_EDITS_BORDER_RADIUS;\n\nexport class InlineEditsDeletionView extends Disposable implements IInlineEditsView {\n\n\treadonly onDidClick = Event.None;\n\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _originalVerticalStartPosition: IObservable<number | undefined>;\n\tprivate readonly _originalVerticalEndPosition: IObservable<number | undefined>;\n\n\tprivate readonly _originalDisplayRange: IObservable<LineRange | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _edit: IObservable<InlineEditWithChanges | undefined>,\n\t\tprivate readonly _uiState: IObservable<{\n\t\t\toriginalRange: LineRange;\n\t\t\tdeletions: Range[];\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tconst originalStartPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.startLineNumber, 1) : null;\n\t\t});\n\n\t\tconst originalEndPosition = derived(this, (reader) => {\n\t\t\tconst inlineEdit = this._edit.read(reader);\n\t\t\treturn inlineEdit ? new Position(inlineEdit.originalLineRange.endLineNumberExclusive, 1) : null;\n\t\t});\n\n\t\tthis._originalDisplayRange = this._uiState.map(s => s?.originalRange);\n\t\tthis._originalVerticalStartPosition = this._editorObs.observePosition(originalStartPosition, this._store).map(p => p?.y);\n\t\tthis._originalVerticalEndPosition = this._editorObs.observePosition(originalEndPosition, this._store).map(p => p?.y);\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._nonOverflowView.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._editorLayoutInfo.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.codeRect.width;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._uiState.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst originalDisplayRange = this._originalDisplayRange.read(reader);\n\t\tif (!originalDisplayRange) {\n\t\t\treturn constObservable(0);\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn derivedObservableWithCache<number>(this, (reader, lastValue) => {\n\t\t\tconst maxWidth = maxContentWidthInRange(this._editorObs, originalDisplayRange, reader);\n\t\t\treturn Math.max(maxWidth, lastValue ?? 0);\n\t\t});\n\t}).map((v, r) => v.read(r));\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixTrim: 0, prefixLeftOffset: 0 };\n\t\t}\n\t\treturn getPrefixTrim(state.deletions, state.originalRange, [], this._editor);\n\t});\n\n\tprivate readonly _editorLayoutInfo = derived(this, (reader) => {\n\t\tconst inlineEdit = this._edit.read(reader);\n\t\tif (!inlineEdit) {\n\t\t\treturn null;\n\t\t}\n\t\tconst state = this._uiState.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst w = this._editorObs.getOption(EditorOption.fontInfo).map(f => f.typicalHalfwidthCharacterWidth).read(reader);\n\n\t\tconst right = editorLayout.contentLeft + Math.max(this._editorMaxContentWidthInRange.read(reader), w) - horizontalScrollOffset;\n\n\t\tconst range = inlineEdit.originalLineRange;\n\t\tconst selectionTop = this._originalVerticalStartPosition.read(reader) ?? this._editor.getTopForLineNumber(range.startLineNumber) - this._editorObs.scrollTop.read(reader);\n\t\tconst selectionBottom = this._originalVerticalEndPosition.read(reader) ?? this._editor.getTopForLineNumber(range.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);\n\n\t\tconst left = editorLayout.contentLeft + this._maxPrefixTrim.read(reader).prefixLeftOffset - horizontalScrollOffset;\n\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst codeRect = Rect.fromLeftTopRightBottom(left, selectionTop, right, selectionBottom).withMargin(VERTICAL_PADDING, HORIZONTAL_PADDING);\n\n\t\treturn {\n\t\t\tcodeRect,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _originalOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst layoutInfoObs = mapOutFalsy(this._editorLayoutInfo).read(reader);\n\t\tif (!layoutInfoObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayhider = layoutInfoObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.codeRect.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.codeRect.bottom\n\t\t));\n\n\t\tconst overlayRect = derived(this, reader => {\n\t\t\tconst rect = layoutInfoObs.read(reader).codeRect;\n\t\t\tconst overlayHider = overlayhider.read(reader);\n\t\t\treturn rect.intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER));\n\t\t});\n\n\t\tconst separatorWidth = this._uiState.map(s => s?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst separatorRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalSeparatorDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...separatorRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: `${BORDER_RADIUS}px`,\n\t\t\t\t\tborder: getOriginalBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(originalBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderDeletion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayhider.read(reader).toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _nonOverflowView = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._originalOverlay],\n\t]).keepUpdated(this._store);\n\n\treadonly isHovered = constObservable(false);\n}\n"]}
@@ -30,12 +30,13 @@ import { LineTokens, TokenArray } from '../../../../../../common/tokens/lineToke
30
30
  import { InlineDecoration } from '../../../../../../common/viewModel/inlineDecorations.js';
31
31
  import { GhostText, GhostTextPart } from '../../../model/ghostText.js';
32
32
  import { GhostTextView } from '../../ghostText/ghostTextView.js';
33
- import { getModifiedBorderColor, modifiedBackgroundColor } from '../theme.js';
33
+ import { InlineEditClickEvent } from '../inlineEditsViewInterface.js';
34
+ import { getModifiedBorderColor, INLINE_EDITS_BORDER_RADIUS, modifiedBackgroundColor } from '../theme.js';
34
35
  import { getPrefixTrim, mapOutFalsy } from '../utils/utils.js';
35
36
  const BORDER_WIDTH = 1;
36
37
  const WIDGET_SEPARATOR_WIDTH = 1;
37
38
  const WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;
38
- const BORDER_RADIUS = 4;
39
+ const BORDER_RADIUS = INLINE_EDITS_BORDER_RADIUS;
39
40
  let InlineEditsInsertionView = class InlineEditsInsertionView extends Disposable {
40
41
  constructor(_editor, _input, _tabAction, instantiationService, _languageService) {
41
42
  super();
@@ -242,7 +243,7 @@ let InlineEditsInsertionView = class InlineEditsInsertionView extends Disposable
242
243
  }));
243
244
  this.isHovered = this._ghostTextView.isHovered;
244
245
  this._register(this._ghostTextView.onDidClick((e) => {
245
- this._onDidClick.fire(e);
246
+ this._onDidClick.fire(new InlineEditClickEvent(e));
246
247
  }));
247
248
  this._register(this._editorObs.createOverlayWidget({
248
249
  domNode: this._view.element,
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.ts","vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.ts"],"names":[],"mappings":"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","file":"inlineEditsInsertionView.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 *--------------------------------------------------------------------------------------------*/\nimport { $, n } from '../../../../../../../base/browser/dom.js';\nimport { IMouseEvent } from '../../../../../../../base/browser/mouseEvent.js';\nimport { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, IObservable, observableValue } from '../../../../../../../base/common/observable.js';\nimport { IInstantiationService } from '../../../../../../../platform/instantiation/common/instantiation.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { LineSource, renderLines, RenderOptions } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { ILanguageService } from '../../../../../../common/languages/language.js';\nimport { LineTokens, TokenArray } from '../../../../../../common/tokens/lineTokens.js';\nimport { InlineDecoration, InlineDecorationType } from '../../../../../../common/viewModel/inlineDecorations.js';\nimport { GhostText, GhostTextPart } from '../../../model/ghostText.js';\nimport { GhostTextView, IGhostTextWidgetData } from '../../ghostText/ghostTextView.js';\nimport { IInlineEditsView, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { getModifiedBorderColor, modifiedBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy } from '../utils/utils.js';\n\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = 4;\n\nexport class InlineEditsInsertionView extends Disposable implements IInlineEditsView {\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _onDidClick = this._register(new Emitter<IMouseEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\tprivate readonly _state = derived(this, reader => {\n\t\tconst state = this._input.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tif (state.startColumn === 1 && state.lineNumber > 1 && textModel.getLineLength(state.lineNumber) !== 0 && state.text.endsWith(eol) && !state.text.startsWith(eol)) {\n\t\t\tconst endOfLineColumn = textModel.getLineLength(state.lineNumber - 1) + 1;\n\t\t\treturn { lineNumber: state.lineNumber - 1, column: endOfLineColumn, text: eol + state.text.slice(0, -eol.length) };\n\t\t}\n\n\t\treturn { lineNumber: state.lineNumber, column: state.startColumn, text: state.text };\n\t});\n\n\tprivate readonly _trimVertically = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst text = state?.text;\n\t\tif (!text || text.trim() === '') {\n\t\t\treturn { topOffset: 0, bottomOffset: 0, linesTop: 0, linesBottom: 0 };\n\t\t}\n\n\t\t// Adjust for leading/trailing newlines\n\t\tconst lineHeight = this._editor.getLineHeightForPosition(new Position(state.lineNumber, 1));\n\t\tconst eol = this._editor.getModel()!.getEOL();\n\t\tlet linesTop = 0;\n\t\tlet linesBottom = 0;\n\n\t\tlet i = 0;\n\t\tfor (; i < text.length && text.startsWith(eol, i); i += eol.length) {\n\t\t\tlinesTop += 1;\n\t\t}\n\n\t\tfor (let j = text.length; j > i && text.endsWith(eol, j); j -= eol.length) {\n\t\t\tlinesBottom += 1;\n\t\t}\n\n\t\treturn { topOffset: linesTop * lineHeight, bottomOffset: linesBottom * lineHeight, linesTop, linesBottom };\n\t});\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixLeftOffset: 0, prefixTrim: 0 };\n\t\t}\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst trimVertically = this._trimVertically.read(reader);\n\n\t\tconst lines = state.text.split(eol);\n\t\tconst modifiedLines = lines.slice(trimVertically.linesTop, lines.length - trimVertically.linesBottom);\n\t\tif (trimVertically.linesTop === 0) {\n\t\t\tmodifiedLines[0] = textModel.getLineContent(state.lineNumber) + modifiedLines[0];\n\t\t}\n\n\t\tconst originalRange = new LineRange(state.lineNumber, state.lineNumber + (trimVertically.linesTop > 0 ? 0 : 1));\n\n\t\treturn getPrefixTrim([], originalRange, modifiedLines, this._editor);\n\t});\n\n\tprivate readonly _ghostText = derived<GhostText | undefined>(reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst prefixTrim = this._maxPrefixTrim.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\t\tconst modifiedLines = state.text.split(eol);\n\n\t\tconst inlineDecorations = modifiedLines.map((line, i) => new InlineDecoration(\n\t\t\tnew Range(i + 1, i === 0 ? 1 : prefixTrim.prefixTrim + 1, i + 1, line.length + 1),\n\t\t\t'modified-background',\n\t\t\tInlineDecorationType.Regular\n\t\t));\n\n\t\treturn new GhostText(state.lineNumber, [new GhostTextPart(state.column, state.text, false, inlineDecorations)]);\n\t});\n\n\tprotected readonly _ghostTextView: GhostTextView;\n\treadonly isHovered: IObservable<boolean>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _input: IObservable<{\n\t\t\tlineNumber: number;\n\t\t\tstartColumn: number;\n\t\t\ttext: string;\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILanguageService private readonly _languageService: ILanguageService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tthis._ghostTextView = this._register(instantiationService.createInstance(\n\t\t\tGhostTextView,\n\t\t\tthis._editor,\n\t\t\tderived(reader => {\n\t\t\t\tconst ghostText = this._ghostText.read(reader);\n\t\t\t\tif (!ghostText) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tghostText: ghostText,\n\t\t\t\t\thandleInlineCompletionShown: (data) => {\n\t\t\t\t\t\t// This is a no-op for the insertion view, as it is handled by the InlineEditsView.\n\t\t\t\t\t},\n\t\t\t\t\twarning: undefined,\n\t\t\t\t} satisfies IGhostTextWidgetData;\n\t\t\t}),\n\t\t\t{\n\t\t\t\textraClasses: ['inline-edit'],\n\t\t\t\tisClickable: true,\n\t\t\t\tshouldKeepCursorStable: true,\n\t\t\t}\n\t\t));\n\n\t\tthis.isHovered = this._ghostTextView.isHovered;\n\n\t\tthis._register(this._ghostTextView.onDidClick((e) => {\n\t\t\tthis._onDidClick.fire(e);\n\t\t}));\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._view.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._overlayLayout.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.minContentWidthRequired;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._state.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn 0;\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst textBeforeInsertion = state.text.startsWith(eol) ? '' : textModel.getValueInRange(new Range(state.lineNumber, 1, state.lineNumber, state.column));\n\t\tconst textAfterInsertion = textModel.getValueInRange(new Range(state.lineNumber, state.column, state.lineNumber, textModel.getLineLength(state.lineNumber) + 1));\n\t\tconst text = textBeforeInsertion + state.text + textAfterInsertion;\n\t\tconst lines = text.split(eol);\n\n\t\tconst renderOptions = RenderOptions.fromEditor(this._editor).withSetWidth(false).withScrollBeyondLastColumn(0);\n\t\tconst lineWidths = lines.map(line => {\n\t\t\tconst t = textModel.tokenization.tokenizeLinesAt(state.lineNumber, [line])?.[0];\n\t\t\tlet tokens: LineTokens;\n\t\t\tif (t) {\n\t\t\t\ttokens = TokenArray.fromLineTokens(t).toLineTokens(line, this._languageService.languageIdCodec);\n\t\t\t} else {\n\t\t\t\ttokens = LineTokens.createEmpty(line, this._languageService.languageIdCodec);\n\t\t\t}\n\n\t\t\treturn renderLines(new LineSource([tokens]), renderOptions, [], $('div'), true).minWidthInPx;\n\t\t});\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn Math.max(...lineWidths);\n\t});\n\n\tpublic readonly startLineOffset = this._trimVertically.map(v => v.topOffset);\n\tpublic readonly originalLines = this._state.map(s => s ?\n\t\tnew LineRange(\n\t\t\ts.lineNumber,\n\t\t\tMath.min(s.lineNumber + 2, this._editor.getModel()!.getLineCount() + 1)\n\t\t) : undefined\n\t);\n\n\tprivate readonly _overlayLayout = derived(this, (reader) => {\n\t\tthis._ghostText.read(reader);\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Update the overlay when the position changes\n\t\tthis._editorObs.observePosition(observableValue(this, new Position(state.lineNumber, state.column)), reader.store).read(reader);\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst verticalScrollbarWidth = this._editorObs.layoutInfoVerticalScrollbarWidth.read(reader);\n\n\t\tconst right = editorLayout.contentLeft + this._editorMaxContentWidthInRange.read(reader) - horizontalScrollOffset;\n\t\tconst prefixLeftOffset = this._maxPrefixTrim.read(reader).prefixLeftOffset ?? 0 /* fix due to observable bug? */;\n\t\tconst left = editorLayout.contentLeft + prefixLeftOffset - horizontalScrollOffset;\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { topOffset: topTrim, bottomOffset: bottomTrim } = this._trimVertically.read(reader);\n\n\t\tconst scrollTop = this._editorObs.scrollTop.read(reader);\n\t\tconst height = this._ghostTextView.height.read(reader) - topTrim - bottomTrim;\n\t\tconst top = this._editor.getTopForLineNumber(state.lineNumber) - scrollTop + topTrim;\n\t\tconst bottom = top + height;\n\n\t\tconst overlay = new Rect(left, top, right, bottom);\n\n\t\treturn {\n\t\t\toverlay,\n\t\t\tstartsAtContentLeft: prefixLeftOffset === 0,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t\tminContentWidthRequired: prefixLeftOffset + overlay.width + verticalScrollbarWidth,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _modifiedOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst overlayLayoutObs = mapOutFalsy(this._overlayLayout).read(reader);\n\t\tif (!overlayLayoutObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayHider = overlayLayoutObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.overlay.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.overlay.bottom\n\t\t)).read(reader);\n\n\t\tconst separatorWidth = this._input.map(i => i?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst overlayRect = overlayLayoutObs.map(l => l.overlay.withMargin(0, BORDER_WIDTH, 0, l.startsAtContentLeft ? 0 : BORDER_WIDTH).intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER)));\n\t\tconst underlayRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalUnderlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...underlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: getModifiedBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(modifiedBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayHider.toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _view = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._modifiedOverlay],\n\t]).keepUpdated(this._store);\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 *--------------------------------------------------------------------------------------------*/\nimport { $, n } from '../../../../../../../base/browser/dom.js';\nimport { IMouseEvent } from '../../../../../../../base/browser/mouseEvent.js';\nimport { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, IObservable, observableValue } from '../../../../../../../base/common/observable.js';\nimport { IInstantiationService } from '../../../../../../../platform/instantiation/common/instantiation.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { LineSource, renderLines, RenderOptions } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { ILanguageService } from '../../../../../../common/languages/language.js';\nimport { LineTokens, TokenArray } from '../../../../../../common/tokens/lineTokens.js';\nimport { InlineDecoration, InlineDecorationType } from '../../../../../../common/viewModel/inlineDecorations.js';\nimport { GhostText, GhostTextPart } from '../../../model/ghostText.js';\nimport { GhostTextView, IGhostTextWidgetData } from '../../ghostText/ghostTextView.js';\nimport { IInlineEditsView, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { getModifiedBorderColor, modifiedBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy } from '../utils/utils.js';\n\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = 4;\n\nexport class InlineEditsInsertionView extends Disposable implements IInlineEditsView {\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _onDidClick = this._register(new Emitter<IMouseEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\tprivate readonly _state = derived(this, reader => {\n\t\tconst state = this._input.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tif (state.startColumn === 1 && state.lineNumber > 1 && textModel.getLineLength(state.lineNumber) !== 0 && state.text.endsWith(eol) && !state.text.startsWith(eol)) {\n\t\t\tconst endOfLineColumn = textModel.getLineLength(state.lineNumber - 1) + 1;\n\t\t\treturn { lineNumber: state.lineNumber - 1, column: endOfLineColumn, text: eol + state.text.slice(0, -eol.length) };\n\t\t}\n\n\t\treturn { lineNumber: state.lineNumber, column: state.startColumn, text: state.text };\n\t});\n\n\tprivate readonly _trimVertically = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst text = state?.text;\n\t\tif (!text || text.trim() === '') {\n\t\t\treturn { topOffset: 0, bottomOffset: 0, linesTop: 0, linesBottom: 0 };\n\t\t}\n\n\t\t// Adjust for leading/trailing newlines\n\t\tconst lineHeight = this._editor.getLineHeightForPosition(new Position(state.lineNumber, 1));\n\t\tconst eol = this._editor.getModel()!.getEOL();\n\t\tlet linesTop = 0;\n\t\tlet linesBottom = 0;\n\n\t\tlet i = 0;\n\t\tfor (; i < text.length && text.startsWith(eol, i); i += eol.length) {\n\t\t\tlinesTop += 1;\n\t\t}\n\n\t\tfor (let j = text.length; j > i && text.endsWith(eol, j); j -= eol.length) {\n\t\t\tlinesBottom += 1;\n\t\t}\n\n\t\treturn { topOffset: linesTop * lineHeight, bottomOffset: linesBottom * lineHeight, linesTop, linesBottom };\n\t});\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixLeftOffset: 0, prefixTrim: 0 };\n\t\t}\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst trimVertically = this._trimVertically.read(reader);\n\n\t\tconst lines = state.text.split(eol);\n\t\tconst modifiedLines = lines.slice(trimVertically.linesTop, lines.length - trimVertically.linesBottom);\n\t\tif (trimVertically.linesTop === 0) {\n\t\t\tmodifiedLines[0] = textModel.getLineContent(state.lineNumber) + modifiedLines[0];\n\t\t}\n\n\t\tconst originalRange = new LineRange(state.lineNumber, state.lineNumber + (trimVertically.linesTop > 0 ? 0 : 1));\n\n\t\treturn getPrefixTrim([], originalRange, modifiedLines, this._editor);\n\t});\n\n\tprivate readonly _ghostText = derived<GhostText | undefined>(reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst prefixTrim = this._maxPrefixTrim.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\t\tconst modifiedLines = state.text.split(eol);\n\n\t\tconst inlineDecorations = modifiedLines.map((line, i) => new InlineDecoration(\n\t\t\tnew Range(i + 1, i === 0 ? 1 : prefixTrim.prefixTrim + 1, i + 1, line.length + 1),\n\t\t\t'modified-background',\n\t\t\tInlineDecorationType.Regular\n\t\t));\n\n\t\treturn new GhostText(state.lineNumber, [new GhostTextPart(state.column, state.text, false, inlineDecorations)]);\n\t});\n\n\tprotected readonly _ghostTextView: GhostTextView;\n\treadonly isHovered: IObservable<boolean>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _input: IObservable<{\n\t\t\tlineNumber: number;\n\t\t\tstartColumn: number;\n\t\t\ttext: string;\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILanguageService private readonly _languageService: ILanguageService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tthis._ghostTextView = this._register(instantiationService.createInstance(\n\t\t\tGhostTextView,\n\t\t\tthis._editor,\n\t\t\tderived(reader => {\n\t\t\t\tconst ghostText = this._ghostText.read(reader);\n\t\t\t\tif (!ghostText) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tghostText: ghostText,\n\t\t\t\t\thandleInlineCompletionShown: (data) => {\n\t\t\t\t\t\t// This is a no-op for the insertion view, as it is handled by the InlineEditsView.\n\t\t\t\t\t},\n\t\t\t\t\twarning: undefined,\n\t\t\t\t} satisfies IGhostTextWidgetData;\n\t\t\t}),\n\t\t\t{\n\t\t\t\textraClasses: ['inline-edit'],\n\t\t\t\tisClickable: true,\n\t\t\t\tshouldKeepCursorStable: true,\n\t\t\t}\n\t\t));\n\n\t\tthis.isHovered = this._ghostTextView.isHovered;\n\n\t\tthis._register(this._ghostTextView.onDidClick((e) => {\n\t\t\tthis._onDidClick.fire(e);\n\t\t}));\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._view.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._overlayLayout.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.minContentWidthRequired;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._state.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn 0;\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst textBeforeInsertion = state.text.startsWith(eol) ? '' : textModel.getValueInRange(new Range(state.lineNumber, 1, state.lineNumber, state.column));\n\t\tconst textAfterInsertion = textModel.getValueInRange(new Range(state.lineNumber, state.column, state.lineNumber, textModel.getLineLength(state.lineNumber) + 1));\n\t\tconst text = textBeforeInsertion + state.text + textAfterInsertion;\n\t\tconst lines = text.split(eol);\n\n\t\tconst renderOptions = RenderOptions.fromEditor(this._editor).withSetWidth(false).withScrollBeyondLastColumn(0);\n\t\tconst lineWidths = lines.map(line => {\n\t\t\tconst t = textModel.tokenization.tokenizeLinesAt(state.lineNumber, [line])?.[0];\n\t\t\tlet tokens: LineTokens;\n\t\t\tif (t) {\n\t\t\t\ttokens = TokenArray.fromLineTokens(t).toLineTokens(line, this._languageService.languageIdCodec);\n\t\t\t} else {\n\t\t\t\ttokens = LineTokens.createEmpty(line, this._languageService.languageIdCodec);\n\t\t\t}\n\n\t\t\treturn renderLines(new LineSource([tokens]), renderOptions, [], $('div'), true).minWidthInPx;\n\t\t});\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn Math.max(...lineWidths);\n\t});\n\n\tpublic readonly startLineOffset = this._trimVertically.map(v => v.topOffset);\n\tpublic readonly originalLines = this._state.map(s => s ?\n\t\tnew LineRange(\n\t\t\ts.lineNumber,\n\t\t\tMath.min(s.lineNumber + 2, this._editor.getModel()!.getLineCount() + 1)\n\t\t) : undefined\n\t);\n\n\tprivate readonly _overlayLayout = derived(this, (reader) => {\n\t\tthis._ghostText.read(reader);\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Update the overlay when the position changes\n\t\tthis._editorObs.observePosition(observableValue(this, new Position(state.lineNumber, state.column)), reader.store).read(reader);\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst verticalScrollbarWidth = this._editorObs.layoutInfoVerticalScrollbarWidth.read(reader);\n\n\t\tconst right = editorLayout.contentLeft + this._editorMaxContentWidthInRange.read(reader) - horizontalScrollOffset;\n\t\tconst prefixLeftOffset = this._maxPrefixTrim.read(reader).prefixLeftOffset ?? 0 /* fix due to observable bug? */;\n\t\tconst left = editorLayout.contentLeft + prefixLeftOffset - horizontalScrollOffset;\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { topOffset: topTrim, bottomOffset: bottomTrim } = this._trimVertically.read(reader);\n\n\t\tconst scrollTop = this._editorObs.scrollTop.read(reader);\n\t\tconst height = this._ghostTextView.height.read(reader) - topTrim - bottomTrim;\n\t\tconst top = this._editor.getTopForLineNumber(state.lineNumber) - scrollTop + topTrim;\n\t\tconst bottom = top + height;\n\n\t\tconst overlay = new Rect(left, top, right, bottom);\n\n\t\treturn {\n\t\t\toverlay,\n\t\t\tstartsAtContentLeft: prefixLeftOffset === 0,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t\tminContentWidthRequired: prefixLeftOffset + overlay.width + verticalScrollbarWidth,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _modifiedOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst overlayLayoutObs = mapOutFalsy(this._overlayLayout).read(reader);\n\t\tif (!overlayLayoutObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayHider = overlayLayoutObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.overlay.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.overlay.bottom\n\t\t)).read(reader);\n\n\t\tconst separatorWidth = this._input.map(i => i?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst overlayRect = overlayLayoutObs.map(l => l.overlay.withMargin(0, BORDER_WIDTH, 0, l.startsAtContentLeft ? 0 : BORDER_WIDTH).intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER)));\n\t\tconst underlayRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalUnderlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...underlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: getModifiedBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(modifiedBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayHider.toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _view = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._modifiedOverlay],\n\t]).keepUpdated(this._store);\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.ts","vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.ts"],"names":[],"mappings":"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","file":"inlineEditsInsertionView.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 *--------------------------------------------------------------------------------------------*/\nimport { $, n } from '../../../../../../../base/browser/dom.js';\nimport { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, IObservable, observableValue } from '../../../../../../../base/common/observable.js';\nimport { IInstantiationService } from '../../../../../../../platform/instantiation/common/instantiation.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { LineSource, renderLines, RenderOptions } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { ILanguageService } from '../../../../../../common/languages/language.js';\nimport { LineTokens, TokenArray } from '../../../../../../common/tokens/lineTokens.js';\nimport { InlineDecoration, InlineDecorationType } from '../../../../../../common/viewModel/inlineDecorations.js';\nimport { GhostText, GhostTextPart } from '../../../model/ghostText.js';\nimport { GhostTextView, IGhostTextWidgetData } from '../../ghostText/ghostTextView.js';\nimport { IInlineEditsView, InlineEditClickEvent, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { getModifiedBorderColor, INLINE_EDITS_BORDER_RADIUS, modifiedBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy } from '../utils/utils.js';\n\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = INLINE_EDITS_BORDER_RADIUS;\n\nexport class InlineEditsInsertionView extends Disposable implements IInlineEditsView {\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _onDidClick = this._register(new Emitter<InlineEditClickEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\tprivate readonly _state = derived(this, reader => {\n\t\tconst state = this._input.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tif (state.startColumn === 1 && state.lineNumber > 1 && textModel.getLineLength(state.lineNumber) !== 0 && state.text.endsWith(eol) && !state.text.startsWith(eol)) {\n\t\t\tconst endOfLineColumn = textModel.getLineLength(state.lineNumber - 1) + 1;\n\t\t\treturn { lineNumber: state.lineNumber - 1, column: endOfLineColumn, text: eol + state.text.slice(0, -eol.length) };\n\t\t}\n\n\t\treturn { lineNumber: state.lineNumber, column: state.startColumn, text: state.text };\n\t});\n\n\tprivate readonly _trimVertically = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst text = state?.text;\n\t\tif (!text || text.trim() === '') {\n\t\t\treturn { topOffset: 0, bottomOffset: 0, linesTop: 0, linesBottom: 0 };\n\t\t}\n\n\t\t// Adjust for leading/trailing newlines\n\t\tconst lineHeight = this._editor.getLineHeightForPosition(new Position(state.lineNumber, 1));\n\t\tconst eol = this._editor.getModel()!.getEOL();\n\t\tlet linesTop = 0;\n\t\tlet linesBottom = 0;\n\n\t\tlet i = 0;\n\t\tfor (; i < text.length && text.startsWith(eol, i); i += eol.length) {\n\t\t\tlinesTop += 1;\n\t\t}\n\n\t\tfor (let j = text.length; j > i && text.endsWith(eol, j); j -= eol.length) {\n\t\t\tlinesBottom += 1;\n\t\t}\n\n\t\treturn { topOffset: linesTop * lineHeight, bottomOffset: linesBottom * lineHeight, linesTop, linesBottom };\n\t});\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixLeftOffset: 0, prefixTrim: 0 };\n\t\t}\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst trimVertically = this._trimVertically.read(reader);\n\n\t\tconst lines = state.text.split(eol);\n\t\tconst modifiedLines = lines.slice(trimVertically.linesTop, lines.length - trimVertically.linesBottom);\n\t\tif (trimVertically.linesTop === 0) {\n\t\t\tmodifiedLines[0] = textModel.getLineContent(state.lineNumber) + modifiedLines[0];\n\t\t}\n\n\t\tconst originalRange = new LineRange(state.lineNumber, state.lineNumber + (trimVertically.linesTop > 0 ? 0 : 1));\n\n\t\treturn getPrefixTrim([], originalRange, modifiedLines, this._editor);\n\t});\n\n\tprivate readonly _ghostText = derived<GhostText | undefined>(reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst prefixTrim = this._maxPrefixTrim.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\t\tconst modifiedLines = state.text.split(eol);\n\n\t\tconst inlineDecorations = modifiedLines.map((line, i) => new InlineDecoration(\n\t\t\tnew Range(i + 1, i === 0 ? 1 : prefixTrim.prefixTrim + 1, i + 1, line.length + 1),\n\t\t\t'modified-background',\n\t\t\tInlineDecorationType.Regular\n\t\t));\n\n\t\treturn new GhostText(state.lineNumber, [new GhostTextPart(state.column, state.text, false, inlineDecorations)]);\n\t});\n\n\tprotected readonly _ghostTextView: GhostTextView;\n\treadonly isHovered: IObservable<boolean>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _input: IObservable<{\n\t\t\tlineNumber: number;\n\t\t\tstartColumn: number;\n\t\t\ttext: string;\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILanguageService private readonly _languageService: ILanguageService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tthis._ghostTextView = this._register(instantiationService.createInstance(\n\t\t\tGhostTextView,\n\t\t\tthis._editor,\n\t\t\tderived(reader => {\n\t\t\t\tconst ghostText = this._ghostText.read(reader);\n\t\t\t\tif (!ghostText) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tghostText: ghostText,\n\t\t\t\t\thandleInlineCompletionShown: (data) => {\n\t\t\t\t\t\t// This is a no-op for the insertion view, as it is handled by the InlineEditsView.\n\t\t\t\t\t},\n\t\t\t\t\twarning: undefined,\n\t\t\t\t} satisfies IGhostTextWidgetData;\n\t\t\t}),\n\t\t\t{\n\t\t\t\textraClasses: ['inline-edit'],\n\t\t\t\tisClickable: true,\n\t\t\t\tshouldKeepCursorStable: true,\n\t\t\t}\n\t\t));\n\n\t\tthis.isHovered = this._ghostTextView.isHovered;\n\n\t\tthis._register(this._ghostTextView.onDidClick((e) => {\n\t\t\tthis._onDidClick.fire(new InlineEditClickEvent(e));\n\t\t}));\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._view.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._overlayLayout.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.minContentWidthRequired;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._state.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn 0;\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst textBeforeInsertion = state.text.startsWith(eol) ? '' : textModel.getValueInRange(new Range(state.lineNumber, 1, state.lineNumber, state.column));\n\t\tconst textAfterInsertion = textModel.getValueInRange(new Range(state.lineNumber, state.column, state.lineNumber, textModel.getLineLength(state.lineNumber) + 1));\n\t\tconst text = textBeforeInsertion + state.text + textAfterInsertion;\n\t\tconst lines = text.split(eol);\n\n\t\tconst renderOptions = RenderOptions.fromEditor(this._editor).withSetWidth(false).withScrollBeyondLastColumn(0);\n\t\tconst lineWidths = lines.map(line => {\n\t\t\tconst t = textModel.tokenization.tokenizeLinesAt(state.lineNumber, [line])?.[0];\n\t\t\tlet tokens: LineTokens;\n\t\t\tif (t) {\n\t\t\t\ttokens = TokenArray.fromLineTokens(t).toLineTokens(line, this._languageService.languageIdCodec);\n\t\t\t} else {\n\t\t\t\ttokens = LineTokens.createEmpty(line, this._languageService.languageIdCodec);\n\t\t\t}\n\n\t\t\treturn renderLines(new LineSource([tokens]), renderOptions, [], $('div'), true).minWidthInPx;\n\t\t});\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn Math.max(...lineWidths);\n\t});\n\n\tpublic readonly startLineOffset = this._trimVertically.map(v => v.topOffset);\n\tpublic readonly originalLines = this._state.map(s => s ?\n\t\tnew LineRange(\n\t\t\ts.lineNumber,\n\t\t\tMath.min(s.lineNumber + 2, this._editor.getModel()!.getLineCount() + 1)\n\t\t) : undefined\n\t);\n\n\tprivate readonly _overlayLayout = derived(this, (reader) => {\n\t\tthis._ghostText.read(reader);\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Update the overlay when the position changes\n\t\tthis._editorObs.observePosition(observableValue(this, new Position(state.lineNumber, state.column)), reader.store).read(reader);\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst verticalScrollbarWidth = this._editorObs.layoutInfoVerticalScrollbarWidth.read(reader);\n\n\t\tconst right = editorLayout.contentLeft + this._editorMaxContentWidthInRange.read(reader) - horizontalScrollOffset;\n\t\tconst prefixLeftOffset = this._maxPrefixTrim.read(reader).prefixLeftOffset ?? 0 /* fix due to observable bug? */;\n\t\tconst left = editorLayout.contentLeft + prefixLeftOffset - horizontalScrollOffset;\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { topOffset: topTrim, bottomOffset: bottomTrim } = this._trimVertically.read(reader);\n\n\t\tconst scrollTop = this._editorObs.scrollTop.read(reader);\n\t\tconst height = this._ghostTextView.height.read(reader) - topTrim - bottomTrim;\n\t\tconst top = this._editor.getTopForLineNumber(state.lineNumber) - scrollTop + topTrim;\n\t\tconst bottom = top + height;\n\n\t\tconst overlay = new Rect(left, top, right, bottom);\n\n\t\treturn {\n\t\t\toverlay,\n\t\t\tstartsAtContentLeft: prefixLeftOffset === 0,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t\tminContentWidthRequired: prefixLeftOffset + overlay.width + verticalScrollbarWidth,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _modifiedOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst overlayLayoutObs = mapOutFalsy(this._overlayLayout).read(reader);\n\t\tif (!overlayLayoutObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayHider = overlayLayoutObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.overlay.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.overlay.bottom\n\t\t)).read(reader);\n\n\t\tconst separatorWidth = this._input.map(i => i?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst overlayRect = overlayLayoutObs.map(l => l.overlay.withMargin(0, BORDER_WIDTH, 0, l.startsAtContentLeft ? 0 : BORDER_WIDTH).intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER)));\n\t\tconst underlayRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalUnderlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...underlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: getModifiedBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(modifiedBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayHider.toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _view = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._modifiedOverlay],\n\t]).keepUpdated(this._store);\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 *--------------------------------------------------------------------------------------------*/\nimport { $, n } from '../../../../../../../base/browser/dom.js';\nimport { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { constObservable, derived, IObservable, observableValue } from '../../../../../../../base/common/observable.js';\nimport { IInstantiationService } from '../../../../../../../platform/instantiation/common/instantiation.js';\nimport { editorBackground } from '../../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js';\nimport { ICodeEditor } from '../../../../../../browser/editorBrowser.js';\nimport { ObservableCodeEditor, observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { LineSource, renderLines, RenderOptions } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js';\nimport { Rect } from '../../../../../../common/core/2d/rect.js';\nimport { Position } from '../../../../../../common/core/position.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { LineRange } from '../../../../../../common/core/ranges/lineRange.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { ILanguageService } from '../../../../../../common/languages/language.js';\nimport { LineTokens, TokenArray } from '../../../../../../common/tokens/lineTokens.js';\nimport { InlineDecoration, InlineDecorationType } from '../../../../../../common/viewModel/inlineDecorations.js';\nimport { GhostText, GhostTextPart } from '../../../model/ghostText.js';\nimport { GhostTextView, IGhostTextWidgetData } from '../../ghostText/ghostTextView.js';\nimport { IInlineEditsView, InlineEditClickEvent, InlineEditTabAction } from '../inlineEditsViewInterface.js';\nimport { getModifiedBorderColor, INLINE_EDITS_BORDER_RADIUS, modifiedBackgroundColor } from '../theme.js';\nimport { getPrefixTrim, mapOutFalsy } from '../utils/utils.js';\n\nconst BORDER_WIDTH = 1;\nconst WIDGET_SEPARATOR_WIDTH = 1;\nconst WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nconst BORDER_RADIUS = INLINE_EDITS_BORDER_RADIUS;\n\nexport class InlineEditsInsertionView extends Disposable implements IInlineEditsView {\n\tprivate readonly _editorObs: ObservableCodeEditor;\n\n\tprivate readonly _onDidClick = this._register(new Emitter<InlineEditClickEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\tprivate readonly _state = derived(this, reader => {\n\t\tconst state = this._input.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tif (state.startColumn === 1 && state.lineNumber > 1 && textModel.getLineLength(state.lineNumber) !== 0 && state.text.endsWith(eol) && !state.text.startsWith(eol)) {\n\t\t\tconst endOfLineColumn = textModel.getLineLength(state.lineNumber - 1) + 1;\n\t\t\treturn { lineNumber: state.lineNumber - 1, column: endOfLineColumn, text: eol + state.text.slice(0, -eol.length) };\n\t\t}\n\n\t\treturn { lineNumber: state.lineNumber, column: state.startColumn, text: state.text };\n\t});\n\n\tprivate readonly _trimVertically = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst text = state?.text;\n\t\tif (!text || text.trim() === '') {\n\t\t\treturn { topOffset: 0, bottomOffset: 0, linesTop: 0, linesBottom: 0 };\n\t\t}\n\n\t\t// Adjust for leading/trailing newlines\n\t\tconst lineHeight = this._editor.getLineHeightForPosition(new Position(state.lineNumber, 1));\n\t\tconst eol = this._editor.getModel()!.getEOL();\n\t\tlet linesTop = 0;\n\t\tlet linesBottom = 0;\n\n\t\tlet i = 0;\n\t\tfor (; i < text.length && text.startsWith(eol, i); i += eol.length) {\n\t\t\tlinesTop += 1;\n\t\t}\n\n\t\tfor (let j = text.length; j > i && text.endsWith(eol, j); j -= eol.length) {\n\t\t\tlinesBottom += 1;\n\t\t}\n\n\t\treturn { topOffset: linesTop * lineHeight, bottomOffset: linesBottom * lineHeight, linesTop, linesBottom };\n\t});\n\n\tprivate readonly _maxPrefixTrim = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn { prefixLeftOffset: 0, prefixTrim: 0 };\n\t\t}\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst trimVertically = this._trimVertically.read(reader);\n\n\t\tconst lines = state.text.split(eol);\n\t\tconst modifiedLines = lines.slice(trimVertically.linesTop, lines.length - trimVertically.linesBottom);\n\t\tif (trimVertically.linesTop === 0) {\n\t\t\tmodifiedLines[0] = textModel.getLineContent(state.lineNumber) + modifiedLines[0];\n\t\t}\n\n\t\tconst originalRange = new LineRange(state.lineNumber, state.lineNumber + (trimVertically.linesTop > 0 ? 0 : 1));\n\n\t\treturn getPrefixTrim([], originalRange, modifiedLines, this._editor);\n\t});\n\n\tprivate readonly _ghostText = derived<GhostText | undefined>(reader => {\n\t\tconst state = this._state.read(reader);\n\t\tconst prefixTrim = this._maxPrefixTrim.read(reader);\n\t\tif (!state) { return undefined; }\n\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\t\tconst modifiedLines = state.text.split(eol);\n\n\t\tconst inlineDecorations = modifiedLines.map((line, i) => new InlineDecoration(\n\t\t\tnew Range(i + 1, i === 0 ? 1 : prefixTrim.prefixTrim + 1, i + 1, line.length + 1),\n\t\t\t'modified-background',\n\t\t\tInlineDecorationType.Regular\n\t\t));\n\n\t\treturn new GhostText(state.lineNumber, [new GhostTextPart(state.column, state.text, false, inlineDecorations)]);\n\t});\n\n\tprotected readonly _ghostTextView: GhostTextView;\n\treadonly isHovered: IObservable<boolean>;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _input: IObservable<{\n\t\t\tlineNumber: number;\n\t\t\tstartColumn: number;\n\t\t\ttext: string;\n\t\t\tinDiffEditor: boolean;\n\t\t} | undefined>,\n\t\tprivate readonly _tabAction: IObservable<InlineEditTabAction>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILanguageService private readonly _languageService: ILanguageService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editorObs = observableCodeEditor(this._editor);\n\n\t\tthis._ghostTextView = this._register(instantiationService.createInstance(\n\t\t\tGhostTextView,\n\t\t\tthis._editor,\n\t\t\tderived(reader => {\n\t\t\t\tconst ghostText = this._ghostText.read(reader);\n\t\t\t\tif (!ghostText) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tghostText: ghostText,\n\t\t\t\t\thandleInlineCompletionShown: (data) => {\n\t\t\t\t\t\t// This is a no-op for the insertion view, as it is handled by the InlineEditsView.\n\t\t\t\t\t},\n\t\t\t\t\twarning: undefined,\n\t\t\t\t} satisfies IGhostTextWidgetData;\n\t\t\t}),\n\t\t\t{\n\t\t\t\textraClasses: ['inline-edit'],\n\t\t\t\tisClickable: true,\n\t\t\t\tshouldKeepCursorStable: true,\n\t\t\t}\n\t\t));\n\n\t\tthis.isHovered = this._ghostTextView.isHovered;\n\n\t\tthis._register(this._ghostTextView.onDidClick((e) => {\n\t\t\tthis._onDidClick.fire(new InlineEditClickEvent(e));\n\t\t}));\n\n\t\tthis._register(this._editorObs.createOverlayWidget({\n\t\t\tdomNode: this._view.element,\n\t\t\tposition: constObservable(null),\n\t\t\tallowEditorOverflow: false,\n\t\t\tminContentWidthInPx: derived(this, reader => {\n\t\t\t\tconst info = this._overlayLayout.read(reader);\n\t\t\t\tif (info === null) { return 0; }\n\t\t\t\treturn info.minContentWidthRequired;\n\t\t\t}),\n\t\t}));\n\t}\n\n\tprivate readonly _display = derived(this, reader => !!this._state.read(reader) ? 'block' : 'none');\n\n\tprivate readonly _editorMaxContentWidthInRange = derived(this, reader => {\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn 0;\n\t\t}\n\t\tthis._editorObs.versionId.read(reader);\n\t\tconst textModel = this._editor.getModel()!;\n\t\tconst eol = textModel.getEOL();\n\n\t\tconst textBeforeInsertion = state.text.startsWith(eol) ? '' : textModel.getValueInRange(new Range(state.lineNumber, 1, state.lineNumber, state.column));\n\t\tconst textAfterInsertion = textModel.getValueInRange(new Range(state.lineNumber, state.column, state.lineNumber, textModel.getLineLength(state.lineNumber) + 1));\n\t\tconst text = textBeforeInsertion + state.text + textAfterInsertion;\n\t\tconst lines = text.split(eol);\n\n\t\tconst renderOptions = RenderOptions.fromEditor(this._editor).withSetWidth(false).withScrollBeyondLastColumn(0);\n\t\tconst lineWidths = lines.map(line => {\n\t\t\tconst t = textModel.tokenization.tokenizeLinesAt(state.lineNumber, [line])?.[0];\n\t\t\tlet tokens: LineTokens;\n\t\t\tif (t) {\n\t\t\t\ttokens = TokenArray.fromLineTokens(t).toLineTokens(line, this._languageService.languageIdCodec);\n\t\t\t} else {\n\t\t\t\ttokens = LineTokens.createEmpty(line, this._languageService.languageIdCodec);\n\t\t\t}\n\n\t\t\treturn renderLines(new LineSource([tokens]), renderOptions, [], $('div'), true).minWidthInPx;\n\t\t});\n\n\t\t// Take the max value that we observed.\n\t\t// Reset when either the edit changes or the editor text version.\n\t\treturn Math.max(...lineWidths);\n\t});\n\n\tpublic readonly startLineOffset = this._trimVertically.map(v => v.topOffset);\n\tpublic readonly originalLines = this._state.map(s => s ?\n\t\tnew LineRange(\n\t\t\ts.lineNumber,\n\t\t\tMath.min(s.lineNumber + 2, this._editor.getModel()!.getLineCount() + 1)\n\t\t) : undefined\n\t);\n\n\tprivate readonly _overlayLayout = derived(this, (reader) => {\n\t\tthis._ghostText.read(reader);\n\t\tconst state = this._state.read(reader);\n\t\tif (!state) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Update the overlay when the position changes\n\t\tthis._editorObs.observePosition(observableValue(this, new Position(state.lineNumber, state.column)), reader.store).read(reader);\n\n\t\tconst editorLayout = this._editorObs.layoutInfo.read(reader);\n\t\tconst horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n\t\tconst verticalScrollbarWidth = this._editorObs.layoutInfoVerticalScrollbarWidth.read(reader);\n\n\t\tconst right = editorLayout.contentLeft + this._editorMaxContentWidthInRange.read(reader) - horizontalScrollOffset;\n\t\tconst prefixLeftOffset = this._maxPrefixTrim.read(reader).prefixLeftOffset ?? 0 /* fix due to observable bug? */;\n\t\tconst left = editorLayout.contentLeft + prefixLeftOffset - horizontalScrollOffset;\n\t\tif (right <= left) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { topOffset: topTrim, bottomOffset: bottomTrim } = this._trimVertically.read(reader);\n\n\t\tconst scrollTop = this._editorObs.scrollTop.read(reader);\n\t\tconst height = this._ghostTextView.height.read(reader) - topTrim - bottomTrim;\n\t\tconst top = this._editor.getTopForLineNumber(state.lineNumber) - scrollTop + topTrim;\n\t\tconst bottom = top + height;\n\n\t\tconst overlay = new Rect(left, top, right, bottom);\n\n\t\treturn {\n\t\t\toverlay,\n\t\t\tstartsAtContentLeft: prefixLeftOffset === 0,\n\t\t\tcontentLeft: editorLayout.contentLeft,\n\t\t\tminContentWidthRequired: prefixLeftOffset + overlay.width + verticalScrollbarWidth,\n\t\t};\n\t}).recomputeInitiallyAndOnChange(this._store);\n\n\tprivate readonly _modifiedOverlay = n.div({\n\t\tstyle: { pointerEvents: 'none', }\n\t}, derived(this, reader => {\n\t\tconst overlayLayoutObs = mapOutFalsy(this._overlayLayout).read(reader);\n\t\tif (!overlayLayoutObs) { return undefined; }\n\n\t\t// Create an overlay which hides the left hand side of the original overlay when it overflows to the left\n\t\t// such that there is a smooth transition at the edge of content left\n\t\tconst overlayHider = overlayLayoutObs.map(layoutInfo => Rect.fromLeftTopRightBottom(\n\t\t\tlayoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH,\n\t\t\tlayoutInfo.overlay.top,\n\t\t\tlayoutInfo.contentLeft,\n\t\t\tlayoutInfo.overlay.bottom\n\t\t)).read(reader);\n\n\t\tconst separatorWidth = this._input.map(i => i?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n\t\tconst overlayRect = overlayLayoutObs.map(l => l.overlay.withMargin(0, BORDER_WIDTH, 0, l.startsAtContentLeft ? 0 : BORDER_WIDTH).intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER)));\n\t\tconst underlayRect = overlayRect.map(rect => rect.withMargin(separatorWidth, separatorWidth));\n\n\t\treturn [\n\t\t\tn.div({\n\t\t\t\tclass: 'originalUnderlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...underlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayRect.read(reader).toStyles(),\n\t\t\t\t\tborderRadius: BORDER_RADIUS,\n\t\t\t\t\tborder: getModifiedBorderColor(this._tabAction).map(bc => `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\tbackgroundColor: asCssVariable(modifiedBackgroundColor),\n\t\t\t\t}\n\t\t\t}),\n\t\t\tn.div({\n\t\t\t\tclass: 'originalOverlayHiderInsertion',\n\t\t\t\tstyle: {\n\t\t\t\t\t...overlayHider.toStyles(),\n\t\t\t\t\tbackgroundColor: asCssVariable(editorBackground),\n\t\t\t\t}\n\t\t\t})\n\t\t];\n\t})).keepUpdated(this._store);\n\n\tprivate readonly _view = n.div({\n\t\tclass: 'inline-edits-view',\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\toverflow: 'visible',\n\t\t\ttop: '0px',\n\t\t\tleft: '0px',\n\t\t\tdisplay: this._display,\n\t\t},\n\t}, [\n\t\t[this._modifiedOverlay],\n\t]).keepUpdated(this._store);\n}\n"]}
@@ -11,8 +11,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- import { $, getWindow, n } from '../../../../../../../base/browser/dom.js';
15
- import { StandardMouseEvent } from '../../../../../../../base/browser/mouseEvent.js';
14
+ import { $, n } from '../../../../../../../base/browser/dom.js';
16
15
  import { Emitter } from '../../../../../../../base/common/event.js';
17
16
  import { Disposable, toDisposable } from '../../../../../../../base/common/lifecycle.js';
18
17
  import { autorunDelta, constObservable, derived } from '../../../../../../../base/common/observable.js';
@@ -28,7 +27,8 @@ import { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js
28
27
  import { ILanguageService } from '../../../../../../common/languages/language.js';
29
28
  import { LineTokens, TokenArray } from '../../../../../../common/tokens/lineTokens.js';
30
29
  import { InlineDecoration } from '../../../../../../common/viewModel/inlineDecorations.js';
31
- import { getEditorBlendedColor, getModifiedBorderColor, getOriginalBorderColor, modifiedChangedLineBackgroundColor, originalBackgroundColor } from '../theme.js';
30
+ import { InlineEditClickEvent } from '../inlineEditsViewInterface.js';
31
+ import { getEditorBlendedColor, getModifiedBorderColor, getOriginalBorderColor, INLINE_EDITS_BORDER_RADIUS, modifiedChangedLineBackgroundColor, originalBackgroundColor } from '../theme.js';
32
32
  import { getEditorValidOverlayRect, getPrefixTrim, mapOutFalsy, rectToProps } from '../utils/utils.js';
33
33
  let InlineEditsLineReplacementView = class InlineEditsLineReplacementView extends Disposable {
34
34
  constructor(_editor, _edit, _isInDiffEditor, _tabAction, _languageService, _themeService) {
@@ -178,7 +178,7 @@ let InlineEditsLineReplacementView = class InlineEditsLineReplacementView extend
178
178
  style: {
179
179
  position: 'absolute',
180
180
  ...rectToProps(reader => layout.read(reader).background.translateX(-contentLeft).withMargin(separatorWidth)),
181
- borderRadius: '4px',
181
+ borderRadius: `${INLINE_EDITS_BORDER_RADIUS}px`,
182
182
  border: `${separatorWidth + 1}px solid ${asCssVariable(editorBackground)}`,
183
183
  boxSizing: 'border-box',
184
184
  pointerEvents: 'none',
@@ -189,7 +189,7 @@ let InlineEditsLineReplacementView = class InlineEditsLineReplacementView extend
189
189
  style: {
190
190
  position: 'absolute',
191
191
  ...rectToProps(reader => layout.read(reader).background.translateX(-contentLeft)),
192
- borderRadius: '4px',
192
+ borderRadius: `${INLINE_EDITS_BORDER_RADIUS}px`,
193
193
  border: getEditorBlendedColor(originalBorderColor, this._themeService).map(c => `1px solid ${c.toString()}`),
194
194
  pointerEvents: 'none',
195
195
  boxSizing: 'border-box',
@@ -201,7 +201,7 @@ let InlineEditsLineReplacementView = class InlineEditsLineReplacementView extend
201
201
  style: {
202
202
  position: 'absolute',
203
203
  ...rectToProps(reader => layout.read(reader).lowerBackground.translateX(-contentLeft)),
204
- borderRadius: '0 0 4px 4px',
204
+ borderRadius: `0 0 ${INLINE_EDITS_BORDER_RADIUS}px ${INLINE_EDITS_BORDER_RADIUS}px`,
205
205
  background: asCssVariable(editorBackground),
206
206
  boxShadow: `${asCssVariable(scrollbarShadow)} 0 6px 6px -6px`,
207
207
  border: `1px solid ${asCssVariable(modifiedBorderColor)}`,
@@ -213,7 +213,7 @@ let InlineEditsLineReplacementView = class InlineEditsLineReplacementView extend
213
213
  onmousedown: e => {
214
214
  e.preventDefault(); // This prevents that the editor loses focus
215
215
  },
216
- onclick: (e) => this._onDidClick.fire(new StandardMouseEvent(getWindow(e), e)),
216
+ onclick: (e) => this._onDidClick.fire(InlineEditClickEvent.create(e)),
217
217
  }, [
218
218
  n.div({
219
219
  style: {
@@ -233,7 +233,7 @@ let InlineEditsLineReplacementView = class InlineEditsLineReplacementView extend
233
233
  fontWeight: this._editor.getOption(62 /* EditorOption.fontWeight */),
234
234
  pointerEvents: 'none',
235
235
  whiteSpace: 'nowrap',
236
- borderRadius: '0 0 4px 4px',
236
+ borderRadius: `0 0 ${INLINE_EDITS_BORDER_RADIUS}px ${INLINE_EDITS_BORDER_RADIUS}px`,
237
237
  overflow: 'hidden',
238
238
  }
239
239
  }, [...modifiedLineElements.lines]),