Commit Graph

49 Commits (86af55c379c531df2d5dbc72841e28a10fc7938e)

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
Wojciech Kępka c978d811d9 Cleanup find_first_non_whitespace_char funcs 3 years ago
Wojciech Kępka 48df05b16d commands: Add goto first non-whitespace char of line 3 years ago
Blaž Hrastnik 8d6fad4cac lsp: Provide workspace root on client.initialize() 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
Brian Dawn 62d181de78 Provide a feature flag to be able to embed the runtime folder.
These changes provide a new feature flag "embed_runtime" that when
enabled and built in release mode will embed the runtime folder into the
resulting binary.
3 years ago
Ivan Tham d664d1dec0 Default log file to cache 3 years ago
Blaž Hrastnik 6460501a44 Update architecture.md 3 years ago
Blaž Hrastnik 1f2d87cb95 Make the config dir locator work on Windows. 3 years ago
Blaž Hrastnik 0f77f543e5 Determine runtime dir based on executable location or env override. 3 years ago
Blaž Hrastnik bc4e54c0c4 Load config files from ~/.config/helix, fallback to defaults. 3 years ago
Blaž Hrastnik cc058ad78f Simplify some code. 3 years ago
Blaž Hrastnik 73c92a0bc1 Implement m / match_brackets (using tree sitter). 3 years ago
Blaž Hrastnik cbcacb1063 Merge some imports. 3 years ago
Blaž Hrastnik 71999cce43 Implement auto-pairs behavior for open and close. 3 years ago
Blaž Hrastnik dbcc099f48 Move things out of state.rs. 3 years ago
Blaž Hrastnik 9dcfe25e4a Use diagnostic.severity to distinguish between error colors. 3 years ago
Blaž Hrastnik 62c991230f find-till (f) prototype, on_next_key mode implementation. 3 years ago
Blaž Hrastnik 6cfb1acb9d commands: Implement expand_selection. 3 years ago
Blaž Hrastnik 4ab5631d65 more lints 3 years ago
Blaž Hrastnik d0791e0f98 core: Implement comment toggling module. 3 years ago
Blaž Hrastnik c9dd1c930e treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref 3 years ago
Blaž Hrastnik cc6bdf8f66 Text change generation, RPC call handling. 4 years ago
Blaž Hrastnik f9bfba4d96 Reroute LSP notification events into the main app event loop. 4 years ago
Blaž Hrastnik d64f4beede Share tab width definitions. 4 years ago
Blaž Hrastnik 00e661f600 Indent draft, linewise paste 4 years ago
Blaž Hrastnik 1dba0f2b1c Simple yank/paste registers. 4 years ago
Blaž Hrastnik fd311fb8ad Undo tree draft.
We keep a tree of transactions. This allows for persistent undo by
simply serializing the changesets.
4 years ago
Blaž Hrastnik 36e7e2133f Split selection on regex, fix InputEdit generation. 4 years ago
Blaž Hrastnik 3020077da8 Extend selection commands. 4 years ago
Blaž Hrastnik eb639eb2e4 More robust syntax detection/grammar loading. 4 years ago
Blaž Hrastnik 935cfeae57 Split parts of helix-term into helix-view.
It still largely depends on term for some types but I plan to change
that later.
4 years ago
Blaž Hrastnik 48330ddb5f Command needs access to view information for certain changes. 4 years ago
Blaž Hrastnik 088f8a82af Incremental parsing: rough draft. 4 years ago
Blaž Hrastnik 9546164dc8 cargo fmt & clippy lint 4 years ago
Blaž Hrastnik a106be94f1 Refactor a little bit. 4 years ago
Blaž Hrastnik b17a77b8b8 cleanup: Import tree-sitter-highlight so we can cache trees. 4 years ago
Blaž Hrastnik b647c7a773 tree-sitter based syntax highlighting draft 4 years ago
Blaž Hrastnik 8b3e152126 cleanup: Make Buffer just a part of State. 4 years ago
Jan Hrastnik 6ba082697d added cursor rendering 4 years ago
Blaž Hrastnik e98cdebf1e Add a command module. 4 years ago
Blaž Hrastnik 10d53f3ef0 Add primitives for converting between char offset indices and coords. 4 years ago
Blaž Hrastnik 387fb57c94 Allow unused code for the time being. 4 years ago
Blaž Hrastnik 613d06dfb0 wip: importing to github 4 years ago
Blaž Hrastnik 1984410ac9 Selection mapping over changesets. 4 years ago
Blaž Hrastnik b5c38812e9 address clippy warnings 4 years ago
Blaž Hrastnik 23109f1512 OT: changeset: Implement compose and apply. 4 years ago
Blaž Hrastnik 44ff4d3c1f Implement a new core based on CodeMirror. 4 years ago
Blaž Hrastnik 240e5f4e3d Initial import. 4 years ago