Commit Graph

18 Commits (5d23667a268caa9237f1e17cb2092b387801c547)

Author SHA1 Message Date
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
3 years ago
Ivan Tham 7cc13fefe9 Derive debug without feature
Note that this also removed those `finish_non_exhaustive()`.
3 years ago
notoria 1a3a924634 Implement Debug for data structure as a feature 3 years ago
Kirawi b873fb9897
Fix Unicode (#135)
* init

* wip

* wip

* fix unicode break

* fix unicode break

* Update helix-core/src/transaction.rs

Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>

* clippy

* fix

* add changes

* added test

* wip

* wip

* wip

* wip

* fix

* fix view

* fix #88

Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
3 years ago
Benoît CORTIER 8a29086c1a Fix panic when moving over unicode punctuation
`is_ascii_punctuation` will only work for ASCII punctuations, and when
we have unicode punctuation (or other) we jump into the `unreachable`.
This patch fallback into categorizing everything in this branch as
`Unknown`.

Fixes https://github.com/helix-editor/helix/issues/123

https://github.com/helix-editor/helix/pull/135: add better support for
unicode categories.
3 years ago
Ivan Tham 40744ce835 Add ctrl-w in insert mode
It seemed to panic when I pressed too many times, but that is from
lsp side.
3 years ago
Ivan Tham 6254720f53
Add unreachable context
Better error for #123
3 years ago
Kirawi c17dcb8633
Fixing Multiple Panics (#121)
* init

* wip

* wip
3 years ago
Blaž Hrastnik f4560cb68a Better fix for w/e that also covers `ia<esc>we`/`ia<esc>wb` 4 years ago
Blaž Hrastnik 3ace581191 Fix panics when triggering w or e on the last char of the line
Closes #32
4 years ago
Blaž Hrastnik c0264b9f7f fix: Don't allow moving past last line, fixes #30, #24
Off by 1 error
4 years ago
Blaž Hrastnik 2cc30cd07c Categorize _ as a word char, not punctuation 4 years ago
Blaž Hrastnik 17e9386388 Allow moving to EOL byte, also fixes #15 4 years ago
Blaž Hrastnik e8298a398c Fix selection rendering, it would be off by 1 if reverse. 4 years ago
Blaž Hrastnik 9dfd6f6bbc clippy lint 4 years ago
Blaž Hrastnik 59a0fc7b59 w, b, e: Match kakoune's behavior in selecting by default.
I initially preferred only moving the cursor, but selecting the whole
word is a lot nicer for things like wd (instead of vwd).
4 years ago
Blaž Hrastnik c331721565 Finish hiding doc.state / State as an implementation detail. 4 years ago
Blaž Hrastnik dbcc099f48 Move things out of state.rs. 4 years ago