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

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 (410) 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 +34 -6
  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/actionbar/actionViewItems.js.map +1 -1
  23. package/esm/vs/base/browser/ui/button/button.js +15 -8
  24. package/esm/vs/base/browser/ui/button/button.js.map +1 -1
  25. package/esm/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css +3 -8
  26. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  27. package/esm/vs/base/browser/ui/findinput/findInput.js +6 -1
  28. package/esm/vs/base/browser/ui/findinput/findInput.js.map +1 -1
  29. package/esm/vs/base/browser/ui/inputbox/inputBox.js +17 -1
  30. package/esm/vs/base/browser/ui/inputbox/inputBox.js.map +1 -1
  31. package/esm/vs/base/browser/ui/list/list.css +1 -0
  32. package/esm/vs/base/browser/ui/toggle/toggle.js +78 -6
  33. package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
  34. package/esm/vs/base/browser/ui/toolbar/toolbar.js +3 -0
  35. package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
  36. package/esm/vs/base/common/codiconsLibrary.js +11 -2
  37. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  38. package/esm/vs/base/common/defaultAccount.js +6 -0
  39. package/esm/vs/base/common/defaultAccount.js.map +1 -0
  40. package/esm/vs/base/common/equals.js +73 -24
  41. package/esm/vs/base/common/equals.js.map +1 -1
  42. package/esm/vs/base/common/event.js +14 -4
  43. package/esm/vs/base/common/event.js.map +1 -1
  44. package/esm/vs/base/common/iterator.js.map +1 -1
  45. package/esm/vs/base/common/keybindings.js +0 -8
  46. package/esm/vs/base/common/keybindings.js.map +1 -1
  47. package/esm/vs/base/common/lifecycle.js +2 -2
  48. package/esm/vs/base/common/lifecycle.js.map +1 -1
  49. package/esm/vs/base/common/marshallingIds.js.map +1 -1
  50. package/esm/vs/base/common/observableInternal/index.js +1 -1
  51. package/esm/vs/base/common/observableInternal/index.js.map +1 -1
  52. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -1
  53. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  54. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +16 -0
  55. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  56. package/esm/vs/base/common/observableInternal/utils/utils.js +11 -0
  57. package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
  58. package/esm/vs/base/common/product.js.map +1 -1
  59. package/esm/vs/base/common/strings.js +3 -1
  60. package/esm/vs/base/common/strings.js.map +1 -1
  61. package/esm/vs/editor/browser/controller/dragScrolling.js +2 -1
  62. package/esm/vs/editor/browser/controller/dragScrolling.js.map +1 -1
  63. package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js +73 -2
  64. package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js.map +1 -1
  65. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +7 -51
  66. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
  67. package/esm/vs/editor/browser/controller/editContext/screenReaderUtils.js.map +1 -1
  68. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +7 -20
  69. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js.map +1 -1
  70. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js +14 -44
  71. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js.map +1 -1
  72. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextRegistry.js +19 -0
  73. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextRegistry.js.map +1 -0
  74. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js +14 -1
  75. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js.map +1 -1
  76. package/esm/vs/editor/browser/controller/mouseHandler.js +5 -2
  77. package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
  78. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  79. package/esm/vs/editor/browser/observableCodeEditor.js +32 -15
  80. package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
  81. package/esm/vs/editor/browser/services/editorWorkerService.js +6 -2
  82. package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
  83. package/esm/vs/editor/browser/view.js +11 -2
  84. package/esm/vs/editor/browser/view.js.map +1 -1
  85. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +5 -2
  86. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
  87. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +10 -0
  88. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  89. package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js.map +1 -1
  90. package/esm/vs/editor/browser/widget/multiDiffEditor/style.css +48 -0
  91. package/esm/vs/editor/common/config/editorConfigurationSchema.js +49 -47
  92. package/esm/vs/editor/common/config/editorConfigurationSchema.js.map +1 -1
  93. package/esm/vs/editor/common/config/editorOptions.js +410 -410
  94. package/esm/vs/editor/common/config/fontInfo.js +1 -1
  95. package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
  96. package/esm/vs/editor/common/core/editorColorRegistry.js +69 -69
  97. package/esm/vs/editor/common/core/edits/edit.js +19 -0
  98. package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
  99. package/esm/vs/editor/common/core/edits/stringEdit.js +13 -0
  100. package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
  101. package/esm/vs/editor/common/core/edits/textEdit.js +0 -3
  102. package/esm/vs/editor/common/core/edits/textEdit.js.map +1 -1
  103. package/esm/vs/editor/common/core/text/positionToOffsetImpl.js +24 -10
  104. package/esm/vs/editor/common/core/text/positionToOffsetImpl.js.map +1 -1
  105. package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
  106. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  107. package/esm/vs/editor/common/cursor/cursorWordOperations.js +6 -3
  108. package/esm/vs/editor/common/cursor/cursorWordOperations.js.map +1 -1
  109. package/esm/vs/editor/common/editorContextKeys.js +47 -47
  110. package/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js +2 -2
  111. package/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js.map +1 -1
  112. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  113. package/esm/vs/editor/common/languages/nullTokenize.js +1 -1
  114. package/esm/vs/editor/common/languages/nullTokenize.js.map +1 -1
  115. package/esm/vs/editor/common/languages/supports/tokenization.js +3 -0
  116. package/esm/vs/editor/common/languages/supports/tokenization.js.map +1 -1
  117. package/esm/vs/editor/common/languages.js +58 -57
  118. package/esm/vs/editor/common/languages.js.map +1 -1
  119. package/esm/vs/editor/common/model/decorationProvider.js +21 -1
  120. package/esm/vs/editor/common/model/decorationProvider.js.map +1 -1
  121. package/esm/vs/editor/common/model/editStack.js +1 -1
  122. package/esm/vs/editor/common/model/textModel.js +49 -30
  123. package/esm/vs/editor/common/model/textModel.js.map +1 -1
  124. package/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js +6 -3
  125. package/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js.map +1 -1
  126. package/esm/vs/editor/common/model/tokens/annotations.js +177 -0
  127. package/esm/vs/editor/common/model/tokens/annotations.js.map +1 -0
  128. package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js +131 -0
  129. package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js.map +1 -0
  130. package/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js +9 -0
  131. package/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js.map +1 -1
  132. package/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js +9 -0
  133. package/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js.map +1 -1
  134. package/esm/vs/editor/common/standaloneStrings.js +11 -11
  135. package/esm/vs/editor/common/textModelEditSource.js +2 -0
  136. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  137. package/esm/vs/editor/common/textModelEvents.js.map +1 -1
  138. package/esm/vs/editor/common/viewLayout/lineDecorations.js.map +1 -1
  139. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +3 -3
  140. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
  141. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  142. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  143. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  144. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  145. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +71 -53
  146. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js.map +1 -1
  147. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  148. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  149. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  150. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  151. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  152. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  153. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  154. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  155. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  156. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  157. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  158. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  159. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  160. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  161. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  162. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +23 -10
  163. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js.map +1 -1
  164. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  165. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  166. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  167. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  168. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  169. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  170. package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
  171. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  172. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  173. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  174. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  175. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  176. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  177. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  178. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  179. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  180. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  181. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  182. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  183. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  184. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  185. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  186. package/esm/vs/editor/contrib/hover/browser/hover.css +1 -1
  187. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  188. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  189. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  190. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +10 -10
  191. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
  192. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  193. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  194. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  195. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +1 -0
  196. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
  197. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  198. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js +1 -0
  199. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js.map +1 -1
  200. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +50 -21
  201. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js.map +1 -1
  202. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -12
  203. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js.map +1 -1
  204. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +7 -1
  205. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
  206. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  207. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  208. package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js +2 -1
  209. package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js.map +1 -1
  210. package/esm/vs/editor/contrib/inlineCompletions/browser/model/InlineSuggestAlternativeAction.js +8 -0
  211. package/esm/vs/editor/contrib/inlineCompletions/browser/model/InlineSuggestAlternativeAction.js.map +1 -0
  212. package/esm/vs/editor/contrib/inlineCompletions/browser/model/editKind.js +198 -0
  213. package/esm/vs/editor/contrib/inlineCompletions/browser/model/editKind.js.map +1 -0
  214. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionIsVisible.js +40 -0
  215. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionIsVisible.js.map +1 -0
  216. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +128 -70
  217. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  218. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +59 -11
  219. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  220. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +152 -95
  221. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
  222. package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js +113 -54
  223. package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js.map +1 -1
  224. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +317 -75
  225. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js.map +1 -1
  226. package/esm/vs/editor/contrib/inlineCompletions/browser/telemetry.js.map +1 -1
  227. package/esm/vs/editor/contrib/inlineCompletions/browser/utils.js +20 -0
  228. package/esm/vs/editor/contrib/inlineCompletions/browser/utils.js.map +1 -1
  229. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +59 -42
  230. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  231. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +29 -8
  232. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
  233. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +78 -46
  234. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  235. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +9 -4
  236. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  237. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +11 -4
  238. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  239. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +81 -41
  240. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  241. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js +48 -0
  242. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
  243. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +18 -15
  244. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  245. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js +3 -4
  246. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js.map +1 -1
  247. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +6 -7
  248. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
  249. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +4 -5
  250. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
  251. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +4 -3
  252. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  253. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +8 -8
  254. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
  255. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +9 -7
  256. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
  257. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +203 -41
  258. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
  259. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js +189 -0
  260. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js.map +1 -0
  261. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +85 -102
  262. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
  263. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +75 -32
  264. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -1
  265. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistnaceWidgetPlacement.js +121 -0
  266. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistnaceWidgetPlacement.js.map +1 -0
  267. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
  268. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
  269. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +22 -20
  270. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  271. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +15 -5
  272. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
  273. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.css +39 -6
  274. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +10 -5
  275. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -1
  276. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  277. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  278. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -32
  279. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
  280. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  281. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  282. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  283. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  284. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  285. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  286. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  287. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  288. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +25 -27
  289. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
  290. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  291. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  292. package/esm/vs/editor/contrib/rename/browser/rename.js +19 -15
  293. package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
  294. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  295. package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js +3 -2
  296. package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js.map +1 -1
  297. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  298. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  299. package/esm/vs/editor/contrib/snippet/browser/snippetParser.js +33 -0
  300. package/esm/vs/editor/contrib/snippet/browser/snippetParser.js.map +1 -1
  301. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  302. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  303. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +12 -4
  304. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
  305. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +1 -0
  306. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
  307. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -8
  308. package/esm/vs/editor/contrib/suggest/browser/suggest.js.map +1 -1
  309. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +39 -28
  310. package/esm/vs/editor/contrib/suggest/browser/suggestController.js.map +1 -1
  311. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +1 -0
  312. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js.map +1 -1
  313. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +22 -18
  314. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js.map +1 -1
  315. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +28 -6
  316. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
  317. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  318. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  319. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  320. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  321. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  322. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  323. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  324. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  325. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  326. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  327. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +19 -2
  328. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js.map +1 -1
  329. package/esm/vs/editor/editor.api.d.ts +34 -3
  330. package/esm/vs/editor/standalone/browser/standaloneLanguages.js +2 -2
  331. package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
  332. package/esm/vs/editor/standalone/browser/standaloneServices.js +11 -1
  333. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  334. package/esm/vs/editor/standalone/common/monarch/monarchLexer.js +1 -1
  335. package/esm/vs/editor/standalone/common/monarch/monarchLexer.js.map +1 -1
  336. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  337. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  338. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  339. package/esm/vs/platform/actionWidget/browser/actionWidget.css +11 -8
  340. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  341. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  342. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  343. package/esm/vs/platform/actions/common/actions.js +11 -5
  344. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  345. package/esm/vs/platform/actions/common/menuService.js +2 -2
  346. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  347. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  348. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  349. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  350. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  351. package/esm/vs/platform/{product/common/productService.js → defaultAccount/common/defaultAccount.js} +2 -2
  352. package/esm/vs/platform/defaultAccount/common/defaultAccount.js.map +1 -0
  353. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  354. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  355. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  356. package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
  357. package/esm/vs/platform/instantiation/common/instantiationService.js +1 -8
  358. package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
  359. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  360. package/esm/vs/platform/list/browser/listService.js +27 -27
  361. package/esm/vs/platform/log/common/log.js +1 -1
  362. package/esm/vs/platform/log/common/log.js.map +1 -1
  363. package/esm/vs/platform/markers/common/markerService.js +6 -6
  364. package/esm/vs/platform/markers/common/markerService.js.map +1 -1
  365. package/esm/vs/platform/markers/common/markers.js +6 -6
  366. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  367. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  368. package/esm/vs/platform/quickinput/browser/media/quickInput.css +45 -7
  369. package/esm/vs/platform/quickinput/browser/quickInput.js +51 -15
  370. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  371. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  372. package/esm/vs/platform/quickinput/browser/quickInputBox.js +13 -1
  373. package/esm/vs/platform/quickinput/browser/quickInputBox.js.map +1 -1
  374. package/esm/vs/platform/quickinput/browser/quickInputController.js +22 -12
  375. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  376. package/esm/vs/platform/quickinput/browser/quickInputList.js +17 -12
  377. package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
  378. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +36 -8
  379. package/esm/vs/platform/quickinput/browser/quickInputUtils.js.map +1 -1
  380. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  381. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +3 -3
  382. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
  383. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +8 -4
  384. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
  385. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  386. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  387. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -17
  388. package/esm/vs/platform/theme/common/colors/baseColors.js.map +1 -1
  389. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  390. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  391. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  392. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  393. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  394. package/esm/vs/platform/theme/common/colors/minimapColors.js +13 -13
  395. package/esm/vs/platform/theme/common/colors/minimapColors.js.map +1 -1
  396. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  397. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  398. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  399. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  400. package/esm/vs/platform/undoRedo/common/undoRedoService.js +21 -21
  401. package/esm/vs/platform/undoRedo/common/undoRedoService.js.map +1 -1
  402. package/esm/vs/platform/window/common/window.js +1 -1
  403. package/esm/vs/platform/window/common/window.js.map +1 -1
  404. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  405. package/monaco.d.ts +34 -3
  406. package/package.json +2 -2
  407. package/version.txt +1 -1
  408. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +0 -16
  409. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +0 -1
  410. package/esm/vs/platform/product/common/productService.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts"],"names":[],"mappings":"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","file":"copyPasteController.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 { addDisposableListener } from '../../../../base/browser/dom.js';\nimport { IAction } from '../../../../base/common/actions.js';\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancelablePromise, createCancelablePromise, DeferredPromise, raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { createStringDataTransferItem, IReadonlyVSDataTransfer, matchesMimeType, UriList, VSDataTransfer } from '../../../../base/common/dataTransfer.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { upcast } from '../../../../base/common/types.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { localize } from '../../../../nls.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IProgressService, ProgressLocation } from '../../../../platform/progress/common/progress.js';\nimport { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ClipboardEventUtils, InMemoryClipboardMetadataManager } from '../../../browser/controller/editContext/clipboardUtils.js';\nimport { toExternalVSDataTransfer, toVSDataTransfer } from '../../../browser/dataTransfer.js';\nimport { ICodeEditor, PastePayload } from '../../../browser/editorBrowser.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { IRange, Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { Handler, IEditorContribution } from '../../../common/editorCommon.js';\nimport { DocumentPasteContext, DocumentPasteEdit, DocumentPasteEditProvider, DocumentPasteTriggerKind } from '../../../common/languages.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CodeEditorStateFlag, EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { PreferredPasteConfiguration } from './copyPasteContribution.js';\nimport { DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport { createCombinedWorkspaceEdit, sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\n\nexport const changePasteTypeCommandId = 'editor.changePasteType';\n\nexport const pasteAsPreferenceConfig = 'editor.pasteAs.preferences';\n\nexport const pasteWidgetVisibleCtx = new RawContextKey<boolean>('pasteWidgetVisible', false, localize('pasteWidgetVisible', \"Whether the paste widget is showing\"));\n\nconst vscodeClipboardMime = 'application/vnd.code.copymetadata';\n\ninterface CopyMetadata {\n\treadonly id?: string;\n\treadonly providerCopyMimeTypes?: readonly string[];\n\n\treadonly defaultPastePayload: Omit<PastePayload, 'text'>;\n}\n\ntype PasteEditWithProvider = DocumentPasteEdit & {\n\tprovider: DocumentPasteEditProvider;\n};\n\n\ninterface DocumentPasteWithProviderEditsSession {\n\tedits: readonly PasteEditWithProvider[];\n\tdispose(): void;\n}\n\nexport type PastePreference =\n\t| { readonly only: HierarchicalKind }\n\t| { readonly preferences: readonly HierarchicalKind[] }\n\t| { readonly providerId: string } // Only used internally\n\t;\n\ninterface CopyOperation {\n\treadonly providerMimeTypes: readonly string[];\n\treadonly operation: CancelablePromise<IReadonlyVSDataTransfer | undefined>;\n}\n\nexport class CopyPasteController extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.copyPasteActionController';\n\n\tpublic static get(editor: ICodeEditor): CopyPasteController | null {\n\t\treturn editor.getContribution<CopyPasteController>(CopyPasteController.ID);\n\t}\n\n\tprivate static _configureDefaultAction?: IAction;\n\n\t/**\n\t * Global tracking the last copy operation.\n\t *\n\t * This is shared across all editors so that you can copy and paste between groups.\n\t *\n\t * TODO: figure out how to make this work with multiple windows\n\t */\n\tprivate static _currentCopyOperation?: {\n\t\treadonly handle: string;\n\t\treadonly operations: ReadonlyArray<CopyOperation>;\n\t};\n\n\tprivate readonly _editor: ICodeEditor;\n\n\tprivate _currentPasteOperation?: CancelablePromise<void>;\n\tprivate _pasteAsActionContext?: { readonly preferred?: PastePreference };\n\n\tprivate readonly _pasteProgressManager: InlineProgressManager;\n\tprivate readonly _postPasteWidgetManager: PostEditWidgetManager<PasteEditWithProvider>;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILogService private readonly _logService: ILogService,\n\t\t@IBulkEditService private readonly _bulkEditService: IBulkEditService,\n\t\t@IClipboardService private readonly _clipboardService: IClipboardService,\n\t\t@ICommandService private readonly _commandService: ICommandService,\n\t\t@IConfigurationService private readonly _configService: IConfigurationService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t\t@IQuickInputService private readonly _quickInputService: IQuickInputService,\n\t\t@IProgressService private readonly _progressService: IProgressService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\n\t\tconst container = editor.getContainerDomNode();\n\t\tthis._register(addDisposableListener(container, 'copy', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'cut', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'paste', e => this.handlePaste(e), true));\n\n\t\tthis._pasteProgressManager = this._register(new InlineProgressManager('pasteIntoEditor', editor, instantiationService));\n\n\t\tthis._postPasteWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'pasteIntoEditor', editor, pasteWidgetVisibleCtx,\n\t\t\t{ id: changePasteTypeCommandId, label: localize('postPasteWidgetTitle', \"Show paste options...\") },\n\t\t\t() => CopyPasteController._configureDefaultAction ? [CopyPasteController._configureDefaultAction] : []\n\t\t));\n\t}\n\n\tpublic changePasteType() {\n\t\tthis._postPasteWidgetManager.tryShowSelector();\n\t}\n\n\tpublic async pasteAs(preferred?: PastePreference) {\n\t\tthis._logService.trace('CopyPasteController.pasteAs');\n\t\tthis._editor.focus();\n\t\ttry {\n\t\t\tthis._logService.trace('Before calling editor.action.clipboardPasteAction');\n\t\t\tthis._pasteAsActionContext = { preferred };\n\t\t\tawait this._commandService.executeCommand('editor.action.clipboardPasteAction');\n\t\t} finally {\n\t\t\tthis._pasteAsActionContext = undefined;\n\t\t}\n\t}\n\n\tpublic clearWidgets() {\n\t\tthis._postPasteWidgetManager.clear();\n\t}\n\n\tprivate isPasteAsEnabled(): boolean {\n\t\treturn this._editor.getOption(EditorOption.pasteAs).enabled;\n\t}\n\n\tpublic async finishedPaste(): Promise<void> {\n\t\tawait this._currentPasteOperation;\n\t}\n\n\tprivate handleCopy(e: ClipboardEvent) {\n\t\tlet id: string | null = null;\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst storedMetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tid = storedMetadata?.id || null;\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy for id : ', id, ' with text.length : ', text.length);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy');\n\t\t}\n\t\tif (!this._editor.hasTextFocus()) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Explicitly clear the clipboard internal state.\n\t\t// This is needed because on web, the browser clipboard is faked out using an in-memory store.\n\t\t// This means the resources clipboard is not properly updated when copying from the editor.\n\t\tthis._clipboardService.clearInternalState?.();\n\n\t\tif (!e.clipboardData || !this.isPasteAsEnabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!model || !selections?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableEmptySelectionClipboard = this._editor.getOption(EditorOption.emptySelectionClipboard);\n\n\t\tlet ranges: readonly IRange[] = selections;\n\t\tconst wasFromEmptySelection = selections.length === 1 && selections[0].isEmpty();\n\t\tif (wasFromEmptySelection) {\n\t\t\tif (!enableEmptySelectionClipboard) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tranges = [new Range(ranges[0].startLineNumber, 1, ranges[0].startLineNumber, 1 + model.getLineLength(ranges[0].startLineNumber))];\n\t\t}\n\n\t\tconst toCopy = this._editor._getViewModel()?.getPlainTextToCopy(selections, enableEmptySelectionClipboard, platform.isWindows);\n\t\tconst multicursorText = Array.isArray(toCopy) ? toCopy : null;\n\n\t\tconst defaultPastePayload = {\n\t\t\tmulticursorText,\n\t\t\tpasteOnNewLine: wasFromEmptySelection,\n\t\t\tmode: null\n\t\t};\n\n\t\tconst providers = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(x => !!x.prepareDocumentPaste);\n\t\tif (!providers.length) {\n\t\t\tthis.setCopyMetadata(e.clipboardData, { defaultPastePayload });\n\t\t\treturn;\n\t\t}\n\n\t\tconst dataTransfer = toVSDataTransfer(e.clipboardData);\n\t\tconst providerCopyMimeTypes = providers.flatMap(x => x.copyMimeTypes ?? []);\n\n\t\t// Save off a handle pointing to data that VS Code maintains.\n\t\tconst handle = id ?? generateUuid();\n\t\tthis.setCopyMetadata(e.clipboardData, {\n\t\t\tid: handle,\n\t\t\tproviderCopyMimeTypes,\n\t\t\tdefaultPastePayload\n\t\t});\n\n\t\tconst operations = providers.map((provider): CopyOperation => {\n\t\t\treturn {\n\t\t\t\tproviderMimeTypes: provider.copyMimeTypes,\n\t\t\t\toperation: createCancelablePromise(token =>\n\t\t\t\t\tprovider.prepareDocumentPaste!(model, ranges, dataTransfer, token)\n\t\t\t\t\t\t.catch(err => {\n\t\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}))\n\t\t\t};\n\t\t});\n\n\t\tCopyPasteController._currentCopyOperation?.operations.forEach(entry => entry.operation.cancel());\n\t\tCopyPasteController._currentCopyOperation = { handle, operations };\n\t}\n\n\tprivate async handlePaste(e: ClipboardEvent) {\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst metadataComputed = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste for id : ', metadataComputed?.id);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste');\n\t\t}\n\t\tif (!e.clipboardData || !this._editor.hasTextFocus()) {\n\t\t\treturn;\n\t\t}\n\n\t\tMessageController.get(this._editor)?.closeMessage();\n\t\tthis._currentPasteOperation?.cancel();\n\t\tthis._currentPasteOperation = undefined;\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!selections?.length || !model) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tthis._editor.getOption(EditorOption.readOnly) // Never enabled if editor is readonly.\n\t\t\t|| (!this.isPasteAsEnabled() && !this._pasteAsActionContext) // Or feature disabled (but still enable if paste was explicitly requested)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst metadata = this.fetchCopyMetadata(e);\n\t\tthis._logService.trace('CopyPasteController#handlePaste with metadata : ', metadata?.id, ' and text.length : ', e.clipboardData.getData('text/plain').length);\n\t\tconst dataTransfer = toExternalVSDataTransfer(e.clipboardData);\n\t\tdataTransfer.delete(vscodeClipboardMime);\n\n\t\tconst fileTypes = Array.from(e.clipboardData.files).map(file => file.type);\n\n\t\tconst allPotentialMimeTypes = [\n\t\t\t...e.clipboardData.types,\n\t\t\t...fileTypes,\n\t\t\t...metadata?.providerCopyMimeTypes ?? [],\n\t\t\t// TODO: always adds `uri-list` because this get set if there are resources in the system clipboard.\n\t\t\t// However we can only check the system clipboard async. For this early check, just add it in.\n\t\t\t// We filter providers again once we have the final dataTransfer we will use.\n\t\t\tMimes.uriList,\n\t\t];\n\n\t\tconst allProviders = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(provider => {\n\t\t\t\t// Filter out providers that don't match the requested paste types\n\t\t\t\tconst preference = this._pasteAsActionContext?.preferred;\n\t\t\t\tif (preference) {\n\t\t\t\t\tif (!this.providerMatchesPreference(provider, preference)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// And providers that don't handle any of mime types in the clipboard\n\t\t\t\treturn provider.pasteMimeTypes?.some(type => matchesMimeType(type, allPotentialMimeTypes));\n\t\t\t});\n\t\tif (!allProviders.length) {\n\t\t\tif (this._pasteAsActionContext?.preferred) {\n\t\t\t\tthis.showPasteAsNoEditMessage(selections, this._pasteAsActionContext.preferred);\n\n\t\t\t\t// Also prevent default paste from applying\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent the editor's default paste handler from running.\n\t\t// Note that after this point, we are fully responsible for handling paste.\n\t\t// If we can't provider a paste for any reason, we need to explicitly delegate pasting back to the editor.\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\n\t\tif (this._pasteAsActionContext) {\n\t\t\tthis.showPasteAsPick(this._pasteAsActionContext.preferred, allProviders, selections, dataTransfer, metadata);\n\t\t} else {\n\t\t\tthis.doPasteInline(allProviders, selections, dataTransfer, metadata, e);\n\t\t}\n\t}\n\n\tprivate showPasteAsNoEditMessage(selections: readonly Selection[], preference: PastePreference) {\n\t\tconst kindLabel = 'only' in preference\n\t\t\t? preference.only.value\n\t\t\t: 'preferences' in preference\n\t\t\t\t? (preference.preferences.length ? preference.preferences.map(preference => preference.value).join(', ') : localize('noPreferences', \"empty\"))\n\t\t\t\t: preference.providerId;\n\n\t\tMessageController.get(this._editor)?.showMessage(localize('pasteAsError', \"No paste edits for '{0}' found\", kindLabel), selections[0].getStartPosition());\n\t}\n\n\tprivate doPasteInline(allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, clipboardEvent: ClipboardEvent): void {\n\t\tthis._logService.trace('CopyPasteController#doPasteInline');\n\t\tconst editor = this._editor;\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editorStateCts = new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined);\n\n\t\tconst p = createCancelablePromise(async (pToken) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst cts = disposables.add(new CancellationTokenSource(pToken));\n\t\t\tdisposables.add(editorStateCts.token.onCancellationRequested(() => cts.cancel()));\n\n\t\t\tconst token = cts.token;\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, token);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));\n\t\t\t\tif (!supportedProviders.length\n\t\t\t\t\t|| (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider) // Only our default text provider is active\n\t\t\t\t) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.Automatic,\n\t\t\t\t};\n\n\t\t\t\tconst editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);\n\t\t\t\tdisposables.add(editSession);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If the only edit returned is our default text edit, use the default paste handler\n\t\t\t\tif (editSession.edits.length === 1 && editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tif (editSession.edits.length) {\n\t\t\t\t\tconst canShowWidget = editor.getOption(EditorOption.pasteAs).showPasteSelector === 'afterPaste';\n\t\t\t\t\treturn this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: this.getInitialActiveEditIndex(model, editSession.edits), allEdits: editSession.edits }, canShowWidget, async (edit, resolveToken) => {\n\t\t\t\t\t\tif (!edit.provider.resolveDocumentPasteEdit) {\n\t\t\t\t\t\t\treturn edit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst resolveP = edit.provider.resolveDocumentPasteEdit(edit, resolveToken);\n\t\t\t\t\t\tconst showP = new DeferredPromise<void>();\n\t\t\t\t\t\tconst resolved = await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('resolveProcess', \"Resolving paste edit for '{0}'. Click to cancel\", edit.title), raceCancellation(Promise.race([showP.p, resolveP]), resolveToken), {\n\t\t\t\t\t\t\tcancel: () => showP.cancel()\n\t\t\t\t\t\t}, 0);\n\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tedit.insertText = resolved.insertText;\n\t\t\t\t\t\t\tedit.additionalEdit = resolved.additionalEdit;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn edit;\n\t\t\t\t\t}, token);\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('pasteIntoEditorProgress', \"Running paste handlers. Click to cancel and do basic paste\"), p, {\n\t\t\tcancel: async () => {\n\t\t\t\tp.cancel();\n\t\t\t\tif (editorStateCts.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);\n\t\t\t}\n\t\t}).finally(() => {\n\t\t\teditorStateCts.dispose();\n\t\t});\n\t\tthis._currentPasteOperation = p;\n\t}\n\n\tprivate showPasteAsPick(preference: PastePreference | undefined, allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined): void {\n\t\tthis._logService.trace('CopyPasteController#showPasteAsPick');\n\t\tconst p = createCancelablePromise(async (token) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined, token));\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, tokenSource.token);\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any providers the don't match the full data transfer we will send them.\n\t\t\t\tlet supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer, preference));\n\t\t\t\tif (preference) {\n\t\t\t\t\t// We are looking for a specific edit\n\t\t\t\t\tsupportedProviders = supportedProviders.filter(provider => this.providerMatchesPreference(provider, preference));\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.PasteAs,\n\t\t\t\t\tonly: preference && 'only' in preference ? preference.only : undefined,\n\t\t\t\t};\n\t\t\t\tlet editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any edits that don't match the requested kind\n\t\t\t\tif (preference) {\n\t\t\t\t\teditSession = {\n\t\t\t\t\t\tedits: editSession.edits.filter(edit => {\n\t\t\t\t\t\t\tif ('only' in preference) {\n\t\t\t\t\t\t\t\treturn preference.only.contains(edit.kind);\n\t\t\t\t\t\t\t} else if ('preferences' in preference) {\n\t\t\t\t\t\t\t\treturn preference.preferences.some(preference => preference.contains(edit.kind));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn preference.providerId === edit.provider.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tdispose: editSession.dispose\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (!editSession.edits.length) {\n\t\t\t\t\tif (preference) {\n\t\t\t\t\t\tthis.showPasteAsNoEditMessage(selections, preference);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet pickedEdit: DocumentPasteEdit | undefined;\n\t\t\t\tif (preference) {\n\t\t\t\t\tpickedEdit = editSession.edits.at(0);\n\t\t\t\t} else {\n\t\t\t\t\ttype ItemWithEdit = IQuickPickItem & { edit?: DocumentPasteEdit };\n\t\t\t\t\tconst configureDefaultItem: ItemWithEdit = {\n\t\t\t\t\t\tid: 'editor.pasteAs.default',\n\t\t\t\t\t\tlabel: localize('pasteAsDefault', \"Configure default paste action\"),\n\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst selected = await this._quickInputService.pick<ItemWithEdit>(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t...editSession.edits.map((edit): ItemWithEdit => ({\n\t\t\t\t\t\t\t\tlabel: edit.title,\n\t\t\t\t\t\t\t\tdescription: edit.kind?.value,\n\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t...(CopyPasteController._configureDefaultAction ? [\n\t\t\t\t\t\t\t\tupcast<IQuickPickSeparator>({ type: 'separator' }),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: CopyPasteController._configureDefaultAction.label,\n\t\t\t\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t] : [])\n\t\t\t\t\t\t], {\n\t\t\t\t\t\tplaceHolder: localize('pasteAsPickerPlaceholder', \"Select Paste Action\"),\n\t\t\t\t\t});\n\n\t\t\t\t\tif (selected === configureDefaultItem) {\n\t\t\t\t\t\tCopyPasteController._configureDefaultAction?.run();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tpickedEdit = selected?.edit;\n\t\t\t\t}\n\n\t\t\t\tif (!pickedEdit) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, selections, pickedEdit);\n\t\t\t\tawait this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._progressService.withProgress({\n\t\t\tlocation: ProgressLocation.Window,\n\t\t\ttitle: localize('pasteAsProgress', \"Running paste handlers\"),\n\t\t}, () => p);\n\t}\n\n\tprivate setCopyMetadata(dataTransfer: DataTransfer, metadata: CopyMetadata) {\n\t\tthis._logService.trace('CopyPasteController#setCopyMetadata new id : ', metadata.id);\n\t\tdataTransfer.setData(vscodeClipboardMime, JSON.stringify(metadata));\n\t}\n\n\tprivate fetchCopyMetadata(e: ClipboardEvent): CopyMetadata | undefined {\n\t\tthis._logService.trace('CopyPasteController#fetchCopyMetadata');\n\t\tif (!e.clipboardData) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prefer using the clipboard data we saved off\n\t\tconst rawMetadata = e.clipboardData.getData(vscodeClipboardMime);\n\t\tif (rawMetadata) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(rawMetadata);\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise try to extract the generic text editor metadata\n\t\tconst [_, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\tif (metadata) {\n\t\t\treturn {\n\t\t\t\tdefaultPastePayload: {\n\t\t\t\t\tmode: metadata.mode,\n\t\t\t\t\tmulticursorText: metadata.multicursorText ?? null,\n\t\t\t\t\tpasteOnNewLine: !!metadata.isFromEmptySelection,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate async mergeInDataFromCopy(allProviders: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken): Promise<void> {\n\t\tthis._logService.trace('CopyPasteController#mergeInDataFromCopy with metadata : ', metadata?.id);\n\t\tif (metadata?.id && CopyPasteController._currentCopyOperation?.handle === metadata.id) {\n\t\t\t// Only resolve providers that have data we may care about\n\t\t\tconst toResolve = CopyPasteController._currentCopyOperation.operations\n\t\t\t\t.filter(op => allProviders.some(provider => provider.pasteMimeTypes.some(type => matchesMimeType(type, op.providerMimeTypes))))\n\t\t\t\t.map(op => op.operation);\n\n\t\t\tconst toMergeResults = await Promise.all(toResolve);\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Values from higher priority providers should overwrite values from lower priority ones.\n\t\t\t// Reverse the array to so that the calls to `DataTransfer.replace` later will do this\n\t\t\tfor (const toMergeData of toMergeResults.reverse()) {\n\t\t\t\tif (toMergeData) {\n\t\t\t\t\tfor (const [key, value] of toMergeData) {\n\t\t\t\t\t\tdataTransfer.replace(key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!dataTransfer.has(Mimes.uriList)) {\n\t\t\tconst resources = await this._clipboardService.readResources();\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (resources.length) {\n\t\t\t\tdataTransfer.append(Mimes.uriList, createStringDataTransferItem(UriList.create(resources)));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getPasteEdits(providers: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, model: ITextModel, selections: readonly Selection[], context: DocumentPasteContext, token: CancellationToken): Promise<DocumentPasteWithProviderEditsSession> {\n\t\tconst disposables = new DisposableStore();\n\n\t\tconst results = await raceCancellation(\n\t\t\tPromise.all(providers.map(async provider => {\n\t\t\t\ttry {\n\t\t\t\t\tconst edits = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);\n\t\t\t\t\tif (edits) {\n\t\t\t\t\t\tdisposables.add(edits);\n\t\t\t\t\t}\n\t\t\t\t\treturn edits?.edits?.map(edit => ({ ...edit, provider }));\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isCancellationError(err)) {\n\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t}\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t})),\n\t\t\ttoken);\n\t\tconst edits = coalesce(results ?? []).flat().filter(edit => {\n\t\t\treturn !context.only || context.only.contains(edit.kind);\n\t\t});\n\t\treturn {\n\t\t\tedits: sortEditsByYieldTo(edits),\n\t\t\tdispose: () => disposables.dispose()\n\t\t};\n\t}\n\n\tprivate async applyDefaultPasteHandler(dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken, clipboardEvent: ClipboardEvent) {\n\t\tconst textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get('text');\n\t\tconst text = (await textDataTransfer?.asString()) ?? '';\n\t\tif (token.isCancellationRequested) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst payload: PastePayload = {\n\t\t\tclipboardEvent,\n\t\t\ttext,\n\t\t\tpasteOnNewLine: metadata?.defaultPastePayload.pasteOnNewLine ?? false,\n\t\t\tmulticursorText: metadata?.defaultPastePayload.multicursorText ?? null,\n\t\t\tmode: null,\n\t\t};\n\t\tthis._logService.trace('CopyPasteController#applyDefaultPasteHandler for id : ', metadata?.id);\n\t\tthis._editor.trigger('keyboard', Handler.Paste, payload);\n\t}\n\n\t/**\n\t * Filter out providers if they:\n\t * - Don't handle any of the data transfer types we have\n\t * - Don't match the preferred paste kind\n\t */\n\tprivate isSupportedPasteProvider(provider: DocumentPasteEditProvider, dataTransfer: VSDataTransfer, preference?: PastePreference): boolean {\n\t\tif (!provider.pasteMimeTypes?.some(type => dataTransfer.matches(type))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !preference || this.providerMatchesPreference(provider, preference);\n\t}\n\n\tprivate providerMatchesPreference(provider: DocumentPasteEditProvider, preference: PastePreference): boolean {\n\t\tif ('only' in preference) {\n\t\t\treturn provider.providedPasteEditKinds.some(providedKind => preference.only.contains(providedKind));\n\t\t} else if ('preferences' in preference) {\n\t\t\treturn preference.preferences.some(providedKind => preference.preferences.some(preferredKind => preferredKind.contains(providedKind)));\n\t\t} else {\n\t\t\treturn provider.id === preference.providerId;\n\t\t}\n\t}\n\n\tprivate getInitialActiveEditIndex(model: ITextModel, edits: readonly DocumentPasteEdit[]): number {\n\t\tconst preferredProviders = this._configService.getValue<PreferredPasteConfiguration[]>(pasteAsPreferenceConfig, { resource: model.uri });\n\t\tfor (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n\t\t\tconst desiredKind = new HierarchicalKind(config);\n\t\t\tconst editIndex = edits.findIndex(edit => desiredKind.contains(edit.kind));\n\t\t\tif (editIndex >= 0) {\n\t\t\t\treturn editIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts"],"names":[],"mappings":"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","file":"copyPasteController.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 { addDisposableListener } from '../../../../base/browser/dom.js';\nimport { IAction } from '../../../../base/common/actions.js';\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancelablePromise, createCancelablePromise, DeferredPromise, raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { createStringDataTransferItem, IReadonlyVSDataTransfer, matchesMimeType, UriList, VSDataTransfer } from '../../../../base/common/dataTransfer.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { upcast } from '../../../../base/common/types.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { localize } from '../../../../nls.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IProgressService, ProgressLocation } from '../../../../platform/progress/common/progress.js';\nimport { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ClipboardEventUtils, CopyOptions, InMemoryClipboardMetadataManager, PasteOptions } from '../../../browser/controller/editContext/clipboardUtils.js';\nimport { toExternalVSDataTransfer, toVSDataTransfer } from '../../../browser/dataTransfer.js';\nimport { ICodeEditor, PastePayload } from '../../../browser/editorBrowser.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { IRange, Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { Handler, IEditorContribution } from '../../../common/editorCommon.js';\nimport { DocumentPasteContext, DocumentPasteEdit, DocumentPasteEditProvider, DocumentPasteTriggerKind } from '../../../common/languages.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CodeEditorStateFlag, EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { PreferredPasteConfiguration } from './copyPasteContribution.js';\nimport { DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport { createCombinedWorkspaceEdit, sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\n\nexport const changePasteTypeCommandId = 'editor.changePasteType';\n\nexport const pasteAsPreferenceConfig = 'editor.pasteAs.preferences';\n\nexport const pasteWidgetVisibleCtx = new RawContextKey<boolean>('pasteWidgetVisible', false, localize('pasteWidgetVisible', \"Whether the paste widget is showing\"));\n\nconst vscodeClipboardMime = 'application/vnd.code.copymetadata';\n\ninterface CopyMetadata {\n\treadonly id?: string;\n\treadonly providerCopyMimeTypes?: readonly string[];\n\n\treadonly defaultPastePayload: Omit<PastePayload, 'text'>;\n}\n\ntype PasteEditWithProvider = DocumentPasteEdit & {\n\tprovider: DocumentPasteEditProvider;\n};\n\n\ninterface DocumentPasteWithProviderEditsSession {\n\tedits: readonly PasteEditWithProvider[];\n\tdispose(): void;\n}\n\nexport type PastePreference =\n\t| { readonly only: HierarchicalKind }\n\t| { readonly preferences: readonly HierarchicalKind[] }\n\t| { readonly providerId: string } // Only used internally\n\t;\n\ninterface CopyOperation {\n\treadonly providerMimeTypes: readonly string[];\n\treadonly operation: CancelablePromise<IReadonlyVSDataTransfer | undefined>;\n}\n\nexport class CopyPasteController extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.copyPasteActionController';\n\n\tpublic static get(editor: ICodeEditor): CopyPasteController | null {\n\t\treturn editor.getContribution<CopyPasteController>(CopyPasteController.ID);\n\t}\n\n\tprivate static _configureDefaultAction?: IAction;\n\n\t/**\n\t * Global tracking the last copy operation.\n\t *\n\t * This is shared across all editors so that you can copy and paste between groups.\n\t *\n\t * TODO: figure out how to make this work with multiple windows\n\t */\n\tprivate static _currentCopyOperation?: {\n\t\treadonly handle: string;\n\t\treadonly operations: ReadonlyArray<CopyOperation>;\n\t};\n\n\tprivate readonly _editor: ICodeEditor;\n\n\tprivate _currentPasteOperation?: CancelablePromise<void>;\n\tprivate _pasteAsActionContext?: { readonly preferred?: PastePreference };\n\n\tprivate readonly _pasteProgressManager: InlineProgressManager;\n\tprivate readonly _postPasteWidgetManager: PostEditWidgetManager<PasteEditWithProvider>;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILogService private readonly _logService: ILogService,\n\t\t@IBulkEditService private readonly _bulkEditService: IBulkEditService,\n\t\t@IClipboardService private readonly _clipboardService: IClipboardService,\n\t\t@ICommandService private readonly _commandService: ICommandService,\n\t\t@IConfigurationService private readonly _configService: IConfigurationService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t\t@IQuickInputService private readonly _quickInputService: IQuickInputService,\n\t\t@IProgressService private readonly _progressService: IProgressService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\n\t\tconst container = editor.getContainerDomNode();\n\t\tthis._register(addDisposableListener(container, 'copy', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'cut', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'paste', e => this.handlePaste(e), true));\n\n\t\tthis._pasteProgressManager = this._register(new InlineProgressManager('pasteIntoEditor', editor, instantiationService));\n\n\t\tthis._postPasteWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'pasteIntoEditor', editor, pasteWidgetVisibleCtx,\n\t\t\t{ id: changePasteTypeCommandId, label: localize('postPasteWidgetTitle', \"Show paste options...\") },\n\t\t\t() => CopyPasteController._configureDefaultAction ? [CopyPasteController._configureDefaultAction] : []\n\t\t));\n\t}\n\n\tpublic changePasteType() {\n\t\tthis._postPasteWidgetManager.tryShowSelector();\n\t}\n\n\tpublic async pasteAs(preferred?: PastePreference) {\n\t\tthis._logService.trace('CopyPasteController.pasteAs');\n\t\tthis._editor.focus();\n\t\ttry {\n\t\t\tthis._logService.trace('Before calling editor.action.clipboardPasteAction');\n\t\t\tthis._pasteAsActionContext = { preferred };\n\t\t\tawait this._commandService.executeCommand('editor.action.clipboardPasteAction');\n\t\t} finally {\n\t\t\tthis._pasteAsActionContext = undefined;\n\t\t}\n\t}\n\n\tpublic clearWidgets() {\n\t\tthis._postPasteWidgetManager.clear();\n\t}\n\n\tprivate isPasteAsEnabled(): boolean {\n\t\treturn this._editor.getOption(EditorOption.pasteAs).enabled;\n\t}\n\n\tpublic async finishedPaste(): Promise<void> {\n\t\tawait this._currentPasteOperation;\n\t}\n\n\tprivate handleCopy(e: ClipboardEvent) {\n\t\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\t\tlet id: string | null = null;\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst storedMetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tid = storedMetadata?.id || null;\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy for id : ', id, ' with text.length : ', text.length);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy');\n\t\t}\n\t\tif (!this._editor.hasTextFocus()) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn1');\n\t\t\treturn;\n\t\t}\n\n\t\t// Explicitly clear the clipboard internal state.\n\t\t// This is needed because on web, the browser clipboard is faked out using an in-memory store.\n\t\t// This means the resources clipboard is not properly updated when copying from the editor.\n\t\tthis._clipboardService.clearInternalState?.();\n\n\t\tif (!e.clipboardData || !this.isPasteAsEnabled()) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn2');\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!model || !selections?.length) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn3');\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableEmptySelectionClipboard = this._editor.getOption(EditorOption.emptySelectionClipboard);\n\n\t\tlet ranges: readonly IRange[] = selections;\n\t\tconst wasFromEmptySelection = selections.length === 1 && selections[0].isEmpty();\n\t\tif (wasFromEmptySelection) {\n\t\t\tif (!enableEmptySelectionClipboard) {\n\t\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn4');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tranges = [new Range(ranges[0].startLineNumber, 1, ranges[0].startLineNumber, 1 + model.getLineLength(ranges[0].startLineNumber))];\n\t\t}\n\n\t\tconst toCopy = this._editor._getViewModel()?.getPlainTextToCopy(selections, enableEmptySelectionClipboard, platform.isWindows);\n\t\tconst multicursorText = Array.isArray(toCopy) ? toCopy : null;\n\n\t\tconst defaultPastePayload = {\n\t\t\tmulticursorText,\n\t\t\tpasteOnNewLine: wasFromEmptySelection,\n\t\t\tmode: null\n\t\t};\n\n\t\tconst providers = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(x => !!x.prepareDocumentPaste);\n\t\tif (!providers.length) {\n\t\t\tthis.setCopyMetadata(e.clipboardData, { defaultPastePayload });\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn5');\n\t\t\treturn;\n\t\t}\n\n\t\tconst dataTransfer = toVSDataTransfer(e.clipboardData);\n\t\tconst providerCopyMimeTypes = providers.flatMap(x => x.copyMimeTypes ?? []);\n\n\t\t// Save off a handle pointing to data that VS Code maintains.\n\t\tconst handle = id ?? generateUuid();\n\t\tthis.setCopyMetadata(e.clipboardData, {\n\t\t\tid: handle,\n\t\t\tproviderCopyMimeTypes,\n\t\t\tdefaultPastePayload\n\t\t});\n\n\t\tconst operations = providers.map((provider): CopyOperation => {\n\t\t\treturn {\n\t\t\t\tproviderMimeTypes: provider.copyMimeTypes,\n\t\t\t\toperation: createCancelablePromise(token =>\n\t\t\t\t\tprovider.prepareDocumentPaste!(model, ranges, dataTransfer, token)\n\t\t\t\t\t\t.catch(err => {\n\t\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}))\n\t\t\t};\n\t\t});\n\n\t\tCopyPasteController._currentCopyOperation?.operations.forEach(entry => entry.operation.cancel());\n\t\tCopyPasteController._currentCopyOperation = { handle, operations };\n\t\tthis._logService.trace('CopyPasteController#handleCopy/end');\n\t}\n\n\tprivate async handlePaste(e: ClipboardEvent) {\n\t\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst metadataComputed = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste for id : ', metadataComputed?.id);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste');\n\t\t}\n\t\tif (!e.clipboardData || !this._editor.hasTextFocus()) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn1');\n\t\t\treturn;\n\t\t}\n\n\t\tMessageController.get(this._editor)?.closeMessage();\n\t\tthis._currentPasteOperation?.cancel();\n\t\tthis._currentPasteOperation = undefined;\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!selections?.length || !model) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn2');\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tthis._editor.getOption(EditorOption.readOnly) // Never enabled if editor is readonly.\n\t\t\t|| (!this.isPasteAsEnabled() && !this._pasteAsActionContext) // Or feature disabled (but still enable if paste was explicitly requested)\n\t\t) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn3');\n\t\t\treturn;\n\t\t}\n\n\t\tconst metadata = this.fetchCopyMetadata(e);\n\t\tthis._logService.trace('CopyPasteController#handlePaste with metadata : ', metadata?.id, ' and text.length : ', e.clipboardData.getData('text/plain').length);\n\t\tconst dataTransfer = toExternalVSDataTransfer(e.clipboardData);\n\t\tdataTransfer.delete(vscodeClipboardMime);\n\n\t\tconst fileTypes = Array.from(e.clipboardData.files).map(file => file.type);\n\n\t\tconst allPotentialMimeTypes = [\n\t\t\t...e.clipboardData.types,\n\t\t\t...fileTypes,\n\t\t\t...metadata?.providerCopyMimeTypes ?? [],\n\t\t\t// TODO: always adds `uri-list` because this get set if there are resources in the system clipboard.\n\t\t\t// However we can only check the system clipboard async. For this early check, just add it in.\n\t\t\t// We filter providers again once we have the final dataTransfer we will use.\n\t\t\tMimes.uriList,\n\t\t];\n\n\t\tconst allProviders = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(provider => {\n\t\t\t\t// Filter out providers that don't match the requested paste types\n\t\t\t\tconst preference = this._pasteAsActionContext?.preferred;\n\t\t\t\tif (preference) {\n\t\t\t\t\tif (!this.providerMatchesPreference(provider, preference)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// And providers that don't handle any of mime types in the clipboard\n\t\t\t\treturn provider.pasteMimeTypes?.some(type => matchesMimeType(type, allPotentialMimeTypes));\n\t\t\t});\n\t\tif (!allProviders.length) {\n\t\t\tif (this._pasteAsActionContext?.preferred) {\n\t\t\t\tthis.showPasteAsNoEditMessage(selections, this._pasteAsActionContext.preferred);\n\n\t\t\t\t// Also prevent default paste from applying\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn4');\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent the editor's default paste handler from running.\n\t\t// Note that after this point, we are fully responsible for handling paste.\n\t\t// If we can't provider a paste for any reason, we need to explicitly delegate pasting back to the editor.\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\n\t\tif (this._pasteAsActionContext) {\n\t\t\tthis.showPasteAsPick(this._pasteAsActionContext.preferred, allProviders, selections, dataTransfer, metadata);\n\t\t} else {\n\t\t\tthis.doPasteInline(allProviders, selections, dataTransfer, metadata, e);\n\t\t}\n\t\tthis._logService.trace('CopyPasteController#handlePaste/end');\n\t}\n\n\tprivate showPasteAsNoEditMessage(selections: readonly Selection[], preference: PastePreference) {\n\t\tconst kindLabel = 'only' in preference\n\t\t\t? preference.only.value\n\t\t\t: 'preferences' in preference\n\t\t\t\t? (preference.preferences.length ? preference.preferences.map(preference => preference.value).join(', ') : localize('noPreferences', \"empty\"))\n\t\t\t\t: preference.providerId;\n\n\t\tMessageController.get(this._editor)?.showMessage(localize('pasteAsError', \"No paste edits for '{0}' found\", kindLabel), selections[0].getStartPosition());\n\t}\n\n\tprivate doPasteInline(allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, clipboardEvent: ClipboardEvent): void {\n\t\tthis._logService.trace('CopyPasteController#doPasteInline');\n\t\tconst editor = this._editor;\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editorStateCts = new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined);\n\n\t\tconst p = createCancelablePromise(async (pToken) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst cts = disposables.add(new CancellationTokenSource(pToken));\n\t\t\tdisposables.add(editorStateCts.token.onCancellationRequested(() => cts.cancel()));\n\n\t\t\tconst token = cts.token;\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, token);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));\n\t\t\t\tif (!supportedProviders.length\n\t\t\t\t\t|| (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider) // Only our default text provider is active\n\t\t\t\t) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.Automatic,\n\t\t\t\t};\n\n\t\t\t\tconst editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);\n\t\t\t\tdisposables.add(editSession);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If the only edit returned is our default text edit, use the default paste handler\n\t\t\t\tif (editSession.edits.length === 1 && editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tif (editSession.edits.length) {\n\t\t\t\t\tconst canShowWidget = editor.getOption(EditorOption.pasteAs).showPasteSelector === 'afterPaste';\n\t\t\t\t\treturn this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: this.getInitialActiveEditIndex(model, editSession.edits), allEdits: editSession.edits }, canShowWidget, async (edit, resolveToken) => {\n\t\t\t\t\t\tif (!edit.provider.resolveDocumentPasteEdit) {\n\t\t\t\t\t\t\treturn edit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst resolveP = edit.provider.resolveDocumentPasteEdit(edit, resolveToken);\n\t\t\t\t\t\tconst showP = new DeferredPromise<void>();\n\t\t\t\t\t\tconst resolved = await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('resolveProcess', \"Resolving paste edit for '{0}'. Click to cancel\", edit.title), raceCancellation(Promise.race([showP.p, resolveP]), resolveToken), {\n\t\t\t\t\t\t\tcancel: () => showP.cancel()\n\t\t\t\t\t\t}, 0);\n\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tedit.insertText = resolved.insertText;\n\t\t\t\t\t\t\tedit.additionalEdit = resolved.additionalEdit;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn edit;\n\t\t\t\t\t}, token);\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('pasteIntoEditorProgress', \"Running paste handlers. Click to cancel and do basic paste\"), p, {\n\t\t\tcancel: async () => {\n\t\t\t\tp.cancel();\n\t\t\t\tif (editorStateCts.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);\n\t\t\t}\n\t\t}).finally(() => {\n\t\t\teditorStateCts.dispose();\n\t\t});\n\t\tthis._currentPasteOperation = p;\n\t}\n\n\tprivate showPasteAsPick(preference: PastePreference | undefined, allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined): void {\n\t\tthis._logService.trace('CopyPasteController#showPasteAsPick');\n\t\tconst p = createCancelablePromise(async (token) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined, token));\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, tokenSource.token);\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any providers the don't match the full data transfer we will send them.\n\t\t\t\tlet supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer, preference));\n\t\t\t\tif (preference) {\n\t\t\t\t\t// We are looking for a specific edit\n\t\t\t\t\tsupportedProviders = supportedProviders.filter(provider => this.providerMatchesPreference(provider, preference));\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.PasteAs,\n\t\t\t\t\tonly: preference && 'only' in preference ? preference.only : undefined,\n\t\t\t\t};\n\t\t\t\tlet editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any edits that don't match the requested kind\n\t\t\t\tif (preference) {\n\t\t\t\t\teditSession = {\n\t\t\t\t\t\tedits: editSession.edits.filter(edit => {\n\t\t\t\t\t\t\tif ('only' in preference) {\n\t\t\t\t\t\t\t\treturn preference.only.contains(edit.kind);\n\t\t\t\t\t\t\t} else if ('preferences' in preference) {\n\t\t\t\t\t\t\t\treturn preference.preferences.some(preference => preference.contains(edit.kind));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn preference.providerId === edit.provider.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tdispose: editSession.dispose\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (!editSession.edits.length) {\n\t\t\t\t\tif (preference) {\n\t\t\t\t\t\tthis.showPasteAsNoEditMessage(selections, preference);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet pickedEdit: DocumentPasteEdit | undefined;\n\t\t\t\tif (preference) {\n\t\t\t\t\tpickedEdit = editSession.edits.at(0);\n\t\t\t\t} else {\n\t\t\t\t\ttype ItemWithEdit = IQuickPickItem & { edit?: DocumentPasteEdit };\n\t\t\t\t\tconst configureDefaultItem: ItemWithEdit = {\n\t\t\t\t\t\tid: 'editor.pasteAs.default',\n\t\t\t\t\t\tlabel: localize('pasteAsDefault', \"Configure default paste action\"),\n\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst selected = await this._quickInputService.pick<ItemWithEdit>(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t...editSession.edits.map((edit): ItemWithEdit => ({\n\t\t\t\t\t\t\t\tlabel: edit.title,\n\t\t\t\t\t\t\t\tdescription: edit.kind?.value,\n\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t...(CopyPasteController._configureDefaultAction ? [\n\t\t\t\t\t\t\t\tupcast<IQuickPickSeparator>({ type: 'separator' }),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: CopyPasteController._configureDefaultAction.label,\n\t\t\t\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t] : [])\n\t\t\t\t\t\t], {\n\t\t\t\t\t\tplaceHolder: localize('pasteAsPickerPlaceholder', \"Select Paste Action\"),\n\t\t\t\t\t});\n\n\t\t\t\t\tif (selected === configureDefaultItem) {\n\t\t\t\t\t\tCopyPasteController._configureDefaultAction?.run();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tpickedEdit = selected?.edit;\n\t\t\t\t}\n\n\t\t\t\tif (!pickedEdit) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, selections, pickedEdit);\n\t\t\t\tawait this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._progressService.withProgress({\n\t\t\tlocation: ProgressLocation.Window,\n\t\t\ttitle: localize('pasteAsProgress', \"Running paste handlers\"),\n\t\t}, () => p);\n\t}\n\n\tprivate setCopyMetadata(dataTransfer: DataTransfer, metadata: CopyMetadata) {\n\t\tthis._logService.trace('CopyPasteController#setCopyMetadata new id : ', metadata.id);\n\t\tdataTransfer.setData(vscodeClipboardMime, JSON.stringify(metadata));\n\t}\n\n\tprivate fetchCopyMetadata(e: ClipboardEvent): CopyMetadata | undefined {\n\t\tthis._logService.trace('CopyPasteController#fetchCopyMetadata');\n\t\tif (!e.clipboardData) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prefer using the clipboard data we saved off\n\t\tconst rawMetadata = e.clipboardData.getData(vscodeClipboardMime);\n\t\tif (rawMetadata) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(rawMetadata);\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise try to extract the generic text editor metadata\n\t\tconst [_, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\tif (metadata) {\n\t\t\treturn {\n\t\t\t\tdefaultPastePayload: {\n\t\t\t\t\tmode: metadata.mode,\n\t\t\t\t\tmulticursorText: metadata.multicursorText ?? null,\n\t\t\t\t\tpasteOnNewLine: !!metadata.isFromEmptySelection,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate async mergeInDataFromCopy(allProviders: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken): Promise<void> {\n\t\tthis._logService.trace('CopyPasteController#mergeInDataFromCopy with metadata : ', metadata?.id);\n\t\tif (metadata?.id && CopyPasteController._currentCopyOperation?.handle === metadata.id) {\n\t\t\t// Only resolve providers that have data we may care about\n\t\t\tconst toResolve = CopyPasteController._currentCopyOperation.operations\n\t\t\t\t.filter(op => allProviders.some(provider => provider.pasteMimeTypes.some(type => matchesMimeType(type, op.providerMimeTypes))))\n\t\t\t\t.map(op => op.operation);\n\n\t\t\tconst toMergeResults = await Promise.all(toResolve);\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Values from higher priority providers should overwrite values from lower priority ones.\n\t\t\t// Reverse the array to so that the calls to `DataTransfer.replace` later will do this\n\t\t\tfor (const toMergeData of toMergeResults.reverse()) {\n\t\t\t\tif (toMergeData) {\n\t\t\t\t\tfor (const [key, value] of toMergeData) {\n\t\t\t\t\t\tdataTransfer.replace(key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!dataTransfer.has(Mimes.uriList)) {\n\t\t\tconst resources = await this._clipboardService.readResources();\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (resources.length) {\n\t\t\t\tdataTransfer.append(Mimes.uriList, createStringDataTransferItem(UriList.create(resources)));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getPasteEdits(providers: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, model: ITextModel, selections: readonly Selection[], context: DocumentPasteContext, token: CancellationToken): Promise<DocumentPasteWithProviderEditsSession> {\n\t\tconst disposables = new DisposableStore();\n\n\t\tconst results = await raceCancellation(\n\t\t\tPromise.all(providers.map(async provider => {\n\t\t\t\ttry {\n\t\t\t\t\tconst edits = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);\n\t\t\t\t\tif (edits) {\n\t\t\t\t\t\tdisposables.add(edits);\n\t\t\t\t\t}\n\t\t\t\t\treturn edits?.edits?.map(edit => ({ ...edit, provider }));\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isCancellationError(err)) {\n\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t}\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t})),\n\t\t\ttoken);\n\t\tconst edits = coalesce(results ?? []).flat().filter(edit => {\n\t\t\treturn !context.only || context.only.contains(edit.kind);\n\t\t});\n\t\treturn {\n\t\t\tedits: sortEditsByYieldTo(edits),\n\t\t\tdispose: () => disposables.dispose()\n\t\t};\n\t}\n\n\tprivate async applyDefaultPasteHandler(dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken, clipboardEvent: ClipboardEvent) {\n\t\tconst textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get('text');\n\t\tconst text = (await textDataTransfer?.asString()) ?? '';\n\t\tif (token.isCancellationRequested) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst payload: PastePayload = {\n\t\t\tclipboardEvent,\n\t\t\ttext,\n\t\t\tpasteOnNewLine: metadata?.defaultPastePayload.pasteOnNewLine ?? false,\n\t\t\tmulticursorText: metadata?.defaultPastePayload.multicursorText ?? null,\n\t\t\tmode: null,\n\t\t};\n\t\tthis._logService.trace('CopyPasteController#applyDefaultPasteHandler for id : ', metadata?.id);\n\t\tthis._editor.trigger('keyboard', Handler.Paste, payload);\n\t}\n\n\t/**\n\t * Filter out providers if they:\n\t * - Don't handle any of the data transfer types we have\n\t * - Don't match the preferred paste kind\n\t */\n\tprivate isSupportedPasteProvider(provider: DocumentPasteEditProvider, dataTransfer: VSDataTransfer, preference?: PastePreference): boolean {\n\t\tif (!provider.pasteMimeTypes?.some(type => dataTransfer.matches(type))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !preference || this.providerMatchesPreference(provider, preference);\n\t}\n\n\tprivate providerMatchesPreference(provider: DocumentPasteEditProvider, preference: PastePreference): boolean {\n\t\tif ('only' in preference) {\n\t\t\treturn provider.providedPasteEditKinds.some(providedKind => preference.only.contains(providedKind));\n\t\t} else if ('preferences' in preference) {\n\t\t\treturn preference.preferences.some(providedKind => preference.preferences.some(preferredKind => preferredKind.contains(providedKind)));\n\t\t} else {\n\t\t\treturn provider.id === preference.providerId;\n\t\t}\n\t}\n\n\tprivate getInitialActiveEditIndex(model: ITextModel, edits: readonly DocumentPasteEdit[]): number {\n\t\tconst preferredProviders = this._configService.getValue<PreferredPasteConfiguration[]>(pasteAsPreferenceConfig, { resource: model.uri });\n\t\tfor (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n\t\t\tconst desiredKind = new HierarchicalKind(config);\n\t\t\tconst editIndex = edits.findIndex(edit => desiredKind.contains(edit.kind));\n\t\t\tif (editIndex >= 0) {\n\t\t\t\treturn editIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n}\n"]}
