Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Implement Selection::replace to replace a single range | Blaž Hrastnik | 2021-11-06 |
| | | | | | | Fixes #985 Co-authored-by: Daniel S Poulin <crimsonmage+github@gmail.com> | ||
* | Update mdbook style and fix unreadable table head (#806) | Ivan Tham | 2021-10-09 |
| | | | | | | The styles are now pulled from upstream styles, some of the changes I submitted it back to upstream. Fix #796 | ||
* | Implement 'remove_primary_selection' as Alt-, | Blaž Hrastnik | 2021-09-24 |
| | | | | | | This allows removing search matches from the selection Fixes #713 | ||
* | mouse: Remove verify_screen_coords, refactor primary selection modification | Blaž Hrastnik | 2021-07-30 |
| | |||
* | Enforce cursor/selection invariants in one place. | Nathan Vegdahl | 2021-07-28 |
| | | | | Rather than per-command like before. | ||
* | Add unit tests for some of the new `Range` methods. | Nathan Vegdahl | 2021-07-27 |
| | |||
* | Improve `Range` documentation and organization. | Nathan Vegdahl | 2021-07-27 |
| | |||
* | Collect some common patterns into methods on `Range`. | Nathan Vegdahl | 2021-07-26 |
| | |||
* | Switch to a cleaner range-head moving abstraction. | Nathan Vegdahl | 2021-07-24 |
| | | | | Also fix a bunch of bugs related to it. | ||
* | Fix append mode, and make insertion always happen at head of range. | Nathan Vegdahl | 2021-07-23 |
| | |||
* | Calculate the line that the range head is on correctly. | Nathan Vegdahl | 2021-07-22 |
| | |||
* | Fix selections not being modified quite correctly with text edits. | Nathan Vegdahl | 2021-07-21 |
| | |||
* | Fixes for misc bugs with view movement. | Nathan Vegdahl | 2021-07-21 |
| | |||
* | Fix comment toggle command also sometimes toggling the next line. | Nathan Vegdahl | 2021-07-20 |
| | |||
* | Fix various bugs related to goto-end-of-line command. | Nathan Vegdahl | 2021-07-20 |
| | | | | | This also fixes a bug with `Selection::normalize()`, that could result in an out-of-bounds primary index. | ||
* | Fix `Selection::push()` to make the pushed range primary. | Nathan Vegdahl | 2021-07-20 |
| | | | | Apparently I accidentally deleted that behavior in the cleanup. | ||
* | Fixed primary cursor position calculation to use 1-width semantics. | Nathan Vegdahl | 2021-07-19 |
| | | | | | This had a bunch of knock-on effects that were buggy, such as bracket match highlighting. | ||
* | Update surround commands to work with gap indexing. | Nathan Vegdahl | 2021-07-08 |
| | |||
* | Implement `Range::put()` which manages range movements and extensions. | Nathan Vegdahl | 2021-07-08 |
| | | | | | In particular, this wraps the annoying logic involved in keeping the cursor width to 1 grapheme. | ||
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanup | Nathan Vegdahl | 2021-07-06 |
|\ | |||
| * | Add object selection (textobjects) (#385) | Gokul Soumya | 2021-07-03 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add textobjects for word * Add textobjects for surround characters * Apply clippy lints * Remove ThisWordPrevBound in favor of PrevWordEnd It's the same as PrevWordEnd except for taking the current char into account, so use a "flag" to capture that usecase * Add tests for PrevWordEnd movement * Remove ThisWord* movements They did not preserve anchor positions and were only used for textobject boundary search anyway so replace them with simple position finding functions * Rewrite tests of word textobject * Add tests for surround textobject * Add textobject docs * Refactor textobject word position functions * Apply clippy lints on textobject * Fix overflow error with textobjects | ||
* | | Fix a couple additional `unused` warnings after merge. | Nathan Vegdahl | 2021-07-02 |
| | | |||
* | | Merge branch 'master' into great_line_ending_and_cursor_range_cleanup | Nathan Vegdahl | 2021-07-02 |
|\| | |||
| * | Fix all remaining warnings in helix-core except for two. | Nathan Vegdahl | 2021-07-02 |
| | | | | | | | | | | I'm not sure how to address them, because they look like they might be bugs, and code is involved. Will poke the relevant people. | ||
| * | Remove #[allow(unused)] from helix-core, and fix unused imports. | Nathan Vegdahl | 2021-07-02 |
| | | | | | | | | Still a bunch more warnings to fix in core, but it's a start. | ||
* | | Ensure a minimum selection width on commands that need it. | Nathan Vegdahl | 2021-07-01 |
| | | |||
* | | Make `Selection`'s normalize and transform methods self-consuming only. | Nathan Vegdahl | 2021-07-01 |
| | | |||
* | | Clean up `Selection` to not use so many allocations. | Nathan Vegdahl | 2021-07-01 |
| | | |||
* | | Better validation method APIs for `Range`. | Nathan Vegdahl | 2021-07-01 |
| | | | | | | | | | | This way they do less work, are more specific to what we actually need, and they compose. | ||
* | | Add `Range` methods for various kinds of validation. | Nathan Vegdahl | 2021-07-01 |
| | | |||
* | | Change the `Range` type and associated functions to gap indexing. | Nathan Vegdahl | 2021-07-01 |
|/ | |||
* | fix: Correctly merge multiple selection ranges together | Blaž Hrastnik | 2021-06-30 |
| | | | | Fixes #391 | ||
* | fix: Select matching at the start of the doc could crash. Fixes #346 | Blaž Hrastnik | 2021-06-23 |
| | |||
* | Movement fixes, refactor and unit test suite (#217) | PabloMansanet | 2021-06-11 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add convenience/clarity wrapper for Range initialization * Test horizontal moves * Add column jumping tests * Add failing movement conditions for multi-word moves * Refactor skip_over_next * Add complex forward movement unit tests * Add strict whitespace checks and edge case tests * Restore formatting * Remove unused function * Add empty test case for deletion and fix nth_prev_word_boundary * Add tests for backward motion * Refactor word movement * Address review comments and finish refactoring backwards move * Finish unit test suite * Fmt pass * Fix lint erors * Clean up diff restoring bad 'cargo fmt' actions * Simplify movement closures (thanks Pickfire) * Fmt pass * Replace index-based movement with iterator based movement, ensuring that each move incurs a single call to the RopeSlice API * Break down tuple function * Extract common logic to all movement functions * Split iterator helpers away into their own module * WIP reducing clones * Operate on spans * WIP simplifying iterators * Simplify motion helpers * Fix iterator * Fix all unit tests * Refactor and simplify * Simplify fold | ||
* | Fixing Multiple Panics (#121) | Kirawi | 2021-06-05 |
| | | | | | | | * init * wip * wip | ||
* | Lint | Blaž Hrastnik | 2021-05-09 |
| | |||
* | Fix overlap calculation. | Blaž Hrastnik | 2021-04-10 |
| | |||
* | N as extend with search (for now, N should be search_prev). | Blaž Hrastnik | 2021-04-09 |
| | |||
* | Fix range.overlap() | Blaž Hrastnik | 2021-04-09 |
| | |||
* | Store intra-files jumps (goto) on the jumplist. | Blaž Hrastnik | 2021-03-29 |
| | |||
* | clippy lint | Blaž Hrastnik | 2021-03-24 |
| | |||
* | Provide a capacity on Selection::new's normalize. | Blaž Hrastnik | 2021-03-22 |
| | |||
* | clippy lints | Blaž Hrastnik | 2021-03-22 |
| | |||
* | Selection: fail early if new() is called with no ranges. | Blaž Hrastnik | 2021-03-22 |
| | |||
* | Implement auto-pairs behavior for open and close. | Blaž Hrastnik | 2021-03-22 |
| | |||
* | Implement iter() and len() directly on Selection. | Blaž Hrastnik | 2021-03-19 |
| | |||
* | Implement keep_selections (filter selections on regex). | Blaž Hrastnik | 2021-03-15 |
| | |||
* | Cleanup: use doc.selection() instead of doc.state.selection(). | Blaž Hrastnik | 2021-03-14 |
| | |||
* | commands: add * as selection search. | Blaž Hrastnik | 2021-02-22 |
| | |||
* | treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref | Blaž Hrastnik | 2021-02-18 |
| |