aboutsummaryrefslogtreecommitdiff
path: root/helix-term
Commit message (Collapse)AuthorAge
* Add rainbow indentation guidesSoraTenshi2024-05-01
| | | | | ref: https://github.com/helix-editor/helix/issues/4010 ref: https://github.com/helix-editor/helix/pull/4493
* Add rainbow tree-sitter highlightsMichael Davis2024-05-01
| | | | | ref: https://github.com/helix-editor/helix/issues/695 ref: https://github.com/helix-editor/helix/pull/2857
* Add support for Unicode inputLinden Krouse2024-05-01
| | | | | ref: https://github.com/helix-editor/helix/issues/1438 ref: https://github.com/helix-editor/helix/pull/2852
* Fix writes from insert mode not properly updating the revision historyJJ2024-05-01
| | | | | | ref: https://github.com/helix-editor/helix/issues/3501 ref: https://github.com/helix-editor/helix/issues/6513 ref: https://github.com/helix-editor/helix/pull/7226
* Add support for moving selections above and belowsireliah2024-05-01
| | | | | | | ref: https://github.com/helix-editor/helix/issues/2245 ref: https://github.com/helix-editor/helix/pull/4545 Co-authored-by: JJ <git@toki.la>
* Add unbind-default-keys config optionLinden Krouse2024-05-01
| | | | | ref: https://github.com/helix-editor/helix/issues/2720 ref: https://github.com/helix-editor/helix/pull/2733
* Add file explorer and tree helperwongjiahau2024-05-01
| | | | | | | | | | | ref: https://github.com/helix-editor/helix/issues/200 ref: https://github.com/helix-editor/helix/pull/2377 ref: https://github.com/helix-editor/helix/pull/5566 ref: https://github.com/helix-editor/helix/pull/5768 Co-authored-by: cossonleo <cossonleo@foxmail.com> Co-authored-by: JJ <git@toki.la> Co-authored-by: Quan Tong <quantonganh@gmail.com>
* Fix rustc warnings about unused 'pub use's (#10011)Michael Davis2024-03-27
|
* Revert "helix-term: allow to backspace out-of the command prompt (#9828)" ↵Michael Davis2024-03-26
| | | | | | | | | (#10005) This reverts commit 0dc67ff8852ce99d40ad4464062ebe212b0b03a1. See the post-merge discussion in #9828. The old behavior was less surprising and we have other ways to abort from a prompt, so let's revert the behavior change.
* Fix regression in color-modesBlaž Hrastnik2024-03-26
| | | | Fixes #10006
* build(deps): bump the rust-dependencies group with 6 updates (#10007)dependabot[bot]2024-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps the rust-dependencies group with 6 updates: | Package | From | To | | --- | --- | --- | | [smallvec](https://github.com/servo/rust-smallvec) | `1.13.1` | `1.13.2` | | [arc-swap](https://github.com/vorner/arc-swap) | `1.7.0` | `1.7.1` | | [regex](https://github.com/rust-lang/regex) | `1.10.3` | `1.10.4` | | [indoc](https://github.com/dtolnay/indoc) | `2.0.4` | `2.0.5` | | [rustix](https://github.com/bytecodealliance/rustix) | `0.38.31` | `0.38.32` | | [which](https://github.com/harryfei/which-rs) | `6.0.0` | `6.0.1` | Updates `smallvec` from 1.13.1 to 1.13.2 - [Release notes](https://github.com/servo/rust-smallvec/releases) - [Commits](https://github.com/servo/rust-smallvec/compare/v1.13.1...v1.13.2) Updates `arc-swap` from 1.7.0 to 1.7.1 - [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md) - [Commits](https://github.com/vorner/arc-swap/commits) Updates `regex` from 1.10.3 to 1.10.4 - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.10.3...1.10.4) Updates `indoc` from 2.0.4 to 2.0.5 - [Release notes](https://github.com/dtolnay/indoc/releases) - [Commits](https://github.com/dtolnay/indoc/compare/2.0.4...2.0.5) Updates `rustix` from 0.38.31 to 0.38.32 - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.31...v0.38.32) Updates `which` from 6.0.0 to 6.0.1 - [Release notes](https://github.com/harryfei/which-rs/releases) - [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/harryfei/which-rs/compare/6.0.0...6.0.1) --- updated-dependencies: - dependency-name: smallvec dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: arc-swap dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: indoc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: rustix dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: which dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add narrow no-break space support (#9604)Quentin2024-03-25
|
* Add an Amp-like jump commandPascal Kuthe2024-03-23
| | | | Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* dismiss pending keys properly for mouse/pastePascal Kuthe2024-03-23
|
* use slices instead of Rc for virtual textPascal Kuthe2024-03-23
|
* Reimplement tree motions in terms of syntax::TreeCursorMichael Davis2024-03-23
| | | | | | | This uses the new TreeCursor type from the parent commit to reimplement the tree-sitter motions (`A-p/o/i/n`). Other tree-sitter related features like textobjects are not touched with this change and will need a different, unrelated approach to solve.
* Fix repeat last motion for goto next/prev diagnostic (#9966)Jaakko Paju2024-03-23
|
* Evenly space statusline areas when there isn't space to align middle (#9950)Michael Davis2024-03-21
| | | | | | | | | | | The refactor in bcf7b263 introduced a possible subtraction with overflow when the statusline is layed out so that the left or right sides are larger than the padding it would take to align the center area to the middle. When the left or right areas are too large, we can evenly space the elements rather than trying to align the center area to the middle. This prevents possible underflows and makes sense visually - it's still easy to tell the areas apart at a glance.
* Refactor statusline elements to build `Spans` (#9122)Szabin2024-03-19
| | | | | * Refactor statusline elements to return Spans * Split render fn to build Spans and blit to Surface
* add register completion (#9936)Kirawi2024-03-19
|
* Ignore more version control systems (#9935)Tobias Hunger2024-03-19
| | | | Ignore `.pijul` and `.jj` as well as `.git`. This makes hx so much more usable with VCSes other than git!
* Prevent `shell_keep_pipe` from stopping on nonzero exit status code (#9817)Cyrill Schenkel2024-03-19
| | | | | | | | | | | | The `shell_impl` and `shell_impl_async` functions no longer return `success` because it was always `true`. If the command didn't succeed both functions would return an `Err`. This was also the reason, why `shell_keep_pipe` didn't work. It relied upon the value of `success` and aborted in case of an `Err`. It now removes any selection for which `shell_impl` returns `Err`. If the command always fails, the selections are preserved and an error message is displayed in the status bar.
* Do not stop reloading docs on error (#9870)Luis Useche2024-03-19
| | | | | | | | | | In the `reload-all` command, we should not stop reloading the documents if one error is found. Instead, we should report the error and continue trying to reload the current open documents. This is useful in cases where a backing file does not exist temporarily (e.g. when editing a git patch in the outstanding chain that doesn't have a file just yet). This change also remove the error messages in the cases where the backing is `None`, like in new docs or `tutor`.
* Optimize getting a relative pathmo8it2024-03-19
|
* add 'file-absolute-path' to statusline (#4535)Dan Cardamore2024-03-17
| | | | | | | | | | | * feat: add 'file-abs-path' to statusline (#4434) * cleanup implementation * rename to be non-abbreviated names --------- Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Keybind for Extend/shrink selection up and down (#9080)Emi2024-03-17
| | | | | | | | | | | | | | | | | | | * implement another selection modifying command * Selection feels more ergonomic in case of swapping the direction. This also fixes a problem when starting at an empty line. * rename select_line_up/down to select_line_above/below * apply clippy suggestion of using cmp instead of if-chain * revert `Extent` implementing `Clone/Copy` * move select_line functions below extend_line implementations * implement help add function, which saturates at the number of text lines --------- Co-authored-by: Emi <emanuel.boehm@gmail.com>
* Handle starting and continuing the count separately (#9887)Michael Davis2024-03-15
|
* Add a yank diagnostic command (#9640)Kirawi2024-03-15
| | | | | | | | | * yank diagnostic command * improve success message * move to a typed command * docgen
* build(deps): bump open from 5.0.1 to 5.1.2 (#9854)dependabot[bot]2024-03-12
| | | | | | | | | | | | | | | | Bumps [open](https://github.com/Byron/open-rs) from 5.0.1 to 5.1.2. - [Release notes](https://github.com/Byron/open-rs/releases) - [Changelog](https://github.com/Byron/open-rs/blob/main/changelog.md) - [Commits](https://github.com/Byron/open-rs/compare/v5.0.1...v5.1.2) --- updated-dependencies: - dependency-name: open dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* helix-term: allow to backspace out-of the command prompt (#9828)Markus F.X.J. Oberhumer2024-03-09
|
* Fix panic in surround_replace/delete nested multi-cursor (#9815)Mike Trinkala2024-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test Document ------------- ``` {{ } } ``` Steps To Reproduce ------------------ 1. 2j # move_visual_line_down 1. C # copy_selection_on_next_line 1. mdm # surround_delete Debug ----- `assertion failed: last <= from', transaction.rs:597:13` Release ------- `called `Result::unwrap()` on an `Err` value: Char range out of bounds: char range 18446744073709551614..18446744073709551615, Rope/RopeSlice char length 7', ropey-1.6.1/src/rope.rs:546:37` Description ----------- Processing the surrounding pairs in order violates the assertion the ranges are ordered. To handle nested surrounds all positions have to be sorted. Also surround_replace has to track the proper replacement character for each position.
* build(deps): bump arc-swap from 1.6.0 to 1.7.0 (#9809)dependabot[bot]2024-03-06
|
* Fix panic when using surround_replace/delete (#9796)Mike Trinkala2024-03-03
| | | | | | | | | | | | | | | | | | | | | | 1. Create a document containing `{A}` 1. C-w v # vsplit 1. gl # goto_line_end 1. b # move_prev_word_start 1. ` # switch_to_lowercase 1. mrm( # surround replace 1. C-w v # vsplit In the debug build surround_replace/delete will immedately assert with `assertion failed: last <= from', transaction.rs:597:13`. The splits and lowercase conversion are not needed to trigger the bug. In the release build the surround becomes `)a(` and the last vsplit causes the transaction to panic. `internal error: entered unreachable code: (Some(Retain(18446744073709551573)))', transaction.rs:185:46` Since the selection direction is backwards get_surround_pos returns the pairs reversed but the downstream code assumes they are in the forward direction.
* Fix panic when using join_selections_space (#9783)Mike Trinkala2024-03-02
| | | | | | | | | | | | | | | | | | | | | | | | Joining lines with Alt-J does not properly select the inserted spaces when the selection contains blank lines. In the worst case it panics with an out of bounds index. thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Char index out of bounds: char index 11, Rope/RopeSlice char length 10' Steps to reproduce: * Create a new document ``` a b c d e ``` * % (Select all) * Alt-J (join and select the spaces)
* Support LSP diagnostic tags (#9780)Michael Davis2024-03-02
|
* Avoid cloning the whole paragraph content just for rendering (#9739)Mo2024-02-27
| | | | | * Avoid cloning the whole paragraph content just for rendering * Fix tests
* toggling of block comments (#4718)Gabriel Dinner-David2024-02-27
|
* build(deps): bump tempfile from 3.10.0 to 3.10.1 (#9733)dependabot[bot]2024-02-27
| | | | | | | | | | | | | | | Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.10.0 to 3.10.1. - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.10.0...v3.10.1) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* switch to regex-cursor (#9422)Pascal Kuthe2024-02-26
|
* LSP: Normalize diagnostic file pathsMichael Davis2024-02-25
|
* LSP: Key diagnostics off file path instead of URIMichael Davis2024-02-25
| | | | | | | | | URIs need to be normalized to be comparable. For example a language server could send a URI for a path containing '+' as '%2B' but we might encode this in something like 'Document::url' as just '+'. We can normalize the URI straight into a PathBuf though since this is the only value we compare these diagnostics URIs against. This also covers edge-cases like windows drive letter capitalization.
* Optimization of tilde expansion (#9709)Mo2024-02-24
| | | | | | | | | | | | | | | | * Use next and avoid a redundant prefix strip * Avoid allocations Especially when `expand_tilde` is claled on a path that doesn't contain a tilde. * Add a test * Use Into<Cow<…>> * Put the expand_tilde test at the end of the file * Remove unused importsw
* Use a hook for resolving completion itemsMichael Davis2024-02-23
| | | | | | Previously we used the IdleTimeout event to trigger LSP `completion/resolveItem` requests. We can now refactor this to use an event system hook instead and lower the timeout.
* Make mouse click extend selection in select mode (#5436)Jonathan LEI2024-02-19
| | | | | * Make mouse click extend selection in select mode * chore: better readability with `Option::take()`
* fix LSP ComplitionTriggerKind value for `TriggerKind::Auto` (#9660)nkitsaini2024-02-19
|
* Scroll cursor and page together (neovim-like scrolling) (#8015)AlexanderDickie2024-02-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * neovim like scroll function * clear line annotations outside of move_vertically/_visual * add nvim scroll function to commands * assign nvim-scroll to C-d and C-u (half page scrolls) * dont remove backspace and space mapping * move non-softwrap logic to seperate function, call this in nvim-scroll fn * Revert "move non-softwrap logic to seperate function, call this in nvim-scroll fn" This reverts commit e4905729c338a2260e6981f1d8fac022897b4191. * Revert "clear line annotations outside of move_vertically/_visual" This reverts commit 1df3fefe55afc840d1ab5094b2116d1127fc363f. * add TODO for when inline diagnostics gets merged * move nvim-scroll logic into scroll(), dont respect scrolloff * run cargo fmt * run cargo clippy * update documenation for Ctrl-d and Ctrl-u remap
* Allow numbers as second input event (#8471)Mehdi Abedi2024-02-14
| | | | | | | | | | | | | | | * Make sure pending key list is empty when count handling This will allow using numbers as second key event. * count handling; add an exception for 'g' * Lookup the key event before considering a number as count * Avoid the allocation of another vec for the pending keys --------- Co-authored-by: x <x@torrent>
* Add changes to history when paste-replacing (#9625)Mihir Gadgil2024-02-13
|
* fix lsp config reload (#9415)kyfanc2024-02-13
| | | | | | | | `syn_loader` was replaced rather than interior value being replace, old value was still being referenced and not updated after `:config-refresh`. By using `ArcSwap` like for `config`, each `.load()` call will return the most updated value. Co-authored-by: kyfan <kyfan@email>
* build(deps): bump toml from 0.7.6 to 0.8.10 (#9539)dependabot[bot]2024-02-12
| | | | | | | | | | | | | | Bumps [toml](https://github.com/toml-rs/toml) from 0.7.6 to 0.8.10. - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.6...toml-v0.8.10) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>