Commit graph

6333 commits

Author SHA1 Message Date
Rolo
f445f86d26 todo: outline more icon domains and sets 2025-02-05 13:03:32 -08:00
Rolo
fd54ee930c feat: add more icons for supported languages 2025-02-05 13:03:32 -08:00
Rolo
4a37fe0f58 refactor: change lsp icons to nf-cod-symbol where possible 2025-02-05 13:03:32 -08:00
Rolo
0d3e4f3bb8 refactor: tweak with bufferline icon spacing 2025-02-05 13:03:32 -08:00
Rolo
c8e3a569ce doc: add description for Icons in Editor 2025-02-05 13:03:32 -08:00
Rolo
7267097e91 refactor: small renames for better clarity 2025-02-05 13:03:32 -08:00
Rolo
cec003ce99 refactor: rename mime get param from type to name 2025-02-05 13:03:32 -08:00
Rolo
952c972167 refactor: rename config.rs to icons.rs and move to top level 2025-02-05 13:03:32 -08:00
Rolo
0865ca2812 perf: switch from String to SmartString 2025-02-05 13:03:32 -08:00
Rolo
7f7d9f0802 refactor: add nerdfont defaults for common mime types 2025-02-05 13:03:32 -08:00
Rolo
c18a71deba perf: add #[inline] attribute to getters 2025-02-05 13:03:32 -08:00
Rolo
0e94d21d18 chore: add comment for default diagnostic symbols 2025-02-05 13:03:32 -08:00
Rolo
88da9ee7bf refactor: remove Default impls and add config parsing 2025-02-05 13:03:32 -08:00
Rolo
55ead2f0ae feat: add dap symbols to config 2025-02-05 13:03:32 -08:00
Rolo
0ef7bad77e lint: add 'static lifetime to const's 2025-02-05 13:03:32 -08:00
Rolo
aa27bc7b4a feat: add support for basic icons 2025-02-05 13:03:32 -08:00
Gabriel Dinner-David
b0e1eaf50d
reverse zig highlights () 2025-02-04 20:38:15 -06:00
Drew Zemke
a36730cb21
add support for the FGA language () 2025-02-04 11:06:22 -06:00
uncenter
75abc23428
Add Tera templating language support () 2025-02-04 10:56:36 -06:00
Michael Davis
313a6479b1
LSP: Properly discard out-of-date diagnostics
Previously the `filter` caused the diagnostics to not be attached to the
document - which is good - but the out-of-date diagnostics were still
inserted into the global (editor-wide) diagnostic set. Instead we should
completely discard out-of-date diagnostics.
2025-02-04 10:39:49 -05:00
Michael Davis
62625eda46
LSP: Move diagnostic handling from Application to Editor
There is no functional change to the move - it's just moving the code
into helix-view under a new method `Editor::handle_lsp_diagnostics` -
thought there is a typo fix, the removal of an unnecessary clone (for
the document's language config) and the removal of some nesting.

Co-authored-by: Sofus Addington <sofus@addington.dk>
2025-02-04 10:39:42 -05:00
Michael Davis
16ff06370f
queries: Remove (ERROR) from all highlights
We do not highlight `(ERROR)` nodes since the highlighting is quite
noisy while typing. Also see todo comments in `syntax.rs` - we could
introduce configuration in the future to prepend `(ERROR)` to a
language's highlights query.
2025-02-04 09:35:38 -05:00
Robin Heggelund Hansen
ee33a84489
Update highlights.scm for Gren language () 2025-02-04 08:34:59 -06:00
Niklas Wallgren
1258111394
Print full error chain when failing to load grammar () 2025-02-04 08:18:54 -06:00
Michael Davis
26db54155e
DAP: Drain pending requests on recv failure
This matches <https://redirect.github.com/helix-editor/helix/pull/4852>
for the DAP transport: when there is a failure to receive a message from
the debugger we should drain all pending requests and respond to them
with the StreamClosed error.

This improves the behavior when a debugger fails to initialize, for
example starting debugpy without debugpy installed. Previously the UI
would freeze until the request timed out. Now it instantly prints a
statusline error saying that the debugger failed to start up.
2025-02-04 09:09:54 -05:00
Michael Davis
d456377821
minor: Remove double BufReader wrapper in DAP client
`reader` is already a `BufReader` so there's no need to wrap it in
another `BufReader`. This is a typo/mistake made possible by the type
erasure (a `Box<BufReader<BufReader<T: Read>>>` is also a boxed reader).
2025-02-04 08:52:09 -05:00
Michael Davis
d0d16931e3
DAP: Configure child process stderr as piped
By default this is `Stdio::inherit` which sends stderr from the child
process to Helix. Instead we should use `Stdio::piped` which allows us
to read the piped output.

We can also expect that the stderr opens now (it should similarly to
stdout), so that we always start a reader for stderr like the LSP
client.
2025-02-04 08:51:46 -05:00
dependabot[bot]
8995ccaae2
build(deps): bump the rust-dependencies group with 4 updates ()
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 17:37:46 -06:00
Michael Davis
066e938ba0
Add copy_between_registers for interactive register copying 2025-02-02 20:49:25 -05:00
Michael Davis
e882a750ea
commands: Eagerly clear autoinfo in select_register, insert_register
This causes the infobox to disappear even when you type a non-character
key like escape. For example `"<esc>` now clears the infobox where
before it was left hanging.
2025-02-02 20:45:25 -05:00
Michael Davis
ebdab86ce6
minor: Prefer stable core::num::abs_diff to polyfill
This function was made stable in Rust 1.60.0 so we no longer need to
polyfill.
2025-02-02 20:42:55 -05:00
jack
ab6a92ed49
update(theme): add virtual-inlay hint highlight to snazzy theme () 2025-02-02 19:02:48 -06:00
Viktor Szépe
e22bbf5489
Fix typos () 2025-02-02 18:58:29 -06:00
Leo Unglaub
0ab403d428
Add block comment configuration for PHP 2025-02-02 19:37:13 -05:00
Michael Davis
b8bfc44e42
queries: Improve Rust const generic and '_' type highlighting
You may pass constants as type arguments the const generics feature.
This is used in spellbook for example as a poor man's enum, for example
`self.strip_suffix_only::<FULL_WORD>(word, hidden_homonym)`. With this
change that `FULL_WORD` part is highlighted as a constant instead of
a type.

This change also highlight the underscore in type placeholders - this
is similar to the highlighting done for bindings in Elixir or Erlang
for example. In `Vec<_>` the underscore is highlighted the same as a
comment.
2025-02-02 19:28:01 -05:00
Michael Davis
5952d564d1
Reverse highlight precedence ordering ()
Co-authored-by: postsolar <120750161+postsolar@users.noreply.github.com>
Co-authored-by: Iorvethe <58810330+Iorvethe@users.noreply.github.com>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: gabydd <gabydinnerdavid@gmail.com>
2025-02-02 18:17:10 -06:00
Michael Davis
382401020c
queries: Add 'not-eq' and 'not-match' predicates to TSQ highlights 2025-02-02 18:39:07 -05:00
Michael Davis
93fa990e56
queries: Fix module/namespace highlight in Unison 2025-02-02 18:39:07 -05:00
Michael Davis
70d452db3e
core: Make completion item documentation optional
Path completion items always have documentation but future core (i.e.
non-LSP) completions may not always have documentation - for example
word completion from the current buffer.
2025-02-01 21:24:25 -05:00
Michael Davis
369f2bb93d
ui: Expose the 'prompt' module
The prompt Completion type alias is otherwise private. This will be
used in <https://redirect.github.com/helix-editor/helix/pull/12527>
to refactor some functions to return prompt completions.
2025-02-01 21:12:20 -05:00
Doug Kelkhoff
0f594c35f2
feat(lang:r): Add roxygen header comment token () 2025-02-01 19:44:07 -06:00
Remo Senekowitsch
de11273857
Document installation of rust-analyzer via rustup () 2025-02-01 19:43:20 -06:00
Pascal Kuthe
5c1f3f814f
implement incomplete completion requests 2025-02-01 19:36:10 -05:00
Pascal Kuthe
4e0fc0efc6
Add a completion handler type in helix-view for tracking responses
This will replace the `Sender<CompletionEvent>` in the child commits.
It tracks sender alongside extra metadata about the responses received
from providers - namely whether a request is incomplete or not - which
can be reused between subsequent requests to the provider.
2025-02-01 19:35:58 -05:00
Michael Davis
1ab35ade2d
minor: Move CompletionEvent to a new completion handler module
Completions are not specific to LSP anymore. In the child commits we
will expand on the types in this module so this refactor is done
eagerly to minimize changes later.
2025-02-01 19:32:37 -05:00
Pascal Kuthe
018081a5b1
core: Add a provider type to track the origin of a completion 2025-02-01 19:32:37 -05:00
Michael Davis
f0fa905622
LSP: Eagerly send requests in Client::request
This is a similar change to the parent commit but for `request`. The
requests should be sent eagerly so that the ordering stays consistent.

Co-authored-by: Pascal Kuthe <pascalkuthe@pm.me>
2025-02-01 19:32:37 -05:00
Michael Davis
5532ef35d9
LSP: Remove future wrapper from Client::notify, Client::reply
Previously LSP notifications were sent within a future and most callers
used a `tokio::spawn` to send the notification, silently discarding any
failures like problems serializing parameters or sending on the channel.
It's possible that tokio could schedule futures out of intended order
though which could cause notifications where order is important, like
document synchronization, to become partially shuffled. This change
removes the future wrapper and logs all internal failures.

Also included in this commit is the same change for `Client::reply`
which was also unnecessarily wrapped in a future.

Co-authored-by: Pascal Kuthe <pascalkuthe@pm.me>
2025-02-01 19:32:37 -05:00
Pascal Kuthe
0ea401d2d7
Use the slotmap workspace dependency in helix-view
This workspace dependency is already used in `helix-core` and
`helix-lsp`. This change uses it in `helix-view` as well for
consistency.
2025-02-01 19:32:23 -05:00
uncenter
e70f8833e2
Highlight $ template literals as shell commands () 2025-02-01 18:18:08 -06:00