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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) 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 -2
  18. package/esm/vs/base/browser/dom.js +1 -4
  19. package/esm/vs/base/browser/dom.js.map +1 -1
  20. package/esm/vs/base/browser/markdownRenderer.js +25 -11
  21. package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
  22. package/esm/vs/base/browser/ui/button/button.js +15 -8
  23. package/esm/vs/base/browser/ui/button/button.js.map +1 -1
  24. package/esm/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css +3 -8
  25. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  26. package/esm/vs/base/browser/ui/list/list.css +1 -0
  27. package/esm/vs/base/browser/ui/toolbar/toolbar.js +3 -0
  28. package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
  29. package/esm/vs/base/common/async.js +11 -0
  30. package/esm/vs/base/common/async.js.map +1 -1
  31. package/esm/vs/base/common/codiconsLibrary.js +11 -2
  32. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  33. package/esm/vs/base/common/defaultAccount.js +6 -0
  34. package/esm/vs/base/common/defaultAccount.js.map +1 -0
  35. package/esm/vs/base/common/equals.js +73 -24
  36. package/esm/vs/base/common/equals.js.map +1 -1
  37. package/esm/vs/base/common/event.js +14 -4
  38. package/esm/vs/base/common/event.js.map +1 -1
  39. package/esm/vs/base/common/iterator.js.map +1 -1
  40. package/esm/vs/base/common/keybindings.js +0 -8
  41. package/esm/vs/base/common/keybindings.js.map +1 -1
  42. package/esm/vs/base/common/lifecycle.js +2 -2
  43. package/esm/vs/base/common/lifecycle.js.map +1 -1
  44. package/esm/vs/base/common/marshallingIds.js.map +1 -1
  45. package/esm/vs/base/common/observableInternal/index.js +1 -1
  46. package/esm/vs/base/common/observableInternal/index.js.map +1 -1
  47. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -1
  48. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  49. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +16 -0
  50. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  51. package/esm/vs/base/common/observableInternal/utils/utils.js +11 -0
  52. package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
  53. package/esm/vs/base/common/product.js.map +1 -1
  54. package/esm/vs/base/common/strings.js +3 -1
  55. package/esm/vs/base/common/strings.js.map +1 -1
  56. package/esm/vs/editor/browser/controller/dragScrolling.js +2 -1
  57. package/esm/vs/editor/browser/controller/dragScrolling.js.map +1 -1
  58. package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js +73 -2
  59. package/esm/vs/editor/browser/controller/editContext/clipboardUtils.js.map +1 -1
  60. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +7 -51
  61. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
  62. package/esm/vs/editor/browser/controller/editContext/screenReaderUtils.js.map +1 -1
  63. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +7 -20
  64. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js.map +1 -1
  65. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js +14 -44
  66. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js.map +1 -1
  67. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextRegistry.js +19 -0
  68. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextRegistry.js.map +1 -0
  69. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js +14 -1
  70. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js.map +1 -1
  71. package/esm/vs/editor/browser/controller/mouseHandler.js +5 -2
  72. package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
  73. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  74. package/esm/vs/editor/browser/observableCodeEditor.js +32 -15
  75. package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
  76. package/esm/vs/editor/browser/view.js +11 -2
  77. package/esm/vs/editor/browser/view.js.map +1 -1
  78. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +5 -2
  79. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
  80. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +10 -0
  81. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  82. package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js.map +1 -1
  83. package/esm/vs/editor/browser/widget/multiDiffEditor/style.css +48 -0
  84. package/esm/vs/editor/common/config/fontInfo.js +1 -1
  85. package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
  86. package/esm/vs/editor/common/core/edits/edit.js +19 -0
  87. package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
  88. package/esm/vs/editor/common/core/edits/stringEdit.js +13 -0
  89. package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
  90. package/esm/vs/editor/common/core/edits/textEdit.js.map +1 -1
  91. package/esm/vs/editor/common/core/text/positionToOffsetImpl.js +24 -10
  92. package/esm/vs/editor/common/core/text/positionToOffsetImpl.js.map +1 -1
  93. package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
  94. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  95. package/esm/vs/editor/common/cursor/cursorWordOperations.js +6 -3
  96. package/esm/vs/editor/common/cursor/cursorWordOperations.js.map +1 -1
  97. package/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js +2 -2
  98. package/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js.map +1 -1
  99. package/esm/vs/editor/common/languages/nullTokenize.js +1 -1
  100. package/esm/vs/editor/common/languages/nullTokenize.js.map +1 -1
  101. package/esm/vs/editor/common/languages/supports/tokenization.js +3 -0
  102. package/esm/vs/editor/common/languages/supports/tokenization.js.map +1 -1
  103. package/esm/vs/editor/common/languages.js +2 -1
  104. package/esm/vs/editor/common/languages.js.map +1 -1
  105. package/esm/vs/editor/common/model/decorationProvider.js +21 -1
  106. package/esm/vs/editor/common/model/decorationProvider.js.map +1 -1
  107. package/esm/vs/editor/common/model/textModel.js +49 -30
  108. package/esm/vs/editor/common/model/textModel.js.map +1 -1
  109. package/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js +6 -3
  110. package/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js.map +1 -1
  111. package/esm/vs/editor/common/model/tokens/annotations.js +177 -0
  112. package/esm/vs/editor/common/model/tokens/annotations.js.map +1 -0
  113. package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js +131 -0
  114. package/esm/vs/editor/common/model/tokens/tokenizationFontDecorationsProvider.js.map +1 -0
  115. package/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js +9 -0
  116. package/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js.map +1 -1
  117. package/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js +9 -0
  118. package/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js.map +1 -1
  119. package/esm/vs/editor/common/textModelEditSource.js +2 -0
  120. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  121. package/esm/vs/editor/common/textModelEvents.js.map +1 -1
  122. package/esm/vs/editor/common/viewLayout/lineDecorations.js.map +1 -1
  123. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +1 -1
  124. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
  125. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +54 -36
  126. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js.map +1 -1
  127. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +14 -1
  128. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js.map +1 -1
  129. package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
  130. package/esm/vs/editor/contrib/hover/browser/hover.css +1 -1
  131. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +1 -1
  132. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
  133. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  134. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +1 -0
  135. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
  136. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js +2 -0
  137. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js.map +1 -1
  138. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +33 -4
  139. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js.map +1 -1
  140. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -12
  141. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js.map +1 -1
  142. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +7 -1
  143. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
  144. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  145. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  146. package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js +2 -1
  147. package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js.map +1 -1
  148. package/esm/vs/editor/contrib/inlineCompletions/browser/model/InlineSuggestAlternativeAction.js +8 -0
  149. package/esm/vs/editor/contrib/inlineCompletions/browser/model/InlineSuggestAlternativeAction.js.map +1 -0
  150. package/esm/vs/editor/contrib/inlineCompletions/browser/model/editKind.js +198 -0
  151. package/esm/vs/editor/contrib/inlineCompletions/browser/model/editKind.js.map +1 -0
  152. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionIsVisible.js +40 -0
  153. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionIsVisible.js.map +1 -0
  154. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +128 -65
  155. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  156. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +69 -13
  157. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  158. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +159 -94
  159. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
  160. package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js +124 -50
  161. package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js.map +1 -1
  162. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +393 -0
  163. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js.map +1 -0
  164. package/esm/vs/editor/contrib/inlineCompletions/browser/telemetry.js.map +1 -1
  165. package/esm/vs/editor/contrib/inlineCompletions/browser/utils.js +20 -0
  166. package/esm/vs/editor/contrib/inlineCompletions/browser/utils.js.map +1 -1
  167. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +59 -42
  168. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  169. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +29 -8
  170. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
  171. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +78 -46
  172. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  173. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +9 -4
  174. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  175. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +11 -4
  176. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  177. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +81 -41
  178. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  179. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js +48 -0
  180. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
  181. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +18 -15
  182. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  183. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js +3 -4
  184. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js.map +1 -1
  185. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +6 -7
  186. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
  187. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +4 -5
  188. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
  189. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +4 -3
  190. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  191. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +8 -8
  192. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
  193. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +9 -7
  194. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
  195. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +203 -41
  196. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
  197. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js +189 -0
  198. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/jumpToView.js.map +1 -0
  199. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +85 -102
  200. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
  201. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +75 -32
  202. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -1
  203. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistnaceWidgetPlacement.js +121 -0
  204. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistnaceWidgetPlacement.js.map +1 -0
  205. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
  206. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
  207. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +22 -20
  208. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  209. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +15 -5
  210. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
  211. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.css +39 -6
  212. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +10 -5
  213. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -1
  214. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  215. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  216. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -32
  217. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
  218. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  219. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  220. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  221. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  222. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  223. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  224. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  225. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  226. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  227. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  228. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  229. package/esm/vs/editor/contrib/rename/browser/rename.js +19 -11
  230. package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
  231. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  232. package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js +3 -2
  233. package/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js.map +1 -1
  234. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  235. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  236. package/esm/vs/editor/contrib/snippet/browser/snippetParser.js +33 -0
  237. package/esm/vs/editor/contrib/snippet/browser/snippetParser.js.map +1 -1
  238. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  239. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  240. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +12 -4
  241. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
  242. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +1 -0
  243. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
  244. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -8
  245. package/esm/vs/editor/contrib/suggest/browser/suggest.js.map +1 -1
  246. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +39 -28
  247. package/esm/vs/editor/contrib/suggest/browser/suggestController.js.map +1 -1
  248. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +1 -0
  249. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js.map +1 -1
  250. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +22 -18
  251. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js.map +1 -1
  252. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +28 -6
  253. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js.map +1 -1
  254. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  255. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  256. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  257. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  258. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  259. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  260. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  261. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  262. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  263. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  264. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +19 -2
  265. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js.map +1 -1
  266. package/esm/vs/editor/editor.api.d.ts +37 -2
  267. package/esm/vs/editor/standalone/browser/standaloneLanguages.js +2 -2
  268. package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
  269. package/esm/vs/editor/standalone/browser/standaloneServices.js +11 -1
  270. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  271. package/esm/vs/editor/standalone/common/monarch/monarchLexer.js +1 -1
  272. package/esm/vs/editor/standalone/common/monarch/monarchLexer.js.map +1 -1
  273. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  274. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  275. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  276. package/esm/vs/platform/actionWidget/browser/actionWidget.css +11 -8
  277. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  278. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  279. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  280. package/esm/vs/platform/actions/common/actions.js +11 -4
  281. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  282. package/esm/vs/platform/actions/common/menuService.js +2 -2
  283. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  284. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  285. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  286. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  287. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  288. package/esm/vs/platform/{product/common/productService.js → defaultAccount/common/defaultAccount.js} +2 -2
  289. package/esm/vs/platform/defaultAccount/common/defaultAccount.js.map +1 -0
  290. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  291. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  292. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  293. package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
  294. package/esm/vs/platform/instantiation/common/instantiationService.js +1 -8
  295. package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
  296. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  297. package/esm/vs/platform/list/browser/listService.js +27 -27
  298. package/esm/vs/platform/log/common/log.js +1 -1
  299. package/esm/vs/platform/log/common/log.js.map +1 -1
  300. package/esm/vs/platform/markers/common/markerService.js +6 -6
  301. package/esm/vs/platform/markers/common/markerService.js.map +1 -1
  302. package/esm/vs/platform/markers/common/markers.js +6 -6
  303. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  304. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  305. package/esm/vs/platform/quickinput/browser/media/quickInput.css +7 -3
  306. package/esm/vs/platform/quickinput/browser/quickInput.js +19 -11
  307. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  308. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  309. package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
  310. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  311. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  312. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  313. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  314. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -17
  315. package/esm/vs/platform/theme/common/colors/baseColors.js.map +1 -1
  316. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  317. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  318. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  319. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  320. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  321. package/esm/vs/platform/theme/common/colors/minimapColors.js +13 -13
  322. package/esm/vs/platform/theme/common/colors/minimapColors.js.map +1 -1
  323. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  324. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  325. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  326. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  327. package/esm/vs/platform/undoRedo/common/undoRedoService.js +21 -21
  328. package/esm/vs/platform/undoRedo/common/undoRedoService.js.map +1 -1
  329. package/esm/vs/platform/window/common/window.js +1 -1
  330. package/esm/vs/platform/window/common/window.js.map +1 -1
  331. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  332. package/monaco.d.ts +37 -2
  333. package/package.json +2 -2
  334. package/version.txt +1 -1
  335. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +0 -16
  336. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +0 -1
  337. package/esm/vs/platform/product/common/productService.js.map +0 -1
