Commit Graph

2002 Commits (29638babea410d6d8397b02e6a826de0076a69c0)

Author SHA1 Message Date
spectre256 d8b7232a47
Add yank_joined command (#7195)
Resolves issue #6888 by adding a command to join all selections and yank
them to the specified register. The typed command takes an argument as
the separator to use when joining the selections.
1 year ago
A-Walrus 4d8c9a394e
Preview scratch buffers in jumplist picker (#7331) 1 year ago
Zisulin Morbrot fbd22afe29
Add rl and rla aliasses for reload and reload-all commands (#7158) 1 year ago
Robert 015c079acc
Add reverse_selection_contents (#7329) 1 year ago
Philipp Mildenberger 2a11fb485d
Fix underflow when repeating a completion that has a negative shift position (#7322) 1 year ago
0xHiro / ヒロ 8c6eb88c6a
fix: add file argument in help text (#7307) 2 years ago
Luca Schlecker dbd248fdfa add config option for instant completion entry preview (defaulting to true).
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2 years ago
spectre256 00b152facd
Add register statusline element (#7222) 2 years ago
Alex 993c68ad6f
Auto indent on `insert_at_line_start` (#5837) 2 years ago
Michael Davis d4427125eb
Bail if no language servers support workspace symbols (#7286) 2 years ago
vwkd 352d1574a6
add move_prev_long_word_end and extend_prev_long_word_end (#6905) 2 years 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.
2 years 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.)
2 years ago
Alex Vinyals 204bac1706
commands(toggle): use pattern matching on the Value enum (#7240) 2 years ago
gibbz00 9926c2d292 Remove Keymap(KeyTrie) and simply use KeyTrie. 2 years 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.
2 years ago
gibbz00 eda4c79f2f Remove pub keymap.name();
`keymap.name` is only used internally.
2 years 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.
2 years 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.
2 years ago
gibbz00 3a0892f793 Exclude config no_op bindings in command palette. 2 years 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
2 years ago
gibbz00 d20c1632a7 `helix_term::keymap`: Remove one-liner solely used for a test. 2 years ago
gibbz00 f7df53c948 Make `Keymap` a tuple struct. 2 years ago
gibbz00 daea97a89f keymap: Rename KeyTrie::Leaf -> KeyTrie::MapppableCommand
The variant Sequence is technically also a leaf.
2 years ago
gibbz00 a56af221d7 keymap: Derive `Default` for KeyTrieNode 2 years ago
Alex Vinyals a2b8cfdb8c
feat(core): add plaintext matching fallback to tree-sitter matching (#4288) 2 years ago
Michael Davis 428d33ab50
Exit gracefully on termination signals (#7236) 2 years ago
Alex Vinyals d5707a4696
feat(commands): allows cycling option values at runtime (#4411) 2 years ago
Ethan Wilkes 3334e7e4b2
fixed repeat_last_motion extends selection (#7159) 2 years ago
Matthew Toohey 207829eefe
Fix off-by-one in select symbol references (#7132) 2 years 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