aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Overlay all diagnostics with highest severity on top (#4113)Michael Davis2022-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here we separate the diagnostics by severity and then overlay the Vec of spans for each severity on top of the highlights. The error diagnostics end up overlaid on the warning diagnostics, which are overlaid on the hints, overlaid on info, overlaid on any other severity (default), then overlaid on the syntax highlights. This fixes two things: * Error diagnostics are now always visible when overlapped with other diagnostics. * Ghost text is eliminated. * Ghost text was caused by duplicate diagnostics at the EOF: overlaps within the merged `Vec<(usize, Range<usize>)>` violate assumptions in `helix_core::syntax::Merge`. * When we push a new range, we check it against the last range and merge the two if they overlap. This is safe because they both have the same severity and therefore highlight. The actual merge is skipped for any of these when they are empty, so this is very fast in practice. For some data, I threw together an FPS counter which renders as fast as possible and logs the renders per second. With no diagnostics, I see an FPS gain from this change from 868 FPS to 878 (+1.1%) on a release build on a Rust file. On an Erlang file with 12 error diagnostics and 6 warnings in view (233 errors and 66 warnings total), I see a decrease in average FPS from 795 to 790 (-0.6%) on a release build.
* remove filterting with C-space from pickerPascal Kuthe2022-10-11
|
* Treat space as a seperator instead of a character in fuzzy pickerPascal Kuthe2022-10-11
|
* Add a helper function for applying transactionsMichael Davis2022-10-11
| | | | | | It is easy to forget to call `Document::apply` and/or `View::apply` in the correct order. This commit introduces a helper function which closes over both calls.
* Apply transactions to ViewsMichael Davis2022-10-11
| | | | | | This change adds View::apply calls for all Document::apply call-sites, ensuring that changes to a document do not leave invalid entries in the View's jumplist.
* Add View::apply for adjusting jumplist rangesMichael Davis2022-10-11
| | | | | | | Applying a transaction to a View adjusts the ranges in the jumplist to ensure that they remain within the text of the document and follow regular selection invariants (for example, must be have a width of at least one).
* picker: Highlight the document on idle timeoutBlaž Hrastnik2022-10-11
|
* Propagate idle timeout event to components (#3172)Gokul Soumya2022-10-11
|
* build(deps): bump serde_json from 1.0.85 to 1.0.86 (#4187)dependabot[bot]2022-10-10
| | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Change twig tree-sitter grammar (#4176)gbprod2022-10-10
|
* Add some vertical characters to the editor.indent-guides documentation (#4163)Sumit Sahrawat2022-10-10
| | | Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Add instructions for gnome desktop support using the `.desktop` file (#4165)David2022-10-10
|
* Fix goto/view center mismatch (#4135)Brandon Dong2022-10-10
|
* Improve C# syntax highlighting (#4118)Chickenkeeper2022-10-10
|
* Use different cursor color for primary cursor for ayu_mirage (#4140)S1m2022-10-10
|
* tutor: 5.5 add missing words (#4160)Mike Sampson2022-10-09
|
* Add cursorcolumn (#4084)A-Walrus2022-10-08
| | | | | | | | | | | | | | | * Implement cursorcolumn * Add documentation * Separate column style from line with fallback * Fallback to cursorcolumn first * Switch to non-fallback try_get_exact Add new function `try_get_exact`, which doesn't perform fallback, and use that instead because the fallback behaviour is being handled manually.
* Fix incorrect scrolloff default in documentation (#4136)Brandon Dong2022-10-07
|
* Update sonokai.toml (#4089)Oleksii Dorozhkin2022-10-06
|
* Pallettise the bogster theme and, more importantly, add support for ↵allanderek2022-10-06
| | | | color-modes to the bogster theme. (#4121)
* Fix tutor typo (#4116)Jonathan2022-10-05
|
* Fix bugs in search wraparound message (#4101)A-Walrus2022-10-04
|
* doc: add theme inheritance example (#4096)Jaden2022-10-04
|
* doc: add example to disable arrow keys in insert mode (#4088)Poliorcetics2022-10-04
|
* build(deps): bump thiserror from 1.0.36 to 1.0.37 (#4095)dependabot[bot]2022-10-03
| | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump tokio from 1.21.1 to 1.21.2 (#4094)dependabot[bot]2022-10-03
| | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump smallvec from 1.9.0 to 1.10.0 (#4093)dependabot[bot]2022-10-03
| | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Exit gracefully when close operation fails (#4081)Skyler Hawthorne2022-10-03
| | | | | | | | If the close method fails, the editor will quit before restoring the terminal. This causes the shell to break if, e.g. the LS times out shutting down. This fixes this by always restoring the terminal after closing, and printing out a message to stderr if there is an error.
* Automatically track pseudo-pending text (#4077)Michael Davis2022-10-03
| | | | | | | | | | | | | | | | | | This change automatically tracks pending text for for commands which use on-next-key callbacks. For example, `t` will await the next key event and "t" will be shown in the bottom right-hand corner to show that we're in a pending state. Previously, the text for these on-next-key commands needed to be hard-coded into the command definition which had some drawbacks: * It was easy to forget to write and clear the pending text. * If a command was remapped in a custom config, the pending text would still show the old key. With this change, pending text is automatically tracked based on the key events that lead to the command being executed. This works even when the command is remapped in config and when the on-next-key callback is nested under some key sequence (for example `mi`).
* respond to SIGUSR1 by reloading config (#3952)Karsten Gebbert2022-10-03
| | | | | * respond to SIGUSR1 by reloading config * document USR1 signal handling
* Keep arrow and special keys in insert (#3915)Ivan Tham2022-10-03
| | | | | | | | | | | | | | | | | | | | | | * Keep arrow and special keys in insert Advanced users won't need it and is useful for beginners. Revert part of #3671. * Change text for insert mode section Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Remove ctrl-up/down in insert * Reorganize insert keys and docs * Improve page up experience on last tutor The last tutor page can page down multiple times and it will break the heading on the 80x24 screen paging when reaching the last page, this keeps the style the same and make sure page up and down won't break it. Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Change focus to modified docs on quit (#3872)A-Walrus2022-10-03
| | | | | | | | | | | | | | | | | | * Change focus to modified docs on quit When quitting with modified documents, automatically switch focus to one of them. * Update helix-term/src/commands/typed.rs Co-authored-by: Poliorcetics <poliorcetics@users.noreply.github.com> * Make it work with buffer-close-all and the like * Cleanup Use Cow instead of String, and rename DoesntExist -> DoesNotExist Co-authored-by: Poliorcetics <poliorcetics@users.noreply.github.com>
* Add option to skip the first indent guide (#3819)Robin2022-10-03
| | | | | | | | | | | | | | | | | | | | | | | * Add option to skip the first indent guide * reorder skip_first option * change indent-guides.skip_first to a number * rename skip -> skip_levels * add skip_levels to the book * Update book/src/configuration.md Co-authored-by: A-Walrus <58790821+A-Walrus@users.noreply.github.com> * Update helix-term/src/ui/editor.rs Co-authored-by: Michael Davis <mcarsondavis@gmail.com> Co-authored-by: Robin <robinvandijk@klippa.com> Co-authored-by: A-Walrus <58790821+A-Walrus@users.noreply.github.com> Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Rename I/A "Insert at start/end of line" (#3753)Michael Davis2022-10-03
| | | | | | | | | | | * keymap: Rename A "Insert at end of line" The language for the `A` binding is potentially confusing because `A` behaves like `i` done at the end of the line rather than `a`. This change renames the command to match Kakoune's language[^1]. [^1]: https://github.com/mawww/kakoune/blob/021da117cf90bf25b65e3344fa8e43ab4262b714/src/normal.cc#L2229 * keymap: Rename I `insert_at_line_start`
* remove `split-debuginfo` setting (#3691)Kirawi2022-10-03
| | | According to [the rustc book](https://doc.rust-lang.org/rustc/codegen-options/index.html#split-debuginfo), this is not supported on Windows. It also prevents Helix from compiling on the latest nightly.
* Find workspace from document path (#3553)ath32022-10-03
|
* Select inserted space after join (#3549)Ivan Tham2022-10-03
| | | | | | | | | * Select inserted space after join * Split join_selections with space selection to A-J Kakoune does that too and some users may still want to retain their selections. * Update join_selections docs
* rust: Highlight function signatures as functions (#4073)Michael Davis2022-10-03
| | | | | | | | | | | This stanza highlights functions within trait definitions. For example, in: pub trait Widget { fn render(self, area: Rect, buf: &mut Buffer); } `render` is currently highlighted as a variable. With this change it's highlighted as a function.
* Add command names to command palette (#4071)nuid322022-10-03
|
* Fix signature help panic when too large (#4030)Ivan Tham2022-10-03
| | | | | When signature help is too large it may cause a panic when it is too large, now I just make the hover do an intersection with surface to make sure it never overflow.
* goto_window_* extends selection (#3985)greg-enbala2022-10-03
| | | | | * goto_window_* extends selection * Don't push to the jumplist
* [lsp-restart]: call the force_shutdown method for the old_client (#3972)Alexis Kalabura2022-10-03
| | | | | | | * [lsp-restart]: call the shutdown_and_exit method for the old_client * change shutdown_and_exit to force_shutdown * remove extra log
* feat(statusline): add option to show total line numbers in file (#3960)Joshua Pauline2022-10-03
| | | | | * feat(statusline): add option to show total line numbers in file * feat(line numbers): add config to doc book
* Add dark high contrast theme refer to vscode (#3312)Slug2022-10-03
| | | | | | | | | * Add dark high contrast theme * Add my sign * Fix typo * Change gray to white for comment and remove Italic
* Add configureable statusline mode names (#3311)PeepNSheep2022-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added 'long-mode' statusline element * Added customizable statusline mode names * Removed a string clone * Added documentation * Updated documentation, moved modenames to a seperate section * Update configuration.md * Documentation update * Documentation update * Documentation update * Update configuration.md * Update configuration.md * Fixed merge error * Update configuration.md * Update configuration.md
* Add `ui.gutter.selected` option for themes (#3303)ChrHorn2022-10-03
| | | | | * add `ui.gutter.selected` * add `ui.gutter`, `ui.gutter.selected` to docs
* Add tests for select-mode TS textobjectsMichael Davis2022-10-03
|
* Extend textobject selections in select modeMichael Davis2022-10-03
|
* Use Range::with_direction consistentlyMichael Davis2022-10-03
|
* Use requested direction for new textobject selection rangeMichael Davis2022-10-03
| | | | | | | | | | | | | | | | | | This changes the behavior of operations like `]f`/`[f` to set the direction of the new range to the direction of the action. The original behavior was to always use the head of the next function. This is inconsistent with the behavior of goto_next_paragraph and makes it impossible to create extend variants of the textobject motions. This causes a behavior change when there are nested functions. The behavior in the parent commit is that repeated uses of `]f` will select every function in the file even if nested. With this commit, functions are skipped. It's notable that it's possible to emulate the original behavior by using the `ensure_selections_forward` (A-:) command between invocations of `]f`.