monaco-editor-core 0.56.0-dev-20251219 → 0.56.0-dev-20251220

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 (189) 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 +0 -2
  18. package/esm/vs/editor/common/core/editorColorRegistry.js +33 -34
  19. package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
  20. package/esm/vs/editor/common/editorContextKeys.js +47 -47
  21. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  22. package/esm/vs/editor/common/languages.js +56 -56
  23. package/esm/vs/editor/common/model/editStack.js +1 -1
  24. package/esm/vs/editor/common/standaloneStrings.js +11 -11
  25. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  26. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  27. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +9 -18
  28. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js.map +1 -1
  29. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  30. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  31. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  32. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  33. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  34. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  35. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  36. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  37. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  38. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  39. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  40. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  41. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  42. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  43. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  44. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  45. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  46. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  47. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  48. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  49. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  50. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  51. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  52. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  53. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  54. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  55. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  56. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  57. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  58. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  59. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  60. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  61. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  62. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  63. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  64. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  65. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  66. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  67. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  68. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  69. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  70. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  71. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  72. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  73. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  74. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  75. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  76. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  77. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  78. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  79. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  80. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  81. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  82. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +2 -1
  83. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  84. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  85. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  86. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +7 -7
  87. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  88. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  89. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  90. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +13 -11
  91. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  92. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +5 -7
  93. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
  94. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +6 -5
  95. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
  96. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +6 -5
  97. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  98. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +9 -7
  99. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
  100. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +14 -9
  101. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
  102. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +12 -10
  103. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
  104. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +5 -4
  105. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
  106. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
  107. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
  108. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +40 -21
  109. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  110. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  111. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  112. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  113. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  114. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  115. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  116. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  117. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  118. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  119. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  120. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  121. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  122. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  123. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  124. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  125. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  126. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  127. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  128. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  129. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  130. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  131. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  132. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  133. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  134. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  135. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  136. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  137. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  138. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  139. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  140. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  141. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  142. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  143. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  144. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  145. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  146. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  147. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  148. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  149. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  150. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  151. package/esm/vs/platform/actions/common/menuService.js +2 -2
  152. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  153. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  154. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  155. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  156. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  157. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  158. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  159. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  160. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  161. package/esm/vs/platform/list/browser/listService.js +27 -27
  162. package/esm/vs/platform/markers/common/markerService.js +2 -2
  163. package/esm/vs/platform/markers/common/markers.js +6 -6
  164. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  165. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  166. package/esm/vs/platform/quickinput/browser/quickInput.js +13 -47
  167. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  168. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  169. package/esm/vs/platform/quickinput/browser/quickInputController.js +7 -6
  170. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  171. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  172. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  173. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  174. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  175. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  176. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -18
  177. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  178. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  179. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  180. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  181. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  182. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  183. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  184. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  185. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  186. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  187. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  188. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  189. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.ts","vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.ts"],"names":[],"mappings":"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","file":"originalEditorInlineDiffView.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 { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { autorunWithStore, derived, IObservable, observableFromEvent } from '../../../../../../../base/common/observable.js';\nimport { ICodeEditor, MouseTargetType } from '../../../../../../browser/editorBrowser.js';\nimport { observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { rangeIsSingleLine } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { AbstractText } from '../../../../../../common/core/text/abstractText.js';\nimport { DetailedLineRangeMapping } from '../../../../../../common/diff/rangeMapping.js';\nimport { EndOfLinePreference, IModelDeltaDecoration, InjectedTextCursorStops, ITextModel } from '../../../../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../../../../common/model/textModel.js';\nimport { IInlineEditsView, InlineEditClickEvent } from '../inlineEditsViewInterface.js';\nimport { classNames } from '../utils/utils.js';\n\nexport interface IOriginalEditorInlineDiffViewState {\n\tdiff: DetailedLineRangeMapping[];\n\tmodifiedText: AbstractText;\n\tmode: 'insertionInline' | 'sideBySide' | 'deletion' | 'lineReplacement';\n\tisInDiffEditor: boolean;\n\n\tmodifiedCodeEditor: ICodeEditor;\n}\n\nexport class OriginalEditorInlineDiffView extends Disposable implements IInlineEditsView {\n\n\tprivate readonly _onDidClick = this._register(new Emitter<InlineEditClickEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\treadonly isHovered;\n\n\tprivate readonly _tokenizationFinished;\n\n\tconstructor(\n\t\tprivate readonly _originalEditor: ICodeEditor,\n\t\tprivate readonly _state: IObservable<IOriginalEditorInlineDiffViewState | undefined>,\n\t\tprivate readonly _modifiedTextModel: ITextModel,\n\t) {\n\t\tsuper();\n\t\tthis.isHovered = observableCodeEditor(this._originalEditor).isTargetHovered(\n\t\t\tp => p.target.type === MouseTargetType.CONTENT_TEXT &&\n\t\t\t\tp.target.detail.injectedText?.options.attachedData instanceof InlineEditAttachedData &&\n\t\t\t\tp.target.detail.injectedText.options.attachedData.owner === this,\n\t\t\tthis._store\n\t\t);\n\t\tthis._tokenizationFinished = modelTokenizationFinished(this._modifiedTextModel);\n\t\tthis._decorations = derived(this, reader => {\n\t\t\tconst diff = this._state.read(reader);\n\t\t\tif (!diff) { return undefined; }\n\n\t\t\tconst modified = diff.modifiedText;\n\t\t\tconst showInline = diff.mode === 'insertionInline';\n\t\t\tconst hasOneInnerChange = diff.diff.length === 1 && diff.diff[0].innerChanges?.length === 1;\n\n\t\t\tconst showEmptyDecorations = true;\n\n\t\t\tconst originalDecorations: IModelDeltaDecoration[] = [];\n\t\t\tconst modifiedDecorations: IModelDeltaDecoration[] = [];\n\n\t\t\tconst diffLineAddDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-insert',\n\t\t\t\tdescription: 'line-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-insert',\n\t\t\t});\n\n\t\t\tconst diffLineDeleteDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-delete',\n\t\t\t\tdescription: 'line-delete',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-delete',\n\t\t\t});\n\n\t\t\tconst diffWholeLineDeleteDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-delete',\n\t\t\t\tdescription: 'char-delete',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tzIndex: 1, // be on top of diff background decoration\n\t\t\t});\n\n\t\t\tconst diffWholeLineAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecorationEmpty = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert diff-range-empty',\n\t\t\t\tdescription: 'char-insert diff-range-empty',\n\t\t\t});\n\n\t\t\tconst NESOriginalBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-original-lines',\n\t\t\t\tdescription: 'inlineCompletions-original-lines',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst showFullLineDecorations = diff.mode !== 'sideBySide' && diff.mode !== 'deletion' && diff.mode !== 'insertionInline' && diff.mode !== 'lineReplacement';\n\t\t\tconst hideEmptyInnerDecorations = diff.mode === 'lineReplacement';\n\t\t\tfor (const m of diff.diff) {\n\t\t\t\tif (showFullLineDecorations) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineDeleteDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\trange: m.modified.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineAddDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (m.modified.isEmpty || m.original.isEmpty) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({ range: m.original.toInclusiveRange()!, options: diffWholeLineDeleteDecoration });\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({ range: m.modified.toInclusiveRange()!, options: diffWholeLineAddDecoration });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst useInlineDiff = showInline && allowsTrueInlineDiffRendering(m);\n\t\t\t\t\tfor (const i of m.innerChanges || []) {\n\t\t\t\t\t\t// Don't show empty markers outside the line range\n\t\t\t\t\t\tif (m.original.contains(i.originalRange.startLineNumber) && !(hideEmptyInnerDecorations && i.originalRange.isEmpty())) {\n\t\t\t\t\t\t\tconst replacedText = this._originalEditor.getModel()?.getValueInRange(i.originalRange, EndOfLinePreference.LF);\n\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\trange: i.originalRange,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tdescription: 'char-delete',\n\t\t\t\t\t\t\t\t\tshouldFillLineOnLineBreak: false,\n\t\t\t\t\t\t\t\t\tclassName: classNames(\n\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-delete',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isEmpty() && 'empty',\n\t\t\t\t\t\t\t\t\t\t((i.originalRange.isEmpty() && hasOneInnerChange || diff.mode === 'deletion' && replacedText === '\\n') && showEmptyDecorations && !useInlineDiff) && 'diff-range-empty'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tinlineClassName: useInlineDiff ? classNames('strike-through', 'inlineCompletions') : null,\n\t\t\t\t\t\t\t\t\tzIndex: 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m.modified.contains(i.modifiedRange.startLineNumber)) {\n\t\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\t\trange: i.modifiedRange,\n\t\t\t\t\t\t\t\toptions: (i.modifiedRange.isEmpty() && showEmptyDecorations && !useInlineDiff && hasOneInnerChange)\n\t\t\t\t\t\t\t\t\t? diffAddDecorationEmpty\n\t\t\t\t\t\t\t\t\t: diffAddDecoration\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (useInlineDiff) {\n\t\t\t\t\t\t\tconst insertedText = modified.getValueOfRange(i.modifiedRange);\n\t\t\t\t\t\t\t// when the injected text becomes long, the editor will split it into multiple spans\n\t\t\t\t\t\t\t// to be able to get the border around the start and end of the text, we need to split it into multiple segments\n\t\t\t\t\t\t\tconst textSegments = insertedText.length > 3 ?\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(0, 1), extraClasses: ['start'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.startColumn) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(1, -1), extraClasses: [], offsetRange: new OffsetRange(i.modifiedRange.startColumn, i.modifiedRange.endColumn - 2) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(-1), extraClasses: ['end'], offsetRange: new OffsetRange(i.modifiedRange.endColumn - 2, i.modifiedRange.endColumn - 1) }\n\t\t\t\t\t\t\t\t] :\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText, extraClasses: ['start', 'end'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.endColumn) }\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t// Tokenization\n\t\t\t\t\t\t\tthis._tokenizationFinished.read(reader); // reconsider when tokenization is finished\n\t\t\t\t\t\t\tconst lineTokens = this._modifiedTextModel.tokenization.getLineTokens(i.modifiedRange.startLineNumber);\n\n\t\t\t\t\t\t\tfor (const { text, extraClasses, offsetRange } of textSegments) {\n\t\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\t\trange: Range.fromPositions(i.originalRange.getEndPosition()),\n\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\tdescription: 'inserted-text',\n\t\t\t\t\t\t\t\t\t\tbefore: {\n\t\t\t\t\t\t\t\t\t\t\ttokens: lineTokens.getTokensInRange(offsetRange),\n\t\t\t\t\t\t\t\t\t\t\tcontent: text,\n\t\t\t\t\t\t\t\t\t\t\tinlineClassName: classNames(\n\t\t\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-insert',\n\t\t\t\t\t\t\t\t\t\t\t\ti.modifiedRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\t\t\t...extraClasses // include extraClasses for additional styling if provided\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tcursorStops: InjectedTextCursorStops.None,\n\t\t\t\t\t\t\t\t\t\t\tattachedData: new InlineEditAttachedData(this),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\t\t\t\tshowIfCollapsed: true,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (diff.isInDiffEditor) {\n\t\t\t\tfor (const m of diff.diff) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toExclusiveRange(),\n\t\t\t\t\t\t\toptions: NESOriginalBackground,\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 { originalDecorations, modifiedDecorations };\n\t\t});\n\n\t\tthis._register(observableCodeEditor(this._originalEditor).setDecorations(this._decorations.map(d => d?.originalDecorations ?? [])));\n\n\t\tconst modifiedCodeEditor = this._state.map(s => s?.modifiedCodeEditor);\n\t\tthis._register(autorunWithStore((reader, store) => {\n\t\t\tconst e = modifiedCodeEditor.read(reader);\n\t\t\tif (e) {\n\t\t\t\tstore.add(observableCodeEditor(e).setDecorations(this._decorations.map(d => d?.modifiedDecorations ?? [])));\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._originalEditor.onMouseUp(e => {\n\t\t\tif (e.target.type !== MouseTargetType.CONTENT_TEXT) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst a = e.target.detail.injectedText?.options.attachedData;\n\t\t\tif (a instanceof InlineEditAttachedData && a.owner === this) {\n\t\t\t\tthis._onDidClick.fire(new InlineEditClickEvent(e.event));\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate readonly _decorations;\n}\n\nclass InlineEditAttachedData {\n\tconstructor(public readonly owner: OriginalEditorInlineDiffView) { }\n}\n\nfunction allowsTrueInlineDiffRendering(mapping: DetailedLineRangeMapping): boolean {\n\tif (!mapping.innerChanges) {\n\t\treturn false;\n\t}\n\treturn mapping.innerChanges.every(c =>\n\t\t(rangeIsSingleLine(c.modifiedRange) && rangeIsSingleLine(c.originalRange)));\n}\n\nlet i = 0;\nfunction modelTokenizationFinished(model: ITextModel): IObservable<number> {\n\treturn observableFromEvent(model.onDidChangeTokens, () => i++);\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 { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { autorunWithStore, derived, IObservable, observableFromEvent } from '../../../../../../../base/common/observable.js';\nimport { ICodeEditor, MouseTargetType } from '../../../../../../browser/editorBrowser.js';\nimport { observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { rangeIsSingleLine } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { AbstractText } from '../../../../../../common/core/text/abstractText.js';\nimport { DetailedLineRangeMapping } from '../../../../../../common/diff/rangeMapping.js';\nimport { EndOfLinePreference, IModelDeltaDecoration, InjectedTextCursorStops, ITextModel } from '../../../../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../../../../common/model/textModel.js';\nimport { IInlineEditsView, InlineEditClickEvent } from '../inlineEditsViewInterface.js';\nimport { classNames } from '../utils/utils.js';\n\nexport interface IOriginalEditorInlineDiffViewState {\n\tdiff: DetailedLineRangeMapping[];\n\tmodifiedText: AbstractText;\n\tmode: 'insertionInline' | 'sideBySide' | 'deletion' | 'lineReplacement';\n\tisInDiffEditor: boolean;\n\n\tmodifiedCodeEditor: ICodeEditor;\n}\n\nexport class OriginalEditorInlineDiffView extends Disposable implements IInlineEditsView {\n\n\tprivate readonly _onDidClick = this._register(new Emitter<InlineEditClickEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\treadonly isHovered;\n\n\tprivate readonly _tokenizationFinished;\n\n\tconstructor(\n\t\tprivate readonly _originalEditor: ICodeEditor,\n\t\tprivate readonly _state: IObservable<IOriginalEditorInlineDiffViewState | undefined>,\n\t\tprivate readonly _modifiedTextModel: ITextModel,\n\t) {\n\t\tsuper();\n\t\tthis.isHovered = observableCodeEditor(this._originalEditor).isTargetHovered(\n\t\t\tp => p.target.type === MouseTargetType.CONTENT_TEXT &&\n\t\t\t\tp.target.detail.injectedText?.options.attachedData instanceof InlineEditAttachedData &&\n\t\t\t\tp.target.detail.injectedText.options.attachedData.owner === this,\n\t\t\tthis._store\n\t\t);\n\t\tthis._tokenizationFinished = modelTokenizationFinished(this._modifiedTextModel);\n\t\tthis._decorations = derived(this, reader => {\n\t\t\tconst diff = this._state.read(reader);\n\t\t\tif (!diff) { return undefined; }\n\n\t\t\tconst modified = diff.modifiedText;\n\t\t\tconst showInline = diff.mode === 'insertionInline';\n\t\t\tconst hasOneInnerChange = diff.diff.length === 1 && diff.diff[0].innerChanges?.length === 1;\n\n\t\t\tconst showEmptyDecorations = true;\n\n\t\t\tconst originalDecorations: IModelDeltaDecoration[] = [];\n\t\t\tconst modifiedDecorations: IModelDeltaDecoration[] = [];\n\n\t\t\tconst diffLineAddDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-insert',\n\t\t\t\tdescription: 'line-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-insert',\n\t\t\t});\n\n\t\t\tconst diffLineDeleteDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-delete',\n\t\t\t\tdescription: 'line-delete',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-delete',\n\t\t\t});\n\n\t\t\tconst diffWholeLineDeleteDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-delete',\n\t\t\t\tdescription: 'char-delete',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tzIndex: 1, // be on top of diff background decoration\n\t\t\t});\n\n\t\t\tconst diffWholeLineAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecorationEmpty = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert diff-range-empty',\n\t\t\t\tdescription: 'char-insert diff-range-empty',\n\t\t\t});\n\n\t\t\tconst NESOriginalBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-original-lines',\n\t\t\t\tdescription: 'inlineCompletions-original-lines',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst showFullLineDecorations = diff.mode !== 'sideBySide' && diff.mode !== 'deletion' && diff.mode !== 'insertionInline' && diff.mode !== 'lineReplacement';\n\t\t\tconst hideEmptyInnerDecorations = diff.mode === 'lineReplacement';\n\t\t\tfor (const m of diff.diff) {\n\t\t\t\tif (showFullLineDecorations) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineDeleteDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\trange: m.modified.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineAddDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (m.modified.isEmpty || m.original.isEmpty) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({ range: m.original.toInclusiveRange()!, options: diffWholeLineDeleteDecoration });\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({ range: m.modified.toInclusiveRange()!, options: diffWholeLineAddDecoration });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst useInlineDiff = showInline && allowsTrueInlineDiffRendering(m);\n\t\t\t\t\tfor (const i of m.innerChanges || []) {\n\t\t\t\t\t\t// Don't show empty markers outside the line range\n\t\t\t\t\t\tif (m.original.contains(i.originalRange.startLineNumber) && !(hideEmptyInnerDecorations && i.originalRange.isEmpty())) {\n\t\t\t\t\t\t\tconst replacedText = this._originalEditor.getModel()?.getValueInRange(i.originalRange, EndOfLinePreference.LF);\n\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\trange: i.originalRange,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tdescription: 'char-delete',\n\t\t\t\t\t\t\t\t\tshouldFillLineOnLineBreak: false,\n\t\t\t\t\t\t\t\t\tclassName: classNames(\n\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-delete',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isEmpty() && 'empty',\n\t\t\t\t\t\t\t\t\t\t((i.originalRange.isEmpty() && hasOneInnerChange || diff.mode === 'deletion' && replacedText === '\\n') && showEmptyDecorations && !useInlineDiff) && 'diff-range-empty'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tinlineClassName: useInlineDiff ? classNames('strike-through', 'inlineCompletions') : null,\n\t\t\t\t\t\t\t\t\tzIndex: 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m.modified.contains(i.modifiedRange.startLineNumber)) {\n\t\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\t\trange: i.modifiedRange,\n\t\t\t\t\t\t\t\toptions: (i.modifiedRange.isEmpty() && showEmptyDecorations && !useInlineDiff && hasOneInnerChange)\n\t\t\t\t\t\t\t\t\t? diffAddDecorationEmpty\n\t\t\t\t\t\t\t\t\t: diffAddDecoration\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (useInlineDiff) {\n\t\t\t\t\t\t\tconst insertedText = modified.getValueOfRange(i.modifiedRange);\n\t\t\t\t\t\t\t// when the injected text becomes long, the editor will split it into multiple spans\n\t\t\t\t\t\t\t// to be able to get the border around the start and end of the text, we need to split it into multiple segments\n\t\t\t\t\t\t\tconst textSegments = insertedText.length > 3 ?\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(0, 1), extraClasses: ['start'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.startColumn) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(1, -1), extraClasses: [], offsetRange: new OffsetRange(i.modifiedRange.startColumn, i.modifiedRange.endColumn - 2) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(-1), extraClasses: ['end'], offsetRange: new OffsetRange(i.modifiedRange.endColumn - 2, i.modifiedRange.endColumn - 1) }\n\t\t\t\t\t\t\t\t] :\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText, extraClasses: ['start', 'end'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.endColumn) }\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t// Tokenization\n\t\t\t\t\t\t\tthis._tokenizationFinished.read(reader); // reconsider when tokenization is finished\n\t\t\t\t\t\t\tconst lineTokens = this._modifiedTextModel.tokenization.getLineTokens(i.modifiedRange.startLineNumber);\n\n\t\t\t\t\t\t\tfor (const { text, extraClasses, offsetRange } of textSegments) {\n\t\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\t\trange: Range.fromPositions(i.originalRange.getEndPosition()),\n\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\tdescription: 'inserted-text',\n\t\t\t\t\t\t\t\t\t\tbefore: {\n\t\t\t\t\t\t\t\t\t\t\ttokens: lineTokens.getTokensInRange(offsetRange),\n\t\t\t\t\t\t\t\t\t\t\tcontent: text,\n\t\t\t\t\t\t\t\t\t\t\tinlineClassName: classNames(\n\t\t\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-insert',\n\t\t\t\t\t\t\t\t\t\t\t\ti.modifiedRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\t\t\t...extraClasses // include extraClasses for additional styling if provided\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tcursorStops: InjectedTextCursorStops.None,\n\t\t\t\t\t\t\t\t\t\t\tattachedData: new InlineEditAttachedData(this),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\t\t\t\tshowIfCollapsed: true,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (diff.isInDiffEditor) {\n\t\t\t\tfor (const m of diff.diff) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toExclusiveRange(),\n\t\t\t\t\t\t\toptions: NESOriginalBackground,\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 { originalDecorations, modifiedDecorations };\n\t\t});\n\n\t\tthis._register(observableCodeEditor(this._originalEditor).setDecorations(this._decorations.map(d => d?.originalDecorations ?? [])));\n\n\t\tconst modifiedCodeEditor = this._state.map(s => s?.modifiedCodeEditor);\n\t\tthis._register(autorunWithStore((reader, store) => {\n\t\t\tconst e = modifiedCodeEditor.read(reader);\n\t\t\tif (e) {\n\t\t\t\tstore.add(observableCodeEditor(e).setDecorations(this._decorations.map(d => d?.modifiedDecorations ?? [])));\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._originalEditor.onMouseUp(e => {\n\t\t\tif (e.target.type !== MouseTargetType.CONTENT_TEXT) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst a = e.target.detail.injectedText?.options.attachedData;\n\t\t\tif (a instanceof InlineEditAttachedData && a.owner === this) {\n\t\t\t\tthis._onDidClick.fire(new InlineEditClickEvent(e.event));\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate readonly _decorations;\n}\n\nclass InlineEditAttachedData {\n\tconstructor(public readonly owner: OriginalEditorInlineDiffView) { }\n}\n\nfunction allowsTrueInlineDiffRendering(mapping: DetailedLineRangeMapping): boolean {\n\tif (!mapping.innerChanges) {\n\t\treturn false;\n\t}\n\treturn mapping.innerChanges.every(c =>\n\t\t(rangeIsSingleLine(c.modifiedRange) && rangeIsSingleLine(c.originalRange)));\n}\n\nlet i = 0;\nfunction modelTokenizationFinished(model: ITextModel): IObservable<number> {\n\treturn observableFromEvent(model.onDidChangeTokens, () => i++);\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.ts","vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.ts"],"names":[],"mappings":"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","file":"originalEditorInlineDiffView.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 { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { autorunWithStore, derived, IObservable, observableFromEvent } from '../../../../../../../base/common/observable.js';\nimport { ICodeEditor, MouseTargetType } from '../../../../../../browser/editorBrowser.js';\nimport { observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { rangeIsSingleLine } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { AbstractText } from '../../../../../../common/core/text/abstractText.js';\nimport { DetailedLineRangeMapping } from '../../../../../../common/diff/rangeMapping.js';\nimport { EndOfLinePreference, IModelDeltaDecoration, InjectedTextCursorStops, ITextModel } from '../../../../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../../../../common/model/textModel.js';\nimport { IInlineEditsView, InlineEditClickEvent } from '../inlineEditsViewInterface.js';\nimport { classNames } from '../utils/utils.js';\nimport { InlineCompletionEditorType } from '../../../model/provideInlineCompletions.js';\n\nexport interface IOriginalEditorInlineDiffViewState {\n\tdiff: DetailedLineRangeMapping[];\n\tmodifiedText: AbstractText;\n\tmode: 'insertionInline' | 'sideBySide' | 'deletion' | 'lineReplacement';\n\teditorType: InlineCompletionEditorType;\n\n\tmodifiedCodeEditor: ICodeEditor;\n}\n\nexport class OriginalEditorInlineDiffView extends Disposable implements IInlineEditsView {\n\n\tprivate readonly _onDidClick = this._register(new Emitter<InlineEditClickEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\treadonly isHovered;\n\n\tprivate readonly _tokenizationFinished;\n\n\tconstructor(\n\t\tprivate readonly _originalEditor: ICodeEditor,\n\t\tprivate readonly _state: IObservable<IOriginalEditorInlineDiffViewState | undefined>,\n\t\tprivate readonly _modifiedTextModel: ITextModel,\n\t) {\n\t\tsuper();\n\t\tthis.isHovered = observableCodeEditor(this._originalEditor).isTargetHovered(\n\t\t\tp => p.target.type === MouseTargetType.CONTENT_TEXT &&\n\t\t\t\tp.target.detail.injectedText?.options.attachedData instanceof InlineEditAttachedData &&\n\t\t\t\tp.target.detail.injectedText.options.attachedData.owner === this,\n\t\t\tthis._store\n\t\t);\n\t\tthis._tokenizationFinished = modelTokenizationFinished(this._modifiedTextModel);\n\t\tthis._decorations = derived(this, reader => {\n\t\t\tconst diff = this._state.read(reader);\n\t\t\tif (!diff) { return undefined; }\n\n\t\t\tconst modified = diff.modifiedText;\n\t\t\tconst showInline = diff.mode === 'insertionInline';\n\t\t\tconst hasOneInnerChange = diff.diff.length === 1 && diff.diff[0].innerChanges?.length === 1;\n\n\t\t\tconst showEmptyDecorations = true;\n\n\t\t\tconst originalDecorations: IModelDeltaDecoration[] = [];\n\t\t\tconst modifiedDecorations: IModelDeltaDecoration[] = [];\n\n\t\t\tconst diffLineAddDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-insert',\n\t\t\t\tdescription: 'line-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-insert',\n\t\t\t});\n\n\t\t\tconst diffLineDeleteDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-delete',\n\t\t\t\tdescription: 'line-delete',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-delete',\n\t\t\t});\n\n\t\t\tconst diffWholeLineDeleteDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-delete',\n\t\t\t\tdescription: 'char-delete',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tzIndex: 1, // be on top of diff background decoration\n\t\t\t});\n\n\t\t\tconst diffWholeLineAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecorationEmpty = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert diff-range-empty',\n\t\t\t\tdescription: 'char-insert diff-range-empty',\n\t\t\t});\n\n\t\t\tconst NESOriginalBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-original-lines',\n\t\t\t\tdescription: 'inlineCompletions-original-lines',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst showFullLineDecorations = diff.mode !== 'sideBySide' && diff.mode !== 'deletion' && diff.mode !== 'insertionInline' && diff.mode !== 'lineReplacement';\n\t\t\tconst hideEmptyInnerDecorations = diff.mode === 'lineReplacement';\n\t\t\tfor (const m of diff.diff) {\n\t\t\t\tif (showFullLineDecorations) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineDeleteDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\trange: m.modified.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineAddDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (m.modified.isEmpty || m.original.isEmpty) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({ range: m.original.toInclusiveRange()!, options: diffWholeLineDeleteDecoration });\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({ range: m.modified.toInclusiveRange()!, options: diffWholeLineAddDecoration });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst useInlineDiff = showInline && allowsTrueInlineDiffRendering(m);\n\t\t\t\t\tfor (const i of m.innerChanges || []) {\n\t\t\t\t\t\t// Don't show empty markers outside the line range\n\t\t\t\t\t\tif (m.original.contains(i.originalRange.startLineNumber) && !(hideEmptyInnerDecorations && i.originalRange.isEmpty())) {\n\t\t\t\t\t\t\tconst replacedText = this._originalEditor.getModel()?.getValueInRange(i.originalRange, EndOfLinePreference.LF);\n\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\trange: i.originalRange,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tdescription: 'char-delete',\n\t\t\t\t\t\t\t\t\tshouldFillLineOnLineBreak: false,\n\t\t\t\t\t\t\t\t\tclassName: classNames(\n\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-delete',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isEmpty() && 'empty',\n\t\t\t\t\t\t\t\t\t\t((i.originalRange.isEmpty() && hasOneInnerChange || diff.mode === 'deletion' && replacedText === '\\n') && showEmptyDecorations && !useInlineDiff) && 'diff-range-empty'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tinlineClassName: useInlineDiff ? classNames('strike-through', 'inlineCompletions') : null,\n\t\t\t\t\t\t\t\t\tzIndex: 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m.modified.contains(i.modifiedRange.startLineNumber)) {\n\t\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\t\trange: i.modifiedRange,\n\t\t\t\t\t\t\t\toptions: (i.modifiedRange.isEmpty() && showEmptyDecorations && !useInlineDiff && hasOneInnerChange)\n\t\t\t\t\t\t\t\t\t? diffAddDecorationEmpty\n\t\t\t\t\t\t\t\t\t: diffAddDecoration\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (useInlineDiff) {\n\t\t\t\t\t\t\tconst insertedText = modified.getValueOfRange(i.modifiedRange);\n\t\t\t\t\t\t\t// when the injected text becomes long, the editor will split it into multiple spans\n\t\t\t\t\t\t\t// to be able to get the border around the start and end of the text, we need to split it into multiple segments\n\t\t\t\t\t\t\tconst textSegments = insertedText.length > 3 ?\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(0, 1), extraClasses: ['start'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.startColumn) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(1, -1), extraClasses: [], offsetRange: new OffsetRange(i.modifiedRange.startColumn, i.modifiedRange.endColumn - 2) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(-1), extraClasses: ['end'], offsetRange: new OffsetRange(i.modifiedRange.endColumn - 2, i.modifiedRange.endColumn - 1) }\n\t\t\t\t\t\t\t\t] :\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText, extraClasses: ['start', 'end'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.endColumn) }\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t// Tokenization\n\t\t\t\t\t\t\tthis._tokenizationFinished.read(reader); // reconsider when tokenization is finished\n\t\t\t\t\t\t\tconst lineTokens = this._modifiedTextModel.tokenization.getLineTokens(i.modifiedRange.startLineNumber);\n\n\t\t\t\t\t\t\tfor (const { text, extraClasses, offsetRange } of textSegments) {\n\t\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\t\trange: Range.fromPositions(i.originalRange.getEndPosition()),\n\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\tdescription: 'inserted-text',\n\t\t\t\t\t\t\t\t\t\tbefore: {\n\t\t\t\t\t\t\t\t\t\t\ttokens: lineTokens.getTokensInRange(offsetRange),\n\t\t\t\t\t\t\t\t\t\t\tcontent: text,\n\t\t\t\t\t\t\t\t\t\t\tinlineClassName: classNames(\n\t\t\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-insert',\n\t\t\t\t\t\t\t\t\t\t\t\ti.modifiedRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\t\t\t...extraClasses // include extraClasses for additional styling if provided\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tcursorStops: InjectedTextCursorStops.None,\n\t\t\t\t\t\t\t\t\t\t\tattachedData: new InlineEditAttachedData(this),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\t\t\t\tshowIfCollapsed: true,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (diff.editorType === InlineCompletionEditorType.DiffEditor) {\n\t\t\t\tfor (const m of diff.diff) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toExclusiveRange(),\n\t\t\t\t\t\t\toptions: NESOriginalBackground,\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 { originalDecorations, modifiedDecorations };\n\t\t});\n\n\t\tthis._register(observableCodeEditor(this._originalEditor).setDecorations(this._decorations.map(d => d?.originalDecorations ?? [])));\n\n\t\tconst modifiedCodeEditor = this._state.map(s => s?.modifiedCodeEditor);\n\t\tthis._register(autorunWithStore((reader, store) => {\n\t\t\tconst e = modifiedCodeEditor.read(reader);\n\t\t\tif (e) {\n\t\t\t\tstore.add(observableCodeEditor(e).setDecorations(this._decorations.map(d => d?.modifiedDecorations ?? [])));\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._originalEditor.onMouseUp(e => {\n\t\t\tif (e.target.type !== MouseTargetType.CONTENT_TEXT) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst a = e.target.detail.injectedText?.options.attachedData;\n\t\t\tif (a instanceof InlineEditAttachedData && a.owner === this) {\n\t\t\t\tthis._onDidClick.fire(new InlineEditClickEvent(e.event));\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate readonly _decorations;\n}\n\nclass InlineEditAttachedData {\n\tconstructor(public readonly owner: OriginalEditorInlineDiffView) { }\n}\n\nfunction allowsTrueInlineDiffRendering(mapping: DetailedLineRangeMapping): boolean {\n\tif (!mapping.innerChanges) {\n\t\treturn false;\n\t}\n\treturn mapping.innerChanges.every(c =>\n\t\t(rangeIsSingleLine(c.modifiedRange) && rangeIsSingleLine(c.originalRange)));\n}\n\nlet i = 0;\nfunction modelTokenizationFinished(model: ITextModel): IObservable<number> {\n\treturn observableFromEvent(model.onDidChangeTokens, () => i++);\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 { Emitter } from '../../../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../../../base/common/lifecycle.js';\nimport { autorunWithStore, derived, IObservable, observableFromEvent } from '../../../../../../../base/common/observable.js';\nimport { ICodeEditor, MouseTargetType } from '../../../../../../browser/editorBrowser.js';\nimport { observableCodeEditor } from '../../../../../../browser/observableCodeEditor.js';\nimport { rangeIsSingleLine } from '../../../../../../browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js';\nimport { OffsetRange } from '../../../../../../common/core/ranges/offsetRange.js';\nimport { Range } from '../../../../../../common/core/range.js';\nimport { AbstractText } from '../../../../../../common/core/text/abstractText.js';\nimport { DetailedLineRangeMapping } from '../../../../../../common/diff/rangeMapping.js';\nimport { EndOfLinePreference, IModelDeltaDecoration, InjectedTextCursorStops, ITextModel } from '../../../../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../../../../common/model/textModel.js';\nimport { IInlineEditsView, InlineEditClickEvent } from '../inlineEditsViewInterface.js';\nimport { classNames } from '../utils/utils.js';\nimport { InlineCompletionEditorType } from '../../../model/provideInlineCompletions.js';\n\nexport interface IOriginalEditorInlineDiffViewState {\n\tdiff: DetailedLineRangeMapping[];\n\tmodifiedText: AbstractText;\n\tmode: 'insertionInline' | 'sideBySide' | 'deletion' | 'lineReplacement';\n\teditorType: InlineCompletionEditorType;\n\n\tmodifiedCodeEditor: ICodeEditor;\n}\n\nexport class OriginalEditorInlineDiffView extends Disposable implements IInlineEditsView {\n\n\tprivate readonly _onDidClick = this._register(new Emitter<InlineEditClickEvent>());\n\treadonly onDidClick = this._onDidClick.event;\n\n\treadonly isHovered;\n\n\tprivate readonly _tokenizationFinished;\n\n\tconstructor(\n\t\tprivate readonly _originalEditor: ICodeEditor,\n\t\tprivate readonly _state: IObservable<IOriginalEditorInlineDiffViewState | undefined>,\n\t\tprivate readonly _modifiedTextModel: ITextModel,\n\t) {\n\t\tsuper();\n\t\tthis.isHovered = observableCodeEditor(this._originalEditor).isTargetHovered(\n\t\t\tp => p.target.type === MouseTargetType.CONTENT_TEXT &&\n\t\t\t\tp.target.detail.injectedText?.options.attachedData instanceof InlineEditAttachedData &&\n\t\t\t\tp.target.detail.injectedText.options.attachedData.owner === this,\n\t\t\tthis._store\n\t\t);\n\t\tthis._tokenizationFinished = modelTokenizationFinished(this._modifiedTextModel);\n\t\tthis._decorations = derived(this, reader => {\n\t\t\tconst diff = this._state.read(reader);\n\t\t\tif (!diff) { return undefined; }\n\n\t\t\tconst modified = diff.modifiedText;\n\t\t\tconst showInline = diff.mode === 'insertionInline';\n\t\t\tconst hasOneInnerChange = diff.diff.length === 1 && diff.diff[0].innerChanges?.length === 1;\n\n\t\t\tconst showEmptyDecorations = true;\n\n\t\t\tconst originalDecorations: IModelDeltaDecoration[] = [];\n\t\t\tconst modifiedDecorations: IModelDeltaDecoration[] = [];\n\n\t\t\tconst diffLineAddDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-insert',\n\t\t\t\tdescription: 'line-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-insert',\n\t\t\t});\n\n\t\t\tconst diffLineDeleteDecorationBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-line-delete',\n\t\t\t\tdescription: 'line-delete',\n\t\t\t\tisWholeLine: true,\n\t\t\t\tmarginClassName: 'gutter-delete',\n\t\t\t});\n\n\t\t\tconst diffWholeLineDeleteDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-delete',\n\t\t\t\tdescription: 'char-delete',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tzIndex: 1, // be on top of diff background decoration\n\t\t\t});\n\n\t\t\tconst diffWholeLineAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tisWholeLine: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecoration = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert',\n\t\t\t\tdescription: 'char-insert',\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst diffAddDecorationEmpty = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-char-insert diff-range-empty',\n\t\t\t\tdescription: 'char-insert diff-range-empty',\n\t\t\t});\n\n\t\t\tconst NESOriginalBackground = ModelDecorationOptions.register({\n\t\t\t\tclassName: 'inlineCompletions-original-lines',\n\t\t\t\tdescription: 'inlineCompletions-original-lines',\n\t\t\t\tisWholeLine: false,\n\t\t\t\tshouldFillLineOnLineBreak: true,\n\t\t\t});\n\n\t\t\tconst showFullLineDecorations = diff.mode !== 'sideBySide' && diff.mode !== 'deletion' && diff.mode !== 'insertionInline' && diff.mode !== 'lineReplacement';\n\t\t\tconst hideEmptyInnerDecorations = diff.mode === 'lineReplacement';\n\t\t\tfor (const m of diff.diff) {\n\t\t\t\tif (showFullLineDecorations) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineDeleteDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\trange: m.modified.toInclusiveRange()!,\n\t\t\t\t\t\t\toptions: diffLineAddDecorationBackground,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (m.modified.isEmpty || m.original.isEmpty) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({ range: m.original.toInclusiveRange()!, options: diffWholeLineDeleteDecoration });\n\t\t\t\t\t}\n\t\t\t\t\tif (!m.modified.isEmpty) {\n\t\t\t\t\t\tmodifiedDecorations.push({ range: m.modified.toInclusiveRange()!, options: diffWholeLineAddDecoration });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst useInlineDiff = showInline && allowsTrueInlineDiffRendering(m);\n\t\t\t\t\tfor (const i of m.innerChanges || []) {\n\t\t\t\t\t\t// Don't show empty markers outside the line range\n\t\t\t\t\t\tif (m.original.contains(i.originalRange.startLineNumber) && !(hideEmptyInnerDecorations && i.originalRange.isEmpty())) {\n\t\t\t\t\t\t\tconst replacedText = this._originalEditor.getModel()?.getValueInRange(i.originalRange, EndOfLinePreference.LF);\n\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\trange: i.originalRange,\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tdescription: 'char-delete',\n\t\t\t\t\t\t\t\t\tshouldFillLineOnLineBreak: false,\n\t\t\t\t\t\t\t\t\tclassName: classNames(\n\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-delete',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\ti.originalRange.isEmpty() && 'empty',\n\t\t\t\t\t\t\t\t\t\t((i.originalRange.isEmpty() && hasOneInnerChange || diff.mode === 'deletion' && replacedText === '\\n') && showEmptyDecorations && !useInlineDiff) && 'diff-range-empty'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tinlineClassName: useInlineDiff ? classNames('strike-through', 'inlineCompletions') : null,\n\t\t\t\t\t\t\t\t\tzIndex: 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m.modified.contains(i.modifiedRange.startLineNumber)) {\n\t\t\t\t\t\t\tmodifiedDecorations.push({\n\t\t\t\t\t\t\t\trange: i.modifiedRange,\n\t\t\t\t\t\t\t\toptions: (i.modifiedRange.isEmpty() && showEmptyDecorations && !useInlineDiff && hasOneInnerChange)\n\t\t\t\t\t\t\t\t\t? diffAddDecorationEmpty\n\t\t\t\t\t\t\t\t\t: diffAddDecoration\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (useInlineDiff) {\n\t\t\t\t\t\t\tconst insertedText = modified.getValueOfRange(i.modifiedRange);\n\t\t\t\t\t\t\t// when the injected text becomes long, the editor will split it into multiple spans\n\t\t\t\t\t\t\t// to be able to get the border around the start and end of the text, we need to split it into multiple segments\n\t\t\t\t\t\t\tconst textSegments = insertedText.length > 3 ?\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(0, 1), extraClasses: ['start'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.startColumn) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(1, -1), extraClasses: [], offsetRange: new OffsetRange(i.modifiedRange.startColumn, i.modifiedRange.endColumn - 2) },\n\t\t\t\t\t\t\t\t\t{ text: insertedText.slice(-1), extraClasses: ['end'], offsetRange: new OffsetRange(i.modifiedRange.endColumn - 2, i.modifiedRange.endColumn - 1) }\n\t\t\t\t\t\t\t\t] :\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{ text: insertedText, extraClasses: ['start', 'end'], offsetRange: new OffsetRange(i.modifiedRange.startColumn - 1, i.modifiedRange.endColumn) }\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t// Tokenization\n\t\t\t\t\t\t\tthis._tokenizationFinished.read(reader); // reconsider when tokenization is finished\n\t\t\t\t\t\t\tconst lineTokens = this._modifiedTextModel.tokenization.getLineTokens(i.modifiedRange.startLineNumber);\n\n\t\t\t\t\t\t\tfor (const { text, extraClasses, offsetRange } of textSegments) {\n\t\t\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\t\t\trange: Range.fromPositions(i.originalRange.getEndPosition()),\n\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\tdescription: 'inserted-text',\n\t\t\t\t\t\t\t\t\t\tbefore: {\n\t\t\t\t\t\t\t\t\t\t\ttokens: lineTokens.getTokensInRange(offsetRange),\n\t\t\t\t\t\t\t\t\t\t\tcontent: text,\n\t\t\t\t\t\t\t\t\t\t\tinlineClassName: classNames(\n\t\t\t\t\t\t\t\t\t\t\t\t'inlineCompletions-char-insert',\n\t\t\t\t\t\t\t\t\t\t\t\ti.modifiedRange.isSingleLine() && diff.mode === 'insertionInline' && 'single-line-inline',\n\t\t\t\t\t\t\t\t\t\t\t\t...extraClasses // include extraClasses for additional styling if provided\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tcursorStops: InjectedTextCursorStops.None,\n\t\t\t\t\t\t\t\t\t\t\tattachedData: new InlineEditAttachedData(this),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\t\t\t\tshowIfCollapsed: true,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (diff.editorType === InlineCompletionEditorType.DiffEditor) {\n\t\t\t\tfor (const m of diff.diff) {\n\t\t\t\t\tif (!m.original.isEmpty) {\n\t\t\t\t\t\toriginalDecorations.push({\n\t\t\t\t\t\t\trange: m.original.toExclusiveRange(),\n\t\t\t\t\t\t\toptions: NESOriginalBackground,\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 { originalDecorations, modifiedDecorations };\n\t\t});\n\n\t\tthis._register(observableCodeEditor(this._originalEditor).setDecorations(this._decorations.map(d => d?.originalDecorations ?? [])));\n\n\t\tconst modifiedCodeEditor = this._state.map(s => s?.modifiedCodeEditor);\n\t\tthis._register(autorunWithStore((reader, store) => {\n\t\t\tconst e = modifiedCodeEditor.read(reader);\n\t\t\tif (e) {\n\t\t\t\tstore.add(observableCodeEditor(e).setDecorations(this._decorations.map(d => d?.modifiedDecorations ?? [])));\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(this._originalEditor.onMouseUp(e => {\n\t\t\tif (e.target.type !== MouseTargetType.CONTENT_TEXT) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst a = e.target.detail.injectedText?.options.attachedData;\n\t\t\tif (a instanceof InlineEditAttachedData && a.owner === this) {\n\t\t\t\tthis._onDidClick.fire(new InlineEditClickEvent(e.event));\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate readonly _decorations;\n}\n\nclass InlineEditAttachedData {\n\tconstructor(public readonly owner: OriginalEditorInlineDiffView) { }\n}\n\nfunction allowsTrueInlineDiffRendering(mapping: DetailedLineRangeMapping): boolean {\n\tif (!mapping.innerChanges) {\n\t\treturn false;\n\t}\n\treturn mapping.innerChanges.every(c =>\n\t\t(rangeIsSingleLine(c.modifiedRange) && rangeIsSingleLine(c.originalRange)));\n}\n\nlet i = 0;\nfunction modelTokenizationFinished(model: ITextModel): IObservable<number> {\n\treturn observableFromEvent(model.onDidChangeTokens, () => i++);\n}\n"]}
@@ -2,69 +2,71 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
+ import { assertNever } from '../../../../../../base/common/assert.js';
5
6
  import { BugIndicatingError } from '../../../../../../base/common/errors.js';
6
7
  import { observableFromEventOpts } from '../../../../../../base/common/observable.js';
7
8
  import { localize } from '../../../../../../nls.js';
8
9
  import { buttonBackground, buttonForeground, buttonSecondaryBackground, buttonSecondaryForeground, diffInserted, diffInsertedLine, diffRemoved, editorBackground } from '../../../../../../platform/theme/common/colorRegistry.js';
9
- import { darken, registerColor, transparent } from '../../../../../../platform/theme/common/colorUtils.js';
10
+ import { asCssVariable, darken, registerColor, transparent } from '../../../../../../platform/theme/common/colorUtils.js';
11
+ import { InlineCompletionEditorType } from '../../model/provideInlineCompletions.js';
10
12
  import { InlineEditTabAction } from './inlineEditsViewInterface.js';
11
- export const originalBackgroundColor = registerColor('inlineEdit.originalBackground', transparent(diffRemoved, 0.2), localize(1235, 'Background color for the original text in inline edits.'), true);
12
- export const modifiedBackgroundColor = registerColor('inlineEdit.modifiedBackground', transparent(diffInserted, 0.3), localize(1236, 'Background color for the modified text in inline edits.'), true);
13
- export const originalChangedLineBackgroundColor = registerColor('inlineEdit.originalChangedLineBackground', transparent(diffRemoved, 0.8), localize(1237, 'Background color for the changed lines in the original text of inline edits.'), true);
14
- export const originalChangedTextOverlayColor = registerColor('inlineEdit.originalChangedTextBackground', transparent(diffRemoved, 0.8), localize(1238, 'Overlay color for the changed text in the original text of inline edits.'), true);
13
+ export const originalBackgroundColor = registerColor('inlineEdit.originalBackground', transparent(diffRemoved, 0.2), localize(1234, 'Background color for the original text in inline edits.'), true);
14
+ export const modifiedBackgroundColor = registerColor('inlineEdit.modifiedBackground', transparent(diffInserted, 0.3), localize(1235, 'Background color for the modified text in inline edits.'), true);
15
+ export const originalChangedLineBackgroundColor = registerColor('inlineEdit.originalChangedLineBackground', transparent(diffRemoved, 0.8), localize(1236, 'Background color for the changed lines in the original text of inline edits.'), true);
16
+ export const originalChangedTextOverlayColor = registerColor('inlineEdit.originalChangedTextBackground', transparent(diffRemoved, 0.8), localize(1237, 'Overlay color for the changed text in the original text of inline edits.'), true);
15
17
  export const modifiedChangedLineBackgroundColor = registerColor('inlineEdit.modifiedChangedLineBackground', {
16
18
  light: transparent(diffInsertedLine, 0.7),
17
19
  dark: transparent(diffInsertedLine, 0.7),
18
20
  hcDark: diffInsertedLine,
19
21
  hcLight: diffInsertedLine
20
- }, localize(1239, 'Background color for the changed lines in the modified text of inline edits.'), true);
21
- export const modifiedChangedTextOverlayColor = registerColor('inlineEdit.modifiedChangedTextBackground', transparent(diffInserted, 0.7), localize(1240, 'Overlay color for the changed text in the modified text of inline edits.'), true);
22
+ }, localize(1238, 'Background color for the changed lines in the modified text of inline edits.'), true);
23
+ export const modifiedChangedTextOverlayColor = registerColor('inlineEdit.modifiedChangedTextBackground', transparent(diffInserted, 0.7), localize(1239, 'Overlay color for the changed text in the modified text of inline edits.'), true);
22
24
  // ------- GUTTER INDICATOR -------
23
- export const inlineEditIndicatorPrimaryForeground = registerColor('inlineEdit.gutterIndicator.primaryForeground', buttonForeground, localize(1241, 'Foreground color for the primary inline edit gutter indicator.'));
24
- export const inlineEditIndicatorPrimaryBorder = registerColor('inlineEdit.gutterIndicator.primaryBorder', buttonBackground, localize(1242, 'Border color for the primary inline edit gutter indicator.'));
25
+ export const inlineEditIndicatorPrimaryForeground = registerColor('inlineEdit.gutterIndicator.primaryForeground', buttonForeground, localize(1240, 'Foreground color for the primary inline edit gutter indicator.'));
26
+ export const inlineEditIndicatorPrimaryBorder = registerColor('inlineEdit.gutterIndicator.primaryBorder', buttonBackground, localize(1241, 'Border color for the primary inline edit gutter indicator.'));
25
27
  export const inlineEditIndicatorPrimaryBackground = registerColor('inlineEdit.gutterIndicator.primaryBackground', {
26
28
  light: transparent(inlineEditIndicatorPrimaryBorder, 0.5),
27
29
  dark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),
28
30
  hcDark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),
29
31
  hcLight: transparent(inlineEditIndicatorPrimaryBorder, 0.5),
30
- }, localize(1243, 'Background color for the primary inline edit gutter indicator.'));
31
- export const inlineEditIndicatorSecondaryForeground = registerColor('inlineEdit.gutterIndicator.secondaryForeground', buttonSecondaryForeground, localize(1244, 'Foreground color for the secondary inline edit gutter indicator.'));
32
- export const inlineEditIndicatorSecondaryBorder = registerColor('inlineEdit.gutterIndicator.secondaryBorder', buttonSecondaryBackground, localize(1245, 'Border color for the secondary inline edit gutter indicator.'));
33
- export const inlineEditIndicatorSecondaryBackground = registerColor('inlineEdit.gutterIndicator.secondaryBackground', inlineEditIndicatorSecondaryBorder, localize(1246, 'Background color for the secondary inline edit gutter indicator.'));
34
- export const inlineEditIndicatorSuccessfulForeground = registerColor('inlineEdit.gutterIndicator.successfulForeground', buttonForeground, localize(1247, 'Foreground color for the successful inline edit gutter indicator.'));
35
- export const inlineEditIndicatorSuccessfulBorder = registerColor('inlineEdit.gutterIndicator.successfulBorder', buttonBackground, localize(1248, 'Border color for the successful inline edit gutter indicator.'));
36
- export const inlineEditIndicatorSuccessfulBackground = registerColor('inlineEdit.gutterIndicator.successfulBackground', inlineEditIndicatorSuccessfulBorder, localize(1249, 'Background color for the successful inline edit gutter indicator.'));
32
+ }, localize(1242, 'Background color for the primary inline edit gutter indicator.'));
33
+ export const inlineEditIndicatorSecondaryForeground = registerColor('inlineEdit.gutterIndicator.secondaryForeground', buttonSecondaryForeground, localize(1243, 'Foreground color for the secondary inline edit gutter indicator.'));
34
+ export const inlineEditIndicatorSecondaryBorder = registerColor('inlineEdit.gutterIndicator.secondaryBorder', buttonSecondaryBackground, localize(1244, 'Border color for the secondary inline edit gutter indicator.'));
35
+ export const inlineEditIndicatorSecondaryBackground = registerColor('inlineEdit.gutterIndicator.secondaryBackground', inlineEditIndicatorSecondaryBorder, localize(1245, 'Background color for the secondary inline edit gutter indicator.'));
36
+ export const inlineEditIndicatorSuccessfulForeground = registerColor('inlineEdit.gutterIndicator.successfulForeground', buttonForeground, localize(1246, 'Foreground color for the successful inline edit gutter indicator.'));
37
+ export const inlineEditIndicatorSuccessfulBorder = registerColor('inlineEdit.gutterIndicator.successfulBorder', buttonBackground, localize(1247, 'Border color for the successful inline edit gutter indicator.'));
38
+ export const inlineEditIndicatorSuccessfulBackground = registerColor('inlineEdit.gutterIndicator.successfulBackground', inlineEditIndicatorSuccessfulBorder, localize(1248, 'Background color for the successful inline edit gutter indicator.'));
37
39
  export const inlineEditIndicatorBackground = registerColor('inlineEdit.gutterIndicator.background', {
38
40
  hcDark: transparent('tab.inactiveBackground', 0.5),
39
41
  hcLight: transparent('tab.inactiveBackground', 0.5),
40
42
  dark: transparent('tab.inactiveBackground', 0.5),
41
43
  light: '#5f5f5f18',
42
- }, localize(1250, 'Background color for the inline edit gutter indicator.'));
44
+ }, localize(1249, 'Background color for the inline edit gutter indicator.'));
43
45
  // ------- BORDER COLORS -------
