@codingame/monaco-vscode-api 6.0.3 → 7.0.0

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 (447) hide show
  1. package/README.md +93 -73
  2. package/api.js +1 -1
  3. package/debugProtocol.d.ts +10 -1
  4. package/extensions.d.ts +2 -0
  5. package/missing-services.js +21 -2
  6. package/package.json +9 -9
  7. package/service-override/extensions.d.ts +1 -2
  8. package/services.js +4 -2
  9. package/vscode/src/vs/base/browser/dnd.js +1 -1
  10. package/vscode/src/vs/base/browser/dom.js +116 -5
  11. package/vscode/src/vs/base/browser/domObservable.js +16 -0
  12. package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
  13. package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
  14. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
  15. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
  16. package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
  17. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
  18. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
  19. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
  20. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
  21. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
  22. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
  23. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
  24. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
  25. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
  26. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
  28. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
  29. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
  30. package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
  31. package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
  32. package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
  33. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
  34. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
  35. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
  36. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
  38. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
  39. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
  40. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
  41. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
  42. package/vscode/src/vs/base/common/assert.js +1 -1
  43. package/vscode/src/vs/base/common/collections.js +49 -1
  44. package/vscode/src/vs/base/common/equals.js +55 -5
  45. package/vscode/src/vs/base/common/errors.js +14 -1
  46. package/vscode/src/vs/base/common/event.js +2 -1
  47. package/vscode/src/vs/base/common/history.js +7 -4
  48. package/vscode/src/vs/base/common/iterator.js +9 -1
  49. package/vscode/src/vs/base/common/map.d.ts +41 -0
  50. package/vscode/src/vs/base/common/numbers.js +18 -1
  51. package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
  52. package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
  53. package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
  54. package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
  55. package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
  56. package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
  57. package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
  58. package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
  59. package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
  60. package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
  61. package/vscode/src/vs/base/common/product.d.ts +1 -0
  62. package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
  63. package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
  64. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  65. package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
  66. package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
  67. package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
  68. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
  69. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
  70. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  71. package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
  72. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
  73. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
  74. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  75. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
  87. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  88. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
  89. package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
  90. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
  91. package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
  92. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
  93. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
  94. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
  95. package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
  96. package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
  97. package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
  98. package/vscode/src/vs/editor/common/languages.d.ts +20 -3
  99. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
  100. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
  101. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
  102. package/vscode/src/vs/editor/common/model/textModel.js +6 -2
  103. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
  104. package/vscode/src/vs/editor/common/model.d.ts +4 -0
  105. package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
  106. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
  107. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
  108. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
  109. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
  110. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
  111. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
  112. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
  113. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
  114. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
  116. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
  117. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
  118. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
  119. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
  120. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
  121. package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
  122. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
  123. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
  124. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  125. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
  126. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
  127. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
  130. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
  131. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
  132. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
  135. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
  136. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
  137. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
  138. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
  139. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
  140. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
  141. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
  147. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
  148. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
  149. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
  150. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
  151. package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
  152. package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
  153. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
  155. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
  156. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
  157. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
  158. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
  159. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
  160. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  161. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
  162. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
  163. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
  164. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
  165. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  166. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
  167. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
  168. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
  169. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
  170. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
  171. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
  172. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
  173. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
  174. package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
  175. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
  176. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
  177. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
  178. package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
  179. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
  180. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  181. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
  182. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
  183. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
  184. package/vscode/src/vs/platform/actions/common/actions.js +3 -0
  185. package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
  186. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
  187. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
  188. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
  189. package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
  190. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
  191. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
  192. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
  193. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
  194. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
  195. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
  196. package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
  197. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
  198. package/vscode/src/vs/platform/files/common/watcher.js +21 -24
  199. package/vscode/src/vs/platform/list/browser/listService.js +2 -1
  200. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
  201. package/vscode/src/vs/platform/opener/browser/link.js +1 -1
  202. package/vscode/src/vs/platform/product/common/product.js +1 -1
  203. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  204. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
  205. package/vscode/src/vs/platform/request/common/request.js +18 -8
  206. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
  207. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
  208. package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
  209. package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
  210. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
  211. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
  212. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
  213. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
  214. package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
  215. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
  216. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
  217. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
  218. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
  219. package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
  220. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
  221. package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
  222. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
  223. package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
  224. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
  225. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
  226. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
  227. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
  228. package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
  229. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
  230. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  231. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
  232. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
  233. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
  234. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  235. package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
  236. package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
  237. package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
  238. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
  239. package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
  240. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
  241. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
  242. package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
  243. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  244. package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
  245. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
  246. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
  247. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
  248. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
  249. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  250. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
  251. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  252. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
  253. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
  254. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
  255. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
  256. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
  257. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
  258. package/vscode/src/vs/workbench/browser/web.api.js +8 -0
  259. package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
  260. package/vscode/src/vs/workbench/common/configuration.js +1 -1
  261. package/vscode/src/vs/workbench/common/contributions.js +8 -1
  262. package/vscode/src/vs/workbench/common/editor.js +5 -1
  263. package/vscode/src/vs/workbench/common/theme.js +79 -454
  264. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
  265. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
  266. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
  267. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
  268. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
  269. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
  271. package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
  272. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
  273. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
  274. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
  275. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
  276. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
  277. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
  278. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
  279. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
  280. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
  281. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
  282. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
  283. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
  284. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
  285. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
  287. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
  288. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
  291. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
  294. package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
  295. package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
  296. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
  297. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
  298. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
  300. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
  302. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
  303. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
  304. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
  305. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
  306. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  307. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
  308. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
  309. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
  310. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
  311. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
  312. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
  313. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  314. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
  315. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
  316. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
  317. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
  318. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
  319. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
  320. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
  321. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
  322. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
  323. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
  324. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
  325. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
  326. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  327. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
  328. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
  329. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
  330. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  331. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
  332. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
  335. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
  336. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
  337. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  342. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
  343. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
  344. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  345. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
  346. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
  347. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
  348. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  349. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
  354. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
  355. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  356. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
  357. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
  358. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
  359. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
  360. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
  361. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
  362. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
  363. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
  364. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
  365. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
  366. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
  380. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
  381. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
  382. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
  383. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
  384. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
  385. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
  386. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
  387. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
  388. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
  389. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
  390. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
  391. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
  392. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
  393. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
  394. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
  395. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
  396. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
  397. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
  398. package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
  399. package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
  400. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
  401. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
  402. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
  403. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
  404. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
  405. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
  406. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
  407. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
  408. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
  409. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
  410. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
  411. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
  412. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
  413. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
  414. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
  415. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
  416. package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
  417. package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
  418. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
  419. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
  420. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  421. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
  422. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
  423. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
  424. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
  425. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
  426. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  427. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
  428. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
  429. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
  430. package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
  431. package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
  432. package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
  433. package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
  434. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
  435. package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
  436. package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
  437. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
  438. package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
  439. package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
  440. package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
  441. package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
  442. package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
  443. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
  444. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
  445. package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
  446. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
  447. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
