Nathan Vegdahl
0ae522f3df
Clean up Selection
to not use so many allocations.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
77a266e818
Better validation method APIs for Range
.
...
This way they do less work, are more specific to what we actually
need, and they compose.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
d07074740b
Add Range
methods for various kinds of validation.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
c1b0a71975
Change the Range
type and associated functions to gap indexing.
2021-07-01 14:22:28 -07:00
Blaž Hrastnik
3007478567
fix: Correctly merge multiple selection ranges together
...
Fixes #391
2021-06-30 16:08:41 +09:00
Blaž Hrastnik
9c53461429
fix: Select matching at the start of the doc could crash. Fixes #346
2021-06-23 12:27:38 +09:00
PabloMansanet
86af55c379
Movement fixes, refactor and unit test suite ( #217 )
...
* 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
2021-06-11 21:57:07 +09:00
Kirawi
c17dcb8633
Fixing Multiple Panics ( #121 )
...
* init
* wip
* wip
2021-06-05 12:49:19 +09:00
Blaž Hrastnik
6c705f09e8
Lint
2021-05-09 17:13:59 +09:00
Blaž Hrastnik
95dd55ba94
Fix overlap calculation.
2021-04-10 12:02:23 +09:00
Blaž Hrastnik
73f4abbb37
N as extend with search (for now, N should be search_prev).
2021-04-10 00:21:13 +09:00
Blaž Hrastnik
35b4fe4cd0
Fix range.overlap()
2021-04-10 00:20:12 +09:00
Blaž Hrastnik
742b3a709f
Store intra-files jumps (goto) on the jumplist.
2021-03-29 16:32:42 +09:00
Blaž Hrastnik
06aca7691c
clippy lint
2021-03-24 14:58:01 +09:00
Blaž Hrastnik
bd607b4cbd
Provide a capacity on Selection::new's normalize.
2021-03-22 14:50:08 +09:00
Blaž Hrastnik
c4792efead
clippy lints
2021-03-22 12:29:55 +09:00
Blaž Hrastnik
798dbd27c5
Selection: fail early if new() is called with no ranges.
2021-03-22 12:22:33 +09:00
Blaž Hrastnik
71999cce43
Implement auto-pairs behavior for open and close.
2021-03-22 12:22:33 +09:00
Blaž Hrastnik
f29f01858d
Implement iter() and len() directly on Selection.
2021-03-19 11:14:13 +09:00
Blaž Hrastnik
dd91090a1a
Implement keep_selections (filter selections on regex).
2021-03-15 17:09:18 +09:00
Blaž Hrastnik
1cf887dea9
Cleanup: use doc.selection() instead of doc.state.selection().
2021-03-14 17:14:34 +09:00
Blaž Hrastnik
33c67f1388
commands: add * as selection search.
2021-02-22 15:14:02 +09:00
Blaž Hrastnik
c9dd1c930e
treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref
2021-02-18 18:34:22 +09:00
Blaž Hrastnik
9cac44c7c0
minor changes
2021-02-17 17:26:27 +09:00
Blaž Hrastnik
239db79834
Finally: Retain horizontal position when moving vertically.
2021-02-12 16:49:24 +09:00
Blaž Hrastnik
a924ad2885
simplify.
2021-02-05 16:06:48 +09:00
Blaž Hrastnik
2bea5db7bd
commands: Implement select_on_matches.
2021-01-22 17:13:14 +09:00
Blaž Hrastnik
f5981f72c2
Introduce Selection::point.
2020-12-03 13:10:35 +09:00
Blaž Hrastnik
94f9603c74
Fix compose not merging certain changesets correctly.
2020-10-14 09:38:52 +09:00
Blaž Hrastnik
00e661f600
Indent draft, linewise paste
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
1dba0f2b1c
Simple yank/paste registers.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
8c7bc71ede
Split on matches off by one, breaks tests again.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
592c5b0af2
Fix test, break split + append
2020-09-29 18:13:19 +09:00
Blaž Hrastnik
36e7e2133f
Split selection on regex, fix InputEdit generation.
2020-09-29 01:01:27 +09:00
Blaž Hrastnik
3020077da8
Extend selection commands.
2020-09-29 01:00:35 +09:00
Blaž Hrastnik
96db02742e
Simplify some more code.
2020-09-13 23:40:11 +09:00
Blaž Hrastnik
22cb7b3338
Change -> Operation, Change2 -> Change
2020-09-13 19:18:05 +09:00
Blaž Hrastnik
f098166571
Get rid of a bunch of clones.
2020-09-12 23:52:38 +09:00
Blaž Hrastnik
dd749bb284
Expand transaction API.
2020-09-07 17:08:28 +09:00
Blaž Hrastnik
579b6899f1
Work on insert mode.
2020-09-07 11:21:26 +09:00
Blaž Hrastnik
f8fe273a2e
Fix build.
2020-06-08 00:41:37 +09:00
Blaž Hrastnik
613d06dfb0
wip: importing to github
2020-06-01 17:42:28 +09:00
Blaž Hrastnik
1984410ac9
Selection mapping over changesets.
2020-05-28 14:59:50 +09:00
Blaž Hrastnik
b5c38812e9
address clippy warnings
2020-05-28 14:45:44 +09:00
Blaž Hrastnik
23109f1512
OT: changeset: Implement compose and apply.
2020-05-26 18:11:11 +09:00
Blaž Hrastnik
44ff4d3c1f
Implement a new core based on CodeMirror.
2020-05-25 13:02:21 +09:00