diff options
author | Gokul Soumya | 2021-07-03 01:07:49 +0000 |
---|---|---|
committer | GitHub | 2021-07-03 01:07:49 +0000 |
commit | c68fe1f2a3a40c37969c1f5d18e3134320a0c773 (patch) | |
tree | 4c5c2ff317d90f2ba520135ad0d2726d9a6cb9b2 /helix-core/src/selection.rs | |
parent | c5b2973739901f8cd4bc26f3cfc8232249eb7968 (diff) |
Add object selection (textobjects) (#385)
* 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
Diffstat (limited to 'helix-core/src/selection.rs')
-rw-r--r-- | helix-core/src/selection.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/helix-core/src/selection.rs b/helix-core/src/selection.rs index d99e2aff..63b9b557 100644 --- a/helix-core/src/selection.rs +++ b/helix-core/src/selection.rs @@ -130,6 +130,16 @@ impl Range { } } +impl From<(usize, usize)> for Range { + fn from(tuple: (usize, usize)) -> Self { + Self { + anchor: tuple.0, + head: tuple.1, + horiz: None, + } + } +} + /// A selection consists of one or more selection ranges. /// invariant: A selection can never be empty (always contains at least primary range). #[derive(Debug, Clone, PartialEq, Eq)] |