@@ -0,0 +1,322 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { h, svgElem } from '../../../../base/browser/dom.js';
3
+ import { DEFAULT_FONT_FAMILY } from '../../../../base/browser/fonts.js';
4
+ import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
5
+ import '../../../../base/common/arrays.js';
6
+ import { derived, derivedWithSetter } from '../../../../base/common/observableInternal/derived.js';
7
+ import { autorun } from '../../../../base/common/observableInternal/autorun.js';
8
+ import { constObservable } from '../../../../base/common/observableInternal/utils.js';
9
+ import '../../../../base/common/cancellation.js';
10
+ import './inlineEditsWidget.css.js';
11
+ import { EditorExtensionsRegistry } from '../../../browser/editorExtensions.js';
12
+ import { observableCodeEditor } from '../../../browser/observableCodeEditor.js';
13
+ import { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';
14
+ import { diffLineDeleteDecorationBackgroundWithIndicator, diffLineAddDecorationBackgroundWithIndicator, diffWholeLineDeleteDecoration, diffWholeLineAddDecoration, diffDeleteDecorationEmpty, diffDeleteDecoration, diffAddDecorationEmpty, diffAddDecoration } from '../../../browser/widget/diffEditor/registrations.contribution.js';
15
+ import { applyStyle, appendRemoveOnDispose } from '../../../browser/widget/diffEditor/utils.js';
16
+ import { EditorOption } from '../../../common/config/editorOptions.js';
17
+ import { PLAINTEXT_LANGUAGE_ID } from '../../../common/languages/modesRegistry.js';
18
+ import { TextModel } from '../../../common/model/textModel.js';
19
+ import { ContextMenuController } from '../../contextmenu/browser/contextmenu.js';
20
+ import { PlaceholderTextContribution } from '../../placeholderText/browser/placeholderText.contribution.js';
21
+ import { SuggestController } from '../../suggest/browser/suggestController.js';
22
+ import { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';
23
+ import { MenuId } from '../../../../platform/actions/common/actions.js';
24
+ import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
25
+ class InlineEdit {
26
+ constructor(range, newLines, changes) {
27
+ this.range = range;
28
+ this.newLines = newLines;
29
+ this.changes = changes;
30
+ }
31
+ }
32
+ let InlineEditsWidget = class InlineEditsWidget extends Disposable {
33
+ constructor(_editor, _edit, _userPrompt, _instantiationService) {
34
+ super();
35
+ this._editor = _editor;
36
+ this._edit = _edit;
37
+ this._userPrompt = _userPrompt;
38
+ this._instantiationService = _instantiationService;
39
+ this._editorObs = observableCodeEditor(this._editor);
40
+ this._elements = h('div.inline-edits-widget', {
41
+ style: {
42
+ position: 'absolute',
43
+ overflow: 'visible',
44
+ top: '0px',
45
+ left: '0px',
46
+ },
47
+ }, [
48
+ h('div@editorContainer', { style: { position: 'absolute', top: '0px', left: '0px', width: '500px', height: '500px', } }, [
49
+ h('div.toolbar@toolbar', { style: { position: 'absolute', top: '-25px', left: '0px' } }),
50
+ h('div.promptEditor@promptEditor', { style: { position: 'absolute', top: '-25px', left: '80px', width: '300px', height: '22px' } }),
51
+ h('div.preview@editor', { style: { position: 'absolute', top: '0px', left: '0px' } }),
52
+ ]),
53
+ svgElem('svg', { style: { overflow: 'visible', pointerEvents: 'none' }, }, [
54
+ svgElem('defs', [
55
+ svgElem('linearGradient', {
56
+ id: 'Gradient2',
57
+ x1: '0',
58
+ y1: '0',
59
+ x2: '1',
60
+ y2: '0',
61
+ }, [
62
+ svgElem('stop', { offset: '0%', class: 'gradient-stop', }),
63
+ svgElem('stop', { offset: '100%', class: 'gradient-stop', }),
64
+ ]),
65
+ ]),
66
+ svgElem('path@path', {
67
+ d: '',
68
+ fill: 'url(#Gradient2)',
69
+ }),
70
+ ]),
71
+ ]);
72
+ this._toolbar = this._register(this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.toolbar, MenuId.InlineEditsActions, {
73
+ toolbarOptions: {
74
+ primaryGroup: g => g.startsWith('primary'),
75
+ },
76
+ }));
77
+ this._previewTextModel = this._register(this._instantiationService.createInstance(TextModel, '', PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null));
78
+ this._setText = derived(reader => {
79
+ const edit = this._edit.read(reader);
80
+ if (!edit) {
81
+ return;
82
+ }
83
+ this._previewTextModel.setValue(edit.newLines.join('\n'));
84
+ }).recomputeInitiallyAndOnChange(this._store);
85
+ this._promptTextModel = this._register(this._instantiationService.createInstance(TextModel, '', PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null));
86
+ this._promptEditor = this._register(this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._elements.promptEditor, {
87
+ glyphMargin: false,
88
+ lineNumbers: 'off',
89
+ minimap: { enabled: false },
90
+ guides: {
91
+ indentation: false,
92
+ bracketPairs: false,
93
+ bracketPairsHorizontal: false,
94
+ highlightActiveIndentation: false,
95
+ },
96
+ folding: false,
97
+ selectOnLineNumbers: false,
98
+ selectionHighlight: false,
99
+ columnSelection: false,
100
+ overviewRulerBorder: false,
101
+ overviewRulerLanes: 0,
102
+ lineDecorationsWidth: 0,
103
+ lineNumbersMinChars: 0,
104
+ placeholder: 'Describe the change you want...',
105
+ fontFamily: DEFAULT_FONT_FAMILY,
106
+ }, {
107
+ contributions: EditorExtensionsRegistry.getSomeEditorContributions([
108
+ SuggestController.ID,
109
+ PlaceholderTextContribution.ID,
110
+ ContextMenuController.ID,
111
+ ]),
112
+ isSimpleWidget: true
113
+ }, this._editor));
114
+ this._previewEditor = this._register(this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._elements.editor, {
115
+ glyphMargin: false,
116
+ lineNumbers: 'off',
117
+ minimap: { enabled: false },
118
+ guides: {
119
+ indentation: false,
120
+ bracketPairs: false,
121
+ bracketPairsHorizontal: false,
122
+ highlightActiveIndentation: false,
123
+ },
124
+ folding: false,
125
+ selectOnLineNumbers: false,
126
+ selectionHighlight: false,
127
+ columnSelection: false,
128
+ overviewRulerBorder: false,
129
+ overviewRulerLanes: 0,
130
+ lineDecorationsWidth: 0,
131
+ lineNumbersMinChars: 0,
132
+ }, { contributions: [], }, this._editor));
133
+ this._previewEditorObs = observableCodeEditor(this._previewEditor);
134
+ this._decorations = derived(this, (reader) => {
135
+ this._setText.read(reader);
136
+ const diff = this._edit.read(reader)?.changes;
137
+ if (!diff) {
138
+ return [];
139
+ }
140
+ const originalDecorations = [];
141
+ const modifiedDecorations = [];
142
+ if (diff.length === 1 && diff[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange())) {
143
+ return [];
144
+ }
145
+ for (const m of diff) {
146
+ if (!m.original.isEmpty) {
147
+ originalDecorations.push({ range: m.original.toInclusiveRange(), options: diffLineDeleteDecorationBackgroundWithIndicator });
148
+ }
149
+ if (!m.modified.isEmpty) {
150
+ modifiedDecorations.push({ range: m.modified.toInclusiveRange(), options: diffLineAddDecorationBackgroundWithIndicator });
151
+ }
152
+ if (m.modified.isEmpty || m.original.isEmpty) {
153
+ if (!m.original.isEmpty) {
154
+ originalDecorations.push({ range: m.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration });
155
+ }
156
+ if (!m.modified.isEmpty) {
157
+ modifiedDecorations.push({ range: m.modified.toInclusiveRange(), options: diffWholeLineAddDecoration });
158
+ }
159
+ }
160
+ else {
161
+ for (const i of m.innerChanges || []) {
162
+ if (m.original.contains(i.originalRange.startLineNumber)) {
163
+ originalDecorations.push({ range: i.originalRange, options: i.originalRange.isEmpty() ? diffDeleteDecorationEmpty : diffDeleteDecoration });
164
+ }
165
+ if (m.modified.contains(i.modifiedRange.startLineNumber)) {
166
+ modifiedDecorations.push({ range: i.modifiedRange, options: i.modifiedRange.isEmpty() ? diffAddDecorationEmpty : diffAddDecoration });
167
+ }
168
+ }
169
+ }
170
+ }
171
+ return modifiedDecorations;
172
+ });
173
+ this._layout1 = derived(this, reader => {
174
+ const model = this._editor.getModel();
175
+ const inlineEdit = this._edit.read(reader);
176
+ if (!inlineEdit) {
177
+ return null;
178
+ }
179
+ const range = inlineEdit.range;
180
+ let maxLeft = 0;
181
+ for (let i = range.startLineNumber; i < range.endLineNumberExclusive; i++) {
182
+ const column = model.getLineMaxColumn(i);
183
+ const left = this._editor.getOffsetForColumn(i, column);
184
+ maxLeft = Math.max(maxLeft, left);
185
+ }
186
+ const layoutInfo = this._editor.getLayoutInfo();
187
+ const contentLeft = layoutInfo.contentLeft;
188
+ return { left: contentLeft + maxLeft };
189
+ });
190
+ this._layout = derived(this, (reader) => {
191
+ const inlineEdit = this._edit.read(reader);
192
+ if (!inlineEdit) {
193
+ return null;
194
+ }
195
+ const range = inlineEdit.range;
196
+ const scrollLeft = this._editorObs.scrollLeft.read(reader);
197
+ const left = this._layout1.read(reader).left + 20 - scrollLeft;
198
+ const selectionTop = this._editor.getTopForLineNumber(range.startLineNumber) - this._editorObs.scrollTop.read(reader);
199
+ const selectionBottom = this._editor.getTopForLineNumber(range.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);
200
+ const topCode = ( new Point(left, selectionTop));
201
+ const bottomCode = ( new Point(left, selectionBottom));
202
+ const codeHeight = selectionBottom - selectionTop;
203
+ const codeEditDist = 50;
204
+ const editHeight = this._editor.getOption(EditorOption.lineHeight) * inlineEdit.newLines.length;
205
+ const difference = codeHeight - editHeight;
206
+ const topEdit = ( new Point(left + codeEditDist, selectionTop + (difference / 2)));
207
+ const bottomEdit = ( new Point(left + codeEditDist, selectionBottom - (difference / 2)));
208
+ return {
209
+ topCode,
210
+ bottomCode,
211
+ codeHeight,
212
+ topEdit,
213
+ bottomEdit,
214
+ editHeight,
215
+ };
216
+ });
217
+ const visible = derived(this, reader => this._edit.read(reader) !== undefined || this._userPrompt.read(reader) !== undefined);
218
+ this._register(applyStyle(this._elements.root, {
219
+ display: derived(this, reader => visible.read(reader) ? 'block' : 'none')
220
+ }));
221
+ this._register(appendRemoveOnDispose(this._editor.getDomNode(), this._elements.root));
222
+ this._register(observableCodeEditor(_editor).createOverlayWidget({
223
+ domNode: this._elements.root,
224
+ position: constObservable(null),
225
+ allowEditorOverflow: false,
226
+ minContentWidthInPx: derived(reader => {
227
+ const x = this._layout1.read(reader)?.left;
228
+ if (x === undefined) {
229
+ return 0;
230
+ }
231
+ const width = this._previewEditorObs.contentWidth.read(reader);
232
+ return x + width;
233
+ }),
234
+ }));
235
+ this._previewEditor.setModel(this._previewTextModel);
236
+ this._register(this._previewEditorObs.setDecorations(this._decorations));
237
+ this._register(autorun(reader => {
238
+ const layoutInfo = this._layout.read(reader);
239
+ if (!layoutInfo) {
240
+ return;
241
+ }
242
+ const { topCode, bottomCode, topEdit, bottomEdit, editHeight } = layoutInfo;
243
+ const straightWidthCode = 10;
244
+ const straightWidthEdit = 0;
245
+ const bezierDist = 40;
246
+ const path = ( new PathBuilder())
247
+ .moveTo(topCode)
248
+ .lineTo(topCode.deltaX(straightWidthCode))
249
+ .curveTo(topCode.deltaX(straightWidthCode + bezierDist), topEdit.deltaX(-bezierDist - straightWidthEdit), topEdit.deltaX(-straightWidthEdit))
250
+ .lineTo(topEdit)
251
+ .lineTo(bottomEdit)
252
+ .lineTo(bottomEdit.deltaX(-straightWidthEdit))
253
+ .curveTo(bottomEdit.deltaX(-bezierDist - straightWidthEdit), bottomCode.deltaX(straightWidthCode + bezierDist), bottomCode.deltaX(straightWidthCode))
254
+ .lineTo(bottomCode)
255
+ .build();
256
+ this._elements.path.setAttribute('d', path);
257
+ this._elements.editorContainer.style.top = `${topEdit.y}px`;
258
+ this._elements.editorContainer.style.left = `${topEdit.x}px`;
259
+ this._elements.editorContainer.style.height = `${editHeight}px`;
260
+ const width = this._previewEditorObs.contentWidth.read(reader);
261
+ this._previewEditor.layout({ height: editHeight, width });
262
+ }));
263
+ this._promptEditor.setModel(this._promptTextModel);
264
+ this._promptEditor.layout();
265
+ this._register(createTwoWaySync(mapSettableObservable(this._userPrompt, v => v ?? '', v => v), observableCodeEditor(this._promptEditor).value));
266
+ this._register(autorun(reader => {
267
+ const isFocused = observableCodeEditor(this._promptEditor).isFocused.read(reader);
268
+ this._elements.root.classList.toggle('focused', isFocused);
269
+ }));
270
+ }
271
+ };
272
+ InlineEditsWidget = ( __decorate([
273
+ ( __param(3, IInstantiationService))
274
+ ], InlineEditsWidget));
275
+ function mapSettableObservable(obs, fn1, fn2) {
276
+ return derivedWithSetter(undefined, reader => fn1(obs.read(reader)), (value, tx) => obs.set(fn2(value), tx));
277
+ }
278
+ class Point {
279
+ constructor(x, y) {
280
+ this.x = x;
281
+ this.y = y;
282
+ }
283
+ add(other) {
284
+ return ( new Point(this.x + other.x, this.y + other.y));
285
+ }
286
+ deltaX(delta) {
287
+ return ( new Point(this.x + delta, this.y));
288
+ }
289
+ }
290
+ class PathBuilder {
291
+ constructor() {
292
+ this._data = '';
293
+ }
294
+ moveTo(point) {
295
+ this._data += `M ${point.x} ${point.y} `;
296
+ return this;
297
+ }
298
+ lineTo(point) {
299
+ this._data += `L ${point.x} ${point.y} `;
300
+ return this;
301
+ }
302
+ curveTo(cp1, cp2, to) {
303
+ this._data += `C ${cp1.x} ${cp1.y} ${cp2.x} ${cp2.y} ${to.x} ${to.y} `;
304
+ return this;
305
+ }
306
+ build() {
307
+ return this._data;
308
+ }
309
+ }
310
+ function createTwoWaySync(main, target) {
311
+ const store = ( new DisposableStore());
312
+ store.add(autorun(reader => {
313
+ const value = main.read(reader);
314
+ target.set(value, undefined);
315
+ }));
316
+ store.add(autorun(reader => {
317
+ const value = target.read(reader);
318
+ main.set(value, undefined);
319
+ }));
320
+ return store;
321
+ }
322
+ export { InlineEdit, InlineEditsWidget };
@@ -83,11 +83,15 @@ let InlineProgressManager = class InlineProgressManager extends Disposable {
83
83
  this._instantiationService = _instantiationService;
84
84
  this._showDelay = 500;
85
85
  this._showPromise = this._register(( new MutableDisposable()));
86
- this._currentWidget = ( new MutableDisposable());
86
+ this._currentWidget = this._register(( new MutableDisposable()));
87
87
  this._operationIdPool = 0;
88
88
  this._currentDecorations = _editor.createDecorationsCollection();
89
89
  }
