monaco-editor-core 0.55.0-dev-20251013 → 0.55.0-dev-20251015

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 (212) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +9 -0
  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 +9 -0
  12. package/esm/nls.messages.pt-br.js +9 -0
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +9 -0
  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 +10 -0
  18. package/esm/vs/base/browser/canIUse.js +0 -1
  19. package/esm/vs/base/browser/canIUse.js.map +1 -1
  20. package/esm/vs/base/browser/domSanitize.js +31 -23
  21. package/esm/vs/base/browser/domSanitize.js.map +1 -1
  22. package/esm/vs/base/browser/dompurify/dompurify.js +188 -385
  23. package/esm/vs/base/browser/markdownRenderer.js +6 -1
  24. package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
  25. package/esm/vs/base/browser/trustedTypes.js.map +1 -1
  26. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  27. package/esm/vs/base/browser/ui/countBadge/countBadge.css +1 -1
  28. package/esm/vs/base/browser/ui/toggle/toggle.js +6 -0
  29. package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
  30. package/esm/vs/base/common/codiconsLibrary.js +1 -0
  31. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  32. package/esm/vs/base/common/objects.js +0 -1
  33. package/esm/vs/base/common/objects.js.map +1 -1
  34. package/esm/vs/editor/browser/controller/mouseTarget.js +2 -1
  35. package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
  36. package/esm/vs/editor/browser/services/abstractCodeEditorService.js +5 -0
  37. package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
  38. package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
  39. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/copySelection.js +104 -0
  40. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/copySelection.js.map +1 -0
  41. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +3 -3
  42. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js.map +1 -1
  43. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +25 -24
  44. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js.map +1 -1
  45. package/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +5 -5
  46. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +7 -3
  47. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
  48. package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +8 -8
  49. package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js.map +1 -1
  50. package/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  51. package/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +2 -2
  52. package/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
  53. package/esm/vs/editor/browser/widget/diffEditor/style.css +11 -0
  54. package/esm/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
  55. package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  56. package/esm/vs/editor/common/config/editorConfigurationSchema.js +54 -54
  57. package/esm/vs/editor/common/config/editorOptions.js +406 -406
  58. package/esm/vs/editor/common/core/editorColorRegistry.js +68 -68
  59. package/esm/vs/editor/common/editorContextKeys.js +46 -46
  60. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  61. package/esm/vs/editor/common/languages.js +56 -56
  62. package/esm/vs/editor/common/model/editStack.js +1 -1
  63. package/esm/vs/editor/common/standaloneStrings.js +10 -10
  64. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  65. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  66. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  67. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  68. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  69. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  70. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  71. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  72. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  73. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  74. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  75. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  76. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  77. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  78. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  79. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  80. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  81. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +13 -14
  82. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
  83. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  84. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  85. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  86. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  87. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  88. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  89. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  90. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  91. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  92. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  93. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  94. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
  95. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  96. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  97. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  98. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  99. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  100. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  101. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  102. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  103. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  104. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  105. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  106. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  107. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  108. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  109. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  110. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  111. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  112. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  113. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  114. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +19 -19
  115. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  116. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +16 -11
  117. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
  118. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +1 -1
  119. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +6 -6
  120. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js.map +1 -1
  121. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -4
  122. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  123. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  124. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  125. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +2 -4
  126. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  127. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  128. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  129. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  130. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +47 -37
  131. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
  132. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  133. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  134. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  135. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  136. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  137. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  138. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  139. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  140. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +56 -10
  141. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
  142. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  143. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  144. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  145. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  146. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  147. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  148. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  149. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  150. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +2 -2
  151. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
  152. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  153. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  154. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  155. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  156. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  157. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  158. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  159. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  160. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  161. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  162. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  163. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  164. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  165. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  166. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  167. package/esm/vs/editor/editor.api.d.ts +3 -3
  168. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  169. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  170. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  171. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  172. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  173. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  174. package/esm/vs/platform/actions/common/actions.js +0 -1
  175. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  176. package/esm/vs/platform/actions/common/menuService.js +2 -2
  177. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  178. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  179. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  180. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  181. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  182. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  183. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  184. package/esm/vs/platform/list/browser/listService.js +27 -27
  185. package/esm/vs/platform/markers/common/markerService.js +2 -2
  186. package/esm/vs/platform/markers/common/markers.js +6 -6
  187. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
  188. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  189. package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
  190. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  191. package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
  192. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  193. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  194. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  195. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  196. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  197. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  198. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  199. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  200. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  201. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  202. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  203. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  204. package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
  205. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  206. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  207. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  208. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  209. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  210. package/monaco.d.ts +3 -3
  211. package/package.json +3 -3
  212. package/version.txt +1 -1
