Michael Davis
d4427125eb
Bail if no language servers support workspace symbols ( #7286 )
1 year ago
vwkd
352d1574a6
add move_prev_long_word_end and extend_prev_long_word_end ( #6905 )
1 year ago
Michael Davis
b3949979ae
Propagate the count and register to command palette commands
...
Previously a count or register selection would be lost while opening
the command palette. This change allows using a register selection or
count in any command chosen from the command palette.
1 year ago
Michael Davis
0e083497a5
Persist register selection in pending keymaps
...
Previously the register selection (via `"`) would be lost in the middle
of any key sequence longer than one key. For example, `<space>f` would
clear the register selection after the `<space>` making it inaccessible
for the `file_picker` command.
This behavior does not currently have any effect in the default keymap
but might affect custom keymaps. This change aligns the behavior of the
register with count. Making this change allows propagating the register
to the `command_palette` (see the child commit) or other pickers should
we decide to use registers in those in the future. (Interactive global
search for example.)
1 year ago
Alex Vinyals
204bac1706
commands(toggle): use pattern matching on the Value enum ( #7240 )
1 year ago
gibbz00
9926c2d292
Remove Keymap(KeyTrie) and simply use KeyTrie.
1 year ago
gibbz00
b8563685ec
Move `keymap.reverse_keymap()` to `Keytrie`:
...
The plan is let `Keymaps` simply store `KeyTrie`s, as the `Keymap(Keytrie)` wrapping serves little to no purpose.
1 year ago
gibbz00
eda4c79f2f
Remove pub keymap.name();
...
`keymap.name` is only used internally.
1 year ago
gibbz00
3d0bc72099
Place `Info::from_keymap()` contents in `keymap.infobox()`:
...
This makes it easier later control the order in which the key events
are presented.
1 year ago
gibbz00
19326d23d1
Keymap infobox: Idiomatic body tuple.
...
Does not change any behavior other than making the tuple slightly
more idiomatic. Keymap infobox shows key events, then the respective
description. This commit makes sure that order is used from the get go,
rather than flipping it midway.
1 year ago
gibbz00
3a0892f793
Exclude config no_op bindings in command palette.
1 year ago
gibbz00
39773e48d3
Remove superfluous command description pruning for keymap infobox:
...
Exist under the wrong (possibly just outdated) assumption that command
descriptions are written with their `KeyTrie` name prefixed
1 year ago
gibbz00
d20c1632a7
`helix_term::keymap`: Remove one-liner solely used for a test.
1 year ago
gibbz00
f7df53c948
Make `Keymap` a tuple struct.
1 year ago
gibbz00
daea97a89f
keymap: Rename KeyTrie::Leaf -> KeyTrie::MapppableCommand
...
The variant Sequence is technically also a leaf.
1 year ago
gibbz00
a56af221d7
keymap: Derive `Default` for KeyTrieNode
1 year ago
dependabot[bot]
6deb0e4ef7
build(deps): bump once_cell from 1.17.2 to 1.18.0 ( #7248 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 year ago
dependabot[bot]
cd01dc886a
build(deps): bump libc from 0.2.144 to 0.2.145 ( #7244 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 year ago
Alex Vinyals
a2b8cfdb8c
feat(core): add plaintext matching fallback to tree-sitter matching ( #4288 )
1 year ago
Michael Davis
428d33ab50
Exit gracefully on termination signals ( #7236 )
1 year ago
Alex Vinyals
d5707a4696
feat(commands): allows cycling option values at runtime ( #4411 )
1 year ago
Ethan Wilkes
3334e7e4b2
fixed repeat_last_motion extends selection ( #7159 )
1 year ago
Matthew Toohey
207829eefe
Fix off-by-one in select symbol references ( #7132 )
1 year ago
Poliorcetics
8e2660b5cc
Update diagnostics correctly on LSP exit ( #7111 )
...
* chore: avoid format! call with argument when useless
* feat: also clear diagnostics for unopened documents when exiting an LSP
* feat: we already worked on `self.editor.diagnostics` no need to redo the checks
2 years ago
Szabin
70e4cdbd8e
Add command to merge non-consecutive ranges ( #7053 )
...
* Add command for merging non-consecutive ranges
* Add `merge_selections` command to book
* Simplify `merge_ranges`
Heeded the advice of @the-mikedavis to stop iterating over all ranges and simply merge the first and the last range, as the invariants of `Selection` guarantee that the list of ranges is always sorted and never empty.
* Clarify doc comment of `merge_ranges`
2 years ago
Philipp Mildenberger
2a512f7c48
Rebase cleanup/fixes and use lsp::CompletionItem in item_to_transaction directly
2 years ago
Philipp Mildenberger
f45bbf165e
Apply all review suggestions (doc_id -> id, error message, unnecessary if)
...
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
2 years ago
Philipp Mildenberger
2b746ea6fa
Some minor clarity/cosmetic improvements
...
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
2 years ago
Philipp Mildenberger
39b9a4bba2
Add function `Editor::language_server_by_id` and refactor/simplify related code, also don't 'crash' in completion menu if language_server somehow disappeared
2 years ago
Philipp Mildenberger
3e4bac1d96
Fix lsp_restart across multiple different document scopes (language servers weren't restarted, if not of the same scope id), and fix some smaller rebase issues
2 years ago
Philipp Mildenberger
93fd79a949
Remove offset_encoding in CodeActionOrCommandItem, as it can be retrieved on demand
2 years ago
Philipp Mildenberger
ff26208427
Filter language servers also by capabilities in `doc.language_servers_with_feature`
...
* Add `helix_lsp::client::Client::supports_feature(&self, LanguageServerFeature)`
* Extend `doc.language_servers_with_feature` to use this method as filter as well
* Add macro `language_server_with_feature!` to reduce boilerplate for non-mergeable language server requests (like goto-definition)
* Refactored most of the `find_map` code to use the either the macro or filter directly via `doc.language_servers_with_feature`
2 years ago
Philipp Mildenberger
451fe528bb
Filter out already seen language servers in requests that can be sent to multiple language servers (code-action, completion, symbol pickers)
2 years ago
Philipp Mildenberger
8ab6d7be5e
Use let else instead of variable and fix some error messages
...
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
2 years ago
Philipp Mildenberger
1d5d5dab47
Remove offset_encoding in CompletionItem
2 years ago
Philipp Mildenberger
2eeac10755
Refactor doc language servers to a HashMap, and the config to use a Vec to retain order
2 years ago
Philipp Mildenberger
b1199c552b
Remove symbol picker is_empty check
2 years ago
Philipp Mildenberger
58c913ce45
Simplify 'lsp_stop' command
2 years ago
Philipp Mildenberger
7d20740b5b
Fix docgen and lsp-stop documentation
2 years ago
Philipp Mildenberger
60a6af1fea
Remove boilerplate in the goto methods by generically composing functions
2 years ago
Philipp Mildenberger
1122928c2a
Add method doc.supports_language_server for better readability
2 years ago
Philipp Mildenberger
76b5cab524
Refactored doc.language_servers and doc.language_servers_with_feature to return an iterator and refactor LanguageServerFeature handling to a HashMap (language server name maps to features)
...
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
2 years ago
Philipp Mildenberger
0637691eb1
Use DoubleEndedIterator instead of collect to Vec for reversing
...
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
2 years ago
Philipp Mildenberger
dd2f74794a
Fix error messages when no language server is available
...
Co-authored-by: Skyler Hawthorne <skyler@dead10ck.com>
2 years ago
Philipp Mildenberger
f9b08656f4
Fix sorting issues of the editor wide diagnostics and apply diagnostics related review suggestions
...
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
2 years ago
Philipp Mildenberger
b6c60beb2d
Remove unnecessary completion support check (likely an artifact)
2 years ago
Philipp Mildenberger
44b2b40190
Fix issue with ltex-ls, filtering params is not what we want here
2 years ago
Philipp Mildenberger
05583f8cc9
Fix hardcoded offset_encoding
2 years ago
Philipp Mildenberger
74e21e1b25
Fix some lints/docgen hints
2 years ago
Philipp Mildenberger
7d4f7eb4bd
Fix 'WorkspaceConfiguration' request with empty configuration section strings
2 years ago