44
46
  const originalBorder = registerColor('inlineEdit.originalBorder', {
45
47
  light: diffRemoved,
46
48
  dark: diffRemoved,
47
49
  hcDark: diffRemoved,
48
50
  hcLight: diffRemoved
49
- }, localize(1251, 'Border color for the original text in inline edits.'));
51
+ }, localize(1250, 'Border color for the original text in inline edits.'));
50
52
  const modifiedBorder = registerColor('inlineEdit.modifiedBorder', {
51
53
  light: darken(diffInserted, 0.6),
52
54
  dark: diffInserted,
53
55
  hcDark: diffInserted,
54
56
  hcLight: diffInserted
55
- }, localize(1252, 'Border color for the modified text in inline edits.'));
57
+ }, localize(1251, 'Border color for the modified text in inline edits.'));
56
58
  const tabWillAcceptModifiedBorder = registerColor('inlineEdit.tabWillAcceptModifiedBorder', {
57
59
  light: darken(modifiedBorder, 0),
58
60
  dark: darken(modifiedBorder, 0),
59
61
  hcDark: darken(modifiedBorder, 0),
60
62
  hcLight: darken(modifiedBorder, 0)
61
- }, localize(1253, 'Modified border color for the inline edits widget when tab will accept it.'));
63
+ }, localize(1252, 'Modified border color for the inline edits widget when tab will accept it.'));
62
64
  const tabWillAcceptOriginalBorder = registerColor('inlineEdit.tabWillAcceptOriginalBorder', {
63
65
  light: darken(originalBorder, 0),
64
66
  dark: darken(originalBorder, 0),
65
67
  hcDark: darken(originalBorder, 0),
66
68
  hcLight: darken(originalBorder, 0)
67
- }, localize(1254, 'Original border color for the inline edits widget over the original text when tab will accept it.'));
69
+ }, localize(1253, 'Original border color for the inline edits widget over the original text when tab will accept it.'));
68
70
  export function getModifiedBorderColor(tabAction) {
69
71
  return tabAction.map(a => a === InlineEditTabAction.Accept ? tabWillAcceptModifiedBorder : modifiedBorder);
70
72
  }