@@ -33,7 +33,7 @@ import { PlaceholderViewZone, ViewZoneOverlayWidget, applyObservableDecorations,
33
33
  */
34
34
  let HideUnchangedRegionsFeature = class HideUnchangedRegionsFeature extends Disposable {
35
35
  static { HideUnchangedRegionsFeature_1 = this; }
36
- static { this._breadcrumbsSourceFactory = observableValue(HideUnchangedRegionsFeature_1, () => ({
36
+ static { this._breadcrumbsSourceFactory = observableValue(this, () => ({
37
37
  dispose() {
38
38
  },
39
39
  getBreadcrumbItems(startRange, reader) {
@@ -145,7 +145,7 @@ let HideUnchangedRegionsFeature = class HideUnchangedRegionsFeature extends Disp
145
145
  const unchangedLinesDecorationShow = {
146
146
  description: 'Fold Unchanged',
147
147
  glyphMarginHoverMessage: new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true })
148
- .appendMarkdown(localize(121, 'Fold Unchanged Region')),
148
+ .appendMarkdown(localize(122, 'Fold Unchanged Region')),
149
149
  glyphMarginClassName: 'fold-unchanged ' + ThemeIcon.asClassName(Codicon.fold),
150
150
  zIndex: 10001,
151
151
  };
@@ -252,7 +252,7 @@ class CompactCollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {
252
252
  /** @description update labels */
253
253
  if (!this._hide) {
254
254
  const lineCount = this._unchangedRegion.getHiddenModifiedRange(reader).length;
255
- const linesHiddenText = localize(122, '{0} hidden lines', lineCount);
255
+ const linesHiddenText = localize(123, '{0} hidden lines', lineCount);
256
256
  this._nodes.text.innerText = linesHiddenText;
257
257
  }
258
258
  }));
@@ -270,12 +270,12 @@ class CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {
270
270
  this._revealModifiedHiddenLine = _revealModifiedHiddenLine;
271
271
  this._options = _options;
272
272
  this._nodes = h('div.diff-hidden-lines', [
273
- h('div.top@top', { title: localize(123, 'Click or drag to show more above') }),
273
+ h('div.top@top', { title: localize(124, 'Click or drag to show more above') }),
274
274
  h('div.center@content', { style: { display: 'flex' } }, [
275
- h('div@first', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: '0' } }, [$('a', { title: localize(124, 'Show Unchanged Region'), role: 'button', onclick: () => { this._unchangedRegion.showAll(undefined); } }, ...renderLabelWithIcons('$(unfold)'))]),
275
+ h('div@first', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: '0' } }, [$('a', { title: localize(125, 'Show Unchanged Region'), role: 'button', onclick: () => { this._unchangedRegion.showAll(undefined); } }, ...renderLabelWithIcons('$(unfold)'))]),
276
276
  h('div@others', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center' } }),
277
277
  ]),
278
- h('div.bottom@bottom', { title: localize(125, 'Click or drag to show more below'), role: 'button' }),
278
+ h('div.bottom@bottom', { title: localize(126, 'Click or drag to show more below'), role: 'button' }),
279
279
  ]);
280
280
  root.root.appendChild(this._nodes.root);
281
281
  if (!this._hide) {
@@ -387,8 +387,8 @@ class CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {
387
387
  const children = [];
388
388
  if (!this._hide) {
389
389
  const lineCount = _unchangedRegion.getHiddenModifiedRange(reader).length;
390
- const linesHiddenText = localize(126, '{0} hidden lines', lineCount);
391
- const span = $('span', { title: localize(127, 'Double click to unfold') }, linesHiddenText);
390
+ const linesHiddenText = localize(127, '{0} hidden lines', lineCount);
391
+ const span = $('span', { title: localize(128, 'Double click to unfold') }, linesHiddenText);
392
392
  span.addEventListener('dblclick', e => {
393
393
  if (e.button !== 0) {
394
394
  return;
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.ts"],"names":[],"mappings":"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","file":"hideUnchangedRegionsFeature.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, getWindow, h, reset } from '../../../../../base/browser/dom.js';\nimport { renderIcon, renderLabelWithIcons } from '../../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { MarkdownString } from '../../../../../base/common/htmlContent.js';\nimport { Disposable, IDisposable } from '../../../../../base/common/lifecycle.js';\nimport { IObservable, IReader, autorun, derived, derivedDisposable, observableValue, transaction } from '../../../../../base/common/observable.js';\nimport { ThemeIcon } from '../../../../../base/common/themables.js';\nimport { isDefined } from '../../../../../base/common/types.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { EditorOption } from '../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../common/core/ranges/lineRange.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { CursorChangeReason } from '../../../../common/cursorEvents.js';\nimport { SymbolKind, SymbolKinds } from '../../../../common/languages.js';\nimport { IModelDecorationOptions, IModelDeltaDecoration, ITextModel } from '../../../../common/model.js';\nimport { ICodeEditor } from '../../../editorBrowser.js';\nimport { observableCodeEditor } from '../../../observableCodeEditor.js';\nimport { DiffEditorEditors } from '../components/diffEditorEditors.js';\nimport { DiffEditorOptions } from '../diffEditorOptions.js';\nimport { DiffEditorViewModel, RevealPreference, UnchangedRegion } from '../diffEditorViewModel.js';\nimport { IObservableViewZone, PlaceholderViewZone, ViewZoneOverlayWidget, applyObservableDecorations, applyStyle } from '../utils.js';\n\n/**\n * Make sure to add the view zones to the editor!\n */\nexport class HideUnchangedRegionsFeature extends Disposable {\n\tprivate static readonly _breadcrumbsSourceFactory = observableValue<((textModel: ITextModel, instantiationService: IInstantiationService) => IDiffEditorBreadcrumbsSource)>(\n\t\tHideUnchangedRegionsFeature, () => ({\n\t\t\tdispose() {\n\t\t\t},\n\t\t\tgetBreadcrumbItems(startRange, reader) {\n\t\t\t\treturn [];\n\t\t\t},\n\t\t}));\n\tpublic static setBreadcrumbsSourceFactory(factory: (textModel: ITextModel, instantiationService: IInstantiationService) => IDiffEditorBreadcrumbsSource) {\n\t\tthis._breadcrumbsSourceFactory.set(factory, undefined);\n\t}\n\n\tprivate readonly _modifiedOutlineSource = derivedDisposable(this, (reader) => {\n\t\tconst m = this._editors.modifiedModel.read(reader);\n\t\tconst factory = HideUnchangedRegionsFeature._breadcrumbsSourceFactory.read(reader);\n\t\treturn (!m || !factory) ? undefined : factory(m, this._instantiationService);\n\t});\n\n\tpublic readonly viewZones: IObservable<{\n\t\torigViewZones: IObservableViewZone[];\n\t\tmodViewZones: IObservableViewZone[];\n\t}>;\n\n\tprivate _isUpdatingHiddenAreas = false;\n\tpublic get isUpdatingHiddenAreas() { return this._isUpdatingHiddenAreas; }\n\n\tconstructor(\n\t\tprivate readonly _editors: DiffEditorEditors,\n\t\tprivate readonly _diffModel: IObservable<DiffEditorViewModel | undefined>,\n\t\tprivate readonly _options: DiffEditorOptions,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService,\n\t) {\n\t\tsuper();\n\n\t\tthis._register(this._editors.original.onDidChangeCursorPosition(e => {\n\t\t\tif (e.reason === CursorChangeReason.ContentFlush) { return; }\n\t\t\tconst m = this._diffModel.get();\n\t\t\ttransaction(tx => {\n\t\t\t\tfor (const s of this._editors.original.getSelections() || []) {\n\t\t\t\t\tm?.ensureOriginalLineIsVisible(s.getStartPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t\tm?.ensureOriginalLineIsVisible(s.getEndPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t}\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(this._editors.modified.onDidChangeCursorPosition(e => {\n\t\t\tif (e.reason === CursorChangeReason.ContentFlush) { return; }\n\t\t\tconst m = this._diffModel.get();\n\t\t\ttransaction(tx => {\n\t\t\t\tfor (const s of this._editors.modified.getSelections() || []) {\n\t\t\t\t\tm?.ensureModifiedLineIsVisible(s.getStartPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t\tm?.ensureModifiedLineIsVisible(s.getEndPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t}\n\t\t\t});\n\t\t}));\n\n\t\tconst unchangedRegions = this._diffModel.map((m, reader) => {\n\t\t\tconst regions = m?.unchangedRegions.read(reader) ?? [];\n\t\t\tif (regions.length === 1 && regions[0].modifiedLineNumber === 1 && regions[0].lineCount === this._editors.modifiedModel.read(reader)?.getLineCount()) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\treturn regions;\n\t\t});\n\n\t\tthis.viewZones = derived(this, (reader) => {\n\t\t\t/** @description view Zones */\n\t\t\tconst modifiedOutlineSource = this._modifiedOutlineSource.read(reader);\n\t\t\tif (!modifiedOutlineSource) { return { origViewZones: [], modViewZones: [] }; }\n\n\t\t\tconst origViewZones: IObservableViewZone[] = [];\n\t\t\tconst modViewZones: IObservableViewZone[] = [];\n\t\t\tconst sideBySide = this._options.renderSideBySide.read(reader);\n\n\t\t\tconst compactMode = this._options.compactMode.read(reader);\n\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tfor (let i = 0; i < curUnchangedRegions.length; i++) {\n\t\t\t\tconst r = curUnchangedRegions[i];\n\t\t\t\tif (r.shouldHideControls(reader)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (compactMode && (i === 0 || i === curUnchangedRegions.length - 1)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (compactMode) {\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenOriginalRangeStart */ r.getHiddenOriginalRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst origVz = new PlaceholderViewZone(d, 12);\n\t\t\t\t\t\torigViewZones.push(origVz);\n\t\t\t\t\t\treader.store.add(new CompactCollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.original,\n\t\t\t\t\t\t\torigVz,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\t!sideBySide,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenModifiedRangeStart */ r.getHiddenModifiedRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst modViewZone = new PlaceholderViewZone(d, 12);\n\t\t\t\t\t\tmodViewZones.push(modViewZone);\n\t\t\t\t\t\treader.store.add(new CompactCollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.modified,\n\t\t\t\t\t\t\tmodViewZone,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenOriginalRangeStart */ r.getHiddenOriginalRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst origVz = new PlaceholderViewZone(d, 24);\n\t\t\t\t\t\torigViewZones.push(origVz);\n\t\t\t\t\t\treader.store.add(new CollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.original,\n\t\t\t\t\t\t\torigVz,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\tr.originalUnchangedRange,\n\t\t\t\t\t\t\t!sideBySide,\n\t\t\t\t\t\t\tmodifiedOutlineSource,\n\t\t\t\t\t\t\tl => this._diffModel.get()!.ensureModifiedLineIsVisible(l, RevealPreference.FromBottom, undefined),\n\t\t\t\t\t\t\tthis._options,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenModifiedRangeStart */ r.getHiddenModifiedRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst modViewZone = new PlaceholderViewZone(d, 24);\n\t\t\t\t\t\tmodViewZones.push(modViewZone);\n\t\t\t\t\t\treader.store.add(new CollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.modified,\n\t\t\t\t\t\t\tmodViewZone,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\tr.modifiedUnchangedRange,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tmodifiedOutlineSource,\n\t\t\t\t\t\t\tl => this._diffModel.get()!.ensureModifiedLineIsVisible(l, RevealPreference.FromBottom, undefined),\n\t\t\t\t\t\t\tthis._options,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { origViewZones, modViewZones, };\n\t\t});\n\n\n\t\tconst unchangedLinesDecoration: IModelDecorationOptions = {\n\t\t\tdescription: 'unchanged lines',\n\t\t\tclassName: 'diff-unchanged-lines',\n\t\t\tisWholeLine: true,\n\t\t};\n\t\tconst unchangedLinesDecorationShow: IModelDecorationOptions = {\n\t\t\tdescription: 'Fold Unchanged',\n\t\t\tglyphMarginHoverMessage: new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true })\n\t\t\t\t.appendMarkdown(localize('foldUnchanged', 'Fold Unchanged Region')),\n\t\t\tglyphMarginClassName: 'fold-unchanged ' + ThemeIcon.asClassName(Codicon.fold),\n\t\t\tzIndex: 10001,\n\t\t};\n\n\t\tthis._register(applyObservableDecorations(this._editors.original, derived(this, reader => {\n\t\t\t/** @description decorations */\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tconst result = curUnchangedRegions.map<IModelDeltaDecoration>(r => ({\n\t\t\t\trange: r.originalUnchangedRange.toInclusiveRange()!,\n\t\t\t\toptions: unchangedLinesDecoration,\n\t\t\t}));\n\t\t\tfor (const r of curUnchangedRegions) {\n\t\t\t\tif (r.shouldHideControls(reader)) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\trange: Range.fromPositions(new Position(r.originalLineNumber, 1)),\n\t\t\t\t\t\toptions: unchangedLinesDecorationShow,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t})));\n\n\t\tthis._register(applyObservableDecorations(this._editors.modified, derived(this, reader => {\n\t\t\t/** @description decorations */\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tconst result = curUnchangedRegions.map<IModelDeltaDecoration>(r => ({\n\t\t\t\trange: r.modifiedUnchangedRange.toInclusiveRange()!,\n\t\t\t\toptions: unchangedLinesDecoration,\n\t\t\t}));\n\t\t\tfor (const r of curUnchangedRegions) {\n\t\t\t\tif (r.shouldHideControls(reader)) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\trange: LineRange.ofLength(r.modifiedLineNumber, 1).toInclusiveRange()!,\n\t\t\t\t\t\toptions: unchangedLinesDecorationShow,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t})));\n\n\t\tthis._register(autorun((reader) => {\n\t\t\t/** @description update folded unchanged regions */\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tthis._isUpdatingHiddenAreas = true;\n\t\t\ttry {\n\t\t\t\tthis._editors.original.setHiddenAreas(curUnchangedRegions.map(r => r.getHiddenOriginalRange(reader).toInclusiveRange()).filter(isDefined));\n\t\t\t\tthis._editors.modified.setHiddenAreas(curUnchangedRegions.map(r => r.getHiddenModifiedRange(reader).toInclusiveRange()).filter(isDefined));\n\t\t\t} finally {\n\t\t\t\tthis._isUpdatingHiddenAreas = false;\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._editors.modified.onMouseUp(event => {\n\t\t\tif (!event.event.rightButton && event.target.position && event.target.element?.className.includes('fold-unchanged')) {\n\t\t\t\tconst lineNumber = event.target.position.lineNumber;\n\t\t\t\tconst model = this._diffModel.get();\n\t\t\t\tif (!model) { return; }\n\t\t\t\tconst region = model.unchangedRegions.get().find(r => r.modifiedUnchangedRange.contains(lineNumber));\n\t\t\t\tif (!region) { return; }\n\t\t\t\tregion.collapseAll(undefined);\n\t\t\t\tevent.event.stopPropagation();\n\t\t\t\tevent.event.preventDefault();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._editors.original.onMouseUp(event => {\n\t\t\tif (!event.event.rightButton && event.target.position && event.target.element?.className.includes('fold-unchanged')) {\n\t\t\t\tconst lineNumber = event.target.position.lineNumber;\n\t\t\t\tconst model = this._diffModel.get();\n\t\t\t\tif (!model) { return; }\n\t\t\t\tconst region = model.unchangedRegions.get().find(r => r.originalUnchangedRange.contains(lineNumber));\n\t\t\t\tif (!region) { return; }\n\t\t\t\tregion.collapseAll(undefined);\n\t\t\t\tevent.event.stopPropagation();\n\t\t\t\tevent.event.preventDefault();\n\t\t\t}\n\t\t}));\n\t}\n}\n\nclass CompactCollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {\n\tprivate readonly _nodes = h('div.diff-hidden-lines-compact', [\n\t\th('div.line-left', []),\n\t\th('div.text@text', []),\n\t\th('div.line-right', [])\n\t]);\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t_viewZone: PlaceholderViewZone,\n\t\tprivate readonly _unchangedRegion: UnchangedRegion,\n\t\tprivate readonly _hide: boolean = false,\n\t) {\n\t\tconst root = h('div.diff-hidden-lines-widget');\n\t\tsuper(editor, _viewZone, root.root);\n\t\troot.root.appendChild(this._nodes.root);\n\n\t\tif (this._hide) {\n\t\t\tthis._nodes.root.replaceChildren();\n\t\t}\n\n\t\tthis._register(autorun(reader => {\n\t\t\t/** @description update labels */\n\n\t\t\tif (!this._hide) {\n\t\t\t\tconst lineCount = this._unchangedRegion.getHiddenModifiedRange(reader).length;\n\t\t\t\tconst linesHiddenText = localize('hiddenLines', '{0} hidden lines', lineCount);\n\t\t\t\tthis._nodes.text.innerText = linesHiddenText;\n\t\t\t}\n\t\t}));\n\t}\n}\n\nclass CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {\n\tprivate readonly _nodes = h('div.diff-hidden-lines', [\n\t\th('div.top@top', { title: localize('diff.hiddenLines.top', 'Click or drag to show more above') }),\n\t\th('div.center@content', { style: { display: 'flex' } }, [\n\t\t\th('div@first', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: '0' } },\n\t\t\t\t[$('a', { title: localize('showUnchangedRegion', 'Show Unchanged Region'), role: 'button', onclick: () => { this._unchangedRegion.showAll(undefined); } },\n\t\t\t\t\t...renderLabelWithIcons('$(unfold)'))]\n\t\t\t),\n\t\t\th('div@others', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center' } }),\n\t\t]),\n\t\th('div.bottom@bottom', { title: localize('diff.bottom', 'Click or drag to show more below'), role: 'button' }),\n\t]);\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t_viewZone: PlaceholderViewZone,\n\t\tprivate readonly _unchangedRegion: UnchangedRegion,\n\t\tprivate readonly _unchangedRegionRange: LineRange,\n\t\tprivate readonly _hide: boolean,\n\t\tprivate readonly _modifiedOutlineSource: IDiffEditorBreadcrumbsSource,\n\t\tprivate readonly _revealModifiedHiddenLine: (lineNumber: number) => void,\n\t\tprivate readonly _options: DiffEditorOptions,\n\t) {\n\t\tconst root = h('div.diff-hidden-lines-widget');\n\t\tsuper(_editor, _viewZone, root.root);\n\t\troot.root.appendChild(this._nodes.root);\n\n\t\tif (!this._hide) {\n\t\t\tthis._register(applyStyle(this._nodes.first, { width: observableCodeEditor(this._editor).layoutInfoContentLeft }));\n\t\t} else {\n\t\t\treset(this._nodes.first);\n\t\t}\n\n\t\tthis._register(autorun(reader => {\n\t\t\t/** @description Update CollapsedCodeOverlayWidget canMove* css classes */\n\t\t\tconst isFullyRevealed = this._unchangedRegion.visibleLineCountTop.read(reader) + this._unchangedRegion.visibleLineCountBottom.read(reader) === this._unchangedRegion.lineCount;\n\n\t\t\tthis._nodes.bottom.classList.toggle('canMoveTop', !isFullyRevealed);\n\t\t\tthis._nodes.bottom.classList.toggle('canMoveBottom', this._unchangedRegion.visibleLineCountBottom.read(reader) > 0);\n\t\t\tthis._nodes.top.classList.toggle('canMoveTop', this._unchangedRegion.visibleLineCountTop.read(reader) > 0);\n\t\t\tthis._nodes.top.classList.toggle('canMoveBottom', !isFullyRevealed);\n\t\t\tconst isDragged = this._unchangedRegion.isDragged.read(reader);\n\t\t\tconst domNode = this._editor.getDomNode();\n\t\t\tif (domNode) {\n\t\t\t\tdomNode.classList.toggle('draggingUnchangedRegion', !!isDragged);\n\t\t\t\tif (isDragged === 'top') {\n\t\t\t\t\tdomNode.classList.toggle('canMoveTop', this._unchangedRegion.visibleLineCountTop.read(reader) > 0);\n\t\t\t\t\tdomNode.classList.toggle('canMoveBottom', !isFullyRevealed);\n\t\t\t\t} else if (isDragged === 'bottom') {\n\t\t\t\t\tdomNode.classList.toggle('canMoveTop', !isFullyRevealed);\n\t\t\t\t\tdomNode.classList.toggle('canMoveBottom', this._unchangedRegion.visibleLineCountBottom.read(reader) > 0);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.classList.toggle('canMoveTop', false);\n\t\t\t\t\tdomNode.classList.toggle('canMoveBottom', false);\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\tconst editor = this._editor;\n\n\t\tthis._register(addDisposableListener(this._nodes.top, 'mousedown', e => {\n\t\t\tif (e.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._nodes.top.classList.toggle('dragging', true);\n\t\t\tthis._nodes.root.classList.toggle('dragging', true);\n\t\t\te.preventDefault();\n\t\t\tconst startTop = e.clientY;\n\t\t\tlet didMove = false;\n\t\t\tconst cur = this._unchangedRegion.visibleLineCountTop.get();\n\t\t\tthis._unchangedRegion.isDragged.set('top', undefined);\n\n\t\t\tconst window = getWindow(this._nodes.top);\n\n\t\t\tconst mouseMoveListener = addDisposableListener(window, 'mousemove', e => {\n\t\t\t\tconst currentTop = e.clientY;\n\t\t\t\tconst delta = currentTop - startTop;\n\t\t\t\tdidMove = didMove || Math.abs(delta) > 2;\n\t\t\t\tconst lineDelta = Math.round(delta / editor.getOption(EditorOption.lineHeight));\n\t\t\t\tconst newVal = Math.max(0, Math.min(cur + lineDelta, this._unchangedRegion.getMaxVisibleLineCountTop()));\n\t\t\t\tthis._unchangedRegion.visibleLineCountTop.set(newVal, undefined);\n\t\t\t});\n\n\t\t\tconst mouseUpListener = addDisposableListener(window, 'mouseup', e => {\n\t\t\t\tif (!didMove) {\n\t\t\t\t\tthis._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(), undefined);\n\t\t\t\t}\n\t\t\t\tthis._nodes.top.classList.toggle('dragging', false);\n\t\t\t\tthis._nodes.root.classList.toggle('dragging', false);\n\t\t\t\tthis._unchangedRegion.isDragged.set(undefined, undefined);\n\t\t\t\tmouseMoveListener.dispose();\n\t\t\t\tmouseUpListener.dispose();\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(addDisposableListener(this._nodes.bottom, 'mousedown', e => {\n\t\t\tif (e.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._nodes.bottom.classList.toggle('dragging', true);\n\t\t\tthis._nodes.root.classList.toggle('dragging', true);\n\t\t\te.preventDefault();\n\t\t\tconst startTop = e.clientY;\n\t\t\tlet didMove = false;\n\t\t\tconst cur = this._unchangedRegion.visibleLineCountBottom.get();\n\t\t\tthis._unchangedRegion.isDragged.set('bottom', undefined);\n\n\t\t\tconst window = getWindow(this._nodes.bottom);\n\n\t\t\tconst mouseMoveListener = addDisposableListener(window, 'mousemove', e => {\n\t\t\t\tconst currentTop = e.clientY;\n\t\t\t\tconst delta = currentTop - startTop;\n\t\t\t\tdidMove = didMove || Math.abs(delta) > 2;\n\t\t\t\tconst lineDelta = Math.round(delta / editor.getOption(EditorOption.lineHeight));\n\t\t\t\tconst newVal = Math.max(0, Math.min(cur - lineDelta, this._unchangedRegion.getMaxVisibleLineCountBottom()));\n\t\t\t\tconst top = this._unchangedRegionRange.endLineNumberExclusive > editor.getModel()!.getLineCount()\n\t\t\t\t\t? editor.getContentHeight()\n\t\t\t\t\t: editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\t\t\t\tthis._unchangedRegion.visibleLineCountBottom.set(newVal, undefined);\n\t\t\t\tconst top2 = this._unchangedRegionRange.endLineNumberExclusive > editor.getModel()!.getLineCount()\n\t\t\t\t\t? editor.getContentHeight()\n\t\t\t\t\t: editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\t\t\t\teditor.setScrollTop(editor.getScrollTop() + (top2 - top));\n\t\t\t});\n\n\t\t\tconst mouseUpListener = addDisposableListener(window, 'mouseup', e => {\n\t\t\t\tthis._unchangedRegion.isDragged.set(undefined, undefined);\n\n\t\t\t\tif (!didMove) {\n\t\t\t\t\tconst top = editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\n\t\t\t\t\tthis._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(), undefined);\n\t\t\t\t\tconst top2 = editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\t\t\t\t\teditor.setScrollTop(editor.getScrollTop() + (top2 - top));\n\t\t\t\t}\n\t\t\t\tthis._nodes.bottom.classList.toggle('dragging', false);\n\t\t\t\tthis._nodes.root.classList.toggle('dragging', false);\n\t\t\t\tmouseMoveListener.dispose();\n\t\t\t\tmouseUpListener.dispose();\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\t/** @description update labels */\n\n\t\t\tconst children: HTMLElement[] = [];\n\t\t\tif (!this._hide) {\n\t\t\t\tconst lineCount = _unchangedRegion.getHiddenModifiedRange(reader).length;\n\t\t\t\tconst linesHiddenText = localize('hiddenLines', '{0} hidden lines', lineCount);\n\t\t\t\tconst span = $('span', { title: localize('diff.hiddenLines.expandAll', 'Double click to unfold') }, linesHiddenText);\n\t\t\t\tspan.addEventListener('dblclick', e => {\n\t\t\t\t\tif (e.button !== 0) { return; }\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis._unchangedRegion.showAll(undefined);\n\t\t\t\t});\n\t\t\t\tchildren.push(span);\n\n\t\t\t\tconst range = this._unchangedRegion.getHiddenModifiedRange(reader);\n\t\t\t\tconst items = this._modifiedOutlineSource.getBreadcrumbItems(range, reader);\n\n\t\t\t\tif (items.length > 0) {\n\t\t\t\t\tchildren.push($('span', undefined, '\\u00a0\\u00a0|\\u00a0\\u00a0'));\n\n\t\t\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\t\t\tconst item = items[i];\n\t\t\t\t\t\tconst icon = SymbolKinds.toIcon(item.kind);\n\t\t\t\t\t\tconst divItem = h('div.breadcrumb-item', {\n\t\t\t\t\t\t\tstyle: { display: 'flex', alignItems: 'center' },\n\t\t\t\t\t\t}, [\n\t\t\t\t\t\t\trenderIcon(icon),\n\t\t\t\t\t\t\t'\\u00a0',\n\t\t\t\t\t\t\titem.name,\n\t\t\t\t\t\t\t...(i === items.length - 1\n\t\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t\t: [renderIcon(Codicon.chevronRight)]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t]).root;\n\t\t\t\t\t\tchildren.push(divItem);\n\t\t\t\t\t\tdivItem.onclick = () => {\n\t\t\t\t\t\t\tthis._revealModifiedHiddenLine(item.startLineNumber);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treset(this._nodes.others, ...children);\n\t\t}));\n\t}\n}\n\nexport interface IDiffEditorBreadcrumbsSource extends IDisposable {\n\tgetBreadcrumbItems(startRange: LineRange, reader: IReader): { name: string; kind: SymbolKind; startLineNumber: number }[];\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.ts"],"names":[],"mappings":"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","file":"hideUnchangedRegionsFeature.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, getWindow, h, reset } from '../../../../../base/browser/dom.js';\nimport { renderIcon, renderLabelWithIcons } from '../../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { MarkdownString } from '../../../../../base/common/htmlContent.js';\nimport { Disposable, IDisposable } from '../../../../../base/common/lifecycle.js';\nimport { IObservable, IReader, autorun, derived, derivedDisposable, observableValue, transaction } from '../../../../../base/common/observable.js';\nimport { ThemeIcon } from '../../../../../base/common/themables.js';\nimport { isDefined } from '../../../../../base/common/types.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { EditorOption } from '../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../common/core/ranges/lineRange.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { CursorChangeReason } from '../../../../common/cursorEvents.js';\nimport { SymbolKind, SymbolKinds } from '../../../../common/languages.js';\nimport { IModelDecorationOptions, IModelDeltaDecoration, ITextModel } from '../../../../common/model.js';\nimport { ICodeEditor } from '../../../editorBrowser.js';\nimport { observableCodeEditor } from '../../../observableCodeEditor.js';\nimport { DiffEditorEditors } from '../components/diffEditorEditors.js';\nimport { DiffEditorOptions } from '../diffEditorOptions.js';\nimport { DiffEditorViewModel, RevealPreference, UnchangedRegion } from '../diffEditorViewModel.js';\nimport { IObservableViewZone, PlaceholderViewZone, ViewZoneOverlayWidget, applyObservableDecorations, applyStyle } from '../utils.js';\n\n/**\n * Make sure to add the view zones to the editor!\n */\nexport class HideUnchangedRegionsFeature extends Disposable {\n\tprivate static readonly _breadcrumbsSourceFactory = observableValue<((textModel: ITextModel, instantiationService: IInstantiationService) => IDiffEditorBreadcrumbsSource)>(\n\t\tthis, () => ({\n\t\t\tdispose() {\n\t\t\t},\n\t\t\tgetBreadcrumbItems(startRange, reader) {\n\t\t\t\treturn [];\n\t\t\t},\n\t\t}));\n\tpublic static setBreadcrumbsSourceFactory(factory: (textModel: ITextModel, instantiationService: IInstantiationService) => IDiffEditorBreadcrumbsSource) {\n\t\tthis._breadcrumbsSourceFactory.set(factory, undefined);\n\t}\n\n\tprivate readonly _modifiedOutlineSource = derivedDisposable(this, (reader) => {\n\t\tconst m = this._editors.modifiedModel.read(reader);\n\t\tconst factory = HideUnchangedRegionsFeature._breadcrumbsSourceFactory.read(reader);\n\t\treturn (!m || !factory) ? undefined : factory(m, this._instantiationService);\n\t});\n\n\tpublic readonly viewZones: IObservable<{\n\t\torigViewZones: IObservableViewZone[];\n\t\tmodViewZones: IObservableViewZone[];\n\t}>;\n\n\tprivate _isUpdatingHiddenAreas = false;\n\tpublic get isUpdatingHiddenAreas() { return this._isUpdatingHiddenAreas; }\n\n\tconstructor(\n\t\tprivate readonly _editors: DiffEditorEditors,\n\t\tprivate readonly _diffModel: IObservable<DiffEditorViewModel | undefined>,\n\t\tprivate readonly _options: DiffEditorOptions,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService,\n\t) {\n\t\tsuper();\n\n\t\tthis._register(this._editors.original.onDidChangeCursorPosition(e => {\n\t\t\tif (e.reason === CursorChangeReason.ContentFlush) { return; }\n\t\t\tconst m = this._diffModel.get();\n\t\t\ttransaction(tx => {\n\t\t\t\tfor (const s of this._editors.original.getSelections() || []) {\n\t\t\t\t\tm?.ensureOriginalLineIsVisible(s.getStartPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t\tm?.ensureOriginalLineIsVisible(s.getEndPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t}\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(this._editors.modified.onDidChangeCursorPosition(e => {\n\t\t\tif (e.reason === CursorChangeReason.ContentFlush) { return; }\n\t\t\tconst m = this._diffModel.get();\n\t\t\ttransaction(tx => {\n\t\t\t\tfor (const s of this._editors.modified.getSelections() || []) {\n\t\t\t\t\tm?.ensureModifiedLineIsVisible(s.getStartPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t\tm?.ensureModifiedLineIsVisible(s.getEndPosition().lineNumber, RevealPreference.FromCloserSide, tx);\n\t\t\t\t}\n\t\t\t});\n\t\t}));\n\n\t\tconst unchangedRegions = this._diffModel.map((m, reader) => {\n\t\t\tconst regions = m?.unchangedRegions.read(reader) ?? [];\n\t\t\tif (regions.length === 1 && regions[0].modifiedLineNumber === 1 && regions[0].lineCount === this._editors.modifiedModel.read(reader)?.getLineCount()) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\treturn regions;\n\t\t});\n\n\t\tthis.viewZones = derived(this, (reader) => {\n\t\t\t/** @description view Zones */\n\t\t\tconst modifiedOutlineSource = this._modifiedOutlineSource.read(reader);\n\t\t\tif (!modifiedOutlineSource) { return { origViewZones: [], modViewZones: [] }; }\n\n\t\t\tconst origViewZones: IObservableViewZone[] = [];\n\t\t\tconst modViewZones: IObservableViewZone[] = [];\n\t\t\tconst sideBySide = this._options.renderSideBySide.read(reader);\n\n\t\t\tconst compactMode = this._options.compactMode.read(reader);\n\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tfor (let i = 0; i < curUnchangedRegions.length; i++) {\n\t\t\t\tconst r = curUnchangedRegions[i];\n\t\t\t\tif (r.shouldHideControls(reader)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (compactMode && (i === 0 || i === curUnchangedRegions.length - 1)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (compactMode) {\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenOriginalRangeStart */ r.getHiddenOriginalRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst origVz = new PlaceholderViewZone(d, 12);\n\t\t\t\t\t\torigViewZones.push(origVz);\n\t\t\t\t\t\treader.store.add(new CompactCollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.original,\n\t\t\t\t\t\t\torigVz,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\t!sideBySide,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenModifiedRangeStart */ r.getHiddenModifiedRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst modViewZone = new PlaceholderViewZone(d, 12);\n\t\t\t\t\t\tmodViewZones.push(modViewZone);\n\t\t\t\t\t\treader.store.add(new CompactCollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.modified,\n\t\t\t\t\t\t\tmodViewZone,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenOriginalRangeStart */ r.getHiddenOriginalRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst origVz = new PlaceholderViewZone(d, 24);\n\t\t\t\t\t\torigViewZones.push(origVz);\n\t\t\t\t\t\treader.store.add(new CollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.original,\n\t\t\t\t\t\t\torigVz,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\tr.originalUnchangedRange,\n\t\t\t\t\t\t\t!sideBySide,\n\t\t\t\t\t\t\tmodifiedOutlineSource,\n\t\t\t\t\t\t\tl => this._diffModel.get()!.ensureModifiedLineIsVisible(l, RevealPreference.FromBottom, undefined),\n\t\t\t\t\t\t\tthis._options,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tconst d = derived(this, reader => /** @description hiddenModifiedRangeStart */ r.getHiddenModifiedRange(reader).startLineNumber - 1);\n\t\t\t\t\t\tconst modViewZone = new PlaceholderViewZone(d, 24);\n\t\t\t\t\t\tmodViewZones.push(modViewZone);\n\t\t\t\t\t\treader.store.add(new CollapsedCodeOverlayWidget(\n\t\t\t\t\t\t\tthis._editors.modified,\n\t\t\t\t\t\t\tmodViewZone,\n\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\tr.modifiedUnchangedRange,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tmodifiedOutlineSource,\n\t\t\t\t\t\t\tl => this._diffModel.get()!.ensureModifiedLineIsVisible(l, RevealPreference.FromBottom, undefined),\n\t\t\t\t\t\t\tthis._options,\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { origViewZones, modViewZones, };\n\t\t});\n\n\n\t\tconst unchangedLinesDecoration: IModelDecorationOptions = {\n\t\t\tdescription: 'unchanged lines',\n\t\t\tclassName: 'diff-unchanged-lines',\n\t\t\tisWholeLine: true,\n\t\t};\n\t\tconst unchangedLinesDecorationShow: IModelDecorationOptions = {\n\t\t\tdescription: 'Fold Unchanged',\n\t\t\tglyphMarginHoverMessage: new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true })\n\t\t\t\t.appendMarkdown(localize('foldUnchanged', 'Fold Unchanged Region')),\n\t\t\tglyphMarginClassName: 'fold-unchanged ' + ThemeIcon.asClassName(Codicon.fold),\n\t\t\tzIndex: 10001,\n\t\t};\n\n\t\tthis._register(applyObservableDecorations(this._editors.original, derived(this, reader => {\n\t\t\t/** @description decorations */\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tconst result = curUnchangedRegions.map<IModelDeltaDecoration>(r => ({\n\t\t\t\trange: r.originalUnchangedRange.toInclusiveRange()!,\n\t\t\t\toptions: unchangedLinesDecoration,\n\t\t\t}));\n\t\t\tfor (const r of curUnchangedRegions) {\n\t\t\t\tif (r.shouldHideControls(reader)) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\trange: Range.fromPositions(new Position(r.originalLineNumber, 1)),\n\t\t\t\t\t\toptions: unchangedLinesDecorationShow,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t})));\n\n\t\tthis._register(applyObservableDecorations(this._editors.modified, derived(this, reader => {\n\t\t\t/** @description decorations */\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tconst result = curUnchangedRegions.map<IModelDeltaDecoration>(r => ({\n\t\t\t\trange: r.modifiedUnchangedRange.toInclusiveRange()!,\n\t\t\t\toptions: unchangedLinesDecoration,\n\t\t\t}));\n\t\t\tfor (const r of curUnchangedRegions) {\n\t\t\t\tif (r.shouldHideControls(reader)) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\trange: LineRange.ofLength(r.modifiedLineNumber, 1).toInclusiveRange()!,\n\t\t\t\t\t\toptions: unchangedLinesDecorationShow,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t})));\n\n\t\tthis._register(autorun((reader) => {\n\t\t\t/** @description update folded unchanged regions */\n\t\t\tconst curUnchangedRegions = unchangedRegions.read(reader);\n\t\t\tthis._isUpdatingHiddenAreas = true;\n\t\t\ttry {\n\t\t\t\tthis._editors.original.setHiddenAreas(curUnchangedRegions.map(r => r.getHiddenOriginalRange(reader).toInclusiveRange()).filter(isDefined));\n\t\t\t\tthis._editors.modified.setHiddenAreas(curUnchangedRegions.map(r => r.getHiddenModifiedRange(reader).toInclusiveRange()).filter(isDefined));\n\t\t\t} finally {\n\t\t\t\tthis._isUpdatingHiddenAreas = false;\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._editors.modified.onMouseUp(event => {\n\t\t\tif (!event.event.rightButton && event.target.position && event.target.element?.className.includes('fold-unchanged')) {\n\t\t\t\tconst lineNumber = event.target.position.lineNumber;\n\t\t\t\tconst model = this._diffModel.get();\n\t\t\t\tif (!model) { return; }\n\t\t\t\tconst region = model.unchangedRegions.get().find(r => r.modifiedUnchangedRange.contains(lineNumber));\n\t\t\t\tif (!region) { return; }\n\t\t\t\tregion.collapseAll(undefined);\n\t\t\t\tevent.event.stopPropagation();\n\t\t\t\tevent.event.preventDefault();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._editors.original.onMouseUp(event => {\n\t\t\tif (!event.event.rightButton && event.target.position && event.target.element?.className.includes('fold-unchanged')) {\n\t\t\t\tconst lineNumber = event.target.position.lineNumber;\n\t\t\t\tconst model = this._diffModel.get();\n\t\t\t\tif (!model) { return; }\n\t\t\t\tconst region = model.unchangedRegions.get().find(r => r.originalUnchangedRange.contains(lineNumber));\n\t\t\t\tif (!region) { return; }\n\t\t\t\tregion.collapseAll(undefined);\n\t\t\t\tevent.event.stopPropagation();\n\t\t\t\tevent.event.preventDefault();\n\t\t\t}\n\t\t}));\n\t}\n}\n\nclass CompactCollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {\n\tprivate readonly _nodes = h('div.diff-hidden-lines-compact', [\n\t\th('div.line-left', []),\n\t\th('div.text@text', []),\n\t\th('div.line-right', [])\n\t]);\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t_viewZone: PlaceholderViewZone,\n\t\tprivate readonly _unchangedRegion: UnchangedRegion,\n\t\tprivate readonly _hide: boolean = false,\n\t) {\n\t\tconst root = h('div.diff-hidden-lines-widget');\n\t\tsuper(editor, _viewZone, root.root);\n\t\troot.root.appendChild(this._nodes.root);\n\n\t\tif (this._hide) {\n\t\t\tthis._nodes.root.replaceChildren();\n\t\t}\n\n\t\tthis._register(autorun(reader => {\n\t\t\t/** @description update labels */\n\n\t\t\tif (!this._hide) {\n\t\t\t\tconst lineCount = this._unchangedRegion.getHiddenModifiedRange(reader).length;\n\t\t\t\tconst linesHiddenText = localize('hiddenLines', '{0} hidden lines', lineCount);\n\t\t\t\tthis._nodes.text.innerText = linesHiddenText;\n\t\t\t}\n\t\t}));\n\t}\n}\n\nclass CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {\n\tprivate readonly _nodes = h('div.diff-hidden-lines', [\n\t\th('div.top@top', { title: localize('diff.hiddenLines.top', 'Click or drag to show more above') }),\n\t\th('div.center@content', { style: { display: 'flex' } }, [\n\t\t\th('div@first', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: '0' } },\n\t\t\t\t[$('a', { title: localize('showUnchangedRegion', 'Show Unchanged Region'), role: 'button', onclick: () => { this._unchangedRegion.showAll(undefined); } },\n\t\t\t\t\t...renderLabelWithIcons('$(unfold)'))]\n\t\t\t),\n\t\t\th('div@others', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center' } }),\n\t\t]),\n\t\th('div.bottom@bottom', { title: localize('diff.bottom', 'Click or drag to show more below'), role: 'button' }),\n\t]);\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t_viewZone: PlaceholderViewZone,\n\t\tprivate readonly _unchangedRegion: UnchangedRegion,\n\t\tprivate readonly _unchangedRegionRange: LineRange,\n\t\tprivate readonly _hide: boolean,\n\t\tprivate readonly _modifiedOutlineSource: IDiffEditorBreadcrumbsSource,\n\t\tprivate readonly _revealModifiedHiddenLine: (lineNumber: number) => void,\n\t\tprivate readonly _options: DiffEditorOptions,\n\t) {\n\t\tconst root = h('div.diff-hidden-lines-widget');\n\t\tsuper(_editor, _viewZone, root.root);\n\t\troot.root.appendChild(this._nodes.root);\n\n\t\tif (!this._hide) {\n\t\t\tthis._register(applyStyle(this._nodes.first, { width: observableCodeEditor(this._editor).layoutInfoContentLeft }));\n\t\t} else {\n\t\t\treset(this._nodes.first);\n\t\t}\n\n\t\tthis._register(autorun(reader => {\n\t\t\t/** @description Update CollapsedCodeOverlayWidget canMove* css classes */\n\t\t\tconst isFullyRevealed = this._unchangedRegion.visibleLineCountTop.read(reader) + this._unchangedRegion.visibleLineCountBottom.read(reader) === this._unchangedRegion.lineCount;\n\n\t\t\tthis._nodes.bottom.classList.toggle('canMoveTop', !isFullyRevealed);\n\t\t\tthis._nodes.bottom.classList.toggle('canMoveBottom', this._unchangedRegion.visibleLineCountBottom.read(reader) > 0);\n\t\t\tthis._nodes.top.classList.toggle('canMoveTop', this._unchangedRegion.visibleLineCountTop.read(reader) > 0);\n\t\t\tthis._nodes.top.classList.toggle('canMoveBottom', !isFullyRevealed);\n\t\t\tconst isDragged = this._unchangedRegion.isDragged.read(reader);\n\t\t\tconst domNode = this._editor.getDomNode();\n\t\t\tif (domNode) {\n\t\t\t\tdomNode.classList.toggle('draggingUnchangedRegion', !!isDragged);\n\t\t\t\tif (isDragged === 'top') {\n\t\t\t\t\tdomNode.classList.toggle('canMoveTop', this._unchangedRegion.visibleLineCountTop.read(reader) > 0);\n\t\t\t\t\tdomNode.classList.toggle('canMoveBottom', !isFullyRevealed);\n\t\t\t\t} else if (isDragged === 'bottom') {\n\t\t\t\t\tdomNode.classList.toggle('canMoveTop', !isFullyRevealed);\n\t\t\t\t\tdomNode.classList.toggle('canMoveBottom', this._unchangedRegion.visibleLineCountBottom.read(reader) > 0);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.classList.toggle('canMoveTop', false);\n\t\t\t\t\tdomNode.classList.toggle('canMoveBottom', false);\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\tconst editor = this._editor;\n\n\t\tthis._register(addDisposableListener(this._nodes.top, 'mousedown', e => {\n\t\t\tif (e.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._nodes.top.classList.toggle('dragging', true);\n\t\t\tthis._nodes.root.classList.toggle('dragging', true);\n\t\t\te.preventDefault();\n\t\t\tconst startTop = e.clientY;\n\t\t\tlet didMove = false;\n\t\t\tconst cur = this._unchangedRegion.visibleLineCountTop.get();\n\t\t\tthis._unchangedRegion.isDragged.set('top', undefined);\n\n\t\t\tconst window = getWindow(this._nodes.top);\n\n\t\t\tconst mouseMoveListener = addDisposableListener(window, 'mousemove', e => {\n\t\t\t\tconst currentTop = e.clientY;\n\t\t\t\tconst delta = currentTop - startTop;\n\t\t\t\tdidMove = didMove || Math.abs(delta) > 2;\n\t\t\t\tconst lineDelta = Math.round(delta / editor.getOption(EditorOption.lineHeight));\n\t\t\t\tconst newVal = Math.max(0, Math.min(cur + lineDelta, this._unchangedRegion.getMaxVisibleLineCountTop()));\n\t\t\t\tthis._unchangedRegion.visibleLineCountTop.set(newVal, undefined);\n\t\t\t});\n\n\t\t\tconst mouseUpListener = addDisposableListener(window, 'mouseup', e => {\n\t\t\t\tif (!didMove) {\n\t\t\t\t\tthis._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(), undefined);\n\t\t\t\t}\n\t\t\t\tthis._nodes.top.classList.toggle('dragging', false);\n\t\t\t\tthis._nodes.root.classList.toggle('dragging', false);\n\t\t\t\tthis._unchangedRegion.isDragged.set(undefined, undefined);\n\t\t\t\tmouseMoveListener.dispose();\n\t\t\t\tmouseUpListener.dispose();\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(addDisposableListener(this._nodes.bottom, 'mousedown', e => {\n\t\t\tif (e.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._nodes.bottom.classList.toggle('dragging', true);\n\t\t\tthis._nodes.root.classList.toggle('dragging', true);\n\t\t\te.preventDefault();\n\t\t\tconst startTop = e.clientY;\n\t\t\tlet didMove = false;\n\t\t\tconst cur = this._unchangedRegion.visibleLineCountBottom.get();\n\t\t\tthis._unchangedRegion.isDragged.set('bottom', undefined);\n\n\t\t\tconst window = getWindow(this._nodes.bottom);\n\n\t\t\tconst mouseMoveListener = addDisposableListener(window, 'mousemove', e => {\n\t\t\t\tconst currentTop = e.clientY;\n\t\t\t\tconst delta = currentTop - startTop;\n\t\t\t\tdidMove = didMove || Math.abs(delta) > 2;\n\t\t\t\tconst lineDelta = Math.round(delta / editor.getOption(EditorOption.lineHeight));\n\t\t\t\tconst newVal = Math.max(0, Math.min(cur - lineDelta, this._unchangedRegion.getMaxVisibleLineCountBottom()));\n\t\t\t\tconst top = this._unchangedRegionRange.endLineNumberExclusive > editor.getModel()!.getLineCount()\n\t\t\t\t\t? editor.getContentHeight()\n\t\t\t\t\t: editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\t\t\t\tthis._unchangedRegion.visibleLineCountBottom.set(newVal, undefined);\n\t\t\t\tconst top2 = this._unchangedRegionRange.endLineNumberExclusive > editor.getModel()!.getLineCount()\n\t\t\t\t\t? editor.getContentHeight()\n\t\t\t\t\t: editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\t\t\t\teditor.setScrollTop(editor.getScrollTop() + (top2 - top));\n\t\t\t});\n\n\t\t\tconst mouseUpListener = addDisposableListener(window, 'mouseup', e => {\n\t\t\t\tthis._unchangedRegion.isDragged.set(undefined, undefined);\n\n\t\t\t\tif (!didMove) {\n\t\t\t\t\tconst top = editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\n\t\t\t\t\tthis._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(), undefined);\n\t\t\t\t\tconst top2 = editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n\t\t\t\t\teditor.setScrollTop(editor.getScrollTop() + (top2 - top));\n\t\t\t\t}\n\t\t\t\tthis._nodes.bottom.classList.toggle('dragging', false);\n\t\t\t\tthis._nodes.root.classList.toggle('dragging', false);\n\t\t\t\tmouseMoveListener.dispose();\n\t\t\t\tmouseUpListener.dispose();\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\t/** @description update labels */\n\n\t\t\tconst children: HTMLElement[] = [];\n\t\t\tif (!this._hide) {\n\t\t\t\tconst lineCount = _unchangedRegion.getHiddenModifiedRange(reader).length;\n\t\t\t\tconst linesHiddenText = localize('hiddenLines', '{0} hidden lines', lineCount);\n\t\t\t\tconst span = $('span', { title: localize('diff.hiddenLines.expandAll', 'Double click to unfold') }, linesHiddenText);\n\t\t\t\tspan.addEventListener('dblclick', e => {\n\t\t\t\t\tif (e.button !== 0) { return; }\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis._unchangedRegion.showAll(undefined);\n\t\t\t\t});\n\t\t\t\tchildren.push(span);\n\n\t\t\t\tconst range = this._unchangedRegion.getHiddenModifiedRange(reader);\n\t\t\t\tconst items = this._modifiedOutlineSource.getBreadcrumbItems(range, reader);\n\n\t\t\t\tif (items.length > 0) {\n\t\t\t\t\tchildren.push($('span', undefined, '\\u00a0\\u00a0|\\u00a0\\u00a0'));\n\n\t\t\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\t\t\tconst item = items[i];\n\t\t\t\t\t\tconst icon = SymbolKinds.toIcon(item.kind);\n\t\t\t\t\t\tconst divItem = h('div.breadcrumb-item', {\n\t\t\t\t\t\t\tstyle: { display: 'flex', alignItems: 'center' },\n\t\t\t\t\t\t}, [\n\t\t\t\t\t\t\trenderIcon(icon),\n\t\t\t\t\t\t\t'\\u00a0',\n\t\t\t\t\t\t\titem.name,\n\t\t\t\t\t\t\t...(i === items.length - 1\n\t\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t\t: [renderIcon(Codicon.chevronRight)]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t]).root;\n\t\t\t\t\t\tchildren.push(divItem);\n\t\t\t\t\t\tdivItem.onclick = () => {\n\t\t\t\t\t\t\tthis._revealModifiedHiddenLine(item.startLineNumber);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treset(this._nodes.others, ...children);\n\t\t}));\n\t}\n}\n\nexport interface IDiffEditorBreadcrumbsSource extends IDisposable {\n\tgetBreadcrumbItems(startRange: LineRange, reader: IReader): { name: string; kind: SymbolKind; startLineNumber: number }[];\n}\n"]}
@@ -244,10 +244,10 @@ class MovedBlockOverlayWidget extends ViewZoneOverlayWidget {
244
244
  }));
245
245
  let text;
246
246
  if (_move.changes.length > 0) {
247
- text = this._kind === 'original' ? localize(128, 'Code moved with changes to line {0}-{1}', this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize(129, 'Code moved with changes from line {0}-{1}', this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);
247
+ text = this._kind === 'original' ? localize(129, 'Code moved with changes to line {0}-{1}', this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize(130, 'Code moved with changes from line {0}-{1}', this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);
248
248
  }
249
249
  else {
250
- text = this._kind === 'original' ? localize(130, 'Code moved to line {0}-{1}', this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize(131, 'Code moved from line {0}-{1}', this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);
250
+ text = this._kind === 'original' ? localize(131, 'Code moved to line {0}-{1}', this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize(132, 'Code moved from line {0}-{1}', this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);
251
251
  }
252
252
  const actionBar = this._register(new ActionBar(this._nodes.actionBar, {
253
253
  highlightToggledItems: true,
@@ -95,8 +95,8 @@ export class RevertButton extends Disposable {
95
95
  this._id = `revertButton${RevertButton.counter++}`;
96
96
  this._domNode = h('div.revertButton', {
97
97
  title: this._revertSelection
98
- ? localize(132, 'Revert Selected Changes')
99
- : localize(133, 'Revert Change')
98
+ ? localize(133, 'Revert Selected Changes')
99
+ : localize(134, 'Revert Change')
100
100
  }, [renderIcon(Codicon.arrowRight)]).root;
101
101
  this._register(addDisposableListener(this._domNode, EventType.MOUSE_DOWN, e => {
102
102
  // don't prevent context menu from showing up
@@ -8,11 +8,11 @@ import { ModelDecorationOptions } from '../../../common/model/textModel.js';
8
8
  import { localize } from '../../../../nls.js';
9
9
  import { registerColor } from '../../../../platform/theme/common/colorRegistry.js';
10
10
  import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
11
- export const diffMoveBorder = registerColor('diffEditor.move.border', '#8b8b8b9c', localize(134, 'The border color for text that got moved in the diff editor.'));
12
- export const diffMoveBorderActive = registerColor('diffEditor.moveActive.border', '#FFA500', localize(135, 'The active border color for text that got moved in the diff editor.'));
13
- export const diffEditorUnchangedRegionShadow = registerColor('diffEditor.unchangedRegionShadow', { dark: '#000000', light: '#737373BF', hcDark: '#000000', hcLight: '#737373BF', }, localize(136, 'The color of the shadow around unchanged region widgets.'));
14
- export const diffInsertIcon = registerIcon('diff-insert', Codicon.add, localize(137, 'Line decoration for inserts in the diff editor.'));
15
- export const diffRemoveIcon = registerIcon('diff-remove', Codicon.remove, localize(138, 'Line decoration for removals in the diff editor.'));
11
+ export const diffMoveBorder = registerColor('diffEditor.move.border', '#8b8b8b9c', localize(135, 'The border color for text that got moved in the diff editor.'));
12
+ export const diffMoveBorderActive = registerColor('diffEditor.moveActive.border', '#FFA500', localize(136, 'The active border color for text that got moved in the diff editor.'));
13
+ export const diffEditorUnchangedRegionShadow = registerColor('diffEditor.unchangedRegionShadow', { dark: '#000000', light: '#737373BF', hcDark: '#000000', hcLight: '#737373BF', }, localize(137, 'The color of the shadow around unchanged region widgets.'));
14
+ export const diffInsertIcon = registerIcon('diff-insert', Codicon.add, localize(138, 'Line decoration for inserts in the diff editor.'));
15
+ export const diffRemoveIcon = registerIcon('diff-remove', Codicon.remove, localize(139, 'Line decoration for removals in the diff editor.'));
16
16
  export const diffLineAddDecorationBackgroundWithIndicator = ModelDecorationOptions.register({
17
17
  className: 'line-insert',
18
18
  description: 'line-insert',
@@ -426,3 +426,14 @@
426
426
  margin: 0 4px;
427
427
  }
428
428
  }
429
+
430
+ .monaco-editor .line-delete-selectable {
431
+ user-select: text !important;
432
+ -webkit-user-select: text !important;
433
+ z-index: 1 !important;
434
+ }
435
+
436
+ .line-delete-selectable .view-line {
437
+ user-select: text !important;
438
+ -webkit-user-select: text !important;
439
+ }
@@ -4,7 +4,7 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { localize } from '../../../../nls.js';
6
6
  import { registerColor, editorBackground } from '../../../../platform/theme/common/colorRegistry.js';
7
- export const multiDiffEditorHeaderBackground = registerColor('multiDiffEditor.headerBackground', { dark: '#262626', light: 'tab.inactiveBackground', hcDark: 'tab.inactiveBackground', hcLight: 'tab.inactiveBackground', }, localize(139, 'The background color of the diff editor\'s header'));
8
- export const multiDiffEditorBackground = registerColor('multiDiffEditor.background', editorBackground, localize(140, 'The background color of the multi file diff editor'));
9
- export const multiDiffEditorBorder = registerColor('multiDiffEditor.border', { dark: 'sideBarSectionHeader.border', light: '#cccccc', hcDark: 'sideBarSectionHeader.border', hcLight: '#cccccc', }, localize(141, 'The border color of the multi file diff editor'));
7
+ export const multiDiffEditorHeaderBackground = registerColor('multiDiffEditor.headerBackground', { dark: '#262626', light: 'tab.inactiveBackground', hcDark: 'tab.inactiveBackground', hcLight: 'tab.inactiveBackground', }, localize(140, 'The background color of the diff editor\'s header'));
8
+ export const multiDiffEditorBackground = registerColor('multiDiffEditor.background', editorBackground, localize(141, 'The background color of the multi file diff editor'));
9
+ export const multiDiffEditorBorder = registerColor('multiDiffEditor.border', { dark: 'sideBarSectionHeader.border', light: '#cccccc', hcDark: 'sideBarSectionHeader.border', hcLight: '#cccccc', }, localize(142, 'The border color of the multi file diff editor'));
10
10
  //# sourceMappingURL=colors.js.map
@@ -135,8 +135,8 @@ let MultiDiffEditorWidgetImpl = class MultiDiffEditorWidgetImpl extends Disposab
135
135
  }
136
136
  const vm = this._viewModel.read(reader);
137
137
  return (!vm || vm.isLoading.read(reader))
138
- ? localize(142, 'Loading...')
139
- : localize(143, 'No Changed Files');
138
+ ? localize(143, 'Loading...')
139
+ : localize(144, 'No Changed Files');
140
140
  });
141
141
  this._register(autorun((reader) => {
142
142
  const message = placeholderMessage.read(reader);