@@ -72,7 +72,7 @@ export class DefaultTextPasteOrDropEditProvider extends SimplePasteAndDropProvid
72
72
  const insertText = await textEntry.asString();
73
73
  return {
74
74
  handledMimeType: Mimes.text,
75
- title: localize(932, "Insert Plain Text"),
75
+ title: localize(933, "Insert Plain Text"),
76
76
  insertText,
77
77
  kind: this.kind,
78
78
  };
@@ -105,14 +105,14 @@ class PathProvider extends SimplePasteAndDropProvider {
105
105
  if (uriCount > 0) {
106
106
  // Dropping at least one generic uri (such as https) so use most generic label
107
107
  label = entries.length > 1
108
- ? localize(933, "Insert Uris")
109
- : localize(934, "Insert Uri");
108
+ ? localize(934, "Insert Uris")
109
+ : localize(935, "Insert Uri");
110
110
  }
111
111
  else {
112
112
  // All the paths are file paths
113
113
  label = entries.length > 1
114
- ? localize(935, "Insert Paths")
115
- : localize(936, "Insert Path");
114
+ ? localize(936, "Insert Paths")
115
+ : localize(937, "Insert Path");
116
116
  }
117
117
  return {
118
118
  handledMimeType: Mimes.uriList,
@@ -145,8 +145,8 @@ let RelativePathProvider = class RelativePathProvider extends SimplePasteAndDrop
145
145
  handledMimeType: Mimes.uriList,
146
146
  insertText: relativeUris.join(' '),
147
147
  title: entries.length > 1
148
- ? localize(937, "Insert Relative Paths")
149
- : localize(938, "Insert Relative Path"),
148
+ ? localize(938, "Insert Relative Paths")
149
+ : localize(939, "Insert Relative Path"),
150
150
  kind: this.kind,
151
151
  };
152
152
  }
