@pierre/diffs 1.3.0-beta.9 → 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 +49 -42
- 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/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 +27 -2
- 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 +53 -12
- 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 +978 -238
- 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.map +1 -1
- package/dist/editor/searchPanel.js +9 -2
- 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 +4 -3
- package/dist/index.js +6 -5
- 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.map +1 -1
- package/dist/managers/UniversalRenderingManager.js +1 -2
- 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/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 +10 -7
- 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":";;;;;;;;;;UA8GU,2BAAA;;EAER,KAAA;EAFQ;EAIR,GAAA;;EAEA,MAAA;EAJA;;EAOA,OAAA,EAAS,WAAW;EAApB;EAEA,OAAA;EAAA;EAEA,uBAAA;AAAA;AAAA,UAGQ,uBAAA,sBAEA,2BAAA;EACR,IAAA;EAH+B;EAK/B,IAAA,EAAM,gBAAA,CAAiB,WAAA;EAAA;EAEvB,QAAA,EAAU,mBAAA,CAAoB,WAAA;AAAA;AAAA,UAGtB,uBAAA,sBAEA,2BAAA;EACR,IAAA;EAXmC;EAanC,IAAA,EAAM,gBAAA,CAAiB,WAAA;EAdvB;EAgBA,QAAA,EAAU,eAAA,CAAgB,WAAA;AAAA;AAAA,UAOX,wBAAA;EACf,EAAA;EACA,IAAA;EACA,IAAA,EAAM,gBAAA,CAAiB,WAAA;EACvB,OAAA;EACA,OAAA,EAAS,WAAA;EACT,QAAA,EAAU,mBAAA,CAAoB,WAAA;AAAA;AAAA,UAGf,wBAAA;EACf,EAAA;EACA,IAAA;EACA,IAAA,EAAM,gBAAA,CAAiB,WAAA;EACvB,OAAA;EACA,OAAA,EAAS,WAAA;EACT,QAAA,EAAU,eAAA,CAAgB,WAAA;AAAA;AAAA,KAGhB,oBAAA,gBACR,wBAAA,CAAyB,WAAA,IACzB,wBAAA,CAAyB,WAAA;AAAA,UAIZ,oBAAA;EAGf,KAAA,EAAO,oBAAA,CAAqB,WAAA;EAM5B,MAAA,EAAQ,WAAA;EACR,MAAA,EAAQ,WAAA;AAAA;AAAA,UAGO,qBAAA;EACf,EAAA;EACA,KAAA,EAAO,iBAAiB;AAAA;AAAA,UAGT,mBAAA;EACf,kBAAA;EACA,qBAAA;EACA,iBAAA;EACA,gBAAA,CACE,QAAA,EAAU,oBAAoB,CAAC,WAAA;AAAA;AAAA,KAIvB,sBAAA,iBACV,SAAA,UACA,MAAA,EAAQ,QAAQ,CAAC,WAAA;AAAA,KAGd,oBAAA,cAAkC,SAAS,cAC3C,IAAA,6BAED,KAAA;AAAA,KAGC,cAAA,cAA4B,SAAS,cACrC,IAAA,+BAED,OAAA;AAAA,KAGC,wBAAA,iCAEgB,WAAA,CAAY,WAAA,KAC7B,oBAAA,CAAqB,WAAA,CAAY,WAAA,CAAY,WAAA,EAAa,IAAA;AAAA,KAEzD,wBAAA,iCAEgB,eAAA,CAAgB,WAAA,KACjC,oBAAA,CAAqB,WAAA,CAAY,eAAA,CAAgB,WAAA,EAAa,IAAA;AAAA,KAsB7D,sBAAA,iCAEgB,WAAA,CAAY,WAAA,UACvB,eAAA,CAAgB,WAAA;EAAA,IAGnB,IAAA,MACE,wBAAA,CAAyB,WAAA,EAAa,IAAA,GACzC,OAAA,EAAS,uBAAA,CAAwB,WAAA,KAElC,cAAA,CAAe,WAAA,CAAY,WAAA,CAAY,WAAA,EAAa,IAAA;EAAA,IAElD,IAAA,MACE,wBAAA,CAAyB,WAAA,EAAa,IAAA,GACzC,OAAA,EAAS,uBAAA,CAAwB,WAAA,KAElC,cAAA,CAAe,WAAA,CAAY,eAAA,CAAgB,WAAA,EAAa,IAAA;AAAA;AAAA,cAGhD,0BAAA;AAAA,KA+BR,sBAAA,WAAiC,0BAA0B;AAAA,cAEnD,0BAAA;AAAA,KAkCR,0BAAA,gBAA0C,IAAA,CAC7C,eAAA,CAAgB,WAAA,GAChB,sBAAA;AAAA,cAwCI,8BAAA;AAAA,cAkBA,iCAAA;AAAA,KAOD,0BAAA,WACK,8BAA8B;AAAA,KAEnC,6BAAA,WACK,iCAAiC;AAAA,KAoFtC,6BAAA,2BACM,0BAAA,IAA8B,sBAAA,CACrC,WAAA,EACA,IAAA;AAAA,KAIC,gCAAA,2BACM,6BAAA,IAAiC,sBAAA,CACxC,WAAA,EACA,IAAA;AAAA,UAqBa,eAAA,sBAEb,0BAAA,CAA2B,WAAA,GAC3B,6BAAA,CAA8B,WAAA,GAC9B,gCAAA,CAAiC,WAAA;EACnC,cAAA,GAAiB,OAAA,CAAQ,cAAA;EACzB,WAAA,GAAc,OAAA,CAAQ,kBAAA;EACtB,qBAAA;EACA,oBAAA,GAAuB,oBAAA;EACvB,aAAA;EACA,mBAAA;EACA,qBAAA,EAAuB,SAAA,EAAW,qBAAA;EAClC,MAAA,GAAS,cAAA;EAhXT;;;;;;AACqC;AAGvC;;;EAuXE,YAAA,EACE,OAAA,EAAS,2BAAA,CAA4B,WAAA,IACpC,WAAA,CAAY,WAAA;EAxXb;;;;EA6XF,gBAAA,EACE,IAAA,EAAM,YAAA,CAAa,WAAA,GACnB,IAAA,EAAM,YAAA,EACN,eAAA,GACI,cAAA,CAAe,WAAA,MACf,kBAAA,CAAmB,WAAA;EAnYM;;;;;;AAEO;AAIxC;;;;;;EA4YE,kBAAA,EACE,IAAA,EAAM,YAAA,CAAa,WAAA,GACnB,IAAA,EAAM,YAAA,EACN,eAAA,GACI,cAAA,CAAe,WAAA,MACf,kBAAA,CAAmB,WAAA;EAvYN;;;;EA8YnB,oBAAA,KAAyB,WAAA;EArZG;;;EAyZ5B,oBAAA,KAAyB,WAAA;EAlZjB;;AAAW;EAuZnB,4BAAA;AAAA;AAAA,cAwEW,QAAA;EAAA,OACJ,MAAA;EAAA,OACA,oBAAA;EAEA,IAAA;EAAA,SACS,MAAA,EAAQ,iBAAA;EAAA,QAKhB,KAAA;EAAA,QACA,QAAA;EAAA,QACA,aAAA;EAAA,QAOA,WAAA;EAAA,QAEA,eAAA;EAAA,QAGA,cAAA;EAAA,QAIA,gBAAA;EAAA,QACA,kBAAA;EAAA,QACA,qBAAA;EAAA,QACA,eAAA;EAAA,QACA,YAAA;EAAA,QACA,eAAA;EAAA,QACA,YAAA;EAAA,QACA,eAAA;EAAA,QACA,SAAA;EAAA,QACA,gBAAA;EAAA,QACA,WAAA;EAAA,QACA,yBAAA;EAAA,QACA,qBAAA;EAAA,QACA,eAAA;EAAA,QACA,MAAA;EAAA,QACA,WAAA;EAAA,QACA,WAAA;EAAA,QACA,WAAA;EAAA,QAQA,gBAAA;EAAA,iBACS,oBAAA;EAAA,iBACA,oBAAA;EAAA,QAWT,mBAAA;EAAA,QACA,mBAAA;EAAA,QACA,uBAAA;EAAA,QAUA,eAAA;EAAA,QAEA,IAAA;EAAA,QACA,cAAA;EAAA,QAEA,SAAA;EAAA,QACA,eAAA;EAAA,QACA,YAAA;EAAA,QAMA,MAAA;EAAA,QAKA,MAAA;EAAA,QAKA,WAAA;EAAA,QACA,kBAAA;EAAA,QACA,kBAAA;EAAA,QAKA,kBAAA;EAAA,QACA,OAAA;EAAA,QACA,aAAA;EAAA,QACA,mBAAA;EAAA,QACA,kBAAA;EAER,WAAA,CACE,OAAA,GAAS,eAAA,CAAgB,WAAA,GACzB,aAAA,GAAgB,iBAAA,cAChB,kBAAA;EAAA,QAkBM,SAAA;EAAA,QASA,gBAAA;EAAA,QAIA,mBAAA;EAAA,QAoBA,uBAAA;EAAA,QAIA,0BAAA;EAAA,QAIA,yBAAA;EAAA,QAOA,0BAAA;EAAA,QA+CA,6BAAA;EAAA,QAwCA,2BAAA;EAAA,QAOA,yBAAA;EAAA,QA4BA,yBAAA;EAAA,QAiBA,UAAA;EAAA,QAaA,0BAAA;EAAA,QAWA,aAAA;EAAA,QAyDA,aAAA;EAAA,QAYA,mBAAA;EAeD,KAAA,CAAM,IAAA,EAAM,WAAA;EAwEZ,KAAA;EAwCA,OAAA;EAAA,QA6BC,qBAAA;EAAA,QAmBA,iBAAA;EAAA,QASA,mBAAA;EAAA,QAeA,cAAA;EAAA,QAWA,mBAAA;EAAA,QAoBA,qBAAA;EAAA,QASA,iBAAA;EAAA,QAUA,YAAA;EAAA,QAeA,mBAAA;EAAA,QAgBA,4BAAA;EAAA,QAwBA,cAAA;EAAA,QAIA,kBAAA;EAAA,QAIA,gBAAA;EAAA,QAKA,qBAAA;EAAA,QAKA,gCAAA;EAAA,QAIA,8BAAA;EAAA,QAIA,8BAAA;EAiBD,QAAA,CAAS,MAAA,EAAQ,oBAAA;EA2CjB,gBAAA,CACL,SAAA,EAAW,qBAAA,SACX,OAAA,GAAU,qBAAA;EAKL,gBAAA,IAAoB,qBAAA;EAIpB,kBAAA,CAAmB,OAAA,GAAU,qBAAA;EAI7B,OAAA,CAAQ,MAAA,WAAiB,YAAA,CAAa,WAAA;EAzuC3C;;;;;EAkvCK,SAAA,CAAU,MAAA,WAAiB,WAAA,CAAY,WAAA;EAIvC,UAAA,CAAW,KAAA,EAAO,YAAA,CAAa,WAAA;EAmB/B,YAAA,CAAa,KAAA,UAAe,KAAA;EAwC5B,OAAA,CAAQ,KAAA,EAAO,YAAA,CAAa,WAAA;EAI5B,QAAA,CAAS,MAAA,WAAiB,YAAA,CAAa,WAAA;EAMvC,QAAA,CAAS,KAAA,WAAgB,YAAA,CAAa,WAAA;EAnyC1B;;;;;;EAAA,QAs0CX,mBAAA;EAAA,QAuCA,sBAAA;EAWD,aAAA;EAIA,UAAA,CAAW,OAAA,EAAS,eAAA,CAAgB,WAAA;EAAA,QAgEnC,0BAAA;EAYD,MAAA,CAAO,SAAA;EAAA,QAYN,OAAA;EAAA,QAiCA,sBAAA;EAQD,eAAA,CACL,QAAA,EAAU,eAAA,CAAgB,WAAA,IAAe,mBAAA,CAAoB,WAAA,GAC7D,WAAA;EAkBK,cAAA,IAAkB,kBAAA;EAIlB,mBAAA,IAAuB,WAAA;EAQvB,gBAAA,IAAoB,WAAA;EAIpB,gBAAA,IAAoB,WAAA;EAIpB,gBAAA,IAAoB,oBAAA,CAAqB,WAAA;EAsCzC,kBAAA,CACL,WAAA,GAAc,mBAAA,CAAoB,WAAA;EAU7B,eAAA,CACL,WAAA,EAAa,mBAAA,CAAoB,WAAA,IAChC,oBAAA,CAAqB,WAAA;EAAA,QAOhB,iBAAA;EAYD,iBAAA,CACL,QAAA,EAAU,sBAAA,CAAuB,WAAA;EAQ5B,sBAAA,CACL,QAAA,EAAU,eAAA,CAAgB,WAAA,IAAe,mBAAA,CAAoB,WAAA;EAWxD,aAAA,CAAc,EAAA;EAAA,QAQb,UAAA;EAAA,QA+CA,kBAAA;EAAA,QA6BA,aAAA;EAAA,QAeA,gBAAA;EAAA,QAOA,gBAAA;EAtuDH;;;;;;;;;EAAA,QA2vDG,gBAAA;EAvvDkC;;;;;;EAAA,QAozDlC,eAAA;EAAA,QAoDA,yBAAA;EAAA,QAaA,yBAAA;EAAA,QAUA,0BAAA;EAAA,QA6CA,0BAAA;EAAA,QAkDA,iBAAA;EAAA,QAaA,iBAAA;EAAA,QAaA,mBAAA;EAAA,QAWA,cAAA;EAAA,QAWA,wBAAA;EAAA,QAwDA,2BAAA;EAhiEA;;;AAAA;AAAC;EAAD,QAmmEA,wBAAA;;;AAjmEsD;AAEhE;;UAwmEU,mBAAA;EAplEA;AAAA;AAAC;;;;EAAD,QAomEA,cAAA;EAplER;;;;;;EAAA,QAooEQ,cAAA;EAroEQ;;;AACM;AAAA;;EADN,QAytER,cAAA;EAAA,QAoBA,wBAAA;EAAA,QAeA,eAAA;EAAA,QAIA,kBAAA;EAAA,QAIA,oBAAA;EAAA,QAMA,oBAAA;EAAA,QAIA,mBAAA;EA9sEA;AAAA;;;EAAA,QAutEA,cAAA;EAAA,QAKA,sBAAA;EAAA,QAIA,qBAAA;EAAA,QAKA,uBAAA;;;AA/tEiC;AAAA;UAqvEjC,0BAAA;EAAA,QA4CA,qBAAA;EAAA,QASA,iBAAA;EAAA,QAOA,qBAAA;EAAA,QAOA,mBAAA;EAAA,QA6CA,qBAAA;EAhxEqD;;;;EAAA,QAq0ErD,sBAAA;EAp0EN;;;AACI;AAAA;EADJ,QA44EM,4BAAA;EAAA,QA0BA,qBAAA;EAAA,QAWA,sBAAA;EA16EN;;;;;;;;;;EAAA,QAk9EM,8BAAA;EAj9EF;AAAA;AAqBR;;;;;EArBQ,QA2+EE,iBAAA;EAj9EiB;;;;;;;EAAA,QAw+EjB,sBAAA;EAAA,QA2CA,yBAAA;EAAA,QA0RA,aAAA;EAAA,QAQA,mBAAA;EAAA,QAUA,eAAA;EAAA,QAiCA,sBAAA;EAAA,QAuBA,0BAAA;EAAA,QASA,sBAAA;EAAA,QAkDA,uBAAA;EAAA,QAmBA,YAAA;EAAA,QAaA,kBAAA;EAAA,QAMA,YAAA;EA16FA;;;;EAAA,QA8gGA,0BAAA;EA1gGF;;;;;;;EAAA,QA0hGE,eAAA;EAjlGuB;;;;;;;EAAA,QAiqGvB,wBAAA;EA5pGS;;;;EAAA,QAurGT,cAAA;EArrGR;;;;EAAA,QAsuGQ,sBAAA;EAQD,YAAA;EAUA,SAAA;EASA,eAAA;EAAA,QAIC,oBAAA;EAAA,QAcA,YAAA;EAnwGR;;;;;EAAA,QAmxGQ,qBAAA;EA5wGR;;;;;EAAA,QAwyGQ,oBAAA;EApyGF;;;;;;EAAA,QAi0GE,eAAA;EAAA,QA8DA,gBAAA;EAAA,QAcA,yBAAA;AAAA"}
|
|
@@ -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;
|
|
@@ -882,7 +880,7 @@ var CodeView = class CodeView {
|
|
|
882
880
|
item.instance.setSelectedLines(this.selectedLines.range, { notify: false });
|
|
883
881
|
}
|
|
884
882
|
isItemInEditMode(item) {
|
|
885
|
-
return
|
|
883
|
+
return item.item.edit === true && item.item.collapsed !== true;
|
|
886
884
|
}
|
|
887
885
|
isReceiverEdited(receiver, mode) {
|
|
888
886
|
const state = getItemOptionsState(receiver);
|
|
@@ -902,36 +900,47 @@ var CodeView = class CodeView {
|
|
|
902
900
|
attachItemEditor(item) {
|
|
903
901
|
const { id } = item.item;
|
|
904
902
|
const { createEditor } = this.options;
|
|
905
|
-
if (
|
|
903
|
+
if (item.element == null || this.attachedEditors.has(id) || !this.isItemInEditMode(item)) return;
|
|
906
904
|
let record = this.itemEditors.get(id);
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
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
|
|
916
924
|
};
|
|
917
|
-
this.
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
record
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
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;
|
|
925
937
|
}
|
|
926
|
-
if (this.selectedLines?.id === id) this.applySelectedLines(null, { notify: false });
|
|
927
|
-
record.editor.edit(item.instance);
|
|
928
|
-
this.attachedEditors.add(id);
|
|
929
938
|
}
|
|
930
939
|
/**
|
|
931
940
|
* Drop editors for items that can no longer be edited: removed, edit turned
|
|
932
|
-
* off, collapsed
|
|
933
|
-
*
|
|
934
|
-
*
|
|
941
|
+
* off, or collapsed. Attachment happens in the render loop via
|
|
942
|
+
* attachItemEditor, so this only reconciles editors CodeView is already
|
|
943
|
+
* holding.
|
|
935
944
|
*/
|
|
936
945
|
syncItemEditors() {
|
|
937
946
|
if (this.itemEditors.size === 0) return;
|
|
@@ -942,6 +951,14 @@ var CodeView = class CodeView {
|
|
|
942
951
|
record.editor.cleanUp();
|
|
943
952
|
this.itemEditors.delete(id);
|
|
944
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
|
+
}
|
|
945
962
|
const { lastChange } = record.state;
|
|
946
963
|
if (lastChange != null) completions.push(item == null ? lastChange : {
|
|
947
964
|
...lastChange,
|
|
@@ -968,9 +985,6 @@ var CodeView = class CodeView {
|
|
|
968
985
|
defineItemOption(prototype, key, () => this.options[key]);
|
|
969
986
|
}
|
|
970
987
|
defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "file") ? true : this.options.useTokenTransformer);
|
|
971
|
-
defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableGutterUtility);
|
|
972
|
-
defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableLineSelection);
|
|
973
|
-
defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "file") ? "disabled" : this.options.lineHoverHighlight);
|
|
974
988
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
975
989
|
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
976
990
|
const state = getItemOptionsState(receiver);
|
|
@@ -988,10 +1002,6 @@ var CodeView = class CodeView {
|
|
|
988
1002
|
defineItemOption(prototype, key, () => this.options[key]);
|
|
989
1003
|
}
|
|
990
1004
|
defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "diff") ? true : this.options.useTokenTransformer);
|
|
991
|
-
defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableGutterUtility);
|
|
992
|
-
defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableLineSelection);
|
|
993
|
-
defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "diff") ? "disabled" : this.options.lineHoverHighlight);
|
|
994
|
-
defineItemOption(prototype, "expandUnchanged", (receiver) => this.isReceiverEdited(receiver, "diff") ? true : this.options.expandUnchanged);
|
|
995
1005
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
996
1006
|
defineItemOption(prototype, "hunkSeparators", () => this.options.hunkSeparators);
|
|
997
1007
|
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
@@ -1044,11 +1054,8 @@ var CodeView = class CodeView {
|
|
|
1044
1054
|
}
|
|
1045
1055
|
defineItemSelectionCallback(options, mode, key) {
|
|
1046
1056
|
defineItemOption(options, key, (receiver) => {
|
|
1047
|
-
if (this.options.enableLineSelection !== true) return;
|
|
1048
1057
|
const state = getItemOptionsState(receiver);
|
|
1049
1058
|
if (state == null) return;
|
|
1050
|
-
const item = this.getItemOptions(state, mode);
|
|
1051
|
-
if (item != null && this.isItemInEditMode(item)) return;
|
|
1052
1059
|
const callbackCache = state.callbackCache ??= {};
|
|
1053
1060
|
let wrapped = callbackCache[key];
|
|
1054
1061
|
if (wrapped == null) {
|