diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-27 22:09:27 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | ff953a6236ebdf97c73deda86fd9005906a2071b (patch) | |
| tree | 9871a9aa6b562f6a2fa9f01219a70b52a1e474c1 /src/selection_pipe.zig | |
| parent | 08942ef68b10d4ce478bd3c62d306f2a633d51cb (diff) | |
| download | pardes-ff953a6236ebdf97c73deda86fd9005906a2071b.tar.gz pardes-ff953a6236ebdf97c73deda86fd9005906a2071b.zip | |
Move text editing out of pardes.zig into edit.zig
Pure move, no behaviour change (acme keeps this in text.c): which text a
pane edits and how it maps to the screen (editText, editTextEol,
setEditText, paneCursorLines, paneByteAtDisplay, pinPaneCursor,
flatSurface, paneWrapWidth), insert mode (enterInsert, handleInsert,
insertKey, insertTab, exitInsert, clampFileCursor), the d/c/y/p edit
operations with replace, case, join, indent, comment, number, textobjects
and surround, undo and redo, yank/clipboard/paste (setYank, setClipboard,
ClipRequest, clipRequest, typeToTty, applyPaste, clipYank), and the pointer
selections as text (PointerTextSelection, pointerTextSelection,
capturePointerSelection, paneText, pointerSourceLine, selectionText,
spanHas, currentSelText), with four tests, go verbatim to edit.zig.
The methods become free functions taking `p: *Pardes`; calls change from
`p.insertKey(..)` to `edit.insertKey(p, ..)` (pardes.zig, body_layer.zig,
selection_pipe.zig, builtins.zig, test/hxdiff.zig, test/perf.zig). In
executeNormalAction the `.edit => |edit|` capture becomes `|op|`, since it
would now shadow the edit import. test/lspbench.zig's first anchor follows
its needle into src/edit.zig.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/selection_pipe.zig')
| -rw-r--r-- | src/selection_pipe.zig | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/selection_pipe.zig b/src/selection_pipe.zig index ea4a4d5b..90c8e951 100644 --- a/src/selection_pipe.zig +++ b/src/selection_pipe.zig @@ -7,6 +7,7 @@ const std = @import("std"); const filesystem = @import("fs.zig"); const pardes = @import("pardes.zig"); +const edit = @import("edit.zig"); const modal = @import("modal.zig"); const panes = @import("panes.zig"); const config = @import("config.zig"); @@ -662,7 +663,7 @@ pub fn pipeResponse( @memcpy(replacement[write_at..], f.content[read_at..]); // One async request is one history transaction, even at 64 cursors. - p.pushUndo(pane); + edit.pushUndo(p, pane); panes.File.setContent(p, f, replacement); pane.setRanges(f.content, new_ranges[0..n], &.{}, wait.primary, wait.explicit); pane.select = false; |