@@ -6,37 +6,25 @@ import * as arrays from './arrays.js';
6
6
  /**
7
7
  * Compares two items for equality using strict equality.
8
8
  */
9
- export const strictEquals = (a, b) => a === b;
9
+ export function strictEquals(a, b) {
10
+ return a === b;
11
+ }
12
+ export function strictEqualsC() {
13
+ return (a, b) => a === b;
14
+ }
10
15
  /**
11
16
  * Checks if the items of two arrays are equal.
12
17
  * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.
13
18
  */
14
- export function itemsEquals(itemEquals = strictEquals) {
15
- return (a, b) => arrays.equals(a, b, itemEquals);
19
+ export function arrayEquals(a, b, itemEquals) {
20
+ return arrays.equals(a, b, itemEquals ?? strictEquals);
16
21
  }
17
22
  /**
18
- * Uses `item.equals(other)` to determine equality.
23
+ * Checks if the items of two arrays are equal.
24
+ * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.
19
25
  */
20
- export function itemEquals() {
21
- return (a, b) => a.equals(b);
22
- }
23
- export function equalsIfDefined(equalsOrV1, v2, equals) {
24
- if (equals !== undefined) {
25
- const v1 = equalsOrV1;
26
- if (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {
27
- return v2 === v1;
28
- }
29
- return equals(v1, v2);
30
- }
31
- else {
32
- const equals = equalsOrV1;
33
- return (v1, v2) => {
34
- if (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {
35
- return v2 === v1;
36
- }
37
- return equals(v1, v2);
38
- };
39
- }
26
+ export function arrayEqualsC(itemEquals) {
27
+ return (a, b) => arrays.equals(a, b, itemEquals ?? strictEquals);
40
28
  }
41
29
  /**
42
30
  * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else.
@@ -79,5 +67,66 @@ export function structuralEquals(a, b) {
79
67
  }
80
68
  return false;
81
69
  }
70
+ export function structuralEqualsC() {
71
+ return (a, b) => structuralEquals(a, b);
72
+ }
82
73
  const objIds = new WeakMap();
74
+ /**
75
+ * Two items are considered equal, if their stringified representations are equal.
76
+ */
77
+ export function jsonStringifyEquals(a, b) {
78
+ return JSON.stringify(a) === JSON.stringify(b);
79
+ }
80
+ /**
81
+ * Two items are considered equal, if their stringified representations are equal.
82
+ */
83
+ export function jsonStringifyEqualsC() {
84
+ return (a, b) => JSON.stringify(a) === JSON.stringify(b);
85
+ }
86
+ /**
87
+ * Uses `item.equals(other)` to determine equality.
88
+ */
89
+ export function thisEqualsC() {
90
+ return (a, b) => a.equals(b);
91
+ }
92
+ /**
93
+ * Checks if two items are both null or undefined, or are equal according to the provided equality comparer.
94
+ */
95
+ export function equalsIfDefined(v1, v2, equals) {
96
+ if (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {
97
+ return v2 === v1;
98
+ }
99
+ return equals(v1, v2);
100
+ }
101
+ /**
102
+ * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer.
103
+ */
104
+ export function equalsIfDefinedC(equals) {
105
+ return (v1, v2) => {
106
+ if (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {
107
+ return v2 === v1;
108
+ }
109
+ return equals(v1, v2);
110
+ };
111
+ }
112
+ /**
113
+ * Each function in this file which offers an equality comparison, has an accompanying
114
+ * `*C` variant which returns an EqualityComparer function.
115
+ *
116
+ * The `*C` variant allows for easier composition of equality comparers and improved type-inference.
117
+ */
118
+ export var equals;
119
+ (function (equals) {
120
+ equals.strict = strictEquals;
121
+ equals.strictC = strictEqualsC;
122
+ equals.array = arrayEquals;
123
+ equals.arrayC = arrayEqualsC;
124
+ equals.structural = structuralEquals;
125
+ equals.structuralC = structuralEqualsC;
126
+ equals.jsonStringify = jsonStringifyEquals;
127
+ equals.jsonStringifyC = jsonStringifyEqualsC;
128
+ equals.thisC = thisEqualsC;
129
+ equals.ifDefined = equalsIfDefined;
130
+ equals.ifDefinedC = equalsIfDefinedC;
131
+ })(equals || (equals = {}));
83
132
  //# sourceMappingURL=equals.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/equals.ts","vs/base/common/equals.ts"],"names":[],"mappings":"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","file":"equals.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 * as arrays from './arrays.js';\n\nexport type EqualityComparer<T> = (a: T, b: T) => boolean;\n\n/**\n * Compares two items for equality using strict equality.\n*/\nexport const strictEquals = <T>(a: T, b: T): boolean => a === b;\n\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function itemsEquals<T>(itemEquals: EqualityComparer<T> = strictEquals): EqualityComparer<readonly T[]> {\n\treturn (a, b) => arrays.equals(a, b, itemEquals);\n}\n\n/**\n * Uses `item.equals(other)` to determine equality.\n */\nexport function itemEquals<T extends { equals(other: T): boolean }>(): EqualityComparer<T> {\n\treturn (a, b) => a.equals(b);\n}\n\n/**\n * Checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefined<T>(v1: T | undefined | null, v2: T | undefined | null, equals: EqualityComparer<T>): boolean;\n/**\n * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefined<T>(equals: EqualityComparer<T>): EqualityComparer<T | undefined | null>;\nexport function equalsIfDefined<T>(equalsOrV1: EqualityComparer<T> | T, v2?: T | undefined | null, equals?: EqualityComparer<T>): EqualityComparer<T | undefined | null> | boolean {\n\tif (equals !== undefined) {\n\t\tconst v1 = equalsOrV1 as T | undefined;\n\t\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\t\treturn v2 === v1;\n\t\t}\n\t\treturn equals(v1, v2);\n\t} else {\n\t\tconst equals = equalsOrV1 as EqualityComparer<T>;\n\t\treturn (v1, v2) => {\n\t\t\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\t\t\treturn v2 === v1;\n\t\t\t}\n\t\t\treturn equals(v1, v2);\n\t\t};\n\t}\n}\n\n/**\n * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else.\n*/\nexport function structuralEquals<T>(a: T, b: T): boolean {\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\tif (a.length !== b.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (!structuralEquals(a[i], b[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (a && typeof a === 'object' && b && typeof b === 'object') {\n\t\tif (Object.getPrototypeOf(a) === Object.prototype && Object.getPrototypeOf(b) === Object.prototype) {\n\t\t\tconst aObj = a as Record<string, unknown>;\n\t\t\tconst bObj = b as Record<string, unknown>;\n\t\t\tconst keysA = Object.keys(aObj);\n\t\t\tconst keysB = Object.keys(bObj);\n\t\t\tconst keysBSet = new Set(keysB);\n\n\t\t\tif (keysA.length !== keysB.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tfor (const key of keysA) {\n\t\t\t\tif (!keysBSet.has(key)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (!structuralEquals(aObj[key], bObj[key])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\nconst objIds = new WeakMap<object, number>();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as arrays from './arrays.js';\n\nexport type EqualityComparer<T> = (a: T, b: T) => boolean;\n\n/**\n * Compares two items for equality using strict equality.\n*/\nexport const strictEquals = <T>(a: T, b: T): boolean => a === b;\n\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function itemsEquals<T>(itemEquals: EqualityComparer<T> = strictEquals): EqualityComparer<readonly T[]> {\n\treturn (a, b) => arrays.equals(a, b, itemEquals);\n}\n\n/**\n * Uses `item.equals(other)` to determine equality.\n */\nexport function itemEquals<T extends { equals(other: T): boolean }>(): EqualityComparer<T> {\n\treturn (a, b) => a.equals(b);\n}\n\n/**\n * Checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefined<T>(v1: T | undefined | null, v2: T | undefined | null, equals: EqualityComparer<T>): boolean;\n/**\n * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefined<T>(equals: EqualityComparer<T>): EqualityComparer<T | undefined | null>;\nexport function equalsIfDefined<T>(equalsOrV1: EqualityComparer<T> | T, v2?: T | undefined | null, equals?: EqualityComparer<T>): EqualityComparer<T | undefined | null> | boolean {\n\tif (equals !== undefined) {\n\t\tconst v1 = equalsOrV1 as T | undefined;\n\t\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\t\treturn v2 === v1;\n\t\t}\n\t\treturn equals(v1, v2);\n\t} else {\n\t\tconst equals = equalsOrV1 as EqualityComparer<T>;\n\t\treturn (v1, v2) => {\n\t\t\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\t\t\treturn v2 === v1;\n\t\t\t}\n\t\t\treturn equals(v1, v2);\n\t\t};\n\t}\n}\n\n/**\n * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else.\n*/\nexport function structuralEquals<T>(a: T, b: T): boolean {\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\tif (a.length !== b.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (!structuralEquals(a[i], b[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (a && typeof a === 'object' && b && typeof b === 'object') {\n\t\tif (Object.getPrototypeOf(a) === Object.prototype && Object.getPrototypeOf(b) === Object.prototype) {\n\t\t\tconst aObj = a as Record<string, unknown>;\n\t\t\tconst bObj = b as Record<string, unknown>;\n\t\t\tconst keysA = Object.keys(aObj);\n\t\t\tconst keysB = Object.keys(bObj);\n\t\t\tconst keysBSet = new Set(keysB);\n\n\t\t\tif (keysA.length !== keysB.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tfor (const key of keysA) {\n\t\t\t\tif (!keysBSet.has(key)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (!structuralEquals(aObj[key], bObj[key])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\nconst objIds = new WeakMap<object, number>();\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/equals.ts","vs/base/common/equals.ts"],"names":[],"mappings":"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","file":"equals.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 * as arrays from './arrays.js';\n\n/*\n * Each function in this file which offers an equality comparison, has an accompanying\n * `*C` variant which returns an EqualityComparer function.\n *\n * The `*C` variant allows for easier composition of equality comparers and improved type-inference.\n*/\n\n\n/** Represents a function that decides if two values are equal. */\nexport type EqualityComparer<T> = (a: T, b: T) => boolean;\n\nexport interface IEquatable<T> {\n\tequals(other: T): boolean;\n}\n\n/**\n * Compares two items for equality using strict equality.\n*/\nexport function strictEquals<T>(a: T, b: T): boolean {\n\treturn a === b;\n}\n\nexport function strictEqualsC<T>(): EqualityComparer<T> {\n\treturn (a, b) => a === b;\n}\n\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function arrayEquals<T>(a: readonly T[], b: readonly T[], itemEquals?: EqualityComparer<T>): boolean {\n\treturn arrays.equals(a, b, itemEquals ?? strictEquals);\n}\n\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function arrayEqualsC<T>(itemEquals?: EqualityComparer<T>): EqualityComparer<readonly T[]> {\n\treturn (a, b) => arrays.equals(a, b, itemEquals ?? strictEquals);\n}\n\n/**\n * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else.\n*/\nexport function structuralEquals<T>(a: T, b: T): boolean {\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\tif (a.length !== b.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (!structuralEquals(a[i], b[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (a && typeof a === 'object' && b && typeof b === 'object') {\n\t\tif (Object.getPrototypeOf(a) === Object.prototype && Object.getPrototypeOf(b) === Object.prototype) {\n\t\t\tconst aObj = a as Record<string, unknown>;\n\t\t\tconst bObj = b as Record<string, unknown>;\n\t\t\tconst keysA = Object.keys(aObj);\n\t\t\tconst keysB = Object.keys(bObj);\n\t\t\tconst keysBSet = new Set(keysB);\n\n\t\t\tif (keysA.length !== keysB.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tfor (const key of keysA) {\n\t\t\t\tif (!keysBSet.has(key)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (!structuralEquals(aObj[key], bObj[key])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport function structuralEqualsC<T>(): EqualityComparer<T> {\n\treturn (a, b) => structuralEquals(a, b);\n}\nconst objIds = new WeakMap<object, number>();\n\n\n/**\n * Two items are considered equal, if their stringified representations are equal.\n*/\nexport function jsonStringifyEquals<T>(a: T, b: T): boolean {\n\treturn JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n * Two items are considered equal, if their stringified representations are equal.\n*/\nexport function jsonStringifyEqualsC<T>(): EqualityComparer<T> {\n\treturn (a, b) => JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n * Uses `item.equals(other)` to determine equality.\n */\nexport function thisEqualsC<T extends IEquatable<T>>(): EqualityComparer<T> {\n\treturn (a, b) => a.equals(b);\n}\n\n/**\n * Checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefined<T>(v1: T | undefined | null, v2: T | undefined | null, equals: EqualityComparer<T>): boolean {\n\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\treturn v2 === v1;\n\t}\n\treturn equals(v1, v2);\n}\n\n/**\n * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefinedC<T>(equals: EqualityComparer<T>): EqualityComparer<T | undefined | null> {\n\treturn (v1, v2) => {\n\t\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\t\treturn v2 === v1;\n\t\t}\n\t\treturn equals(v1, v2);\n\t};\n}\n\n/**\n * Each function in this file which offers an equality comparison, has an accompanying\n * `*C` variant which returns an EqualityComparer function.\n *\n * The `*C` variant allows for easier composition of equality comparers and improved type-inference.\n*/\nexport namespace equals {\n\texport const strict = strictEquals;\n\texport const strictC = strictEqualsC;\n\n\texport const array = arrayEquals;\n\texport const arrayC = arrayEqualsC;\n\n\texport const structural = structuralEquals;\n\texport const structuralC = structuralEqualsC;\n\n\texport const jsonStringify = jsonStringifyEquals;\n\texport const jsonStringifyC = jsonStringifyEqualsC;\n\n\texport const thisC = thisEqualsC;\n\n\texport const ifDefined = equalsIfDefined;\n\texport const ifDefinedC = equalsIfDefinedC;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as arrays from './arrays.js';\n\n/*\n * Each function in this file which offers an equality comparison, has an accompanying\n * `*C` variant which returns an EqualityComparer function.\n *\n * The `*C` variant allows for easier composition of equality comparers and improved type-inference.\n*/\n\n\n/** Represents a function that decides if two values are equal. */\nexport type EqualityComparer<T> = (a: T, b: T) => boolean;\n\nexport interface IEquatable<T> {\n\tequals(other: T): boolean;\n}\n\n/**\n * Compares two items for equality using strict equality.\n*/\nexport function strictEquals<T>(a: T, b: T): boolean {\n\treturn a === b;\n}\n\nexport function strictEqualsC<T>(): EqualityComparer<T> {\n\treturn (a, b) => a === b;\n}\n\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function arrayEquals<T>(a: readonly T[], b: readonly T[], itemEquals?: EqualityComparer<T>): boolean {\n\treturn arrays.equals(a, b, itemEquals ?? strictEquals);\n}\n\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function arrayEqualsC<T>(itemEquals?: EqualityComparer<T>): EqualityComparer<readonly T[]> {\n\treturn (a, b) => arrays.equals(a, b, itemEquals ?? strictEquals);\n}\n\n/**\n * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else.\n*/\nexport function structuralEquals<T>(a: T, b: T): boolean {\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\tif (a.length !== b.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (!structuralEquals(a[i], b[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (a && typeof a === 'object' && b && typeof b === 'object') {\n\t\tif (Object.getPrototypeOf(a) === Object.prototype && Object.getPrototypeOf(b) === Object.prototype) {\n\t\t\tconst aObj = a as Record<string, unknown>;\n\t\t\tconst bObj = b as Record<string, unknown>;\n\t\t\tconst keysA = Object.keys(aObj);\n\t\t\tconst keysB = Object.keys(bObj);\n\t\t\tconst keysBSet = new Set(keysB);\n\n\t\t\tif (keysA.length !== keysB.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tfor (const key of keysA) {\n\t\t\t\tif (!keysBSet.has(key)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (!structuralEquals(aObj[key], bObj[key])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport function structuralEqualsC<T>(): EqualityComparer<T> {\n\treturn (a, b) => structuralEquals(a, b);\n}\nconst objIds = new WeakMap<object, number>();\n\n\n/**\n * Two items are considered equal, if their stringified representations are equal.\n*/\nexport function jsonStringifyEquals<T>(a: T, b: T): boolean {\n\treturn JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n * Two items are considered equal, if their stringified representations are equal.\n*/\nexport function jsonStringifyEqualsC<T>(): EqualityComparer<T> {\n\treturn (a, b) => JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n * Uses `item.equals(other)` to determine equality.\n */\nexport function thisEqualsC<T extends IEquatable<T>>(): EqualityComparer<T> {\n\treturn (a, b) => a.equals(b);\n}\n\n/**\n * Checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefined<T>(v1: T | undefined | null, v2: T | undefined | null, equals: EqualityComparer<T>): boolean {\n\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\treturn v2 === v1;\n\t}\n\treturn equals(v1, v2);\n}\n\n/**\n * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer.\n*/\nexport function equalsIfDefinedC<T>(equals: EqualityComparer<T>): EqualityComparer<T | undefined | null> {\n\treturn (v1, v2) => {\n\t\tif (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {\n\t\t\treturn v2 === v1;\n\t\t}\n\t\treturn equals(v1, v2);\n\t};\n}\n\n/**\n * Each function in this file which offers an equality comparison, has an accompanying\n * `*C` variant which returns an EqualityComparer function.\n *\n * The `*C` variant allows for easier composition of equality comparers and improved type-inference.\n*/\nexport namespace equals {\n\texport const strict = strictEquals;\n\texport const strictC = strictEqualsC;\n\n\texport const array = arrayEquals;\n\texport const arrayC = arrayEqualsC;\n\n\texport const structural = structuralEquals;\n\texport const structuralC = structuralEqualsC;\n\n\texport const jsonStringify = jsonStringifyEquals;\n\texport const jsonStringifyC = jsonStringifyEqualsC;\n\n\texport const thisC = thisEqualsC;\n\n\texport const ifDefined = equalsIfDefined;\n\texport const ifDefinedC = equalsIfDefinedC;\n}\n"]}
@@ -47,10 +47,13 @@ export var Event;
47
47
  * returned event causes this utility to leak a listener on the original event.
48
48
  *
49
49
  * @param event The event source for the new event.
50
+ * @param flushOnListenerRemove Whether to fire all debounced events when a listener is removed. If this is not
51
+ * specified, some events could go missing. Use this if it's important that all events are processed, even if the
52
+ * listener gets disposed before the debounced event fires.
50
53
  * @param disposable A disposable store to add the new EventEmitter to.
51
54
  */
52
- function defer(event, disposable) {
53
- return debounce(event, () => void 0, 0, undefined, true, undefined, disposable);
55
+ function defer(event, flushOnListenerRemove, disposable) {
56
+ return debounce(event, () => void 0, 0, undefined, flushOnListenerRemove ?? true, undefined, disposable);
54
57
  }
55
58
  Event.defer = defer;
56
59
  /**
@@ -246,15 +249,22 @@ export var Event;
246
249
  * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned
247
250
  * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the
248
251
  * returned event causes this utility to leak a listener on the original event.
252
+ *
253
+ * @param event The event source for the new event.
254
+ * @param delay The number of milliseconds to debounce.
255
+ * @param flushOnListenerRemove Whether to fire all debounced events when a listener is removed. If this is not
256
+ * specified, some events could go missing. Use this if it's important that all events are processed, even if the
257
+ * listener gets disposed before the debounced event fires.
258
+ * @param disposable A disposable store to add the new EventEmitter to.
249
259
  */
250
- function accumulate(event, delay = 0, disposable) {
260
+ function accumulate(event, delay = 0, flushOnListenerRemove, disposable) {
251
261
  return Event.debounce(event, (last, e) => {
252
262
  if (!last) {
253
263
  return [e];
254
264
  }
255
265
  last.push(e);
256
266
  return last;
257
- }, delay, undefined, true, undefined, disposable);
267
+ }, delay, undefined, flushOnListenerRemove ?? true, undefined, disposable);
258
268
  }
259
269
  Event.accumulate = accumulate;
260
270
  /**