aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src
Commit message (Collapse)AuthorAge
* Fix expansion of `~` (#284)Wojciech Kępka2021-06-18
| | | | | | | | | | | | | * Fix expansion of `~`, dont use directory relative to cwd. * Add `expand_tilde` * Bring back `canonicalize_path`, use `expand_tilde` to `normalize` * Make `:open ~` completion work * Fix clippy * Fold home dir into tilde in Document `realitve_path`
* Remove RwLock for registersBenoît CORTIER2021-06-15
| | | | | | | | Registers are stored inside `Editor` and accessed without `RwLock`. To work around ownership, I added a sister method to `Editor::current`: `Editor::current_with_context`. I tried to modify `Editor::current` directly but it's used at a lot of places so I reverted into this for now at least.
* Address PR comments.Nathan Vegdahl2021-06-15
| | | | | | - Move char functions into their own module under helix_core. - Use matches!() macro where appropriate. - Use a static lifetime on indent_unit() now that we can.
* Add ctrl-w for promptIvan Tham2021-06-14
|
* Use `runtime` dir when defaulting to executable locationWojciech Kępka2021-06-12
|
* Make `runtime_dir` privateWojciech Kępka2021-06-12
|
* Add more ways to detect runtime directoryWojciech Kępka2021-06-12
|
* Fix broken testBlaž Hrastnik2021-06-12
|
* Only auto-format for certain languagesBlaž Hrastnik2021-06-12
| | | | | Fixes #53 Fixes #207
* Add :earlier and :later commands that can be used to navigate the full edit ↵Jakub Bartodziej2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | history. (#194) * Disable deleting from an empty buffer which can cause a crash. * Improve on the fix for deleting from the end of the buffer. * Clean up leftover log. * Avoid theoretical underflow. * Implement :before which accepts a time interval and moves the editor to the closest history state to the commit of the current time minus that interval. Current time is now by default, or the commit time if :before has just been used. * Add :earlier an :later commands that can move through the edit history and retrieve changes hidded by undoing and commiting new changes. The commands accept a number of steps or a time period relative to the currrent change. * Fix clippy lint error. * Remove the dependency on parse_duration, add a custom parser instead. * Fix clippy errors. * Make helix_core::history a public module. * Use the helper for getting the current document and view. * Handled some PR comments. * Fix the logic in :later n. Co-authored-by: Ivan Tham <pickfire@riseup.net> * Add an alias for :earlier. Co-authored-by: Ivan Tham <pickfire@riseup.net> * Add an alias for later. Co-authored-by: Ivan Tham <pickfire@riseup.net> * Run cargo fmt. * Add some tests for earlier and later. * Add more tests and restore the fix for later that diappeared somehow. * Use ? instead of a match on an option. Co-authored-by: Ivan Tham <pickfire@riseup.net> * Rename to UndoKind. * Remove the leftover match. * Handle a bunch of review comments. * More systemd.time compliant time units and additional description for the new commands. * A more concise rewrite of the time span parser using ideas from PR discussion. * Replace a match with map_err(). Co-authored-by: Ivan Tham <pickfire@riseup.net> Co-authored-by: Jakub Bartodziej <jqb@google.com> Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Movement fixes, refactor and unit test suite (#217)PabloMansanet2021-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
* Downgrade `unicode-segmentation`notoria2021-06-10
|
* Derive debug without featureIvan Tham2021-06-10
| | | | Note that this also removed those `finish_non_exhaustive()`.
* Implement Debug for data structure as a featurenotoria2021-06-10
|
* Reuse a cursor from the pool if available (fixes #202)Blaž Hrastnik2021-06-10
|
* Fix panic on ctrl-w empty documentIvan Tham2021-06-08
|
* Cleanup find_first_non_whitespace_char funcsWojciech Kępka2021-06-08
|
* commands: Add goto first non-whitespace char of lineWojciech Kępka2021-06-08
|
* Fix Unicode (#135)Kirawi2021-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Implement register selectionBenoît CORTIER2021-06-07
| | | | | | User can select register to yank into with the " command. A new state is added to `Editor` and `commands::Context` structs. This state is managed by leveraging a new struct `RegisterSelection`.
* lsp: Provide workspace root on client.initialize()Blaž Hrastnik2021-06-07
|
* fix: 2 panics while setting style + off by 1ahkrr2021-06-07
| | | | | | | | | | | | The panics would occur because set_style would draw outside of the the surface. Both occured using `find_prev` or `till_prev` In my case the first panic! would appear in a terminal with around 80 columns in helix/README.md going to the end of the file with `geglf(` the second with `geglfX` The off by one fix ensures that `find_nth_prev` starts at the first character to the left
* Fix panic when moving over unicode punctuationBenoît CORTIER2021-06-07
| | | | | | | | | | | | `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.
* Add test for prev wordIvan Tham2021-06-06
|
* Add ctrl-w in insert modeIvan Tham2021-06-06
| | | | | It seemed to panic when I pressed too many times, but that is from lsp side.
* Return an error if we request an embedded file that does not exist.Brian Dawn2021-06-06
| | | | | This makes the load_runtime_file function behave like the non-embedded one.
* Add a smoke test around loading runtime files.Brian Dawn2021-06-06
| | | | This test makes sure we can read some amount of data from the runtime folder.
* Simplify the load_runtime_file code.Brian Dawn2021-06-06
| | | | Reduce the number of feature switches for the embed_runtime feature.
* Simplify creating pathbufs.Brian Dawn2021-06-06
| | | Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Apply suggestions from code reviewBrian Dawn2021-06-06
| | | | Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Provide a feature flag to be able to embed the runtime folder.Brian Dawn2021-06-06
| | | | | | 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.
* fix: make find_prev_char and till_prev_char workahkrr2021-06-05
| | | | | | Bevore this PR `commands::find_prev_char` and `commands::till_prev_char` were triggerable through keys but `seach::find_nth_next()` was hardcoded in `_find_char`. The passed `fn` was nerver used. With this PR the passed `fn` is used. The change in search.rs resolves an off by one error in the behivor of `find_nth_prev`
* Add unreachable contextIvan Tham2021-06-05
| | | Better error for #123
* Don't panic on empty file/buffer (#108)notoria2021-06-05
|
* Fixing Multiple Panics (#121)Kirawi2021-06-05
| | | | | | | * init * wip * wip
* Try to detect language when document file path is setBlaž Hrastnik2021-06-04
| | | | Fixes #91
* Remove swapfilenotoria2021-06-04
|
* Convert byte index to char index for `find`notoria2021-06-04
|
* Merge pull request #77 from notoria/match_bracketsBlaž Hrastnik2021-06-03
|\ | | | | Fix match_brackets::find
| * Fix match_brackets::findnotoria2021-06-03
| |
* | Default log file to cacheIvan Tham2021-06-03
|/
* Separate document history into CellIvan Tham2021-06-02
| | | | | As history is used separately from the rest of the edits, separating it can avoid needless borrowing and cloning. But one need to be aware later.
* Better fix for w/e that also covers `ia<esc>we`/`ia<esc>wb`Blaž Hrastnik2021-06-02
|
* f/t: Check if at bounds before searching, refs #43, closes #37Blaž Hrastnik2021-06-02
|
* Fix panics when triggering w or e on the last char of the lineBlaž Hrastnik2021-06-02
| | | | Closes #32
* fix: Don't allow moving past last line, fixes #30, #24Blaž Hrastnik2021-06-02
| | | | Off by 1 error
* Categorize _ as a word char, not punctuationBlaž Hrastnik2021-05-31
|
* Allow moving to EOL byte, also fixes #15Blaž Hrastnik2021-05-31
|
* Update architecture.mdBlaž Hrastnik2021-05-30
|
* Update deps, introduce the new tree-sitter lifetimesBlaž Hrastnik2021-05-27
|