feat(core): split Extend into CoverLanding vs Span#1113
Open
kronberger-droid wants to merge 3 commits into
Open
feat(core): split Extend into CoverLanding vs Span#1113kronberger-droid wants to merge 3 commits into
kronberger-droid wants to merge 3 commits into
Conversation
- SelectionExtent axis chosen per edit mode (vi -> CoverLanding, bar modes -> Span); orthogonal to CaretGeometry - Cursor::extend_span grows a Span without vi-visual widening, sharing flip_anchor (extracted from put_cursor) on reversal - funnel both placement strategies through Editor::place
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
tested on aarch64-darwin with cargo test --all-features -- --test-threads=1: 1,216 tests passed. The Helix example also builds and runs. cargo test --all-features -- --test-threads=1; cargo run --example helix --features helix$ cargo test --all-features -- --test-threads=1; cargo run --example helix --features helix
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
Running unittests src/lib.rs (target/debug/deps/reedline-f3d584acdddd1871)
running 1217 tests
<redacted due to verbosity>
test result: ok. 1216 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
Doc-tests reedline
running 29 tests
<redacted due to verbosity>
test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.89s
Compiling crossterm v0.29.0
Compiling reedline v0.48.0 (/Users/uzair/01-projects/reedline)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.42s
test src/menu/menu_functions.rs - menu::menu_functions::string_difference (line 207) ... ok
test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.89s
Compiling crossterm v0.29.0
Compiling reedline v0.48.0 (/Users/uzair/01-projects/reedline)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.42s
Running `target/debug/examples/helix`
Helix edit mode demo:
Default mode is insert (`:` prompt), so you can type words.
Press Esc for normal mode.
Press `i` to return to insert mode, or `a` to insert after the current selection.
Only `h`/`l` motions are currently implemented.
Abort with Ctrl-C
~/01-projects/reedline: helix test.
Aborted! |
- extend_span_block_flip_hops_full_multibyte_grapheme: exercise the new extend_span entry into flip_anchor with a 2-byte anchor grapheme (café's é), proving it hops the whole grapheme like put_cursor does. - selection_extent_maps_...: pin the PromptEditMode -> SelectionExtent dispatch table directly (vi -> CoverLanding, bar modes -> Span). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SelectionExtent(CoverLanding | Span): per-mode selection-model axis, orthogonal toCaretGeometry.EditCommand::Extendbranches on it:put_cursor)extend_span).Cursor::extend_span: grows a Span to gap-indexedop_end, no vi-visual wideningEditor::place(set_cursor+commit_cursor).Why
Tests
extend_spanunits incl. the Helix-bound block-reversal flip.Extend(w)grows the Span.Notes
pub(crate)).fmt+clippy --all-targetsclean; full suite green.