Make p paste as children and P as siblings below

After trying part 8c, the user found p and P doing the same thing on the
canvas: both pasted a sibling below the node (P only differed in the
outline's order). Their pick: p pastes under the node, as its last
children, the way a adds a child; P pastes the next siblings, below it,
where o adds one. ]p went away, since p does what it did.

Inside a title p and P still paste after and before the text cursor, as
in vim: they're their own commands (paste-after, paste-before), and the
node ones are paste-as-child and paste-as-sibling.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
skkeyeandClaude Opus 5.5 committed 2026-10-02 05:05:00 -04:00
1 parent 7bec5bf3fc
commit bd819409f4
10 files changed
+59 -53

No files matched your search

+6 -7
View File
@@ -145,7 +145,7 @@ pub enum AppAction {
nodes: Vec<NodeId>,
branches: bool,
},
/// Paste what a register holds (`p`, `P`, `]p`): its nodes, or its text
/// Paste what a register holds (`p`, `P`): its nodes, or its text
/// made into nodes, `times` copies.
Paste {
register: Option<Register>,
@@ -256,15 +256,14 @@ pub enum AppAction {
Say(Message),
}
/// Where `p` and its kin paste, from the cursor's node.
/// Where `p` and `P` paste, from the cursor's node (the user's pick after
/// trying part 8c: `p` pastes under the node, as `a` adds).
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PasteAt {
/// Its next siblings (`p`).
After,
/// Its siblings before it (`P`).
Before,
/// Its last children (`]p`).
/// Its last children (`p`).
Child,
/// Its next siblings, below it, where `o` adds one (`P`).
Sibling,
}
/// What `:w` and its kin save.