@@ -82,6 +84,23 @@ export function getEditorBlendedColor(colorIdentifier, themeService) {
82
84
  const backgroundColor = observeColor(editorBackground, themeService);
83
85
  return color.map((c, reader) => /** @description makeOpaque */ c.makeOpaque(backgroundColor.read(reader)));
84
86
  }
87
+ export function getEditorBackgroundColor(editorType) {
88
+ let color;
89
+ switch (editorType) {
90
+ case InlineCompletionEditorType.TextEditor:
91
+ color = editorBackground;
92
+ break;
93
+ case InlineCompletionEditorType.DiffEditor:
94
+ color = editorBackground;
95
+ break;
96
+ case InlineCompletionEditorType.Notebook:
97
+ color = 'notebook.cellEditorBackground';
98
+ break;
99
+ default:
100
+ assertNever(editorType, 'Not supported editor type yet');
101
+ }
102
+ return asCssVariable(color);
103
+ }
85
104
  export function observeColor(colorIdentifier, themeService) {
86
105
  return observableFromEventOpts({
87
106
  owner: { observeColor: colorIdentifier },
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.ts"],"names":[],"mappings":"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","file":"theme.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 { Color } from '../../../../../../base/common/color.js';\nimport { BugIndicatingError } from '../../../../../../base/common/errors.js';\nimport { IObservable, observableFromEventOpts } from '../../../../../../base/common/observable.js';\nimport { localize } from '../../../../../../nls.js';\nimport { buttonBackground, buttonForeground, buttonSecondaryBackground, buttonSecondaryForeground, diffInserted, diffInsertedLine, diffRemoved, editorBackground } from '../../../../../../platform/theme/common/colorRegistry.js';\nimport { ColorIdentifier, darken, registerColor, transparent } from '../../../../../../platform/theme/common/colorUtils.js';\nimport { IThemeService } from '../../../../../../platform/theme/common/themeService.js';\nimport { InlineEditTabAction } from './inlineEditsViewInterface.js';\n\nexport const originalBackgroundColor = registerColor(\n\t'inlineEdit.originalBackground',\n\ttransparent(diffRemoved, 0.2),\n\tlocalize('inlineEdit.originalBackground', 'Background color for the original text in inline edits.'),\n\ttrue\n);\nexport const modifiedBackgroundColor = registerColor(\n\t'inlineEdit.modifiedBackground',\n\ttransparent(diffInserted, 0.3),\n\tlocalize('inlineEdit.modifiedBackground', 'Background color for the modified text in inline edits.'),\n\ttrue\n);\n\nexport const originalChangedLineBackgroundColor = registerColor(\n\t'inlineEdit.originalChangedLineBackground',\n\ttransparent(diffRemoved, 0.8),\n\tlocalize('inlineEdit.originalChangedLineBackground', 'Background color for the changed lines in the original text of inline edits.'),\n\ttrue\n);\n\nexport const originalChangedTextOverlayColor = registerColor(\n\t'inlineEdit.originalChangedTextBackground',\n\ttransparent(diffRemoved, 0.8),\n\tlocalize('inlineEdit.originalChangedTextBackground', 'Overlay color for the changed text in the original text of inline edits.'),\n\ttrue\n);\n\nexport const modifiedChangedLineBackgroundColor = registerColor(\n\t'inlineEdit.modifiedChangedLineBackground',\n\t{\n\t\tlight: transparent(diffInsertedLine, 0.7),\n\t\tdark: transparent(diffInsertedLine, 0.7),\n\t\thcDark: diffInsertedLine,\n\t\thcLight: diffInsertedLine\n\t},\n\tlocalize('inlineEdit.modifiedChangedLineBackground', 'Background color for the changed lines in the modified text of inline edits.'),\n\ttrue\n);\n\nexport const modifiedChangedTextOverlayColor = registerColor(\n\t'inlineEdit.modifiedChangedTextBackground',\n\ttransparent(diffInserted, 0.7),\n\tlocalize('inlineEdit.modifiedChangedTextBackground', 'Overlay color for the changed text in the modified text of inline edits.'),\n\ttrue\n);\n\n// ------- GUTTER INDICATOR -------\n\nexport const inlineEditIndicatorPrimaryForeground = registerColor(\n\t'inlineEdit.gutterIndicator.primaryForeground',\n\tbuttonForeground,\n\tlocalize('inlineEdit.gutterIndicator.primaryForeground', 'Foreground color for the primary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorPrimaryBorder = registerColor(\n\t'inlineEdit.gutterIndicator.primaryBorder',\n\tbuttonBackground,\n\tlocalize('inlineEdit.gutterIndicator.primaryBorder', 'Border color for the primary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorPrimaryBackground = registerColor(\n\t'inlineEdit.gutterIndicator.primaryBackground',\n\t{\n\t\tlight: transparent(inlineEditIndicatorPrimaryBorder, 0.5),\n\t\tdark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),\n\t\thcDark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),\n\t\thcLight: transparent(inlineEditIndicatorPrimaryBorder, 0.5),\n\t},\n\tlocalize('inlineEdit.gutterIndicator.primaryBackground', 'Background color for the primary inline edit gutter indicator.')\n);\n\nexport const inlineEditIndicatorSecondaryForeground = registerColor(\n\t'inlineEdit.gutterIndicator.secondaryForeground',\n\tbuttonSecondaryForeground,\n\tlocalize('inlineEdit.gutterIndicator.secondaryForeground', 'Foreground color for the secondary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSecondaryBorder = registerColor(\n\t'inlineEdit.gutterIndicator.secondaryBorder',\n\tbuttonSecondaryBackground,\n\tlocalize('inlineEdit.gutterIndicator.secondaryBorder', 'Border color for the secondary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSecondaryBackground = registerColor(\n\t'inlineEdit.gutterIndicator.secondaryBackground',\n\tinlineEditIndicatorSecondaryBorder,\n\tlocalize('inlineEdit.gutterIndicator.secondaryBackground', 'Background color for the secondary inline edit gutter indicator.')\n);\n\nexport const inlineEditIndicatorSuccessfulForeground = registerColor(\n\t'inlineEdit.gutterIndicator.successfulForeground',\n\tbuttonForeground,\n\tlocalize('inlineEdit.gutterIndicator.successfulForeground', 'Foreground color for the successful inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSuccessfulBorder = registerColor(\n\t'inlineEdit.gutterIndicator.successfulBorder',\n\tbuttonBackground,\n\tlocalize('inlineEdit.gutterIndicator.successfulBorder', 'Border color for the successful inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSuccessfulBackground = registerColor(\n\t'inlineEdit.gutterIndicator.successfulBackground',\n\tinlineEditIndicatorSuccessfulBorder,\n\tlocalize('inlineEdit.gutterIndicator.successfulBackground', 'Background color for the successful inline edit gutter indicator.')\n);\n\nexport const inlineEditIndicatorBackground = registerColor(\n\t'inlineEdit.gutterIndicator.background',\n\t{\n\t\thcDark: transparent('tab.inactiveBackground', 0.5),\n\t\thcLight: transparent('tab.inactiveBackground', 0.5),\n\t\tdark: transparent('tab.inactiveBackground', 0.5),\n\t\tlight: '#5f5f5f18',\n\t},\n\tlocalize('inlineEdit.gutterIndicator.background', 'Background color for the inline edit gutter indicator.')\n);\n\n// ------- BORDER COLORS -------\n\nconst originalBorder = registerColor(\n\t'inlineEdit.originalBorder',\n\t{\n\t\tlight: diffRemoved,\n\t\tdark: diffRemoved,\n\t\thcDark: diffRemoved,\n\t\thcLight: diffRemoved\n\t},\n\tlocalize('inlineEdit.originalBorder', 'Border color for the original text in inline edits.')\n);\n\nconst modifiedBorder = registerColor(\n\t'inlineEdit.modifiedBorder',\n\t{\n\t\tlight: darken(diffInserted, 0.6),\n\t\tdark: diffInserted,\n\t\thcDark: diffInserted,\n\t\thcLight: diffInserted\n\t},\n\tlocalize('inlineEdit.modifiedBorder', 'Border color for the modified text in inline edits.')\n);\n\nconst tabWillAcceptModifiedBorder = registerColor(\n\t'inlineEdit.tabWillAcceptModifiedBorder',\n\t{\n\t\tlight: darken(modifiedBorder, 0),\n\t\tdark: darken(modifiedBorder, 0),\n\t\thcDark: darken(modifiedBorder, 0),\n\t\thcLight: darken(modifiedBorder, 0)\n\t},\n\tlocalize('inlineEdit.tabWillAcceptModifiedBorder', 'Modified border color for the inline edits widget when tab will accept it.')\n);\n\nconst tabWillAcceptOriginalBorder = registerColor(\n\t'inlineEdit.tabWillAcceptOriginalBorder',\n\t{\n\t\tlight: darken(originalBorder, 0),\n\t\tdark: darken(originalBorder, 0),\n\t\thcDark: darken(originalBorder, 0),\n\t\thcLight: darken(originalBorder, 0)\n\t},\n\tlocalize('inlineEdit.tabWillAcceptOriginalBorder', 'Original border color for the inline edits widget over the original text when tab will accept it.')\n);\n\nexport function getModifiedBorderColor(tabAction: IObservable<InlineEditTabAction>): IObservable<string> {\n\treturn tabAction.map(a => a === InlineEditTabAction.Accept ? tabWillAcceptModifiedBorder : modifiedBorder);\n}\n\nexport function getOriginalBorderColor(tabAction: IObservable<InlineEditTabAction>): IObservable<string> {\n\treturn tabAction.map(a => a === InlineEditTabAction.Accept ? tabWillAcceptOriginalBorder : originalBorder);\n}\n\nexport function getEditorBlendedColor(colorIdentifier: ColorIdentifier | IObservable<ColorIdentifier>, themeService: IThemeService): IObservable<Color> {\n\tlet color: IObservable<Color>;\n\tif (typeof colorIdentifier === 'string') {\n\t\tcolor = observeColor(colorIdentifier, themeService);\n\t} else {\n\t\tcolor = colorIdentifier.map((identifier, reader) => observeColor(identifier, themeService).read(reader));\n\t}\n\n\tconst backgroundColor = observeColor(editorBackground, themeService);\n\n\treturn color.map((c, reader) => /** @description makeOpaque */ c.makeOpaque(backgroundColor.read(reader)));\n}\n\nexport function observeColor(colorIdentifier: ColorIdentifier, themeService: IThemeService): IObservable<Color> {\n\treturn observableFromEventOpts(\n\t\t{\n\t\t\towner: { observeColor: colorIdentifier },\n\t\t\tequalsFn: (a: Color, b: Color) => a.equals(b),\n\t\t\tdebugName: () => `observeColor(${colorIdentifier})`\n\t\t},\n\t\tthemeService.onDidColorThemeChange,\n\t\t() => {\n\t\t\tconst color = themeService.getColorTheme().getColor(colorIdentifier);\n\t\t\tif (!color) {\n\t\t\t\tthrow new BugIndicatingError(`Missing color: ${colorIdentifier}`);\n\t\t\t}\n\t\t\treturn color;\n\t\t}\n\t);\n}\n\n// Styles\nexport const INLINE_EDITS_BORDER_RADIUS = 3; // also used in CSS file\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAe,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AACnO,OAAO,EAAE,aAAa,EAAmB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAE3I,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CACnD,+BAA+B,EAC/B,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,EAC7B,QAAQ,CAAC,IAA+B,EAAE,yDAAyD,CAAC,EACpG,IAAI,CACJ,CAAC;AACF,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CACnD,+BAA+B,EAC/B,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,EAC9B,QAAQ,CAAC,IAA+B,EAAE,yDAAyD,CAAC,EACpG,IAAI,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,aAAa,CAC9D,0CAA0C,EAC1C,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,EAC7B,QAAQ,CAAC,IAA0C,EAAE,8EAA8E,CAAC,EACpI,IAAI,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAC3D,0CAA0C,EAC1C,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,EAC7B,QAAQ,CAAC,IAA0C,EAAE,0EAA0E,CAAC,EAChI,IAAI,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,aAAa,CAC9D,0CAA0C,EAC1C;IACC,KAAK,EAAE,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACzC,IAAI,EAAE,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACxC,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,gBAAgB;CACzB,EACD,QAAQ,CAAC,IAA0C,EAAE,8EAA8E,CAAC,EACpI,IAAI,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAC3D,0CAA0C,EAC1C,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,EAC9B,QAAQ,CAAC,IAA0C,EAAE,0EAA0E,CAAC,EAChI,IAAI,CACJ,CAAC;AAEF,mCAAmC;AAEnC,MAAM,CAAC,MAAM,oCAAoC,GAAG,aAAa,CAChE,8CAA8C,EAC9C,gBAAgB,EAChB,QAAQ,CAAC,IAA8C,EAAE,gEAAgE,CAAC,CAC1H,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAC5D,0CAA0C,EAC1C,gBAAgB,EAChB,QAAQ,CAAC,IAA0C,EAAE,4DAA4D,CAAC,CAClH,CAAC;AACF,MAAM,CAAC,MAAM,oCAAoC,GAAG,aAAa,CAChE,8CAA8C,EAC9C;IACC,KAAK,EAAE,WAAW,CAAC,gCAAgC,EAAE,GAAG,CAAC;IACzD,IAAI,EAAE,WAAW,CAAC,gCAAgC,EAAE,GAAG,CAAC;IACxD,MAAM,EAAE,WAAW,CAAC,gCAAgC,EAAE,GAAG,CAAC;IAC1D,OAAO,EAAE,WAAW,CAAC,gCAAgC,EAAE,GAAG,CAAC;CAC3D,EACD,QAAQ,CAAC,IAA8C,EAAE,gEAAgE,CAAC,CAC1H,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,aAAa,CAClE,gDAAgD,EAChD,yBAAyB,EACzB,QAAQ,CAAC,IAAgD,EAAE,kEAAkE,CAAC,CAC9H,CAAC;AACF,MAAM,CAAC,MAAM,kCAAkC,GAAG,aAAa,CAC9D,4CAA4C,EAC5C,yBAAyB,EACzB,QAAQ,CAAC,IAA4C,EAAE,8DAA8D,CAAC,CACtH,CAAC;AACF,MAAM,CAAC,MAAM,sCAAsC,GAAG,aAAa,CAClE,gDAAgD,EAChD,kCAAkC,EAClC,QAAQ,CAAC,IAAgD,EAAE,kEAAkE,CAAC,CAC9H,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAAG,aAAa,CACnE,iDAAiD,EACjD,gBAAgB,EAChB,QAAQ,CAAC,IAAiD,EAAE,mEAAmE,CAAC,CAChI,CAAC;AACF,MAAM,CAAC,MAAM,mCAAmC,GAAG,aAAa,CAC/D,6CAA6C,EAC7C,gBAAgB,EAChB,QAAQ,CAAC,IAA6C,EAAE,+DAA+D,CAAC,CACxH,CAAC;AACF,MAAM,CAAC,MAAM,uCAAuC,GAAG,aAAa,CACnE,iDAAiD,EACjD,mCAAmC,EACnC,QAAQ,CAAC,IAAiD,EAAE,mEAAmE,CAAC,CAChI,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CACzD,uCAAuC,EACvC;IACC,MAAM,EAAE,WAAW,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAClD,OAAO,EAAE,WAAW,CAAC,wBAAwB,EAAE,GAAG,CAAC;IACnD,IAAI,EAAE,WAAW,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAChD,KAAK,EAAE,WAAW;CAClB,EACD,QAAQ,CAAC,IAAuC,EAAE,wDAAwD,CAAC,CAC3G,CAAC;AAEF,gCAAgC;AAEhC,MAAM,cAAc,GAAG,aAAa,CACnC,2BAA2B,EAC3B;IACC,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,WAAW;CACpB,EACD,QAAQ,CAAC,IAA2B,EAAE,qDAAqD,CAAC,CAC5F,CAAC;AAEF,MAAM,cAAc,GAAG,aAAa,CACnC,2BAA2B,EAC3B;IACC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;IAChC,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;CACrB,EACD,QAAQ,CAAC,IAA2B,EAAE,qDAAqD,CAAC,CAC5F,CAAC;AAEF,MAAM,2BAA2B,GAAG,aAAa,CAChD,wCAAwC,EACxC;IACC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;CAClC,EACD,QAAQ,CAAC,IAAwC,EAAE,4EAA4E,CAAC,CAChI,CAAC;AAEF,MAAM,2BAA2B,GAAG,aAAa,CAChD,wCAAwC,EACxC;IACC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;CAClC,EACD,QAAQ,CAAC,IAAwC,EAAE,mGAAmG,CAAC,CACvJ,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,SAA2C;IACjF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAA2C;IACjF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,eAA+D,EAAE,YAA2B;IACjI,IAAI,KAAyB,CAAC;IAC9B,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,GAAG,YAAY,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACP,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAErE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAAsC;IAC9E,IAAI,KAAK,CAAC;IACV,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,0BAA0B,CAAC,UAAU;YACzC,KAAK,GAAG,gBAAgB,CAAC;YAAC,MAAM;QACjC,KAAK,0BAA0B,CAAC,UAAU;YACzC,KAAK,GAAG,gBAAgB,CAAC;YAAC,MAAM;QACjC,KAAK,0BAA0B,CAAC,QAAQ;YACvC,KAAK,GAAG,+BAA+B,CAAC;YAAC,MAAM;QAChD;YACC,WAAW,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAGD,MAAM,UAAU,YAAY,CAAC,eAAgC,EAAE,YAA2B;IACzF,OAAO,uBAAuB,CAC7B;QACC,KAAK,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE;QACxC,QAAQ,EAAE,CAAC,CAAQ,EAAE,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,SAAS,EAAE,GAAG,EAAE,CAAC,gBAAgB,eAAe,GAAG;KACnD,EACD,YAAY,CAAC,qBAAqB,EAClC,GAAG,EAAE;QACJ,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,eAAe,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS;AACT,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,wBAAwB","file":"theme.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 { assertNever } from '../../../../../../base/common/assert.js';\nimport { Color } from '../../../../../../base/common/color.js';\nimport { BugIndicatingError } from '../../../../../../base/common/errors.js';\nimport { IObservable, observableFromEventOpts } from '../../../../../../base/common/observable.js';\nimport { localize } from '../../../../../../nls.js';\nimport { buttonBackground, buttonForeground, buttonSecondaryBackground, buttonSecondaryForeground, diffInserted, diffInsertedLine, diffRemoved, editorBackground } from '../../../../../../platform/theme/common/colorRegistry.js';\nimport { asCssVariable, ColorIdentifier, darken, registerColor, transparent } from '../../../../../../platform/theme/common/colorUtils.js';\nimport { IThemeService } from '../../../../../../platform/theme/common/themeService.js';\nimport { InlineCompletionEditorType } from '../../model/provideInlineCompletions.js';\nimport { InlineEditTabAction } from './inlineEditsViewInterface.js';\n\nexport const originalBackgroundColor = registerColor(\n\t'inlineEdit.originalBackground',\n\ttransparent(diffRemoved, 0.2),\n\tlocalize('inlineEdit.originalBackground', 'Background color for the original text in inline edits.'),\n\ttrue\n);\nexport const modifiedBackgroundColor = registerColor(\n\t'inlineEdit.modifiedBackground',\n\ttransparent(diffInserted, 0.3),\n\tlocalize('inlineEdit.modifiedBackground', 'Background color for the modified text in inline edits.'),\n\ttrue\n);\n\nexport const originalChangedLineBackgroundColor = registerColor(\n\t'inlineEdit.originalChangedLineBackground',\n\ttransparent(diffRemoved, 0.8),\n\tlocalize('inlineEdit.originalChangedLineBackground', 'Background color for the changed lines in the original text of inline edits.'),\n\ttrue\n);\n\nexport const originalChangedTextOverlayColor = registerColor(\n\t'inlineEdit.originalChangedTextBackground',\n\ttransparent(diffRemoved, 0.8),\n\tlocalize('inlineEdit.originalChangedTextBackground', 'Overlay color for the changed text in the original text of inline edits.'),\n\ttrue\n);\n\nexport const modifiedChangedLineBackgroundColor = registerColor(\n\t'inlineEdit.modifiedChangedLineBackground',\n\t{\n\t\tlight: transparent(diffInsertedLine, 0.7),\n\t\tdark: transparent(diffInsertedLine, 0.7),\n\t\thcDark: diffInsertedLine,\n\t\thcLight: diffInsertedLine\n\t},\n\tlocalize('inlineEdit.modifiedChangedLineBackground', 'Background color for the changed lines in the modified text of inline edits.'),\n\ttrue\n);\n\nexport const modifiedChangedTextOverlayColor = registerColor(\n\t'inlineEdit.modifiedChangedTextBackground',\n\ttransparent(diffInserted, 0.7),\n\tlocalize('inlineEdit.modifiedChangedTextBackground', 'Overlay color for the changed text in the modified text of inline edits.'),\n\ttrue\n);\n\n// ------- GUTTER INDICATOR -------\n\nexport const inlineEditIndicatorPrimaryForeground = registerColor(\n\t'inlineEdit.gutterIndicator.primaryForeground',\n\tbuttonForeground,\n\tlocalize('inlineEdit.gutterIndicator.primaryForeground', 'Foreground color for the primary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorPrimaryBorder = registerColor(\n\t'inlineEdit.gutterIndicator.primaryBorder',\n\tbuttonBackground,\n\tlocalize('inlineEdit.gutterIndicator.primaryBorder', 'Border color for the primary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorPrimaryBackground = registerColor(\n\t'inlineEdit.gutterIndicator.primaryBackground',\n\t{\n\t\tlight: transparent(inlineEditIndicatorPrimaryBorder, 0.5),\n\t\tdark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),\n\t\thcDark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),\n\t\thcLight: transparent(inlineEditIndicatorPrimaryBorder, 0.5),\n\t},\n\tlocalize('inlineEdit.gutterIndicator.primaryBackground', 'Background color for the primary inline edit gutter indicator.')\n);\n\nexport const inlineEditIndicatorSecondaryForeground = registerColor(\n\t'inlineEdit.gutterIndicator.secondaryForeground',\n\tbuttonSecondaryForeground,\n\tlocalize('inlineEdit.gutterIndicator.secondaryForeground', 'Foreground color for the secondary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSecondaryBorder = registerColor(\n\t'inlineEdit.gutterIndicator.secondaryBorder',\n\tbuttonSecondaryBackground,\n\tlocalize('inlineEdit.gutterIndicator.secondaryBorder', 'Border color for the secondary inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSecondaryBackground = registerColor(\n\t'inlineEdit.gutterIndicator.secondaryBackground',\n\tinlineEditIndicatorSecondaryBorder,\n\tlocalize('inlineEdit.gutterIndicator.secondaryBackground', 'Background color for the secondary inline edit gutter indicator.')\n);\n\nexport const inlineEditIndicatorSuccessfulForeground = registerColor(\n\t'inlineEdit.gutterIndicator.successfulForeground',\n\tbuttonForeground,\n\tlocalize('inlineEdit.gutterIndicator.successfulForeground', 'Foreground color for the successful inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSuccessfulBorder = registerColor(\n\t'inlineEdit.gutterIndicator.successfulBorder',\n\tbuttonBackground,\n\tlocalize('inlineEdit.gutterIndicator.successfulBorder', 'Border color for the successful inline edit gutter indicator.')\n);\nexport const inlineEditIndicatorSuccessfulBackground = registerColor(\n\t'inlineEdit.gutterIndicator.successfulBackground',\n\tinlineEditIndicatorSuccessfulBorder,\n\tlocalize('inlineEdit.gutterIndicator.successfulBackground', 'Background color for the successful inline edit gutter indicator.')\n);\n\nexport const inlineEditIndicatorBackground = registerColor(\n\t'inlineEdit.gutterIndicator.background',\n\t{\n\t\thcDark: transparent('tab.inactiveBackground', 0.5),\n\t\thcLight: transparent('tab.inactiveBackground', 0.5),\n\t\tdark: transparent('tab.inactiveBackground', 0.5),\n\t\tlight: '#5f5f5f18',\n\t},\n\tlocalize('inlineEdit.gutterIndicator.background', 'Background color for the inline edit gutter indicator.')\n);\n\n// ------- BORDER COLORS -------\n\nconst originalBorder = registerColor(\n\t'inlineEdit.originalBorder',\n\t{\n\t\tlight: diffRemoved,\n\t\tdark: diffRemoved,\n\t\thcDark: diffRemoved,\n\t\thcLight: diffRemoved\n\t},\n\tlocalize('inlineEdit.originalBorder', 'Border color for the original text in inline edits.')\n);\n\nconst modifiedBorder = registerColor(\n\t'inlineEdit.modifiedBorder',\n\t{\n\t\tlight: darken(diffInserted, 0.6),\n\t\tdark: diffInserted,\n\t\thcDark: diffInserted,\n\t\thcLight: diffInserted\n\t},\n\tlocalize('inlineEdit.modifiedBorder', 'Border color for the modified text in inline edits.')\n);\n\nconst tabWillAcceptModifiedBorder = registerColor(\n\t'inlineEdit.tabWillAcceptModifiedBorder',\n\t{\n\t\tlight: darken(modifiedBorder, 0),\n\t\tdark: darken(modifiedBorder, 0),\n\t\thcDark: darken(modifiedBorder, 0),\n\t\thcLight: darken(modifiedBorder, 0)\n\t},\n\tlocalize('inlineEdit.tabWillAcceptModifiedBorder', 'Modified border color for the inline edits widget when tab will accept it.')\n);\n\nconst tabWillAcceptOriginalBorder = registerColor(\n\t'inlineEdit.tabWillAcceptOriginalBorder',\n\t{\n\t\tlight: darken(originalBorder, 0),\n\t\tdark: darken(originalBorder, 0),\n\t\thcDark: darken(originalBorder, 0),\n\t\thcLight: darken(originalBorder, 0)\n\t},\n\tlocalize('inlineEdit.tabWillAcceptOriginalBorder', 'Original border color for the inline edits widget over the original text when tab will accept it.')\n);\n\nexport function getModifiedBorderColor(tabAction: IObservable<InlineEditTabAction>): IObservable<string> {\n\treturn tabAction.map(a => a === InlineEditTabAction.Accept ? tabWillAcceptModifiedBorder : modifiedBorder);\n}\n\nexport function getOriginalBorderColor(tabAction: IObservable<InlineEditTabAction>): IObservable<string> {\n\treturn tabAction.map(a => a === InlineEditTabAction.Accept ? tabWillAcceptOriginalBorder : originalBorder);\n}\n\nexport function getEditorBlendedColor(colorIdentifier: ColorIdentifier | IObservable<ColorIdentifier>, themeService: IThemeService): IObservable<Color> {\n\tlet color: IObservable<Color>;\n\tif (typeof colorIdentifier === 'string') {\n\t\tcolor = observeColor(colorIdentifier, themeService);\n\t} else {\n\t\tcolor = colorIdentifier.map((identifier, reader) => observeColor(identifier, themeService).read(reader));\n\t}\n\n\tconst backgroundColor = observeColor(editorBackground, themeService);\n\n\treturn color.map((c, reader) => /** @description makeOpaque */ c.makeOpaque(backgroundColor.read(reader)));\n}\n\nexport function getEditorBackgroundColor(editorType: InlineCompletionEditorType): string {\n\tlet color;\n\tswitch (editorType) {\n\t\tcase InlineCompletionEditorType.TextEditor:\n\t\t\tcolor = editorBackground; break;\n\t\tcase InlineCompletionEditorType.DiffEditor:\n\t\t\tcolor = editorBackground; break;\n\t\tcase InlineCompletionEditorType.Notebook:\n\t\t\tcolor = 'notebook.cellEditorBackground'; break;\n\t\tdefault:\n\t\t\tassertNever(editorType, 'Not supported editor type yet');\n\t}\n\treturn asCssVariable(color);\n}\n\n\nexport function observeColor(colorIdentifier: ColorIdentifier, themeService: IThemeService): IObservable<Color> {\n\treturn observableFromEventOpts(\n\t\t{\n\t\t\towner: { observeColor: colorIdentifier },\n\t\t\tequalsFn: (a: Color, b: Color) => a.equals(b),\n\t\t\tdebugName: () => `observeColor(${colorIdentifier})`\n\t\t},\n\t\tthemeService.onDidColorThemeChange,\n\t\t() => {\n\t\t\tconst color = themeService.getColorTheme().getColor(colorIdentifier);\n\t\t\tif (!color) {\n\t\t\t\tthrow new BugIndicatingError(`Missing color: ${colorIdentifier}`);\n\t\t\t}\n\t\t\treturn color;\n\t\t}\n\t);\n}\n\n// Styles\nexport const INLINE_EDITS_BORDER_RADIUS = 3; // also used in CSS file\n"]}
@@ -11,7 +11,7 @@ export class InsertFinalNewLineAction extends EditorAction {
11
11
  constructor() {
12
12
  super({
13
13
  id: InsertFinalNewLineAction.ID,
14
- label: nls.localize2(1257, "Insert Final New Line"),
14
+ label: nls.localize2(1256, "Insert Final New Line"),
15
15
  precondition: EditorContextKeys.writable
16
16
  });
17
17
  }
@@ -10,7 +10,7 @@ export class ExpandLineSelectionAction extends EditorAction {
10
10
  constructor() {
11
11
  super({
12
12
  id: 'expandLineSelection',
13
- label: nls.localize2(1258, "Expand Line Selection"),
13
+ label: nls.localize2(1257, "Expand Line Selection"),
14
14
  precondition: undefined,
15
15
  kbOpts: {
16
16
  weight: 0 /* KeybindingWeight.EditorCore */,