90
- async showWhile(position, title, promise) {
90
+ dispose() {
91
+ super.dispose();
92
+ this._currentDecorations.clear();
93
+ }
94
+ async showWhile(position, title, promise, delegate, delayOverride) {
91
95
  const operationId = this._operationIdPool++;
92
96
  this._currentOperation = operationId;
93
97
  this.clear();
@@ -98,9 +102,9 @@ let InlineProgressManager = class InlineProgressManager extends Disposable {
98
102
  options: inlineProgressDecoration,
99
103
  }]);
100
104
  if (decorationIds.length > 0) {
101
- this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range, title, promise);
105
+ this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range, title, delegate);
102
106
  }
103
- }, this._showDelay);
107
+ }, delayOverride ?? this._showDelay);
104
108
  try {
105
109
  return await promise;
106
110
  }
@@ -5,6 +5,7 @@ import { ReplaceCommandThatSelectsText, ReplaceCommand, ReplaceCommandThatPreser
5
5
  import { TrimTrailingWhitespaceCommand } from '../../../common/commands/trimTrailingWhitespaceCommand.js';
6
6
  import { EditorOption } from '../../../common/config/editorOptions.js';
7
7
  import { TypeOperations } from '../../../common/cursor/cursorTypeOperations.js';
8
+ import { EnterOperation } from '../../../common/cursor/cursorTypeEditOperations.js';
8
9
  import { EditOperation } from '../../../common/core/editOperation.js';
9
10
  import { Position } from '../../../common/core/position.js';
10
11
  import { Range } from '../../../common/core/range.js';
@@ -490,7 +491,7 @@ class InsertLineBeforeAction extends EditorAction {
490
491
  return;
491
492
  }
492
493
  editor.pushUndoStop();
493
- editor.executeCommands(this.id, TypeOperations.lineInsertBefore(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));
494
+ editor.executeCommands(this.id, EnterOperation.lineInsertBefore(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));
494
495
  }
