@pierre/diffs 1.3.0-beta.8 → 1.3.0-rc.1
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.
- package/dist/components/CodeView.d.ts +12 -12
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +51 -43
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +7 -2
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +36 -8
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +34 -6
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +198 -17
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.d.ts.map +1 -1
- package/dist/components/FileStream.js +2 -1
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +2 -1
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +9 -5
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +14 -0
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +61 -3
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.d.ts +14 -2
- package/dist/components/Virtualizer.d.ts.map +1 -1
- package/dist/components/Virtualizer.js +29 -3
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/edit/index.d.ts +5 -0
- package/dist/edit/index.js +3 -0
- package/dist/editor/command.d.ts +1 -1
- package/dist/editor/command.d.ts.map +1 -1
- package/dist/editor/command.js +11 -0
- package/dist/editor/command.js.map +1 -1
- package/dist/editor/editStack.d.ts +6 -2
- package/dist/editor/editStack.d.ts.map +1 -1
- package/dist/editor/editStack.js +54 -13
- package/dist/editor/editStack.js.map +1 -1
- package/dist/editor/editor.d.ts +51 -23
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +995 -242
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/editor2.js +1 -1
- package/dist/editor/languages.d.ts +26 -0
- package/dist/editor/languages.d.ts.map +1 -0
- package/dist/editor/languages.js +363 -0
- package/dist/editor/languages.js.map +1 -0
- package/dist/editor/lineAnnotations.d.ts.map +1 -1
- package/dist/editor/lineAnnotations.js +25 -26
- package/dist/editor/lineAnnotations.js.map +1 -1
- package/dist/editor/marker.d.ts +5 -3
- package/dist/editor/marker.d.ts.map +1 -1
- package/dist/editor/marker.js +111 -91
- package/dist/editor/marker.js.map +1 -1
- package/dist/editor/matchBrackets.d.ts +3 -2
- package/dist/editor/matchBrackets.d.ts.map +1 -1
- package/dist/editor/matchBrackets.js +2 -10
- package/dist/editor/matchBrackets.js.map +1 -1
- package/dist/editor/pieceTable.d.ts +2 -1
- package/dist/editor/pieceTable.d.ts.map +1 -1
- package/dist/editor/pieceTable.js +103 -39
- package/dist/editor/pieceTable.js.map +1 -1
- package/dist/editor/platform.js +2 -0
- package/dist/editor/platform.js.map +1 -1
- package/dist/editor/popover.d.ts +25 -5
- package/dist/editor/popover.d.ts.map +1 -1
- package/dist/editor/popover.js +60 -14
- package/dist/editor/popover.js.map +1 -1
- package/dist/editor/searchPanel.d.ts +1 -0
- package/dist/editor/searchPanel.d.ts.map +1 -1
- package/dist/editor/searchPanel.js +15 -8
- package/dist/editor/searchPanel.js.map +1 -1
- package/dist/editor/selection.d.ts +31 -11
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +198 -70
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/selectionAction.d.ts +4 -3
- package/dist/editor/selectionAction.d.ts.map +1 -1
- package/dist/editor/selectionAction.js +9 -5
- package/dist/editor/selectionAction.js.map +1 -1
- package/dist/editor/stateStorage.d.ts +15 -0
- package/dist/editor/stateStorage.d.ts.map +1 -0
- package/dist/editor/stateStorage.js +65 -0
- package/dist/editor/stateStorage.js.map +1 -0
- package/dist/editor/textDocument.d.ts +12 -77
- package/dist/editor/textDocument.d.ts.map +1 -1
- package/dist/editor/textDocument.js +76 -34
- package/dist/editor/textDocument.js.map +1 -1
- package/dist/editor/textMeasure.d.ts +7 -12
- package/dist/editor/textMeasure.d.ts.map +1 -1
- package/dist/editor/textMeasure.js +40 -32
- package/dist/editor/textMeasure.js.map +1 -1
- package/dist/editor/{tokenzier.d.ts → tokenizer.d.ts} +3 -3
- package/dist/editor/tokenizer.d.ts.map +1 -0
- package/dist/editor/{tokenzier.js → tokenizer.js} +91 -26
- package/dist/editor/tokenizer.js.map +1 -0
- package/dist/editor/utils.js +1 -1
- package/dist/editor/utils.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +7 -6
- package/dist/managers/InteractionManager.d.ts +18 -7
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +154 -99
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/UniversalRenderingManager.d.ts +2 -1
- package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/dist/managers/UniversalRenderingManager.js +7 -3
- package/dist/managers/UniversalRenderingManager.js.map +1 -1
- package/dist/react/CodeView.d.ts +13 -13
- package/dist/react/CodeView.d.ts.map +1 -1
- package/dist/react/CodeView.js +38 -29
- package/dist/react/CodeView.js.map +1 -1
- package/dist/react/EditContext.d.ts +20 -0
- package/dist/react/EditContext.d.ts.map +1 -0
- package/dist/react/EditContext.js +20 -0
- package/dist/react/EditContext.js.map +1 -0
- package/dist/react/File.d.ts +2 -1
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +3 -2
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.d.ts +2 -2
- package/dist/react/FileDiff.d.ts.map +1 -1
- package/dist/react/FileDiff.js +3 -2
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +2 -2
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +3 -2
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.d.ts +2 -2
- package/dist/react/PatchDiff.d.ts.map +1 -1
- package/dist/react/PatchDiff.js +3 -2
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.d.ts +1 -1
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/index.d.ts +4 -4
- package/dist/react/index.js +3 -3
- package/dist/react/types.d.ts +9 -1
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +5 -3
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +28 -27
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +5 -3
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +29 -25
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/react/utils/useUnresolvedFileInstance.js +3 -3
- package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +33 -1
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +134 -21
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +2 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +33 -11
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/ssr/FileDiffReact.js +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/preloadDiffs.js +1 -1
- package/dist/style.js +1 -1
- package/dist/types.d.ts +185 -42
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/annotationHelpers.d.ts +20 -0
- package/dist/utils/annotationHelpers.d.ts.map +1 -0
- package/dist/utils/annotationHelpers.js +29 -0
- package/dist/utils/annotationHelpers.js.map +1 -0
- package/dist/utils/computeFileOffsets.d.ts.map +1 -1
- package/dist/utils/computeFileOffsets.js +34 -5
- package/dist/utils/computeFileOffsets.js.map +1 -1
- package/dist/utils/editSessionHunks.d.ts +66 -0
- package/dist/utils/editSessionHunks.d.ts.map +1 -0
- package/dist/utils/editSessionHunks.js +437 -0
- package/dist/utils/editSessionHunks.js.map +1 -0
- package/dist/utils/getHunkSideBoundaries.d.ts +7 -0
- package/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
- package/dist/utils/getHunkSideBoundaries.js +12 -0
- package/dist/utils/getHunkSideBoundaries.js.map +1 -0
- package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
- package/dist/utils/getTotalLineCountFromHunks.js +2 -1
- package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
- package/dist/utils/hydratePartialDiff.d.ts.map +1 -1
- package/dist/utils/hydratePartialDiff.js +4 -3
- package/dist/utils/hydratePartialDiff.js.map +1 -1
- package/dist/utils/isGutterUtilityPath.d.ts +5 -0
- package/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
- package/dist/utils/isGutterUtilityPath.js +12 -0
- package/dist/utils/isGutterUtilityPath.js.map +1 -0
- package/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.js +17 -12
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
- package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +6 -3
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/realignChangeContent.d.ts +33 -0
- package/dist/utils/realignChangeContent.d.ts.map +1 -0
- package/dist/utils/realignChangeContent.js +148 -0
- package/dist/utils/realignChangeContent.js.map +1 -0
- package/dist/utils/renderDiffWithHighlighter.js +1 -1
- package/dist/utils/resolveRegion.d.ts.map +1 -1
- package/dist/utils/resolveRegion.js +18 -2
- package/dist/utils/resolveRegion.js.map +1 -1
- package/dist/utils/updateDiffHunks.d.ts +8 -2
- package/dist/utils/updateDiffHunks.d.ts.map +1 -1
- package/dist/utils/updateDiffHunks.js +9 -7
- package/dist/utils/updateDiffHunks.js.map +1 -1
- package/dist/utils/virtualDiffLayout.d.ts +42 -2
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/dist/utils/virtualDiffLayout.js +101 -7
- package/dist/utils/virtualDiffLayout.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +4 -2
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +4 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +60 -20
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +61 -19
- package/dist/worker/worker.js.map +1 -1
- package/package.json +13 -8
- package/dist/editor/index.d.ts +0 -3
- package/dist/editor/index.js +0 -3
- package/dist/editor/tokenzier.d.ts.map +0 -1
- package/dist/editor/tokenzier.js.map +0 -1
- package/dist/react/EditorContext.d.ts +0 -15
- package/dist/react/EditorContext.d.ts.map +0 -1
- package/dist/react/EditorContext.js +0 -23
- package/dist/react/EditorContext.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CodeViewCreateEditorOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewLayout, CodeViewScrollTarget, DiffLineAnnotation,
|
|
1
|
+
import { CodeViewCreateEditorOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewLayout, CodeViewScrollTarget, DiffLineAnnotation, DiffsEditor, FileContents, HunkSeparators, LineAnnotation, SelectedLineRange, SmoothScrollSettings, VirtualFileMetrics, VirtualWindowSpecs } from "../types.js";
|
|
2
2
|
import { SelectionWriteOptions } from "../managers/InteractionManager.js";
|
|
3
3
|
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
|
|
4
4
|
import { FileOptions } from "./File.js";
|
|
@@ -107,18 +107,18 @@ interface CodeViewOptions<LAnnotation> extends CodeViewPassThroughOptions<LAnnot
|
|
|
107
107
|
* stops being editable (edit off, collapsed, or removed). Returning
|
|
108
108
|
* undefined declines the attach; CodeView retries on later render passes.
|
|
109
109
|
*/
|
|
110
|
-
createEditor?(options: CodeViewCreateEditorOptions<LAnnotation>):
|
|
110
|
+
createEditor?(options: CodeViewCreateEditorOptions<LAnnotation>): DiffsEditor<LAnnotation> | undefined;
|
|
111
111
|
/**
|
|
112
112
|
* Called when an edited item's document changes, with the owning item
|
|
113
113
|
* resolved by CodeView.
|
|
114
114
|
*/
|
|
115
|
-
onItemEditChange?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
|
|
115
|
+
onItemEditChange?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[]): void;
|
|
116
116
|
/**
|
|
117
117
|
* Called once when an item's edit session ends — edit turned off, item
|
|
118
|
-
* removed (including a controlled `setItems([])` that empties the list),
|
|
119
|
-
* item collapsed
|
|
120
|
-
*
|
|
121
|
-
*
|
|
118
|
+
* removed (including a controlled `setItems([])` that empties the list), or
|
|
119
|
+
* item collapsed — with the final contents from the session's last document
|
|
120
|
+
* change. Not called when the session produced no changes, nor on a direct
|
|
121
|
+
* `reset()`/`cleanUp()` teardown.
|
|
122
122
|
*
|
|
123
123
|
* Committing is user-space: CodeView never writes item data itself. The
|
|
124
124
|
* recommended handler makes one combined item write (`updateItem` with a
|
|
@@ -126,7 +126,7 @@ interface CodeViewOptions<LAnnotation> extends CodeViewPassThroughOptions<LAnnot
|
|
|
126
126
|
* since the delivered contents differ from what the old key cached — along
|
|
127
127
|
* with `edit: false`.
|
|
128
128
|
*/
|
|
129
|
-
onItemEditComplete?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
|
|
129
|
+
onItemEditComplete?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[]): void;
|
|
130
130
|
/** Render a non-virtualized element at the very start of the scroll content,
|
|
131
131
|
* before the first item. It is always rendered and scrolls with the content.
|
|
132
132
|
* Return the same element across calls and mutate it in place to update;
|
|
@@ -239,7 +239,7 @@ declare class CodeView<LAnnotation = undefined> {
|
|
|
239
239
|
* editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
|
|
240
240
|
* Returns undefined once the item leaves edit mode.
|
|
241
241
|
*/
|
|
242
|
-
getEditor(itemId: string):
|
|
242
|
+
getEditor(itemId: string): DiffsEditor<LAnnotation> | undefined;
|
|
243
243
|
updateItem(input: CodeViewItem<LAnnotation>): boolean;
|
|
244
244
|
updateItemId(oldId: string, newId: string): boolean;
|
|
245
245
|
addItem(input: CodeViewItem<LAnnotation>): void;
|
|
@@ -288,9 +288,9 @@ declare class CodeView<LAnnotation = undefined> {
|
|
|
288
288
|
private attachItemEditor;
|
|
289
289
|
/**
|
|
290
290
|
* Drop editors for items that can no longer be edited: removed, edit turned
|
|
291
|
-
* off, collapsed
|
|
292
|
-
*
|
|
293
|
-
*
|
|
291
|
+
* off, or collapsed. Attachment happens in the render loop via
|
|
292
|
+
* attachItemEditor, so this only reconciles editors CodeView is already
|
|
293
|
+
* holding.
|
|
294
294
|
*/
|
|
295
295
|
private syncItemEditors;
|
|
296
296
|
private renamePendingScrollTarget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/components/CodeView.ts"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/components/CodeView.ts"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { areOptionsEqual } from "../utils/areOptionsEqual.js";
|
|
|
7
7
|
import { areSelectionsEqual } from "../utils/areSelectionsEqual.js";
|
|
8
8
|
import { createCodeViewHeaderFooterHostElement } from "../utils/createCodeViewHeaderFooterHostElement.js";
|
|
9
9
|
import { createWindowFromScrollPosition } from "../utils/createWindowFromScrollPosition.js";
|
|
10
|
+
import { finishEditSessionForDiff } from "../utils/editSessionHunks.js";
|
|
10
11
|
import { isStyleNode } from "../utils/isStyleNode.js";
|
|
11
12
|
import { prefersReducedMotion } from "../utils/prefersReducedMotion.js";
|
|
12
13
|
import { roundToDevicePixel } from "../utils/roundToDevicePixel.js";
|
|
@@ -64,13 +65,7 @@ const CODE_VIEW_FILE_OPTION_KEYS = [
|
|
|
64
65
|
"controlledSelection",
|
|
65
66
|
"disableErrorHandling"
|
|
66
67
|
];
|
|
67
|
-
const CODE_VIEW_EDIT_FORCED_OPTION_KEYS = /* @__PURE__ */ new Set([
|
|
68
|
-
"useTokenTransformer",
|
|
69
|
-
"enableGutterUtility",
|
|
70
|
-
"enableLineSelection",
|
|
71
|
-
"lineHoverHighlight",
|
|
72
|
-
"expandUnchanged"
|
|
73
|
-
]);
|
|
68
|
+
const CODE_VIEW_EDIT_FORCED_OPTION_KEYS = /* @__PURE__ */ new Set(["useTokenTransformer"]);
|
|
74
69
|
const CODE_VIEW_SHARED_CALLBACK_KEYS = [
|
|
75
70
|
"renderCustomHeader",
|
|
76
71
|
"renderHeaderPrefix",
|
|
@@ -121,6 +116,9 @@ const SCROLL_REBASE_TRIGGER_TOP = 1e6;
|
|
|
121
116
|
const SCROLL_REBASE_TARGET_TOP = 2e6;
|
|
122
117
|
const SCROLL_REBASE_TARGET_BOTTOM = SCROLL_REBASE_CONTAINER_HEIGHT - SCROLL_REBASE_TARGET_TOP;
|
|
123
118
|
const SCROLL_REBASE_THRESHOLD = SCROLL_REBASE_CONTAINER_HEIGHT - SCROLL_REBASE_TRIGGER_TOP;
|
|
119
|
+
function assertEditorFactory(createEditor) {
|
|
120
|
+
if (createEditor == null) throw new Error("CodeView: createEditor is required for items with edit: true");
|
|
121
|
+
}
|
|
124
122
|
const MOBILE_SAFARI = (() => {
|
|
125
123
|
const { navigator } = globalThis;
|
|
126
124
|
const userAgent = navigator.userAgent;
|
|
@@ -400,6 +398,7 @@ var CodeView = class CodeView {
|
|
|
400
398
|
};
|
|
401
399
|
}
|
|
402
400
|
reset() {
|
|
401
|
+
dequeueRender(this.computeRenderRangeAndEmit);
|
|
403
402
|
this.clearReadySubscription();
|
|
404
403
|
this.restoreScrollInteractions();
|
|
405
404
|
this.cleanAllRenderedItems();
|
|
@@ -881,7 +880,7 @@ var CodeView = class CodeView {
|
|
|
881
880
|
item.instance.setSelectedLines(this.selectedLines.range, { notify: false });
|
|
882
881
|
}
|
|
883
882
|
isItemInEditMode(item) {
|
|
884
|
-
return
|
|
883
|
+
return item.item.edit === true && item.item.collapsed !== true;
|
|
885
884
|
}
|
|
886
885
|
isReceiverEdited(receiver, mode) {
|
|
887
886
|
const state = getItemOptionsState(receiver);
|
|
@@ -901,36 +900,47 @@ var CodeView = class CodeView {
|
|
|
901
900
|
attachItemEditor(item) {
|
|
902
901
|
const { id } = item.item;
|
|
903
902
|
const { createEditor } = this.options;
|
|
904
|
-
if (
|
|
903
|
+
if (item.element == null || this.attachedEditors.has(id) || !this.isItemInEditMode(item)) return;
|
|
905
904
|
let record = this.itemEditors.get(id);
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
905
|
+
let createdEditor = false;
|
|
906
|
+
try {
|
|
907
|
+
if (record == null) {
|
|
908
|
+
assertEditorFactory(createEditor);
|
|
909
|
+
const state = { id };
|
|
910
|
+
const editor = createEditor({ onChange: (file, lineAnnotations) => {
|
|
911
|
+
const latest = this.idToItem.get(state.id);
|
|
912
|
+
if (latest == null) return;
|
|
913
|
+
state.lastChange = {
|
|
914
|
+
item: latest.item,
|
|
915
|
+
file,
|
|
916
|
+
lineAnnotations
|
|
917
|
+
};
|
|
918
|
+
this.options.onItemEditChange?.(latest.item, file, lineAnnotations);
|
|
919
|
+
} });
|
|
920
|
+
if (editor == null) return;
|
|
921
|
+
record = {
|
|
922
|
+
editor,
|
|
923
|
+
state
|
|
915
924
|
};
|
|
916
|
-
this.
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
record
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
925
|
+
this.itemEditors.set(id, record);
|
|
926
|
+
createdEditor = true;
|
|
927
|
+
}
|
|
928
|
+
record.editor.edit(item.instance);
|
|
929
|
+
this.attachedEditors.add(id);
|
|
930
|
+
} catch (error) {
|
|
931
|
+
if (createdEditor && record != null) {
|
|
932
|
+
this.itemEditors.delete(id);
|
|
933
|
+
record.editor.cleanUp();
|
|
934
|
+
}
|
|
935
|
+
this.releaseRenderedItem(item);
|
|
936
|
+
throw error;
|
|
924
937
|
}
|
|
925
|
-
if (this.selectedLines?.id === id) this.applySelectedLines(null, { notify: false });
|
|
926
|
-
record.editor.edit(item.instance);
|
|
927
|
-
this.attachedEditors.add(id);
|
|
928
938
|
}
|
|
929
939
|
/**
|
|
930
940
|
* Drop editors for items that can no longer be edited: removed, edit turned
|
|
931
|
-
* off, collapsed
|
|
932
|
-
*
|
|
933
|
-
*
|
|
941
|
+
* off, or collapsed. Attachment happens in the render loop via
|
|
942
|
+
* attachItemEditor, so this only reconciles editors CodeView is already
|
|
943
|
+
* holding.
|
|
934
944
|
*/
|
|
935
945
|
syncItemEditors() {
|
|
936
946
|
if (this.itemEditors.size === 0) return;
|
|
@@ -941,6 +951,14 @@ var CodeView = class CodeView {
|
|
|
941
951
|
record.editor.cleanUp();
|
|
942
952
|
this.itemEditors.delete(id);
|
|
943
953
|
this.attachedEditors.delete(id);
|
|
954
|
+
const itemSnapshot = item?.item ?? record.state.lastChange?.item;
|
|
955
|
+
if (itemSnapshot?.type === "diff") {
|
|
956
|
+
if (item != null && item.type === "diff" && item.instance.completeEditSession()) {
|
|
957
|
+
this.markItemLayoutDirty(item);
|
|
958
|
+
this.render();
|
|
959
|
+
}
|
|
960
|
+
finishEditSessionForDiff(itemSnapshot.fileDiff);
|
|
961
|
+
}
|
|
944
962
|
const { lastChange } = record.state;
|
|
945
963
|
if (lastChange != null) completions.push(item == null ? lastChange : {
|
|
946
964
|
...lastChange,
|
|
@@ -967,9 +985,6 @@ var CodeView = class CodeView {
|
|
|
967
985
|
defineItemOption(prototype, key, () => this.options[key]);
|
|
968
986
|
}
|
|
969
987
|
defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "file") ? true : this.options.useTokenTransformer);
|
|
970
|
-
defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableGutterUtility);
|
|
971
|
-
defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableLineSelection);
|
|
972
|
-
defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "file") ? "disabled" : this.options.lineHoverHighlight);
|
|
973
988
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
974
989
|
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
975
990
|
const state = getItemOptionsState(receiver);
|
|
@@ -987,10 +1002,6 @@ var CodeView = class CodeView {
|
|
|
987
1002
|
defineItemOption(prototype, key, () => this.options[key]);
|
|
988
1003
|
}
|
|
989
1004
|
defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "diff") ? true : this.options.useTokenTransformer);
|
|
990
|
-
defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableGutterUtility);
|
|
991
|
-
defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableLineSelection);
|
|
992
|
-
defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "diff") ? "disabled" : this.options.lineHoverHighlight);
|
|
993
|
-
defineItemOption(prototype, "expandUnchanged", (receiver) => this.isReceiverEdited(receiver, "diff") ? true : this.options.expandUnchanged);
|
|
994
1005
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
995
1006
|
defineItemOption(prototype, "hunkSeparators", () => this.options.hunkSeparators);
|
|
996
1007
|
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
@@ -1043,11 +1054,8 @@ var CodeView = class CodeView {
|
|
|
1043
1054
|
}
|
|
1044
1055
|
defineItemSelectionCallback(options, mode, key) {
|
|
1045
1056
|
defineItemOption(options, key, (receiver) => {
|
|
1046
|
-
if (this.options.enableLineSelection !== true) return;
|
|
1047
1057
|
const state = getItemOptionsState(receiver);
|
|
1048
1058
|
if (state == null) return;
|
|
1049
|
-
const item = this.getItemOptions(state, mode);
|
|
1050
|
-
if (item != null && this.isItemInEditMode(item)) return;
|
|
1051
1059
|
const callbackCache = state.callbackCache ??= {};
|
|
1052
1060
|
let wrapped = callbackCache[key];
|
|
1053
1061
|
if (wrapped == null) {
|
|
@@ -1880,7 +1888,7 @@ var CodeView = class CodeView {
|
|
|
1880
1888
|
item.top = runningTop;
|
|
1881
1889
|
if (item.type === "diff") {
|
|
1882
1890
|
const fileDiff = item.instance.consumeCodeViewLayoutChanges(item.item.fileDiff);
|
|
1883
|
-
if (fileDiff != null) item.item.fileDiff
|
|
1891
|
+
if (fileDiff != null) Object.assign(item.item.fileDiff, fileDiff);
|
|
1884
1892
|
item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset, item.item.annotations ?? []);
|
|
1885
1893
|
} else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset, item.item.annotations ?? []);
|
|
1886
1894
|
runningTop += item.height;
|