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":["vs/editor/contrib/rename/browser/rename.ts"],"names":[],"mappings":"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","file":"rename.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { CancellationError, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { ConfigurationScope, Extensions, IConfigurationRegistry } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorCommand, EditorContributionInstantiation, ServicesAccessor, registerEditorAction, registerEditorCommand, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { IPosition, Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { NewSymbolNameTriggerKind, Rejection, RenameLocation, RenameProvider, WorkspaceEdit } from '../../../common/languages.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextResourceConfigurationService } from '../../../common/services/textResourceConfiguration.js';\nimport { EditSources } from '../../../common/textModelEditSource.js';\nimport { CodeEditorStateFlag, EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { CONTEXT_RENAME_INPUT_VISIBLE, RenameWidget } from './renameWidget.js';\n\nclass RenameSkeleton {\n\n\tprivate readonly _providers: RenameProvider[];\n\tprivate _providerRenameIdx: number = 0;\n\n\tconstructor(\n\t\tprivate readonly model: ITextModel,\n\t\tprivate readonly position: Position,\n\t\tregistry: LanguageFeatureRegistry<RenameProvider>\n\t) {\n\t\tthis._providers = registry.ordered(model);\n\t}\n\n\thasProvider() {\n\t\treturn this._providers.length > 0;\n\t}\n\n\tasync resolveRenameLocation(token: CancellationToken): Promise<RenameLocation & Rejection | undefined> {\n\n\t\tconst rejects: string[] = [];\n\n\t\tfor (this._providerRenameIdx = 0; this._providerRenameIdx < this._providers.length; this._providerRenameIdx++) {\n\t\t\tconst provider = this._providers[this._providerRenameIdx];\n\t\t\tif (!provider.resolveRenameLocation) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst res = await provider.resolveRenameLocation(this.model, this.position, token);\n\t\t\tif (!res) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (res.rejectReason) {\n\t\t\t\trejects.push(res.rejectReason);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\t// we are here when no provider prepared a location which means we can\n\t\t// just rely on the word under cursor and start with the first provider\n\t\tthis._providerRenameIdx = 0;\n\n\t\tconst word = this.model.getWordAtPosition(this.position);\n\t\tif (!word) {\n\t\t\treturn {\n\t\t\t\trange: Range.fromPositions(this.position),\n\t\t\t\ttext: '',\n\t\t\t\trejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\trange: new Range(this.position.lineNumber, word.startColumn, this.position.lineNumber, word.endColumn),\n\t\t\ttext: word.word,\n\t\t\trejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n\t\t};\n\t}\n\n\tasync provideRenameEdits(newName: string, token: CancellationToken): Promise<WorkspaceEdit & Rejection> {\n\t\treturn this._provideRenameEdits(newName, this._providerRenameIdx, [], token);\n\t}\n\n\tprivate async _provideRenameEdits(newName: string, i: number, rejects: string[], token: CancellationToken): Promise<WorkspaceEdit & Rejection> {\n\t\tconst provider = this._providers[i];\n\t\tif (!provider) {\n\t\t\treturn {\n\t\t\t\tedits: [],\n\t\t\t\trejectReason: rejects.join('\\n')\n\t\t\t};\n\t\t}\n\n\t\tconst result = await provider.provideRenameEdits(this.model, this.position, newName, token);\n\t\tif (!result) {\n\t\t\treturn this._provideRenameEdits(newName, i + 1, rejects.concat(nls.localize('no result', \"No result.\")), token);\n\t\t} else if (result.rejectReason) {\n\t\t\treturn this._provideRenameEdits(newName, i + 1, rejects.concat(result.rejectReason), token);\n\t\t}\n\t\treturn result;\n\t}\n}\n\nexport async function rename(registry: LanguageFeatureRegistry<RenameProvider>, model: ITextModel, position: Position, newName: string): Promise<WorkspaceEdit & Rejection> {\n\tconst skeleton = new RenameSkeleton(model, position, registry);\n\tconst loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n\tif (loc?.rejectReason) {\n\t\treturn { edits: [], rejectReason: loc.rejectReason };\n\t}\n\treturn skeleton.provideRenameEdits(newName, CancellationToken.None);\n}\n\nexport async function prepareRename(registry: LanguageFeatureRegistry<RenameProvider>, model: ITextModel, position: Position): Promise<RenameLocation & Rejection | undefined> {\n\tconst skeleton = new RenameSkeleton(model, position, registry);\n\treturn skeleton.resolveRenameLocation(CancellationToken.None);\n}\n\n// --- register actions and commands\n\nclass RenameController implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.renameController';\n\n\tstatic get(editor: ICodeEditor): RenameController | null {\n\t\treturn editor.getContribution<RenameController>(RenameController.ID);\n\t}\n\n\tprivate readonly _renameWidget: RenameWidget;\n\tprivate readonly _disposableStore = new DisposableStore();\n\tprivate _cts: CancellationTokenSource = new CancellationTokenSource();\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@IInstantiationService private readonly _instaService: IInstantiationService,\n\t\t@INotificationService private readonly _notificationService: INotificationService,\n\t\t@IBulkEditService private readonly _bulkEditService: IBulkEditService,\n\t\t@IEditorProgressService private readonly _progressService: IEditorProgressService,\n\t\t@ILogService private readonly _logService: ILogService,\n\t\t@ITextResourceConfigurationService private readonly _configService: ITextResourceConfigurationService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tthis._renameWidget = this._disposableStore.add(this._instaService.createInstance(RenameWidget, this.editor, ['acceptRenameInput', 'acceptRenameInputWithPreview']));\n\t}\n\n\tdispose(): void {\n\t\tthis._disposableStore.dispose();\n\t\tthis._cts.dispose(true);\n\t}\n\n\tasync run(): Promise<void> {\n\n\t\tconst trace = this._logService.trace.bind(this._logService, '[rename]');\n\n\t\t// set up cancellation token to prevent reentrant rename, this\n\t\t// is the parent to the resolve- and rename-tokens\n\t\tthis._cts.dispose(true);\n\t\tthis._cts = new CancellationTokenSource();\n\n\t\tif (!this.editor.hasModel()) {\n\t\t\ttrace('editor has no model');\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst position = this.editor.getPosition();\n\t\tconst skeleton = new RenameSkeleton(this.editor.getModel(), position, this._languageFeaturesService.renameProvider);\n\n\t\tif (!skeleton.hasProvider()) {\n\t\t\ttrace('skeleton has no provider');\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// part 1 - resolve rename location\n\t\tconst cts1 = new EditorStateCancellationTokenSource(this.editor, CodeEditorStateFlag.Position | CodeEditorStateFlag.Value, undefined, this._cts.token);\n\n\t\tlet loc: RenameLocation & Rejection | undefined;\n\t\ttry {\n\t\t\ttrace('resolving rename location');\n\t\t\tconst resolveLocationOperation = skeleton.resolveRenameLocation(cts1.token);\n\t\t\tthis._progressService.showWhile(resolveLocationOperation, 250);\n\t\t\tloc = await resolveLocationOperation;\n\t\t\ttrace('resolved rename location');\n\t\t} catch (e: unknown) {\n\t\t\tif (e instanceof CancellationError) {\n\t\t\t\ttrace('resolve rename location cancelled', JSON.stringify(e, null, '\\t'));\n\t\t\t} else {\n\t\t\t\ttrace('resolve rename location failed', e instanceof Error ? e : JSON.stringify(e, null, '\\t'));\n\t\t\t\tif (typeof e === 'string' || isMarkdownString(e)) {\n\t\t\t\t\tMessageController.get(this.editor)?.showMessage(e || nls.localize('resolveRenameLocationFailed', \"An unknown error occurred while resolving rename location\"), position);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\n\t\t} finally {\n\t\t\tcts1.dispose();\n\t\t}\n\n\t\tif (!loc) {\n\t\t\ttrace('returning early - no loc');\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (loc.rejectReason) {\n\t\t\ttrace(`returning early - rejected with reason: ${loc.rejectReason}`, loc.rejectReason);\n\t\t\tMessageController.get(this.editor)?.showMessage(loc.rejectReason, position);\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (cts1.token.isCancellationRequested) {\n\t\t\ttrace('returning early - cts1 cancelled');\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// part 2 - do rename at location\n\t\tconst cts2 = new EditorStateCancellationTokenSource(this.editor, CodeEditorStateFlag.Position | CodeEditorStateFlag.Value, loc.range, this._cts.token);\n\n\t\tconst model = this.editor.getModel(); // @ulugbekna: assumes editor still has a model, otherwise, cts1 should've been cancelled\n\n\t\tconst newSymbolNamesProviders = this._languageFeaturesService.newSymbolNamesProvider.all(model);\n\n\t\tconst resolvedNewSymbolnamesProviders = await Promise.all(newSymbolNamesProviders.map(async p => [p, await p.supportsAutomaticNewSymbolNamesTriggerKind ?? false] as const));\n\n\t\tconst requestRenameSuggestions = (triggerKind: NewSymbolNameTriggerKind, cts: CancellationToken) => {\n\t\t\tlet providers = resolvedNewSymbolnamesProviders.slice();\n\n\t\t\tif (triggerKind === NewSymbolNameTriggerKind.Automatic) {\n\t\t\t\tproviders = providers.filter(([_, supportsAutomatic]) => supportsAutomatic);\n\t\t\t}\n\n\t\t\treturn providers.map(([p,]) => p.provideNewSymbolNames(model, loc.range, triggerKind, cts));\n\t\t};\n\n\t\ttrace('creating rename input field and awaiting its result');\n\t\tconst supportPreview = this._bulkEditService.hasPreviewHandler() && this._configService.getValue<boolean>(this.editor.getModel().uri, 'editor.rename.enablePreview');\n\t\tconst inputFieldResult = await this._renameWidget.getInput(\n\t\t\tloc.range,\n\t\t\tloc.text,\n\t\t\tsupportPreview,\n\t\t\tnewSymbolNamesProviders.length > 0 ? requestRenameSuggestions : undefined,\n\t\t\tcts2\n\t\t);\n\t\ttrace('received response from rename input field');\n\n\t\t// no result, only hint to focus the editor or not\n\t\tif (typeof inputFieldResult === 'boolean') {\n\t\t\ttrace(`returning early - rename input field response - ${inputFieldResult}`);\n\t\t\tif (inputFieldResult) {\n\t\t\t\tthis.editor.focus();\n\t\t\t}\n\t\t\tcts2.dispose();\n\t\t\treturn undefined;\n\t\t}\n\n\t\tthis.editor.focus();\n\n\t\ttrace('requesting rename edits');\n\t\tconst renameOperation = raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName, cts2.token), cts2.token).then(async renameResult => {\n\n\t\t\tif (!renameResult) {\n\t\t\t\ttrace('returning early - no rename edits result');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.editor.hasModel()) {\n\t\t\t\ttrace('returning early - no model after rename edits are provided');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (renameResult.rejectReason) {\n\t\t\t\ttrace(`returning early - rejected with reason: ${renameResult.rejectReason}`);\n\t\t\t\tthis._notificationService.info(renameResult.rejectReason);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// collapse selection to active end\n\t\t\tthis.editor.setSelection(Range.fromPositions(this.editor.getSelection().getPosition()));\n\n\t\t\ttrace('applying edits');\n\n\t\t\tthis._bulkEditService.apply(renameResult, {\n\t\t\t\teditor: this.editor,\n\t\t\t\tshowPreview: inputFieldResult.wantsPreview,\n\t\t\t\tlabel: nls.localize('label', \"Renaming '{0}' to '{1}'\", loc?.text, inputFieldResult.newName),\n\t\t\t\tcode: 'undoredo.rename',\n\t\t\t\tquotableLabel: nls.localize('quotableLabel', \"Renaming {0} to {1}\", loc?.text, inputFieldResult.newName),\n\t\t\t\trespectAutoSaveConfig: true,\n\t\t\t\treason: EditSources.rename(loc?.text, inputFieldResult.newName),\n\t\t\t}).then(result => {\n\t\t\t\ttrace('edits applied');\n\t\t\t\tif (result.ariaSummary) {\n\t\t\t\t\talert(nls.localize('aria', \"Successfully renamed '{0}' to '{1}'. Summary: {2}\", loc.text, inputFieldResult.newName, result.ariaSummary));\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\ttrace(`error when applying edits ${JSON.stringify(err, null, '\\t')}`);\n\t\t\t\tthis._notificationService.error(nls.localize('rename.failedApply', \"Rename failed to apply edits\"));\n\t\t\t\tthis._logService.error(err);\n\t\t\t});\n\n\t\t}, err => {\n\t\t\ttrace('error when providing rename edits', JSON.stringify(err, null, '\\t'));\n\n\t\t\tthis._notificationService.error(nls.localize('rename.failed', \"Rename failed to compute edits\"));\n\t\t\tthis._logService.error(err);\n\n\t\t}).finally(() => {\n\t\t\tcts2.dispose();\n\t\t});\n\n\t\ttrace('returning rename operation');\n\n\t\tthis._progressService.showWhile(renameOperation, 250);\n\t\treturn renameOperation;\n\n\t}\n\n\tacceptRenameInput(wantsPreview: boolean): void {\n\t\tthis._renameWidget.acceptInput(wantsPreview);\n\t}\n\n\tcancelRenameInput(): void {\n\t\tthis._renameWidget.cancelInput(true, 'cancelRenameInput command');\n\t}\n\n\tfocusNextRenameSuggestion(): void {\n\t\tthis._renameWidget.focusNextRenameSuggestion();\n\t}\n\n\tfocusPreviousRenameSuggestion(): void {\n\t\tthis._renameWidget.focusPreviousRenameSuggestion();\n\t}\n}\n\n// ---- action implementation\n\nexport class RenameAction extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.rename',\n\t\t\tlabel: nls.localize2('rename.label', \"Rename Symbol\"),\n\t\t\tprecondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyCode.F2,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t},\n\t\t\tcontextMenuOpts: {\n\t\t\t\tgroup: '1_modification',\n\t\t\t\torder: 1.1\n\t\t\t},\n\t\t\tcanTriggerInlineEdits: true,\n\t\t});\n\t}\n\n\toverride runCommand(accessor: ServicesAccessor, args: [URI, IPosition]): void | Promise<void> {\n\t\tconst editorService = accessor.get(ICodeEditorService);\n\t\tconst [uri, pos] = Array.isArray(args) && args || [undefined, undefined];\n\n\t\tif (URI.isUri(uri) && Position.isIPosition(pos)) {\n\t\t\treturn editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then(editor => {\n\t\t\t\tif (!editor) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\teditor.setPosition(pos);\n\t\t\t\teditor.invokeWithinContext(accessor => {\n\t\t\t\t\tthis.reportTelemetry(accessor, editor);\n\t\t\t\t\treturn this.run(accessor, editor);\n\t\t\t\t});\n\t\t\t}, onUnexpectedError);\n\t\t}\n\n\t\treturn super.runCommand(accessor, args);\n\t}\n\n\trun(accessor: ServicesAccessor, editor: ICodeEditor): Promise<void> {\n\t\tconst logService = accessor.get(ILogService);\n\n\t\tconst controller = RenameController.get(editor);\n\n\t\tif (controller) {\n\t\t\tlogService.trace('[RenameAction] got controller, running...');\n\t\t\treturn controller.run();\n\t\t}\n\t\tlogService.trace('[RenameAction] returning early - controller missing');\n\t\treturn Promise.resolve();\n\t}\n}\n\nregisterEditorContribution(RenameController.ID, RenameController, EditorContributionInstantiation.Lazy);\nregisterEditorAction(RenameAction);\n\nconst RenameCommand = EditorCommand.bindToContribution<RenameController>(RenameController.get);\n\nregisterEditorCommand(new RenameCommand({\n\tid: 'acceptRenameInput',\n\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\thandler: x => x.acceptRenameInput(false),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n\t\tprimary: KeyCode.Enter\n\t}\n}));\n\nregisterEditorCommand(new RenameCommand({\n\tid: 'acceptRenameInputWithPreview',\n\tprecondition: ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE, ContextKeyExpr.has('config.editor.rename.enablePreview')),\n\thandler: x => x.acceptRenameInput(true),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n\t\tprimary: KeyMod.CtrlCmd + KeyCode.Enter\n\t}\n}));\n\nregisterEditorCommand(new RenameCommand({\n\tid: 'cancelRenameInput',\n\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\thandler: x => x.cancelRenameInput(),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\tkbExpr: EditorContextKeys.focus,\n\t\tprimary: KeyCode.Escape,\n\t\tsecondary: [KeyMod.Shift | KeyCode.Escape]\n\t}\n}));\n\nregisterAction2(class FocusNextRenameSuggestion extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'focusNextRenameSuggestion',\n\t\t\ttitle: {\n\t\t\t\t...nls.localize2('focusNextRenameSuggestion', \"Focus Next Rename Suggestion\"),\n\t\t\t},\n\t\t\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\t\t\tkeybinding: [\n\t\t\t\t{\n\t\t\t\t\tprimary: KeyCode.DownArrow,\n\t\t\t\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t}\n\n\toverride run(accessor: ServicesAccessor): void {\n\t\tconst currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n\t\tif (!currentEditor) { return; }\n\n\t\tconst controller = RenameController.get(currentEditor);\n\t\tif (!controller) { return; }\n\n\t\tcontroller.focusNextRenameSuggestion();\n\t}\n});\n\nregisterAction2(class FocusPreviousRenameSuggestion extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'focusPreviousRenameSuggestion',\n\t\t\ttitle: {\n\t\t\t\t...nls.localize2('focusPreviousRenameSuggestion', \"Focus Previous Rename Suggestion\"),\n\t\t\t},\n\t\t\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\t\t\tkeybinding: [\n\t\t\t\t{\n\t\t\t\t\tprimary: KeyCode.UpArrow,\n\t\t\t\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t}\n\n\toverride run(accessor: ServicesAccessor): void {\n\t\tconst currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n\t\tif (!currentEditor) { return; }\n\n\t\tconst controller = RenameController.get(currentEditor);\n\t\tif (!controller) { return; }\n\n\t\tcontroller.focusPreviousRenameSuggestion();\n\t}\n});\n\n// ---- api bridge command\n\nregisterModelAndPositionCommand('_executeDocumentRenameProvider', function (accessor, model, position, ...args) {\n\tconst [newName] = args;\n\tassertType(typeof newName === 'string');\n\tconst { renameProvider } = accessor.get(ILanguageFeaturesService);\n\treturn rename(renameProvider, model, position, newName);\n});\n\nregisterModelAndPositionCommand('_executePrepareRename', async function (accessor, model, position) {\n\tconst { renameProvider } = accessor.get(ILanguageFeaturesService);\n\tconst skeleton = new RenameSkeleton(model, position, renameProvider);\n\tconst loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n\tif (loc?.rejectReason) {\n\t\tthrow new Error(loc.rejectReason);\n\t}\n\treturn loc;\n});\n\n\n//todo@jrieken use editor options world\nRegistry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({\n\tid: 'editor',\n\tproperties: {\n\t\t'editor.rename.enablePreview': {\n\t\t\tscope: ConfigurationScope.LANGUAGE_OVERRIDABLE,\n\t\t\tdescription: nls.localize('enablePreview', \"Enable/disable the ability to preview changes before renaming\"),\n\t\t\tdefault: true,\n\t\t\ttype: 'boolean'\n\t\t}\n\t}\n});\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/rename/browser/rename.ts"],"names":[],"mappings":"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","file":"rename.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { CancellationError, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { ConfigurationScope, Extensions, IConfigurationRegistry } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorCommand, EditorContributionInstantiation, ServicesAccessor, registerEditorAction, registerEditorCommand, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { IPosition, Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { NewSymbolNameTriggerKind, Rejection, RenameLocation, RenameProvider, WorkspaceEdit } from '../../../common/languages.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextResourceConfigurationService } from '../../../common/services/textResourceConfiguration.js';\nimport { EditSources } from '../../../common/textModelEditSource.js';\nimport { CodeEditorStateFlag, EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { CONTEXT_RENAME_INPUT_VISIBLE, RenameWidget } from './renameWidget.js';\n\nclass RenameSkeleton {\n\n\tprivate readonly _providers: RenameProvider[];\n\tprivate _providerRenameIdx: number = 0;\n\n\tconstructor(\n\t\tprivate readonly model: ITextModel,\n\t\tprivate readonly position: Position,\n\t\tregistry: LanguageFeatureRegistry<RenameProvider>\n\t) {\n\t\tthis._providers = registry.ordered(model);\n\t}\n\n\thasProvider() {\n\t\treturn this._providers.length > 0;\n\t}\n\n\tasync resolveRenameLocation(token: CancellationToken): Promise<RenameLocation & Rejection | undefined> {\n\n\t\tconst rejects: string[] = [];\n\n\t\tfor (this._providerRenameIdx = 0; this._providerRenameIdx < this._providers.length; this._providerRenameIdx++) {\n\t\t\tconst provider = this._providers[this._providerRenameIdx];\n\t\t\tif (!provider.resolveRenameLocation) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst res = await provider.resolveRenameLocation(this.model, this.position, token);\n\t\t\tif (!res) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (res.rejectReason) {\n\t\t\t\trejects.push(res.rejectReason);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\t// we are here when no provider prepared a location which means we can\n\t\t// just rely on the word under cursor and start with the first provider\n\t\tthis._providerRenameIdx = 0;\n\n\t\tconst word = this.model.getWordAtPosition(this.position);\n\t\tif (!word) {\n\t\t\treturn {\n\t\t\t\trange: Range.fromPositions(this.position),\n\t\t\t\ttext: '',\n\t\t\t\trejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\trange: new Range(this.position.lineNumber, word.startColumn, this.position.lineNumber, word.endColumn),\n\t\t\ttext: word.word,\n\t\t\trejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n\t\t};\n\t}\n\n\tasync provideRenameEdits(newName: string, token: CancellationToken): Promise<WorkspaceEdit & Rejection> {\n\t\treturn this._provideRenameEdits(newName, this._providerRenameIdx, [], token);\n\t}\n\n\tprivate async _provideRenameEdits(newName: string, i: number, rejects: string[], token: CancellationToken): Promise<WorkspaceEdit & Rejection> {\n\t\tconst provider = this._providers[i];\n\t\tif (!provider) {\n\t\t\treturn {\n\t\t\t\tedits: [],\n\t\t\t\trejectReason: rejects.join('\\n')\n\t\t\t};\n\t\t}\n\n\t\tconst result = await provider.provideRenameEdits(this.model, this.position, newName, token);\n\t\tif (!result) {\n\t\t\treturn this._provideRenameEdits(newName, i + 1, rejects.concat(nls.localize('no result', \"No result.\")), token);\n\t\t} else if (result.rejectReason) {\n\t\t\treturn this._provideRenameEdits(newName, i + 1, rejects.concat(result.rejectReason), token);\n\t\t}\n\t\treturn result;\n\t}\n}\n\nexport function hasProvider(registry: LanguageFeatureRegistry<RenameProvider>, model: ITextModel): boolean {\n\tconst providers = registry.ordered(model);\n\treturn providers.length > 0;\n}\n\nexport async function rawRename(registry: LanguageFeatureRegistry<RenameProvider>, model: ITextModel, position: Position, newName: string, cancellationToken?: CancellationToken): Promise<WorkspaceEdit & Rejection> {\n\tconst skeleton = new RenameSkeleton(model, position, registry);\n\treturn skeleton.provideRenameEdits(newName, cancellationToken ?? CancellationToken.None);\n}\n\nexport async function rename(registry: LanguageFeatureRegistry<RenameProvider>, model: ITextModel, position: Position, newName: string): Promise<WorkspaceEdit & Rejection> {\n\tconst skeleton = new RenameSkeleton(model, position, registry);\n\tconst loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n\tif (loc?.rejectReason) {\n\t\treturn { edits: [], rejectReason: loc.rejectReason };\n\t}\n\treturn skeleton.provideRenameEdits(newName, CancellationToken.None);\n}\n\n// --- register actions and commands\n\nclass RenameController implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.renameController';\n\n\tstatic get(editor: ICodeEditor): RenameController | null {\n\t\treturn editor.getContribution<RenameController>(RenameController.ID);\n\t}\n\n\tprivate readonly _renameWidget: RenameWidget;\n\tprivate readonly _disposableStore = new DisposableStore();\n\tprivate _cts: CancellationTokenSource = new CancellationTokenSource();\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@IInstantiationService private readonly _instaService: IInstantiationService,\n\t\t@INotificationService private readonly _notificationService: INotificationService,\n\t\t@IBulkEditService private readonly _bulkEditService: IBulkEditService,\n\t\t@IEditorProgressService private readonly _progressService: IEditorProgressService,\n\t\t@ILogService private readonly _logService: ILogService,\n\t\t@ITextResourceConfigurationService private readonly _configService: ITextResourceConfigurationService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tthis._renameWidget = this._disposableStore.add(this._instaService.createInstance(RenameWidget, this.editor, ['acceptRenameInput', 'acceptRenameInputWithPreview']));\n\t}\n\n\tdispose(): void {\n\t\tthis._disposableStore.dispose();\n\t\tthis._cts.dispose(true);\n\t}\n\n\tasync run(): Promise<void> {\n\n\t\tconst trace = this._logService.trace.bind(this._logService, '[rename]');\n\n\t\t// set up cancellation token to prevent reentrant rename, this\n\t\t// is the parent to the resolve- and rename-tokens\n\t\tthis._cts.dispose(true);\n\t\tthis._cts = new CancellationTokenSource();\n\n\t\tif (!this.editor.hasModel()) {\n\t\t\ttrace('editor has no model');\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst position = this.editor.getPosition();\n\t\tconst skeleton = new RenameSkeleton(this.editor.getModel(), position, this._languageFeaturesService.renameProvider);\n\n\t\tif (!skeleton.hasProvider()) {\n\t\t\ttrace('skeleton has no provider');\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// part 1 - resolve rename location\n\t\tconst cts1 = new EditorStateCancellationTokenSource(this.editor, CodeEditorStateFlag.Position | CodeEditorStateFlag.Value, undefined, this._cts.token);\n\n\t\tlet loc: RenameLocation & Rejection | undefined;\n\t\ttry {\n\t\t\ttrace('resolving rename location');\n\t\t\tconst resolveLocationOperation = skeleton.resolveRenameLocation(cts1.token);\n\t\t\tthis._progressService.showWhile(resolveLocationOperation, 250);\n\t\t\tloc = await resolveLocationOperation;\n\t\t\ttrace('resolved rename location');\n\t\t} catch (e: unknown) {\n\t\t\tif (e instanceof CancellationError) {\n\t\t\t\ttrace('resolve rename location cancelled', JSON.stringify(e, null, '\\t'));\n\t\t\t} else {\n\t\t\t\ttrace('resolve rename location failed', e instanceof Error ? e : JSON.stringify(e, null, '\\t'));\n\t\t\t\tif (typeof e === 'string' || isMarkdownString(e)) {\n\t\t\t\t\tMessageController.get(this.editor)?.showMessage(e || nls.localize('resolveRenameLocationFailed', \"An unknown error occurred while resolving rename location\"), position);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\n\t\t} finally {\n\t\t\tcts1.dispose();\n\t\t}\n\n\t\tif (!loc) {\n\t\t\ttrace('returning early - no loc');\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (loc.rejectReason) {\n\t\t\ttrace(`returning early - rejected with reason: ${loc.rejectReason}`, loc.rejectReason);\n\t\t\tMessageController.get(this.editor)?.showMessage(loc.rejectReason, position);\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (cts1.token.isCancellationRequested) {\n\t\t\ttrace('returning early - cts1 cancelled');\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// part 2 - do rename at location\n\t\tconst cts2 = new EditorStateCancellationTokenSource(this.editor, CodeEditorStateFlag.Position | CodeEditorStateFlag.Value, loc.range, this._cts.token);\n\n\t\tconst model = this.editor.getModel(); // @ulugbekna: assumes editor still has a model, otherwise, cts1 should've been cancelled\n\n\t\tconst newSymbolNamesProviders = this._languageFeaturesService.newSymbolNamesProvider.all(model);\n\n\t\tconst resolvedNewSymbolnamesProviders = await Promise.all(newSymbolNamesProviders.map(async p => [p, await p.supportsAutomaticNewSymbolNamesTriggerKind ?? false] as const));\n\n\t\tconst requestRenameSuggestions = (triggerKind: NewSymbolNameTriggerKind, cts: CancellationToken) => {\n\t\t\tlet providers = resolvedNewSymbolnamesProviders.slice();\n\n\t\t\tif (triggerKind === NewSymbolNameTriggerKind.Automatic) {\n\t\t\t\tproviders = providers.filter(([_, supportsAutomatic]) => supportsAutomatic);\n\t\t\t}\n\n\t\t\treturn providers.map(([p,]) => p.provideNewSymbolNames(model, loc.range, triggerKind, cts));\n\t\t};\n\n\t\ttrace('creating rename input field and awaiting its result');\n\t\tconst supportPreview = this._bulkEditService.hasPreviewHandler() && this._configService.getValue<boolean>(this.editor.getModel().uri, 'editor.rename.enablePreview');\n\t\tconst inputFieldResult = await this._renameWidget.getInput(\n\t\t\tloc.range,\n\t\t\tloc.text,\n\t\t\tsupportPreview,\n\t\t\tnewSymbolNamesProviders.length > 0 ? requestRenameSuggestions : undefined,\n\t\t\tcts2\n\t\t);\n\t\ttrace('received response from rename input field');\n\n\t\t// no result, only hint to focus the editor or not\n\t\tif (typeof inputFieldResult === 'boolean') {\n\t\t\ttrace(`returning early - rename input field response - ${inputFieldResult}`);\n\t\t\tif (inputFieldResult) {\n\t\t\t\tthis.editor.focus();\n\t\t\t}\n\t\t\tcts2.dispose();\n\t\t\treturn undefined;\n\t\t}\n\n\t\tthis.editor.focus();\n\n\t\ttrace('requesting rename edits');\n\t\tconst renameOperation = raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName, cts2.token), cts2.token).then(async renameResult => {\n\n\t\t\tif (!renameResult) {\n\t\t\t\ttrace('returning early - no rename edits result');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.editor.hasModel()) {\n\t\t\t\ttrace('returning early - no model after rename edits are provided');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (renameResult.rejectReason) {\n\t\t\t\ttrace(`returning early - rejected with reason: ${renameResult.rejectReason}`);\n\t\t\t\tthis._notificationService.info(renameResult.rejectReason);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// collapse selection to active end\n\t\t\tthis.editor.setSelection(Range.fromPositions(this.editor.getSelection().getPosition()));\n\n\t\t\ttrace('applying edits');\n\n\t\t\tthis._bulkEditService.apply(renameResult, {\n\t\t\t\teditor: this.editor,\n\t\t\t\tshowPreview: inputFieldResult.wantsPreview,\n\t\t\t\tlabel: nls.localize('label', \"Renaming '{0}' to '{1}'\", loc?.text, inputFieldResult.newName),\n\t\t\t\tcode: 'undoredo.rename',\n\t\t\t\tquotableLabel: nls.localize('quotableLabel', \"Renaming {0} to {1}\", loc?.text, inputFieldResult.newName),\n\t\t\t\trespectAutoSaveConfig: true,\n\t\t\t\treason: EditSources.rename(loc?.text, inputFieldResult.newName),\n\t\t\t}).then(result => {\n\t\t\t\ttrace('edits applied');\n\t\t\t\tif (result.ariaSummary) {\n\t\t\t\t\talert(nls.localize('aria', \"Successfully renamed '{0}' to '{1}'. Summary: {2}\", loc.text, inputFieldResult.newName, result.ariaSummary));\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\ttrace(`error when applying edits ${JSON.stringify(err, null, '\\t')}`);\n\t\t\t\tthis._notificationService.error(nls.localize('rename.failedApply', \"Rename failed to apply edits\"));\n\t\t\t\tthis._logService.error(err);\n\t\t\t});\n\n\t\t}, err => {\n\t\t\ttrace('error when providing rename edits', JSON.stringify(err, null, '\\t'));\n\n\t\t\tthis._notificationService.error(nls.localize('rename.failed', \"Rename failed to compute edits\"));\n\t\t\tthis._logService.error(err);\n\n\t\t}).finally(() => {\n\t\t\tcts2.dispose();\n\t\t});\n\n\t\ttrace('returning rename operation');\n\n\t\tthis._progressService.showWhile(renameOperation, 250);\n\t\treturn renameOperation;\n\n\t}\n\n\tacceptRenameInput(wantsPreview: boolean): void {\n\t\tthis._renameWidget.acceptInput(wantsPreview);\n\t}\n\n\tcancelRenameInput(): void {\n\t\tthis._renameWidget.cancelInput(true, 'cancelRenameInput command');\n\t}\n\n\tfocusNextRenameSuggestion(): void {\n\t\tthis._renameWidget.focusNextRenameSuggestion();\n\t}\n\n\tfocusPreviousRenameSuggestion(): void {\n\t\tthis._renameWidget.focusPreviousRenameSuggestion();\n\t}\n}\n\n// ---- action implementation\n\nexport class RenameAction extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.rename',\n\t\t\tlabel: nls.localize2('rename.label', \"Rename Symbol\"),\n\t\t\tprecondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyCode.F2,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t},\n\t\t\tcontextMenuOpts: {\n\t\t\t\tgroup: '1_modification',\n\t\t\t\torder: 1.1\n\t\t\t},\n\t\t\tcanTriggerInlineEdits: true,\n\t\t});\n\t}\n\n\toverride runCommand(accessor: ServicesAccessor, args: [URI, IPosition]): void | Promise<void> {\n\t\tconst editorService = accessor.get(ICodeEditorService);\n\t\tconst [uri, pos] = Array.isArray(args) && args || [undefined, undefined];\n\n\t\tif (URI.isUri(uri) && Position.isIPosition(pos)) {\n\t\t\treturn editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then(editor => {\n\t\t\t\tif (!editor) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\teditor.setPosition(pos);\n\t\t\t\teditor.invokeWithinContext(accessor => {\n\t\t\t\t\tthis.reportTelemetry(accessor, editor);\n\t\t\t\t\treturn this.run(accessor, editor);\n\t\t\t\t});\n\t\t\t}, onUnexpectedError);\n\t\t}\n\n\t\treturn super.runCommand(accessor, args);\n\t}\n\n\trun(accessor: ServicesAccessor, editor: ICodeEditor): Promise<void> {\n\t\tconst logService = accessor.get(ILogService);\n\n\t\tconst controller = RenameController.get(editor);\n\n\t\tif (controller) {\n\t\t\tlogService.trace('[RenameAction] got controller, running...');\n\t\t\treturn controller.run();\n\t\t}\n\t\tlogService.trace('[RenameAction] returning early - controller missing');\n\t\treturn Promise.resolve();\n\t}\n}\n\nregisterEditorContribution(RenameController.ID, RenameController, EditorContributionInstantiation.Lazy);\nregisterEditorAction(RenameAction);\n\nconst RenameCommand = EditorCommand.bindToContribution<RenameController>(RenameController.get);\n\nregisterEditorCommand(new RenameCommand({\n\tid: 'acceptRenameInput',\n\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\thandler: x => x.acceptRenameInput(false),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n\t\tprimary: KeyCode.Enter\n\t}\n}));\n\nregisterEditorCommand(new RenameCommand({\n\tid: 'acceptRenameInputWithPreview',\n\tprecondition: ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE, ContextKeyExpr.has('config.editor.rename.enablePreview')),\n\thandler: x => x.acceptRenameInput(true),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\tkbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n\t\tprimary: KeyMod.CtrlCmd + KeyCode.Enter\n\t}\n}));\n\nregisterEditorCommand(new RenameCommand({\n\tid: 'cancelRenameInput',\n\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\thandler: x => x.cancelRenameInput(),\n\tkbOpts: {\n\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\tkbExpr: EditorContextKeys.focus,\n\t\tprimary: KeyCode.Escape,\n\t\tsecondary: [KeyMod.Shift | KeyCode.Escape]\n\t}\n}));\n\nregisterAction2(class FocusNextRenameSuggestion extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'focusNextRenameSuggestion',\n\t\t\ttitle: {\n\t\t\t\t...nls.localize2('focusNextRenameSuggestion', \"Focus Next Rename Suggestion\"),\n\t\t\t},\n\t\t\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\t\t\tkeybinding: [\n\t\t\t\t{\n\t\t\t\t\tprimary: KeyCode.DownArrow,\n\t\t\t\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t}\n\n\toverride run(accessor: ServicesAccessor): void {\n\t\tconst currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n\t\tif (!currentEditor) { return; }\n\n\t\tconst controller = RenameController.get(currentEditor);\n\t\tif (!controller) { return; }\n\n\t\tcontroller.focusNextRenameSuggestion();\n\t}\n});\n\nregisterAction2(class FocusPreviousRenameSuggestion extends Action2 {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'focusPreviousRenameSuggestion',\n\t\t\ttitle: {\n\t\t\t\t...nls.localize2('focusPreviousRenameSuggestion', \"Focus Previous Rename Suggestion\"),\n\t\t\t},\n\t\t\tprecondition: CONTEXT_RENAME_INPUT_VISIBLE,\n\t\t\tkeybinding: [\n\t\t\t\t{\n\t\t\t\t\tprimary: KeyCode.UpArrow,\n\t\t\t\t\tweight: KeybindingWeight.EditorContrib + 99,\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t}\n\n\toverride run(accessor: ServicesAccessor): void {\n\t\tconst currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n\t\tif (!currentEditor) { return; }\n\n\t\tconst controller = RenameController.get(currentEditor);\n\t\tif (!controller) { return; }\n\n\t\tcontroller.focusPreviousRenameSuggestion();\n\t}\n});\n\n// ---- api bridge command\n\nregisterModelAndPositionCommand('_executeDocumentRenameProvider', function (accessor, model, position, ...args) {\n\tconst [newName] = args;\n\tassertType(typeof newName === 'string');\n\tconst { renameProvider } = accessor.get(ILanguageFeaturesService);\n\treturn rename(renameProvider, model, position, newName);\n});\n\nregisterModelAndPositionCommand('_executePrepareRename', async function (accessor, model, position) {\n\tconst { renameProvider } = accessor.get(ILanguageFeaturesService);\n\tconst skeleton = new RenameSkeleton(model, position, renameProvider);\n\tconst loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n\tif (loc?.rejectReason) {\n\t\tthrow new Error(loc.rejectReason);\n\t}\n\treturn loc;\n});\n\n\n//todo@jrieken use editor options world\nRegistry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({\n\tid: 'editor',\n\tproperties: {\n\t\t'editor.rename.enablePreview': {\n\t\t\tscope: ConfigurationScope.LANGUAGE_OVERRIDABLE,\n\t\t\tdescription: nls.localize('enablePreview', \"Enable/disable the ability to preview changes before renaming\"),\n\t\t\tdefault: true,\n\t\t\ttype: 'boolean'\n\t\t}\n\t}\n});\n"]}
@@ -39,8 +39,8 @@ import { editorWidgetBackground, inputBackground, inputBorder, inputForeground,
39
39
  import { IThemeService } from '../../../../platform/theme/common/themeService.js';
40
40
  /** for debugging */
41
41
  const _sticky = false;
42
- export const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false, nls.localize(1399, "Whether the rename input widget is visible"));
43
- export const CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey('renameInputFocused', false, nls.localize(1400, "Whether the rename input widget is focused"));
42
+ export const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false, nls.localize(1405, "Whether the rename input widget is visible"));
43
+ export const CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey('renameInputFocused', false, nls.localize(1406, "Whether the rename input widget is focused"));
44
44
  let RenameWidget = class RenameWidget {
45
45
  constructor(_editor, _acceptKeybindings, _themeService, _keybindingService, contextKeyService, _logService) {
46
46
  this._editor = _editor;
@@ -163,7 +163,7 @@ let RenameWidget = class RenameWidget {
163
163
  }
164
164
  beforeRender() {
165
165
  const [accept, preview] = this._acceptKeybindings;
166
- this._label.innerText = nls.localize(1401, "{0} to Rename, {1} to Preview", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());
166
+ this._label.innerText = nls.localize(1407, "{0} to Rename, {1} to Preview", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());
167
167
  this._domNode.style.minWidth = `200px`; // to prevent from widening when candidates come in
168
168
  return null;
169
169
  }
@@ -477,7 +477,7 @@ class RenameCandidateListView {
477
477
  // adjust list container layout
478
478
  this._listContainer.style.height = `${height}px`;
479
479
  this._listContainer.style.width = `${width}px`;
480
- aria.status(nls.localize(1402, "Received {0} rename suggestions", candidates.length));
480
+ aria.status(nls.localize(1408, "Received {0} rename suggestions", candidates.length));
481
481
  }
482
482
  clearCandidates() {
483
483
  this._listContainer.style.height = '0px';
@@ -619,13 +619,13 @@ class InputWithButton {
619
619
  this._inputNode.className = 'rename-input';
620
620
  this._inputNode.type = 'text';
621
621
  this._inputNode.style.border = 'none';
622
- this._inputNode.setAttribute('aria-label', nls.localize(1403, "Rename input. Type new name and press Enter to commit."));
622
+ this._inputNode.setAttribute('aria-label', nls.localize(1409, "Rename input. Type new name and press Enter to commit."));
623
623
  this._domNode.appendChild(this._inputNode);
624
624
  this._buttonNode = document.createElement('div');
625
625
  this._buttonNode.className = 'rename-suggestions-button';
626
626
  this._buttonNode.setAttribute('tabindex', '0');
627
- this._buttonGenHoverText = nls.localize(1404, "Generate New Name Suggestions");
628
- this._buttonCancelHoverText = nls.localize(1405, "Cancel");
627
+ this._buttonGenHoverText = nls.localize(1410, "Generate New Name Suggestions");
628
+ this._buttonCancelHoverText = nls.localize(1411, "Cancel");
629
629
  this._buttonHoverContent = this._buttonGenHoverText;
630
630
  this._disposables.add(getBaseLayerHoverDelegate().setupDelayedHover(this._buttonNode, () => ({
631
631
  content: this._buttonHoverContent,
@@ -125,8 +125,9 @@ let SectionHeaderDetector = class SectionHeaderDetector extends Disposable {
125
125
  const tokens = model.tokenization.getLineTokens(validRange.startLineNumber);
126
126
  const idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);
127
127
  const tokenType = tokens.getStandardTokenType(idx);
128
- const languageId = tokens.getLanguageId(idx);
129
- return (languageId === model.getLanguageId() && tokenType === 1 /* StandardTokenType.Comment */);
128
+ const languageIdAtPosition = model.getLanguageIdAtPosition(validRange.startLineNumber, validRange.startColumn);
129
+ const tokenLanguageId = tokens.getLanguageId(idx);
130
+ return (tokenLanguageId === languageIdAtPosition && tokenType === 1 /* StandardTokenType.Comment */);
130
131
  });
131
132
  }
132
133
  const oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.ts","vs/editor/contrib/sectionHeaders/browser/sectionHeaders.ts"],"names":[],"mappings":"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","file":"sectionHeaders.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorOption, IEditorMinimapOptions } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { StandardTokenType } from '../../../common/encodedTokenAttributes.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IModelDeltaDecoration, MinimapPosition, MinimapSectionHeaderStyle, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { FindSectionHeaderOptions, SectionHeader } from '../../../common/services/findSectionHeaders.js';\n\nexport class SectionHeaderDetector extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID: string = 'editor.sectionHeaderDetector';\n\n\tprivate options: FindSectionHeaderOptions | undefined;\n\tprivate decorations: IEditorDecorationsCollection;\n\tprivate computeSectionHeaders: RunOnceScheduler;\n\tprivate computePromise: CancelablePromise<SectionHeader[]> | null;\n\tprivate currentOccurrences: { [decorationId: string]: SectionHeaderOccurrence };\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@ILanguageConfigurationService private readonly languageConfigurationService: ILanguageConfigurationService,\n\t\t@IEditorWorkerService private readonly editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis.decorations = this.editor.createDecorationsCollection();\n\n\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\tthis.computePromise = null;\n\t\tthis.currentOccurrences = {};\n\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelLanguage((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(languageConfigurationService.onDidChange((e) => {\n\t\t\tconst editorLanguageId = this.editor.getModel()?.getLanguageId();\n\t\t\tif (editorLanguageId && e.affects(editorLanguageId)) {\n\t\t\t\tthis.currentOccurrences = {};\n\t\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\t\tthis.stop();\n\t\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeConfiguration(e => {\n\t\t\tif (this.options && !e.hasChanged(EditorOption.minimap)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\n\t\t\t// Remove any links (for the getting disabled case)\n\t\t\tthis.updateDecorations([]);\n\n\t\t\t// Stop any computation (for the getting disabled case)\n\t\t\tthis.stop();\n\n\t\t\t// Start computing (for the getting enabled case)\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis.computeSectionHeaders.schedule();\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelTokens((e) => {\n\t\t\tif (!this.computeSectionHeaders.isScheduled()) {\n\t\t\t\tthis.computeSectionHeaders.schedule(1000);\n\t\t\t}\n\t\t}));\n\n\t\tthis.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n\t\t\tthis.findSectionHeaders();\n\t\t}, 250));\n\n\t\tthis.computeSectionHeaders.schedule(0);\n\t}\n\n\tprivate createOptions(minimap: Readonly<Required<IEditorMinimapOptions>>): FindSectionHeaderOptions | undefined {\n\t\tif (!minimap || !this.editor.hasModel()) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst languageId = this.editor.getModel().getLanguageId();\n\t\tif (!languageId) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n\t\tconst foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n\n\t\tif (!commentsConfiguration && !foldingRules?.markers) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tfoldingRules,\n\t\t\tmarkSectionHeaderRegex: minimap.markSectionHeaderRegex,\n\t\t\tfindMarkSectionHeaders: minimap.showMarkSectionHeaders,\n\t\t\tfindRegionSectionHeaders: minimap.showRegionSectionHeaders,\n\t\t};\n\t}\n\n\tprivate findSectionHeaders() {\n\t\tif (!this.editor.hasModel()\n\t\t\t|| (!this.options?.findMarkSectionHeaders && !this.options?.findRegionSectionHeaders)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model.isDisposed() || model.isTooLargeForSyncing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = model.getVersionId();\n\t\tthis.editorWorkerService.findSectionHeaders(model.uri, this.options)\n\t\t\t.then((sectionHeaders) => {\n\t\t\t\tif (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.updateDecorations(sectionHeaders);\n\t\t\t});\n\t}\n\n\tprivate updateDecorations(sectionHeaders: SectionHeader[]): void {\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model) {\n\t\t\t// Remove all section headers that should be in comments and are not in comments\n\t\t\tsectionHeaders = sectionHeaders.filter((sectionHeader) => {\n\t\t\t\tif (!sectionHeader.shouldBeInComments) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tconst validRange = model.validateRange(sectionHeader.range);\n\t\t\t\tconst tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n\t\t\t\tconst idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n\t\t\t\tconst tokenType = tokens.getStandardTokenType(idx);\n\t\t\t\tconst languageId = tokens.getLanguageId(idx);\n\t\t\t\treturn (languageId === model.getLanguageId() && tokenType === StandardTokenType.Comment);\n\t\t\t});\n\t\t}\n\n\t\tconst oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n\t\tconst newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n\n\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\tconst decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n\n\t\t\tthis.currentOccurrences = {};\n\t\t\tfor (let i = 0, len = decorations.length; i < len; i++) {\n\t\t\t\tconst occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n\t\t\t\tthis.currentOccurrences[occurrence.decorationId] = occurrence;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate stop(): void {\n\t\tthis.computeSectionHeaders.cancel();\n\t\tif (this.computePromise) {\n\t\t\tthis.computePromise.cancel();\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis.stop();\n\t\tthis.decorations.clear();\n\t}\n\n}\n\ninterface SectionHeaderOccurrence {\n\treadonly decorationId: string;\n}\n\nfunction decoration(sectionHeader: SectionHeader): IModelDeltaDecoration {\n\treturn {\n\t\trange: sectionHeader.range,\n\t\toptions: ModelDecorationOptions.createDynamic({\n\t\t\tdescription: 'section-header',\n\t\t\tstickiness: TrackedRangeStickiness.GrowsOnlyWhenTypingAfter,\n\t\t\tcollapseOnReplaceEdit: true,\n\t\t\tminimap: {\n\t\t\t\tcolor: undefined,\n\t\t\t\tposition: MinimapPosition.Inline,\n\t\t\t\tsectionHeaderStyle: sectionHeader.hasSeparatorLine ? MinimapSectionHeaderStyle.Underlined : MinimapSectionHeaderStyle.Normal,\n\t\t\t\tsectionHeaderText: sectionHeader.text,\n\t\t\t},\n\t\t})\n\t};\n}\n\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, EditorContributionInstantiation.AfterFirstRender);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorOption, IEditorMinimapOptions } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { StandardTokenType } from '../../../common/encodedTokenAttributes.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IModelDeltaDecoration, MinimapPosition, MinimapSectionHeaderStyle, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { FindSectionHeaderOptions, SectionHeader } from '../../../common/services/findSectionHeaders.js';\n\nexport class SectionHeaderDetector extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID: string = 'editor.sectionHeaderDetector';\n\n\tprivate options: FindSectionHeaderOptions | undefined;\n\tprivate decorations: IEditorDecorationsCollection;\n\tprivate computeSectionHeaders: RunOnceScheduler;\n\tprivate computePromise: CancelablePromise<SectionHeader[]> | null;\n\tprivate currentOccurrences: { [decorationId: string]: SectionHeaderOccurrence };\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@ILanguageConfigurationService private readonly languageConfigurationService: ILanguageConfigurationService,\n\t\t@IEditorWorkerService private readonly editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis.decorations = this.editor.createDecorationsCollection();\n\n\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\tthis.computePromise = null;\n\t\tthis.currentOccurrences = {};\n\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelLanguage((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(languageConfigurationService.onDidChange((e) => {\n\t\t\tconst editorLanguageId = this.editor.getModel()?.getLanguageId();\n\t\t\tif (editorLanguageId && e.affects(editorLanguageId)) {\n\t\t\t\tthis.currentOccurrences = {};\n\t\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\t\tthis.stop();\n\t\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeConfiguration(e => {\n\t\t\tif (this.options && !e.hasChanged(EditorOption.minimap)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\n\t\t\t// Remove any links (for the getting disabled case)\n\t\t\tthis.updateDecorations([]);\n\n\t\t\t// Stop any computation (for the getting disabled case)\n\t\t\tthis.stop();\n\n\t\t\t// Start computing (for the getting enabled case)\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis.computeSectionHeaders.schedule();\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelTokens((e) => {\n\t\t\tif (!this.computeSectionHeaders.isScheduled()) {\n\t\t\t\tthis.computeSectionHeaders.schedule(1000);\n\t\t\t}\n\t\t}));\n\n\t\tthis.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n\t\t\tthis.findSectionHeaders();\n\t\t}, 250));\n\n\t\tthis.computeSectionHeaders.schedule(0);\n\t}\n\n\tprivate createOptions(minimap: Readonly<Required<IEditorMinimapOptions>>): FindSectionHeaderOptions | undefined {\n\t\tif (!minimap || !this.editor.hasModel()) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst languageId = this.editor.getModel().getLanguageId();\n\t\tif (!languageId) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n\t\tconst foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n\n\t\tif (!commentsConfiguration && !foldingRules?.markers) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tfoldingRules,\n\t\t\tmarkSectionHeaderRegex: minimap.markSectionHeaderRegex,\n\t\t\tfindMarkSectionHeaders: minimap.showMarkSectionHeaders,\n\t\t\tfindRegionSectionHeaders: minimap.showRegionSectionHeaders,\n\t\t};\n\t}\n\n\tprivate findSectionHeaders() {\n\t\tif (!this.editor.hasModel()\n\t\t\t|| (!this.options?.findMarkSectionHeaders && !this.options?.findRegionSectionHeaders)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model.isDisposed() || model.isTooLargeForSyncing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = model.getVersionId();\n\t\tthis.editorWorkerService.findSectionHeaders(model.uri, this.options)\n\t\t\t.then((sectionHeaders) => {\n\t\t\t\tif (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.updateDecorations(sectionHeaders);\n\t\t\t});\n\t}\n\n\tprivate updateDecorations(sectionHeaders: SectionHeader[]): void {\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model) {\n\t\t\t// Remove all section headers that should be in comments and are not in comments\n\t\t\tsectionHeaders = sectionHeaders.filter((sectionHeader) => {\n\t\t\t\tif (!sectionHeader.shouldBeInComments) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tconst validRange = model.validateRange(sectionHeader.range);\n\t\t\t\tconst tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n\t\t\t\tconst idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n\t\t\t\tconst tokenType = tokens.getStandardTokenType(idx);\n\t\t\t\tconst languageId = tokens.getLanguageId(idx);\n\t\t\t\treturn (languageId === model.getLanguageId() && tokenType === StandardTokenType.Comment);\n\t\t\t});\n\t\t}\n\n\t\tconst oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n\t\tconst newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n\n\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\tconst decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n\n\t\t\tthis.currentOccurrences = {};\n\t\t\tfor (let i = 0, len = decorations.length; i < len; i++) {\n\t\t\t\tconst occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n\t\t\t\tthis.currentOccurrences[occurrence.decorationId] = occurrence;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate stop(): void {\n\t\tthis.computeSectionHeaders.cancel();\n\t\tif (this.computePromise) {\n\t\t\tthis.computePromise.cancel();\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis.stop();\n\t\tthis.decorations.clear();\n\t}\n\n}\n\ninterface SectionHeaderOccurrence {\n\treadonly decorationId: string;\n}\n\nfunction decoration(sectionHeader: SectionHeader): IModelDeltaDecoration {\n\treturn {\n\t\trange: sectionHeader.range,\n\t\toptions: ModelDecorationOptions.createDynamic({\n\t\t\tdescription: 'section-header',\n\t\t\tstickiness: TrackedRangeStickiness.GrowsOnlyWhenTypingAfter,\n\t\t\tcollapseOnReplaceEdit: true,\n\t\t\tminimap: {\n\t\t\t\tcolor: undefined,\n\t\t\t\tposition: MinimapPosition.Inline,\n\t\t\t\tsectionHeaderStyle: sectionHeader.hasSeparatorLine ? MinimapSectionHeaderStyle.Underlined : MinimapSectionHeaderStyle.Normal,\n\t\t\t\tsectionHeaderText: sectionHeader.text,\n\t\t\t},\n\t\t})\n\t};\n}\n\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, EditorContributionInstantiation.AfterFirstRender);\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.ts","vs/editor/contrib/sectionHeaders/browser/sectionHeaders.ts"],"names":[],"mappings":"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","file":"sectionHeaders.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorOption, IEditorMinimapOptions } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { StandardTokenType } from '../../../common/encodedTokenAttributes.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IModelDeltaDecoration, MinimapPosition, MinimapSectionHeaderStyle, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { FindSectionHeaderOptions, SectionHeader } from '../../../common/services/findSectionHeaders.js';\n\nexport class SectionHeaderDetector extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID: string = 'editor.sectionHeaderDetector';\n\n\tprivate options: FindSectionHeaderOptions | undefined;\n\tprivate decorations: IEditorDecorationsCollection;\n\tprivate computeSectionHeaders: RunOnceScheduler;\n\tprivate computePromise: CancelablePromise<SectionHeader[]> | null;\n\tprivate currentOccurrences: { [decorationId: string]: SectionHeaderOccurrence };\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@ILanguageConfigurationService private readonly languageConfigurationService: ILanguageConfigurationService,\n\t\t@IEditorWorkerService private readonly editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis.decorations = this.editor.createDecorationsCollection();\n\n\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\tthis.computePromise = null;\n\t\tthis.currentOccurrences = {};\n\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelLanguage((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(languageConfigurationService.onDidChange((e) => {\n\t\t\tconst editorLanguageId = this.editor.getModel()?.getLanguageId();\n\t\t\tif (editorLanguageId && e.affects(editorLanguageId)) {\n\t\t\t\tthis.currentOccurrences = {};\n\t\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\t\tthis.stop();\n\t\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeConfiguration(e => {\n\t\t\tif (this.options && !e.hasChanged(EditorOption.minimap)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\n\t\t\t// Remove any links (for the getting disabled case)\n\t\t\tthis.updateDecorations([]);\n\n\t\t\t// Stop any computation (for the getting disabled case)\n\t\t\tthis.stop();\n\n\t\t\t// Start computing (for the getting enabled case)\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis.computeSectionHeaders.schedule();\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelTokens((e) => {\n\t\t\tif (!this.computeSectionHeaders.isScheduled()) {\n\t\t\t\tthis.computeSectionHeaders.schedule(1000);\n\t\t\t}\n\t\t}));\n\n\t\tthis.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n\t\t\tthis.findSectionHeaders();\n\t\t}, 250));\n\n\t\tthis.computeSectionHeaders.schedule(0);\n\t}\n\n\tprivate createOptions(minimap: Readonly<Required<IEditorMinimapOptions>>): FindSectionHeaderOptions | undefined {\n\t\tif (!minimap || !this.editor.hasModel()) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst languageId = this.editor.getModel().getLanguageId();\n\t\tif (!languageId) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n\t\tconst foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n\n\t\tif (!commentsConfiguration && !foldingRules?.markers) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tfoldingRules,\n\t\t\tmarkSectionHeaderRegex: minimap.markSectionHeaderRegex,\n\t\t\tfindMarkSectionHeaders: minimap.showMarkSectionHeaders,\n\t\t\tfindRegionSectionHeaders: minimap.showRegionSectionHeaders,\n\t\t};\n\t}\n\n\tprivate findSectionHeaders() {\n\t\tif (!this.editor.hasModel()\n\t\t\t|| (!this.options?.findMarkSectionHeaders && !this.options?.findRegionSectionHeaders)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model.isDisposed() || model.isTooLargeForSyncing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = model.getVersionId();\n\t\tthis.editorWorkerService.findSectionHeaders(model.uri, this.options)\n\t\t\t.then((sectionHeaders) => {\n\t\t\t\tif (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.updateDecorations(sectionHeaders);\n\t\t\t});\n\t}\n\n\tprivate updateDecorations(sectionHeaders: SectionHeader[]): void {\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model) {\n\t\t\t// Remove all section headers that should be in comments and are not in comments\n\t\t\tsectionHeaders = sectionHeaders.filter((sectionHeader) => {\n\t\t\t\tif (!sectionHeader.shouldBeInComments) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tconst validRange = model.validateRange(sectionHeader.range);\n\t\t\t\tconst tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n\t\t\t\tconst idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n\t\t\t\tconst tokenType = tokens.getStandardTokenType(idx);\n\n\t\t\t\tconst languageIdAtPosition = model.getLanguageIdAtPosition(validRange.startLineNumber, validRange.startColumn);\n\t\t\t\tconst tokenLanguageId = tokens.getLanguageId(idx);\n\t\t\t\treturn (tokenLanguageId === languageIdAtPosition && tokenType === StandardTokenType.Comment);\n\t\t\t});\n\t\t}\n\n\t\tconst oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n\t\tconst newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n\n\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\tconst decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n\n\t\t\tthis.currentOccurrences = {};\n\t\t\tfor (let i = 0, len = decorations.length; i < len; i++) {\n\t\t\t\tconst occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n\t\t\t\tthis.currentOccurrences[occurrence.decorationId] = occurrence;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate stop(): void {\n\t\tthis.computeSectionHeaders.cancel();\n\t\tif (this.computePromise) {\n\t\t\tthis.computePromise.cancel();\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis.stop();\n\t\tthis.decorations.clear();\n\t}\n\n}\n\ninterface SectionHeaderOccurrence {\n\treadonly decorationId: string;\n}\n\nfunction decoration(sectionHeader: SectionHeader): IModelDeltaDecoration {\n\treturn {\n\t\trange: sectionHeader.range,\n\t\toptions: ModelDecorationOptions.createDynamic({\n\t\t\tdescription: 'section-header',\n\t\t\tstickiness: TrackedRangeStickiness.GrowsOnlyWhenTypingAfter,\n\t\t\tcollapseOnReplaceEdit: true,\n\t\t\tminimap: {\n\t\t\t\tcolor: undefined,\n\t\t\t\tposition: MinimapPosition.Inline,\n\t\t\t\tsectionHeaderStyle: sectionHeader.hasSeparatorLine ? MinimapSectionHeaderStyle.Underlined : MinimapSectionHeaderStyle.Normal,\n\t\t\t\tsectionHeaderText: sectionHeader.text,\n\t\t\t},\n\t\t})\n\t};\n}\n\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, EditorContributionInstantiation.AfterFirstRender);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorOption, IEditorMinimapOptions } from '../../../common/config/editorOptions.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { StandardTokenType } from '../../../common/encodedTokenAttributes.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IModelDeltaDecoration, MinimapPosition, MinimapSectionHeaderStyle, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { FindSectionHeaderOptions, SectionHeader } from '../../../common/services/findSectionHeaders.js';\n\nexport class SectionHeaderDetector extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID: string = 'editor.sectionHeaderDetector';\n\n\tprivate options: FindSectionHeaderOptions | undefined;\n\tprivate decorations: IEditorDecorationsCollection;\n\tprivate computeSectionHeaders: RunOnceScheduler;\n\tprivate computePromise: CancelablePromise<SectionHeader[]> | null;\n\tprivate currentOccurrences: { [decorationId: string]: SectionHeaderOccurrence };\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@ILanguageConfigurationService private readonly languageConfigurationService: ILanguageConfigurationService,\n\t\t@IEditorWorkerService private readonly editorWorkerService: IEditorWorkerService,\n\t) {\n\t\tsuper();\n\t\tthis.decorations = this.editor.createDecorationsCollection();\n\n\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\tthis.computePromise = null;\n\t\tthis.currentOccurrences = {};\n\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelLanguage((e) => {\n\t\t\tthis.currentOccurrences = {};\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\tthis.stop();\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(languageConfigurationService.onDidChange((e) => {\n\t\t\tconst editorLanguageId = this.editor.getModel()?.getLanguageId();\n\t\t\tif (editorLanguageId && e.affects(editorLanguageId)) {\n\t\t\t\tthis.currentOccurrences = {};\n\t\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\t\t\t\tthis.stop();\n\t\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeConfiguration(e => {\n\t\t\tif (this.options && !e.hasChanged(EditorOption.minimap)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options = this.createOptions(editor.getOption(EditorOption.minimap));\n\n\t\t\t// Remove any links (for the getting disabled case)\n\t\t\tthis.updateDecorations([]);\n\n\t\t\t// Stop any computation (for the getting disabled case)\n\t\t\tthis.stop();\n\n\t\t\t// Start computing (for the getting enabled case)\n\t\t\tthis.computeSectionHeaders.schedule(0);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidChangeModelContent(e => {\n\t\t\tthis.computeSectionHeaders.schedule();\n\t\t}));\n\n\t\tthis._register(editor.onDidChangeModelTokens((e) => {\n\t\t\tif (!this.computeSectionHeaders.isScheduled()) {\n\t\t\t\tthis.computeSectionHeaders.schedule(1000);\n\t\t\t}\n\t\t}));\n\n\t\tthis.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n\t\t\tthis.findSectionHeaders();\n\t\t}, 250));\n\n\t\tthis.computeSectionHeaders.schedule(0);\n\t}\n\n\tprivate createOptions(minimap: Readonly<Required<IEditorMinimapOptions>>): FindSectionHeaderOptions | undefined {\n\t\tif (!minimap || !this.editor.hasModel()) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst languageId = this.editor.getModel().getLanguageId();\n\t\tif (!languageId) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n\t\tconst foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n\n\t\tif (!commentsConfiguration && !foldingRules?.markers) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tfoldingRules,\n\t\t\tmarkSectionHeaderRegex: minimap.markSectionHeaderRegex,\n\t\t\tfindMarkSectionHeaders: minimap.showMarkSectionHeaders,\n\t\t\tfindRegionSectionHeaders: minimap.showRegionSectionHeaders,\n\t\t};\n\t}\n\n\tprivate findSectionHeaders() {\n\t\tif (!this.editor.hasModel()\n\t\t\t|| (!this.options?.findMarkSectionHeaders && !this.options?.findRegionSectionHeaders)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model.isDisposed() || model.isTooLargeForSyncing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelVersionId = model.getVersionId();\n\t\tthis.editorWorkerService.findSectionHeaders(model.uri, this.options)\n\t\t\t.then((sectionHeaders) => {\n\t\t\t\tif (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n\t\t\t\t\t// model changed in the meantime\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.updateDecorations(sectionHeaders);\n\t\t\t});\n\t}\n\n\tprivate updateDecorations(sectionHeaders: SectionHeader[]): void {\n\n\t\tconst model = this.editor.getModel();\n\t\tif (model) {\n\t\t\t// Remove all section headers that should be in comments and are not in comments\n\t\t\tsectionHeaders = sectionHeaders.filter((sectionHeader) => {\n\t\t\t\tif (!sectionHeader.shouldBeInComments) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tconst validRange = model.validateRange(sectionHeader.range);\n\t\t\t\tconst tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n\t\t\t\tconst idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n\t\t\t\tconst tokenType = tokens.getStandardTokenType(idx);\n\n\t\t\t\tconst languageIdAtPosition = model.getLanguageIdAtPosition(validRange.startLineNumber, validRange.startColumn);\n\t\t\t\tconst tokenLanguageId = tokens.getLanguageId(idx);\n\t\t\t\treturn (tokenLanguageId === languageIdAtPosition && tokenType === StandardTokenType.Comment);\n\t\t\t});\n\t\t}\n\n\t\tconst oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n\t\tconst newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n\n\t\tthis.editor.changeDecorations((changeAccessor) => {\n\t\t\tconst decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n\n\t\t\tthis.currentOccurrences = {};\n\t\t\tfor (let i = 0, len = decorations.length; i < len; i++) {\n\t\t\t\tconst occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n\t\t\t\tthis.currentOccurrences[occurrence.decorationId] = occurrence;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate stop(): void {\n\t\tthis.computeSectionHeaders.cancel();\n\t\tif (this.computePromise) {\n\t\t\tthis.computePromise.cancel();\n\t\t\tthis.computePromise = null;\n\t\t}\n\t}\n\n\tpublic override dispose(): void {\n\t\tsuper.dispose();\n\t\tthis.stop();\n\t\tthis.decorations.clear();\n\t}\n\n}\n\ninterface SectionHeaderOccurrence {\n\treadonly decorationId: string;\n}\n\nfunction decoration(sectionHeader: SectionHeader): IModelDeltaDecoration {\n\treturn {\n\t\trange: sectionHeader.range,\n\t\toptions: ModelDecorationOptions.createDynamic({\n\t\t\tdescription: 'section-header',\n\t\t\tstickiness: TrackedRangeStickiness.GrowsOnlyWhenTypingAfter,\n\t\t\tcollapseOnReplaceEdit: true,\n\t\t\tminimap: {\n\t\t\t\tcolor: undefined,\n\t\t\t\tposition: MinimapPosition.Inline,\n\t\t\t\tsectionHeaderStyle: sectionHeader.hasSeparatorLine ? MinimapSectionHeaderStyle.Underlined : MinimapSectionHeaderStyle.Normal,\n\t\t\t\tsectionHeaderText: sectionHeader.text,\n\t\t\t},\n\t\t})\n\t};\n}\n\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, EditorContributionInstantiation.AfterFirstRender);\n"]}
@@ -131,7 +131,7 @@ class GrowSelectionAction extends AbstractSmartSelect {
131
131
  constructor() {
132
132
  super(true, {
133
133
  id: 'editor.action.smartSelect.expand',
134
- label: nls.localize2(1408, "Expand Selection"),
134
+ label: nls.localize2(1414, "Expand Selection"),
135
135
  precondition: undefined,
136
136
  kbOpts: {
137
137
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -145,7 +145,7 @@ class GrowSelectionAction extends AbstractSmartSelect {
145
145
  menuOpts: {
146
146
  menuId: MenuId.MenubarSelectionMenu,
147
147
  group: '1_basic',
148
- title: nls.localize(1406, "&&Expand Selection"),
148
+ title: nls.localize(1412, "&&Expand Selection"),
149
149
  order: 2
150
150
  }
151
151
  });
@@ -157,7 +157,7 @@ class ShrinkSelectionAction extends AbstractSmartSelect {
157
157
  constructor() {
158
158
  super(false, {
159
159
  id: 'editor.action.smartSelect.shrink',
160
- label: nls.localize2(1409, "Shrink Selection"),
160
+ label: nls.localize2(1415, "Shrink Selection"),
161
161
  precondition: undefined,
162
162
  kbOpts: {
163
163
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -171,7 +171,7 @@ class ShrinkSelectionAction extends AbstractSmartSelect {
171
171
  menuOpts: {
172
172
  menuId: MenuId.MenubarSelectionMenu,
173
173
  group: '1_basic',
174
- title: nls.localize(1407, "&&Shrink Selection"),
174
+ title: nls.localize(1413, "&&Shrink Selection"),
175
175
  order: 3
176
176
  }
177
177
  });
@@ -40,9 +40,9 @@ let SnippetController2 = class SnippetController2 {
40
40
  static get(editor) {
41
41
  return editor.getContribution(SnippetController2_1.ID);
42
42
  }
43
- static { this.InSnippetMode = new RawContextKey('inSnippetMode', false, localize(1410, "Whether the editor in current in snippet mode")); }
44
- static { this.HasNextTabstop = new RawContextKey('hasNextTabstop', false, localize(1411, "Whether there is a next tab stop when in snippet mode")); }
45
- static { this.HasPrevTabstop = new RawContextKey('hasPrevTabstop', false, localize(1412, "Whether there is a previous tab stop when in snippet mode")); }
43
+ static { this.InSnippetMode = new RawContextKey('inSnippetMode', false, localize(1416, "Whether the editor in current in snippet mode")); }
44
+ static { this.HasNextTabstop = new RawContextKey('hasNextTabstop', false, localize(1417, "Whether there is a next tab stop when in snippet mode")); }
45
+ static { this.HasPrevTabstop = new RawContextKey('hasPrevTabstop', false, localize(1418, "Whether there is a previous tab stop when in snippet mode")); }
46
46
  constructor(_editor, _logService, _languageFeaturesService, contextKeyService, _languageConfigurationService) {
47
47
  this._editor = _editor;
48
48
  this._logService = _logService;
@@ -128,7 +128,7 @@ let SnippetController2 = class SnippetController2 {
128
128
  sortText: 'a'.repeat(i + 1),
129
129
  range: activeChoice.range,
130
130
  filterText: isAnyOfOptions ? `${word}_${option.value}` : undefined,
131
- command: { id: 'jumpToNextSnippetPlaceholder', title: localize(1413, 'Go to next placeholder...') }
131
+ command: { id: 'jumpToNextSnippetPlaceholder', title: localize(1419, 'Go to next placeholder...') }
132
132
  });
133
133
  }
134
134
  return { suggestions };
@@ -289,6 +289,12 @@ export class FormatString extends Marker {
289
289
  else if (this.shorthandName === 'camelcase') {
290
290
  return !value ? '' : this._toCamelCase(value);
291
291
  }
292
+ else if (this.shorthandName === 'kebabcase') {
293
+ return !value ? '' : this._toKebabCase(value);
294
+ }
295
+ else if (this.shorthandName === 'snakecase') {
296
+ return !value ? '' : this._toSnakeCase(value);
297
+ }
292
298
  else if (Boolean(value) && typeof this.ifValue === 'string') {
293
299
  return this.ifValue;
294
300
  }
@@ -299,6 +305,28 @@ export class FormatString extends Marker {
299
305
  return value || '';
300
306
  }
301
307
  }
308
+ _toKebabCase(value) {
309
+ const match = value.match(/[a-z0-9]+/gi);
310
+ if (!match) {
311
+ return value;
312
+ }
313
+ if (!value.match(/[a-z0-9]/)) {
314
+ return value
315
+ .trim()
316
+ .toLowerCase()
317
+ .replace(/^_+|_+$/g, '')
318
+ .replace(/[\s_]+/g, '-');
319
+ }
320
+ const match2 = value
321
+ .trim()
322
+ .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);
323
+ if (!match2) {
324
+ return value;
325
+ }
326
+ return match2
327
+ .map(x => x.toLowerCase())
328
+ .join('-');
329
+ }
302
330
  _toPascalCase(value) {
303
331
  const match = value.match(/[a-z0-9]+/gi);
304
332
  if (!match) {
@@ -322,6 +350,11 @@ export class FormatString extends Marker {
322
350
  })
323
351
  .join('');
324
352
  }
353
+ _toSnakeCase(value) {
354
+ return value.replace(/([a-z])([A-Z])/g, '$1_$2')
355
+ .replace(/[\s\-]+/g, '_')
356
+ .toLowerCase();
357
+ }
325
358
  clone() {
326
359
  const ret = new FormatString(this.index, this.shorthandName, this.ifValue, this.elseValue);
327
360
  return ret;