aboutsummaryrefslogtreecommitdiff
path: root/helix-term/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`
* Fix panic when entering unicode in command promptBenoît CORTIER2021-06-18
| | | | | | | It was attempted to use `String::insert` and `String::remove` to insert without taking care of unicodes. Fixes https://github.com/helix-editor/helix/issues/282
* Replace `Editor::current` by a macroBenoît CORTIER2021-06-18
| | | | | | | | | This is necessary to workaround ownership issues across function calls. The issue notably arised when implementing the registers into `Editor` and I was getting annoyed again when implementing copy/pasting into system clipboard. The problem is addressed by using macro calls instead of function calls. There is no notable side effect.
* Configurable keys 2 (Mapping keys to commands) (#268)PabloMansanet2021-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add convenience/clarity wrapper for Range initialization * Add keycode parse and display methods * Add remapping functions and tests * Implement key remapping * Add remapping book entry * Use raw string literal for toml * Add command constants * Make command functions private * Map directly to commands * Match key parsing/displaying to Kakoune * Formatting pass * Update documentation * Formatting * Fix example in the book * Refactor into single config file * Formatting * Refactor configuration and add keymap newtype wrappers * Address first batch of PR comments * Replace FromStr with custom deserialize
* Let o, O take counts for multiple cursorsGokul Soumya2021-06-17
|
* Fix cursor position bugs related to o and OGokul Soumya2021-06-17
| | | | | | | - `O` at the beginning of file didn't move cursor - `o` and `O` messed up cursor position with multiple cursors Fixes #127
* Add theme key for selected line numberGokul Soumya2021-06-16
| | | | | | | | | | | Adds `ui.linenr.selected` which controls highlight of linu numbes which have cursors on. - Fallback to linenr if linenr.selected is missing - Update docs and themes - Add TODOs for themes with temporary linenr.selected
* Add cursor kind to separate hidden cursor from posIvan Tham2021-06-15
| | | | | Now IME cursor position should be correct since we can still set cursor position without drawing the cursor.
* 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.
* Use `_impl` suffix instead of `_` prefixBenoît CORTIER2021-06-15
| | | | | | Helpers / internal implementations where using the `_` prefix. However, this prefix also suppress unused warnings. I suggest we use the `_impl` suffix instead.
* Remove unused variablesIvan Tham2021-06-15
|
* Add filter ability to pickerIvan Tham2021-06-15
| | | | Inspired by doom emacs. Able to filter picker options multiple times.
* Report indent style when calling indent-style with no arguments.Nathan Vegdahl2021-06-15
| | | | Also print an error message when the argument is malformed.
* Address PR comments.Nathan Vegdahl2021-06-15
| | | | | | * Clean up "indent-style" command argument parsing. * Adjust command's name to match the style of other commands. * Add a "0" alias to the command, for tabs indent style.
* Remove indent style status-line display for now.Nathan Vegdahl2021-06-15
|
* Implement command to change the indent-style setting of a document.Nathan Vegdahl2021-06-15
|
* Render indent-style status in status line.Nathan Vegdahl2021-06-15
| | | | Also cleaned up the status line code a little.
* Add ctrl-w for promptIvan Tham2021-06-14
|
* fix: wq/wqa functions need to wait for save to finish before closingBlaž Hrastnik2021-06-14
|
* Add ui.selection to theme.tomlGokul Soumya2021-06-14
| | | | | Enables changing the color of the selection which was previously hard coded.
* Refactor keymap definitions using macrosGokul Soumya2021-06-14
| | | | | Adds a macro rule to the `key!` macro so that keymaps using `Left`, `Home`, `Esc`, etc. will also be accepted.
* fix offset by one problem in replace_with_yankedAndreas Liljeqvist2021-06-14
|
* ui: Prompt should figure out a reasonable column widthBlaž Hrastnik2021-06-13
| | | | | Fixes #192 Refs #225
* Fix `wq`Wojciech Kępka2021-06-13
|
* Fix clippyWojciech Kępka2021-06-13
|
* Deduplicate codeWojciech Kępka2021-06-13
|
* Add `qa` and `qa!`Wojciech Kępka2021-06-13
|
* Update write_allWojciech Kępka2021-06-13
|
* Add `Copy` derive to `PromptEvent`Wojciech Kępka2021-06-13
|
* commands: Add more write commandsWojciech Kępka2021-06-13
|
* Add clarification to last bufferIvan Tham2021-06-13
|
* add symbol picker (#230)Robin2021-06-12
| | | | | | | | | * add symbol picker use the lsp document_symbol request * fix errors from merging in master * add docs for symbol picker
* add alternate file (#223)Robin2021-06-12
| | | | | | | | | | | | | * add alternate file inspired by vim ctrl-6/kak ga commands. the alternate file is kept per view * apply feedback from #223 * rename to last_accessed * add ga doc * add fail message for ga
* Change picker horizontal split to hIvan Tham2021-06-12
| | | Follow window mode and vim behavior, x seemed weird.
* lsp: Check bounds when converting lsp positions (#204)Wojciech Kępka2021-06-12
| | | | | | | | | * lsp: Make position conversion funcs return `Option` * Add tests * Fixes * Revert pos_to_lsp_pos to panic
* 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
* commands: Handle `t<ENTER>` as till newlineWojciech Kępka2021-06-11
|
* lsp: Display LSP progress messages (#216)Wojciech Kępka2021-06-11
|
* move to first nonwhitespace on shift-iRobin van Dijk2021-06-10
| | | | This matches the behaviour in vim and kak
* Fix jump behavior, goto_implementation now jumpIvan Tham2021-06-10
| | | | | Better jump behavior since we override the first jump if it's on the first document. At the same time, ctrl-i is now working with gd jumps.
* Fix documentation popup panicwojciechkepka2021-06-10
|
* Only enforce limit outside of .gitKevin Sjöberg2021-06-09
|
* Match keybindings of menuKevin Sjöberg2021-06-09
|
* Fix Shift-Tab for moving upwards in menuKevin Sjöberg2021-06-09
|
* Fix crash when too many completions availableBlaž Hrastnik2021-06-08
| | | | Refs #81
* Support go to line 1Zheming Li2021-06-08
|
* Make `r<ENTER>` workWojciech Kępka2021-06-08
|
* Remove unwanted `as_str`Wojciech Kępka2021-06-08
|