495
496
  }
496
497
  class InsertLineAfterAction extends EditorAction {
@@ -513,7 +514,7 @@ class InsertLineAfterAction extends EditorAction {
513
514
  return;
514
515
  }
515
516
  editor.pushUndoStop();
516
- editor.executeCommands(this.id, TypeOperations.lineInsertAfter(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));
517
+ editor.executeCommands(this.id, EnterOperation.lineInsertAfter(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));
517
518
  }
518
519
  }
519
520
  class AbstractDeleteAllToBoundaryAction extends EditorAction {
@@ -311,5 +311,5 @@ ParameterHintsWidget = ParameterHintsWidget_1 = ( (__decorate([
311
311
  ( (__param(4, ILanguageService))),
312
312
  ( (__param(5, ITelemetryService)))
313
313
  ], ParameterHintsWidget)));
314
- registerColor('editorHoverWidget.highlightForeground', { dark: listHighlightForeground, light: listHighlightForeground, hcDark: listHighlightForeground, hcLight: listHighlightForeground }, ( localizeWithPath(_moduleId, 3, 'Foreground color of the active item in the parameter hint.')));
314
+ registerColor('editorHoverWidget.highlightForeground', listHighlightForeground, ( localizeWithPath(_moduleId, 3, 'Foreground color of the active item in the parameter hint.')));
315
315
  export { ParameterHintsWidget };
@@ -243,8 +243,8 @@ registerColor('peekViewResult.selectionForeground', { dark: Color.white, light:
243
243
  'Foreground color of the selected entry in the peek view result list.'
244
244
  )));