@@ -176,7 +176,7 @@ class PasteHtmlProvider {
176
176
  edits: [{
177
177
  insertText: htmlText,
178
178
  yieldTo: this._yieldTo,
179
- title: localize(939, 'Insert HTML'),
179
+ title: localize(940, 'Insert HTML'),
180
180
  kind: this.kind,
181
181
  }],
182
182
  };
@@ -34,7 +34,7 @@ import { sortEditsByYieldTo } from './edit.js';
34
34
  import { PostEditWidgetManager } from './postEditWidget.js';
35
35
  export const dropAsPreferenceConfig = 'editor.dropIntoEditor.preferences';
36
36
  export const changeDropTypeCommandId = 'editor.changeDropType';
37
- export const dropWidgetVisibleCtx = new RawContextKey('dropWidgetVisible', false, localize(940, "Whether the drop widget is showing"));
37
+ export const dropWidgetVisibleCtx = new RawContextKey('dropWidgetVisible', false, localize(941, "Whether the drop widget is showing"));
38
38
  let DropIntoEditorController = class DropIntoEditorController extends Disposable {
39
39
  static { DropIntoEditorController_1 = this; }
40
40
  static { this.ID = 'editor.contrib.dropIntoEditorController'; }
@@ -48,7 +48,7 @@ let DropIntoEditorController = class DropIntoEditorController extends Disposable
48
48
  this._treeViewsDragAndDropService = _treeViewsDragAndDropService;
49
49
  this.treeItemsTransfer = LocalSelectionTransfer.getInstance();
50
50
  this._dropProgressManager = this._register(instantiationService.createInstance(InlineProgressManager, 'dropIntoEditor', editor));
51
- this._postDropWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'dropIntoEditor', editor, dropWidgetVisibleCtx, { id: changeDropTypeCommandId, label: localize(941, "Show drop options...") }, () => DropIntoEditorController_1._configureDefaultAction ? [DropIntoEditorController_1._configureDefaultAction] : []));
51
+ this._postDropWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'dropIntoEditor', editor, dropWidgetVisibleCtx, { id: changeDropTypeCommandId, label: localize(942, "Show drop options...") }, () => DropIntoEditorController_1._configureDefaultAction ? [DropIntoEditorController_1._configureDefaultAction] : []));
52
52
  this._register(editor.onDropIntoEditor(e => this.onDropIntoEditor(editor, e.position, e.event)));