245
245
  const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, ( localizeWithPath(_moduleId, 11, 'Background color of the peek view editor.')));
246
- registerColor('peekViewEditorGutter.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, ( localizeWithPath(_moduleId, 12, 'Background color of the gutter in the peek view editor.')));
247
- registerColor('peekViewEditorStickyScroll.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, ( localizeWithPath(
246
+ registerColor('peekViewEditorGutter.background', peekViewEditorBackground, ( localizeWithPath(_moduleId, 12, 'Background color of the gutter in the peek view editor.')));
247
+ registerColor('peekViewEditorStickyScroll.background', peekViewEditorBackground, ( localizeWithPath(
248
248
  _moduleId,
249
249
  13,
250
250
  'Background color of sticky scroll in the peek view editor.'
@@ -0,0 +1,60 @@
1
+ import { structuralEquals } from '../../../../base/common/equals.js';
2
+ import { Disposable } from '../../../../base/common/lifecycle.js';
3
+ import { derivedOpts, derived } from '../../../../base/common/observableInternal/derived.js';
4
+ import '../../../../base/common/observableInternal/autorun.js';
5
+ import '../../../../base/common/observableInternal/utils.js';
6
+ import '../../../../base/common/cancellation.js';
7
+ import './placeholderText.css.js';
8
+ import { registerEditorContribution, EditorContributionInstantiation } from '../../../browser/editorExtensions.js';
9
+ import { observableCodeEditor } from '../../../browser/observableCodeEditor.js';
10
+ import { EditorOption } from '../../../common/config/editorOptions.js';
11
+ import { ghostTextForeground } from '../../../common/core/editorColorRegistry.js';
12
+ import { Range } from '../../../common/core/range.js';
13
+ import { InjectedTextCursorStops } from '../../../common/model.js';
14
+ import { localizeWithPath } from '../../../../nls.js';
15
+ import { registerColor } from '../../../../platform/theme/common/colorUtils.js';
16
+ const _moduleId = "vs/editor/contrib/placeholderText/browser/placeholderText.contribution";
17
+ class PlaceholderTextContribution extends Disposable {
18
+ static get(editor) {
19
+ return editor.getContribution(PlaceholderTextContribution.ID);
20
+ }
21
+ static { this.ID = 'editor.contrib.placeholderText'; }
22
+ constructor(_editor) {
23
+ super();
24
+ this._editor = _editor;
25
+ this._editorObs = observableCodeEditor(this._editor);
26
+ this._placeholderText = this._editorObs.getOption(EditorOption.placeholder);
27
+ this._decorationOptions = derivedOpts({ owner: this, equalsFn: structuralEquals }, reader => {
28
+ const p = this._placeholderText.read(reader);
29
+ if (!p) {
30
+ return undefined;
31
+ }
32
+ if (!this._editorObs.valueIsEmpty.read(reader)) {
33
+ return undefined;
34
+ }
35
+ return { placeholder: p };
36
+ });
37
+ this._decorations = derived(this, (reader) => {
38
+ const options = this._decorationOptions.read(reader);
39
+ if (!options) {
40
+ return [];
41
+ }
42
+ return [{
43
+ range: ( (new Range(1, 1, 1, 1))),
44
+ options: {
45
+ description: 'placeholder',
46
+ showIfCollapsed: true,
47
+ after: {
48
+ content: options.placeholder,
49
+ cursorStops: InjectedTextCursorStops.None,
50
+ inlineClassName: 'placeholder-text'
51
+ }
52
+ }
53
+ }];
54
+ });
55
+ this._register(this._editorObs.setDecorations(this._decorations));
56
+ }
57
+ }
58
+ registerEditorContribution(PlaceholderTextContribution.ID, PlaceholderTextContribution, EditorContributionInstantiation.Eager);
59
+ registerColor('editor.placeholder.foreground', { dark: ghostTextForeground, light: ghostTextForeground, hcDark: ghostTextForeground, hcLight: ghostTextForeground }, ( localizeWithPath(_moduleId, 0, 'Foreground color of the placeholder text in the editor.')));
60
+ export { PlaceholderTextContribution };
@@ -0,0 +1,4 @@
1
+ import n from '../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
+ var css = ".monaco-editor{--vscode-editor-placeholder-foreground:var(--vscode-editorGhostText-foreground)}.monaco-editor .placeholder-text{color:var(--vscode-editor-placeholder-foreground)}";
3
+ n(css,{});
4
+ export { css, css as default };
@@ -613,7 +613,7 @@ class InputWithButton {
613
613
  this._buttonNode.setAttribute('tabindex', '0');
614
614
  this._buttonGenHoverText = ( localizeWithPath(_moduleId, 5, "Generate new name suggestions"));
615
615
  this._buttonCancelHoverText = ( localizeWithPath(_moduleId, 6, "Cancel"));
616
- this._buttonHover = getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('element'), this._buttonNode, this._buttonGenHoverText);
616
+ this._buttonHover = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('element'), this._buttonNode, this._buttonGenHoverText);
617
617
  this._disposables.add(this._buttonHover);
618
618
  this._domNode.appendChild(this._buttonNode);
619
619
  this._disposables.add(addDisposableListener(this.input, EventType.INPUT, () => this._onDidInputChange.fire()));
@@ -1,4 +1,4 @@
1
1
  import n from '../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
- var css = ".monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}";
2
+ var css = ".monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}";
3
3
  n(css,{});
4
4
  export { css, css as default };
@@ -36,7 +36,6 @@ let StickyScrollController = class StickyScrollController extends Disposable {
36
36
  this._instaService = _instaService;
37
37
  this._contextKeyService = _contextKeyService;
38
38
  this._sessionStore = ( new DisposableStore());
39
- this._foldingModel = null;
40
39
  this._maxStickyLines = Number.MAX_SAFE_INTEGER;
41
40
  this._candidateDefinitionsLength = -1;
42
41
  this._focusedStickyElementIndex = -1;
@@ -45,12 +44,11 @@ let StickyScrollController = class StickyScrollController extends Disposable {
45
44
  this._positionRevealed = false;
46
45
  this._onMouseDown = false;
47
46
  this._endLineNumbers = [];
48
- this._showEndForLine = null;
49
47
  this._stickyScrollWidget = ( new StickyScrollWidget(this._editor));
50
48
  this._stickyLineCandidateProvider = ( new StickyLineCandidateProvider(this._editor, _languageFeaturesService, _languageConfigurationService));
51
49
  this._register(this._stickyScrollWidget);
52
50
  this._register(this._stickyLineCandidateProvider);
53
- this._widgetState = ( new StickyScrollWidgetState([], [], 0));
51
+ this._widgetState = StickyScrollWidgetState.Empty;
54
52
  this._onDidResize();
55
53
  this._readConfiguration();
56
54
  const stickyScrollDomNode = this._stickyScrollWidget.getDomNode();
@@ -229,14 +227,14 @@ let StickyScrollController = class StickyScrollController extends Disposable {
229
227
  this._renderStickyScroll();
230
228
  return;
231
229
  }
232
- if (this._showEndForLine !== null) {
233
- this._showEndForLine = null;
230
+ if (this._showEndForLine !== undefined) {
231
+ this._showEndForLine = undefined;
234
232
  this._renderStickyScroll();
235
233
  }
236
234
  }));
237
235
  this._register(addDisposableListener(stickyScrollWidgetDomNode, EventType.MOUSE_LEAVE, (e) => {
238
- if (this._showEndForLine !== null) {
239
- this._showEndForLine = null;
236
+ if (this._showEndForLine !== undefined) {
237
+ this._showEndForLine = undefined;
240
238
  this._renderStickyScroll();
241
239
  }
242
240
  }));
@@ -345,14 +343,14 @@ let StickyScrollController = class StickyScrollController extends Disposable {
345
343
  this._editor.addOverlayWidget(this._stickyScrollWidget);
346
344
  this._sessionStore.add(this._editor.onDidScrollChange((e) => {
347
345
  if (e.scrollTopChanged) {
348
- this._showEndForLine = null;
346
+ this._showEndForLine = undefined;
349
347
  this._renderStickyScroll();
350
348
  }
351
349
  }));
352
350
  this._sessionStore.add(this._editor.onDidLayoutChange(() => this._onDidResize()));
353
351
  this._sessionStore.add(this._editor.onDidChangeModelTokens((e) => this._onTokensChange(e)));
354
352
  this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(() => {
355
- this._showEndForLine = null;
353
+ this._showEndForLine = undefined;
356
354
  this._renderStickyScroll();
357
355
  }));
358
356
  this._enabled = true;
@@ -360,7 +358,7 @@ let StickyScrollController = class StickyScrollController extends Disposable {
360
358
  const lineNumberOption = this._editor.getOption(EditorOption.lineNumbers);
361
359
  if (lineNumberOption.renderType === RenderLineNumbersType.Relative) {
362
360
  this._sessionStore.add(this._editor.onDidChangeCursorPosition(() => {
363
- this._showEndForLine = null;
361
+ this._showEndForLine = undefined;
364
362
  this._renderStickyScroll(0);
365
363
  }));
366
364
  }
@@ -401,21 +399,19 @@ let StickyScrollController = class StickyScrollController extends Disposable {
401
399
  async _renderStickyScroll(rebuildFromLine) {
402
400
  const model = this._editor.getModel();
403
401
  if (!model || model.isTooLargeForTokenization()) {
404
- this._foldingModel = null;
405
- this._stickyScrollWidget.setState(undefined, null);
402
+ this._resetState();
406
403
  return;
407
404
  }
408
- const stickyLineVersion = this._stickyLineCandidateProvider.getVersionId();
409
- if (stickyLineVersion === undefined || stickyLineVersion === model.getVersionId()) {
410
- this._foldingModel = (await FoldingController.get(this._editor)?.getFoldingModel()) ?? null;
411
- this._widgetState = this.findScrollWidgetState();
412
- this._stickyScrollVisibleContextKey.set(!(this._widgetState.startLineNumbers.length === 0));
405
+ const nextRebuildFromLine = this._updateAndGetMinRebuildFromLine(rebuildFromLine);
406
+ const stickyWidgetVersion = this._stickyLineCandidateProvider.getVersionId();
407
+ const shouldUpdateState = stickyWidgetVersion === undefined || stickyWidgetVersion === model.getVersionId();
408
+ if (shouldUpdateState) {
413
409
  if (!this._focused) {
414
- this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);
410
+ await this._updateState(nextRebuildFromLine);
415
411
  }
416
412
  else {
417
413
  if (this._focusedStickyElementIndex === -1) {
418
- this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);
414
+ await this._updateState(nextRebuildFromLine);
419
415
  this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumberCount - 1;
420
416
  if (this._focusedStickyElementIndex !== -1) {
421
417
  this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);
@@ -423,7 +419,7 @@ let StickyScrollController = class StickyScrollController extends Disposable {
423
419
  }
424
420
  else {
425
421
  const focusedStickyElementLineNumber = this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];
426
- this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);
422
+ await this._updateState(nextRebuildFromLine);
427
423
  if (this._stickyScrollWidget.lineNumberCount === 0) {
428
424
  this._focusedStickyElementIndex = -1;
429
425
  }
@@ -438,6 +434,28 @@ let StickyScrollController = class StickyScrollController extends Disposable {
438
434
  }
439
435
  }
440
436
  }
437
+ _updateAndGetMinRebuildFromLine(rebuildFromLine) {
438
+ if (rebuildFromLine !== undefined) {
439
+ const minRebuildFromLineOrInfinity = this._minRebuildFromLine !== undefined ? this._minRebuildFromLine : Infinity;
440
+ this._minRebuildFromLine = Math.min(rebuildFromLine, minRebuildFromLineOrInfinity);
441
+ }
442
+ return this._minRebuildFromLine;
443
+ }
444
+ async _updateState(rebuildFromLine) {
445
+ this._minRebuildFromLine = undefined;
446
+ this._foldingModel = (await FoldingController.get(this._editor)?.getFoldingModel()) ?? undefined;
447
+ this._widgetState = this.findScrollWidgetState();
448
+ const stickyWidgetHasLines = this._widgetState.startLineNumbers.length > 0;
449
+ this._stickyScrollVisibleContextKey.set(stickyWidgetHasLines);
450
+ this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);
451
+ }
452
+ async _resetState() {
453
+ this._minRebuildFromLine = undefined;
454
+ this._foldingModel = undefined;
455
+ this._widgetState = StickyScrollWidgetState.Empty;
456
+ this._stickyScrollVisibleContextKey.set(false);
457
+ this._stickyScrollWidget.setState(undefined, undefined);
458
+ }
441
459
  findScrollWidgetState() {
442
460
  const lineHeight = this._editor.getOption(EditorOption.lineHeight);
443
461
  const maxNumberStickyLines = Math.min(this._maxStickyLines, this._editor.getOption(EditorOption.stickyScroll).maxLineCount);
@@ -27,6 +27,9 @@ class StickyScrollWidgetState {
27
27
  && equals(this.startLineNumbers, other.startLineNumbers)
28
28
  && equals(this.endLineNumbers, other.endLineNumbers);
29
29
  }
30
+ static get Empty() {
31
+ return ( new StickyScrollWidgetState([], [], 0));
32
+ }
30
33
  }
31
34
  const _ttPolicy = createTrustedTypesPolicy('stickyScrollViewLayer', { createHTML: value => value });
32
35
  const STICKY_INDEX_ATTR = 'data-sticky-line-index';