53
53
  }
54
54
  clearWidgets() {
@@ -103,7 +103,7 @@ let DropIntoEditorController = class DropIntoEditorController extends Disposable
103
103
  }
104
104
  }
105
105
  });
106
- this._dropProgressManager.showWhile(position, localize(942, "Running drop handlers. Click to cancel"), p, { cancel: () => p.cancel() });
106
+ this._dropProgressManager.showWhile(position, localize(943, "Running drop handlers. Click to cancel"), p, { cancel: () => p.cancel() });
107
107
  DropIntoEditorController_1._currentDropOperation = p;
108
108
  }
109
109
  async getDropEdits(providers, model, position, dataTransfer, token) {
@@ -162,7 +162,7 @@ let PostEditWidgetManager = class PostEditWidgetManager extends Disposable {
162
162
  resolvedEdit = await raceCancellationError(resolve(edit, editorStateCts.token), editorStateCts.token);
163
163
  }
164
164
  catch (e) {
165
- return handleError(e, localize(943, "Error resolving edit '{0}':\n{1}", edit.title, toErrorMessage(e)));
165
+ return handleError(e, localize(944, "Error resolving edit '{0}':\n{1}", edit.title, toErrorMessage(e)));
166
166
  }
167
167
  finally {
168
168
  editorStateCts.dispose();
@@ -185,7 +185,7 @@ let PostEditWidgetManager = class PostEditWidgetManager extends Disposable {
185
185
  editRange = model.getDecorationRange(editTrackingDecoration[0]);
186
186
  }
187
187
  catch (e) {
188
- return handleError(e, localize(944, "Error applying edit '{0}':\n{1}", edit.title, toErrorMessage(e)));
188
+ return handleError(e, localize(945, "Error applying edit '{0}':\n{1}", edit.title, toErrorMessage(e)));
189
189
  }
190
190
  finally {
191
191
  model.deltaDecorations(editTrackingDecoration, []);
@@ -10,7 +10,7 @@ import { createDecorator } from '../../../../platform/instantiation/common/insta
10
10
  import { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
11
11
  import { localize } from '../../../../nls.js';
12
12
  const IEditorCancellationTokens = createDecorator('IEditorCancelService');
13
- const ctxCancellableOperation = new RawContextKey('cancellableOperation', false, localize(945, 'Whether the editor runs a cancellable operation, e.g. like \'Peek References\''));
13
+ const ctxCancellableOperation = new RawContextKey('cancellableOperation', false, localize(946, 'Whether the editor runs a cancellable operation, e.g. like \'Peek References\''));
14
14
  registerSingleton(IEditorCancellationTokens, class {
15
15
  constructor() {
16
16
  this._tokens = new WeakMap();
@@ -311,7 +311,7 @@ let CommonFindController = class CommonFindController extends Disposable {
311
311
  replaceAll() {
312
312
  if (this._model) {
313
313
  if (this._editor.getModel()?.isTooLargeForHeapOperation()) {
314
- this._notificationService.warn(nls.localize(946, "The file is too large to perform a replace all operation."));
314
+ this._notificationService.warn(nls.localize(947, "The file is too large to perform a replace all operation."));
315
315
  return false;
316
316
  }
317
317
  this._model.replaceAll();
@@ -428,7 +428,7 @@ FindController = __decorate([
428
428
  export { FindController };
429
429
  export const StartFindAction = registerMultiEditorAction(new MultiEditorAction({
430
430
  id: FIND_IDS.StartFindAction,
431
- label: nls.localize2(953, "Find"),
431
+ label: nls.localize2(954, "Find"),
432
432
  precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has('editorIsOpen')),
433
433
  kbOpts: {
434
434
  kbExpr: null,
@@ -438,7 +438,7 @@ export const StartFindAction = registerMultiEditorAction(new MultiEditorAction({
438
438
  menuOpts: {
439
439
  menuId: MenuId.MenubarEditMenu,
440
440
  group: '3_find',
441
- title: nls.localize(947, "&&Find"),
441
+ title: nls.localize(948, "&&Find"),
442
442
  order: 1
443
443
  }
444
444
  }));
@@ -479,7 +479,7 @@ export class StartFindWithArgsAction extends EditorAction {
479
479
  constructor() {
480
480
  super({
481
481
  id: FIND_IDS.StartFindWithArgs,
482
- label: nls.localize2(954, "Find with Arguments"),
482
+ label: nls.localize2(955, "Find with Arguments"),
483
483
  precondition: undefined,
484
484
  kbOpts: {
485
485
  kbExpr: null,
@@ -523,7 +523,7 @@ export class StartFindWithSelectionAction extends EditorAction {
523
523
  constructor() {
524
524
  super({
525
525
  id: FIND_IDS.StartFindWithSelection,
526
- label: nls.localize2(955, "Find with Selection"),
526
+ label: nls.localize2(956, "Find with Selection"),
527
527
  precondition: undefined,
528
528
  kbOpts: {
529
529
  kbExpr: null,
@@ -581,7 +581,7 @@ async function matchFindAction(editor, next) {
581
581
  }
582
582
  export const NextMatchFindAction = registerMultiEditorAction(new MultiEditorAction({
583
583
  id: FIND_IDS.NextMatchFindAction,
584
- label: nls.localize2(956, "Find Next"),
584
+ label: nls.localize2(957, "Find Next"),
585
585
  precondition: undefined,
586
586
  kbOpts: [{
587
587
  kbExpr: EditorContextKeys.focus,
@@ -599,7 +599,7 @@ NextMatchFindAction.addImplementation(0, async (accessor, editor, args) => {
599
599
  });
600
600
  export const PreviousMatchFindAction = registerMultiEditorAction(new MultiEditorAction({
601
601
  id: FIND_IDS.PreviousMatchFindAction,
602
- label: nls.localize2(957, "Find Previous"),
602
+ label: nls.localize2(958, "Find Previous"),
603
603
  precondition: undefined,
604
604
  kbOpts: [{
605
605
  kbExpr: EditorContextKeys.focus,
@@ -619,7 +619,7 @@ export class MoveToMatchFindAction extends EditorAction {
619
619
  constructor() {
620
620
  super({
621
621
  id: FIND_IDS.GoToMatchFindAction,
622
- label: nls.localize2(958, "Go to Match..."),
622
+ label: nls.localize2(959, "Go to Match..."),
623
623
  precondition: CONTEXT_FIND_WIDGET_VISIBLE
624
624
  });
625
625
  this._highlightDecorations = [];
@@ -634,14 +634,14 @@ export class MoveToMatchFindAction extends EditorAction {
634
634
  const notificationService = accessor.get(INotificationService);
635
635
  notificationService.notify({
636
636
  severity: Severity.Warning,
637
- message: nls.localize(948, "No matches. Try searching for something else.")
637
+ message: nls.localize(949, "No matches. Try searching for something else.")
638
638
  });
639
639
  return;
640
640
  }
641
641
  const quickInputService = accessor.get(IQuickInputService);
642
642
  const disposables = new DisposableStore();
643
643
  const inputBox = disposables.add(quickInputService.createInputBox());
644
- inputBox.placeholder = nls.localize(949, "Type a number to go to a specific match (between 1 and {0})", matchesCount);
644
+ inputBox.placeholder = nls.localize(950, "Type a number to go to a specific match (between 1 and {0})", matchesCount);
645
645
  const toFindMatchIndex = (value) => {
646
646
  const index = parseInt(value);
647
647
  if (isNaN(index)) {
@@ -668,7 +668,7 @@ export class MoveToMatchFindAction extends EditorAction {
668
668
  }
669
669
  }
670
670
  else {
671
- inputBox.validationMessage = nls.localize(950, "Please type a number between 1 and {0}", controller.getState().matchesCount);
671
+ inputBox.validationMessage = nls.localize(951, "Please type a number between 1 and {0}", controller.getState().matchesCount);
672
672
  this.clearDecorations(editor);
673
673
  }
674
674
  };
@@ -682,7 +682,7 @@ export class MoveToMatchFindAction extends EditorAction {
682
682
  inputBox.hide();
683
683
  }
684
684
  else {
685
- inputBox.validationMessage = nls.localize(951, "Please type a number between 1 and {0}", controller.getState().matchesCount);
685
+ inputBox.validationMessage = nls.localize(952, "Please type a number between 1 and {0}", controller.getState().matchesCount);
686
686
  }
687
687
  }));
688
688
  disposables.add(inputBox.onDidHide(() => {
@@ -750,7 +750,7 @@ export class NextSelectionMatchFindAction extends SelectionMatchFindAction {
750
750
  constructor() {
751
751
  super({
752
752
  id: FIND_IDS.NextSelectionMatchFindAction,
753
- label: nls.localize2(959, "Find Next Selection"),
753
+ label: nls.localize2(960, "Find Next Selection"),
754
754
  precondition: undefined,
755
755
  kbOpts: {
756
756
  kbExpr: EditorContextKeys.focus,
@@ -767,7 +767,7 @@ export class PreviousSelectionMatchFindAction extends SelectionMatchFindAction {
767
767
  constructor() {
768
768
  super({
769
769
  id: FIND_IDS.PreviousSelectionMatchFindAction,
770
- label: nls.localize2(960, "Find Previous Selection"),
770
+ label: nls.localize2(961, "Find Previous Selection"),
771
771
  precondition: undefined,
772
772
  kbOpts: {
773
773
  kbExpr: EditorContextKeys.focus,
@@ -782,7 +782,7 @@ export class PreviousSelectionMatchFindAction extends SelectionMatchFindAction {
782
782
  }
783
783
  export const StartFindReplaceAction = registerMultiEditorAction(new MultiEditorAction({
784
784
  id: FIND_IDS.StartFindReplaceAction,
785
- label: nls.localize2(961, "Replace"),
785
+ label: nls.localize2(962, "Replace"),
786
786
  precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has('editorIsOpen')),
787
787
  kbOpts: {
788
788
  kbExpr: null,
@@ -793,7 +793,7 @@ export const StartFindReplaceAction = registerMultiEditorAction(new MultiEditorA
793
793
  menuOpts: {
794
794
  menuId: MenuId.MenubarEditMenu,
795
795
  group: '3_find',
796
- title: nls.localize(952, "&&Replace"),
796
+ title: nls.localize(953, "&&Replace"),
797
797
  order: 2
798
798
  }
799
799
  }));
@@ -26,28 +26,28 @@ import { ThemeIcon } from '../../../../base/common/themables.js';
26
26
  import { isHighContrast } from '../../../../platform/theme/common/theme.js';
27
27
  import { assertReturnsDefined } from '../../../../base/common/types.js';
28
28
  import { defaultInputBoxStyles, defaultToggleStyles } from '../../../../platform/theme/browser/defaultStyles.js';
29
- const findCollapsedIcon = registerIcon('find-collapsed', Codicon.chevronRight, nls.localize(962, 'Icon to indicate that the editor find widget is collapsed.'));
30
- const findExpandedIcon = registerIcon('find-expanded', Codicon.chevronDown, nls.localize(963, 'Icon to indicate that the editor find widget is expanded.'));
31
- export const findSelectionIcon = registerIcon('find-selection', Codicon.selection, nls.localize(964, 'Icon for \'Find in Selection\' in the editor find widget.'));
32
- export const findReplaceIcon = registerIcon('find-replace', Codicon.replace, nls.localize(965, 'Icon for \'Replace\' in the editor find widget.'));
33
- export const findReplaceAllIcon = registerIcon('find-replace-all', Codicon.replaceAll, nls.localize(966, 'Icon for \'Replace All\' in the editor find widget.'));
34
- export const findPreviousMatchIcon = registerIcon('find-previous-match', Codicon.arrowUp, nls.localize(967, 'Icon for \'Find Previous\' in the editor find widget.'));
35
- export const findNextMatchIcon = registerIcon('find-next-match', Codicon.arrowDown, nls.localize(968, 'Icon for \'Find Next\' in the editor find widget.'));
36
- const NLS_FIND_DIALOG_LABEL = nls.localize(969, "Find / Replace");
37
- const NLS_FIND_INPUT_LABEL = nls.localize(970, "Find");
38
- const NLS_FIND_INPUT_PLACEHOLDER = nls.localize(971, "Find");
39
- const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize(972, "Previous Match");
40
- const NLS_NEXT_MATCH_BTN_LABEL = nls.localize(973, "Next Match");
41
- const NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize(974, "Find in Selection");
42
- const NLS_CLOSE_BTN_LABEL = nls.localize(975, "Close");
43
- const NLS_REPLACE_INPUT_LABEL = nls.localize(976, "Replace");
44
- const NLS_REPLACE_INPUT_PLACEHOLDER = nls.localize(977, "Replace");
45
- const NLS_REPLACE_BTN_LABEL = nls.localize(978, "Replace");
46
- const NLS_REPLACE_ALL_BTN_LABEL = nls.localize(979, "Replace All");
47
- const NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize(980, "Toggle Replace");
48
- const NLS_MATCHES_COUNT_LIMIT_TITLE = nls.localize(981, "Only the first {0} results are highlighted, but all find operations work on the entire text.", MATCHES_LIMIT);
49
- export const NLS_MATCHES_LOCATION = nls.localize(982, "{0} of {1}");
50
- export const NLS_NO_RESULTS = nls.localize(983, "No results");
29
+ const findCollapsedIcon = registerIcon('find-collapsed', Codicon.chevronRight, nls.localize(963, 'Icon to indicate that the editor find widget is collapsed.'));
30
+ const findExpandedIcon = registerIcon('find-expanded', Codicon.chevronDown, nls.localize(964, 'Icon to indicate that the editor find widget is expanded.'));
31
+ export const findSelectionIcon = registerIcon('find-selection', Codicon.selection, nls.localize(965, 'Icon for \'Find in Selection\' in the editor find widget.'));
32
+ export const findReplaceIcon = registerIcon('find-replace', Codicon.replace, nls.localize(966, 'Icon for \'Replace\' in the editor find widget.'));
33
+ export const findReplaceAllIcon = registerIcon('find-replace-all', Codicon.replaceAll, nls.localize(967, 'Icon for \'Replace All\' in the editor find widget.'));
34
+ export const findPreviousMatchIcon = registerIcon('find-previous-match', Codicon.arrowUp, nls.localize(968, 'Icon for \'Find Previous\' in the editor find widget.'));
35
+ export const findNextMatchIcon = registerIcon('find-next-match', Codicon.arrowDown, nls.localize(969, 'Icon for \'Find Next\' in the editor find widget.'));
36
+ const NLS_FIND_DIALOG_LABEL = nls.localize(970, "Find / Replace");
37
+ const NLS_FIND_INPUT_LABEL = nls.localize(971, "Find");
38
+ const NLS_FIND_INPUT_PLACEHOLDER = nls.localize(972, "Find");
39
+ const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize(973, "Previous Match");
40
+ const NLS_NEXT_MATCH_BTN_LABEL = nls.localize(974, "Next Match");
41
+ const NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize(975, "Find in Selection");
42
+ const NLS_CLOSE_BTN_LABEL = nls.localize(976, "Close");
43
+ const NLS_REPLACE_INPUT_LABEL = nls.localize(977, "Replace");
44
+ const NLS_REPLACE_INPUT_PLACEHOLDER = nls.localize(978, "Replace");
45
+ const NLS_REPLACE_BTN_LABEL = nls.localize(979, "Replace");
46
+ const NLS_REPLACE_ALL_BTN_LABEL = nls.localize(980, "Replace All");
47
+ const NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize(981, "Toggle Replace");
48
+ const NLS_MATCHES_COUNT_LIMIT_TITLE = nls.localize(982, "Only the first {0} results are highlighted, but all find operations work on the entire text.", MATCHES_LIMIT);
49
+ export const NLS_MATCHES_LOCATION = nls.localize(983, "{0} of {1}");
50
+ export const NLS_NO_RESULTS = nls.localize(984, "No results");
51
51
  const FIND_WIDGET_INITIAL_WIDTH = 419;
52
52
  const PART_WIDTH = 275;
53
53
  const FIND_INPUT_AREA_WIDTH = PART_WIDTH - 54;
@@ -324,11 +324,11 @@ export class FindWidget extends Widget {
324
324
  _getAriaLabel(label, currentMatch, searchString) {
325
325
  if (label === NLS_NO_RESULTS) {
326
326
  return searchString === ''
327
- ? nls.localize(984, "{0} found", label)
328
- : nls.localize(985, "{0} found for '{1}'", label, searchString);
327
+ ? nls.localize(985, "{0} found", label)
328
+ : nls.localize(986, "{0} found for '{1}'", label, searchString);
329
329
  }
330
330
  if (currentMatch) {
331
- const ariaLabel = nls.localize(986, "{0} found for '{1}', at {2}", label, searchString, currentMatch.startLineNumber + ':' + currentMatch.startColumn);
331
+ const ariaLabel = nls.localize(987, "{0} found for '{1}', at {2}", label, searchString, currentMatch.startLineNumber + ':' + currentMatch.startColumn);
332
332
  const model = this._codeEditor.getModel();
333
333
  if (model && (currentMatch.startLineNumber <= model.getLineCount()) && (currentMatch.startLineNumber >= 1)) {
334
334
  const lineContent = model.getLineContent(currentMatch.startLineNumber);
@@ -336,7 +336,7 @@ export class FindWidget extends Widget {
336
336
  }
337
337
  return ariaLabel;
338
338
  }
339
- return nls.localize(987, "{0} found for '{1}'", label, searchString);
339
+ return nls.localize(988, "{0} found for '{1}'", label, searchString);
340
340
  }
341
341
  /**
342
342
  * If 'selection find' is ON we should not disable the button (its function is to cancel 'selection find').
@@ -21,7 +21,7 @@
21
21
  border-radius: 2px;
22
22
  }
23
23
 
24
- .action-item > .action-label.codicon {
24
+ .action-item > .action-label.codicon, .action-item .codicon {
25
25
  color: var(--vscode-button-foreground);
26
26
  }
27
27