aboutsummaryrefslogtreecommitdiff
path: root/helix-term
Commit message (Collapse)AuthorAge
...
* Move FilePicker::render from Component impl to normal implGokul Soumya2023-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merges the code for the Picker and FilePicker into a single Picker that can show a file preview if a preview callback is provided. This change was mainly made to facilitate refactoring out a simple skeleton of a picker that does not do any filtering to be reused in a normal Picker and a DynamicPicker (see #5714; in particular [mikes-comment] and [gokuls-comment]). The crux of the issue is that a picker maintains a list of predefined options (eg. list of files in the directory) and (re-)filters them every time the picker prompt changes, while a dynamic picker (eg. interactive global search, #4687) recalculates the full list of options on every prompt change. Using a filtering picker to drive a dynamic picker hence does duplicate work of filtering thousands of matches for no reason. It could also cause problems like interfering with the regex pattern in the global search. I tried to directly extract a PickerBase to be reused in Picker and FilePicker and DynamicPicker, but the problem is that DynamicPicker is actually a DynamicFilePicker (i.e. it can preview file contents) which means we would need PickerBase, Picker, FilePicker, DynamicPicker and DynamicFilePicker and then another way of sharing the previewing code between a FilePicker and a DynamicFilePicker. By merging Picker and FilePicker into Picker, we only need PickerBase, Picker and DynamicPicker. [gokuls-comment]: https://github.com/helix-editor/helix/issues/5714#issuecomment-1410949578 [mikes-comment]: https://github.com/helix-editor/helix/issues/5714#issuecomment-1407451963
* Add yank_joined command (#7195)spectre2562023-06-16
| | | | | 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.
* Add config for default line ending (#5621)Alex2023-06-16
|
* Preview scratch buffers in jumplist picker (#7331)A-Walrus2023-06-13
|
* Add rl and rla aliasses for reload and reload-all commands (#7158)Zisulin Morbrot2023-06-13
|
* Add reverse_selection_contents (#7329)Robert2023-06-13
|
* build(deps): bump libc from 0.2.145 to 0.2.146 (#7327)dependabot[bot]2023-06-13
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump tempfile from 3.5.0 to 3.6.0 (#7326)dependabot[bot]2023-06-13
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix underflow when repeating a completion that has a negative shift position ↵Philipp Mildenberger2023-06-12
| | | | (#7322)
* fix: add file argument in help text (#7307)0xHiro / ヒロ2023-06-10
|
* add config option for instant completion entry preview (defaulting to true).Luca Schlecker2023-06-09
| | | | Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
* Add register statusline element (#7222)spectre2562023-06-08
|
* Auto indent on `insert_at_line_start` (#5837)Alex2023-06-08
|
* Bail if no language servers support workspace symbols (#7286)Michael Davis2023-06-08
|
* add move_prev_long_word_end and extend_prev_long_word_end (#6905)vwkd2023-06-07
|
* Propagate the count and register to command palette commandsMichael Davis2023-06-07
| | | | | | 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.
* Persist register selection in pending keymapsMichael Davis2023-06-07
| | | | | | | | | | | | | | 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.)
* commands(toggle): use pattern matching on the Value enum (#7240)Alex Vinyals2023-06-07
|
* Remove Keymap(KeyTrie) and simply use KeyTrie.gibbz002023-06-07
|
* Move `keymap.reverse_keymap()` to `Keytrie`:gibbz002023-06-07
| | | | The plan is let `Keymaps` simply store `KeyTrie`s, as the `Keymap(Keytrie)` wrapping serves little to no purpose.
* Remove pub keymap.name();gibbz002023-06-07
| | | | `keymap.name` is only used internally.
* Place `Info::from_keymap()` contents in `keymap.infobox()`:gibbz002023-06-07
| | | | | This makes it easier later control the order in which the key events are presented.
* Keymap infobox: Idiomatic body tuple.gibbz002023-06-07
| | | | | | | 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.
* Exclude config no_op bindings in command palette.gibbz002023-06-07
|
* Remove superfluous command description pruning for keymap infobox:gibbz002023-06-07
| | | | | Exist under the wrong (possibly just outdated) assumption that command descriptions are written with their `KeyTrie` name prefixed
* `helix_term::keymap`: Remove one-liner solely used for a test.gibbz002023-06-07
|
* Make `Keymap` a tuple struct.gibbz002023-06-07
|
* keymap: Rename KeyTrie::Leaf -> KeyTrie::MapppableCommandgibbz002023-06-07
| | | | The variant Sequence is technically also a leaf.
* keymap: Derive `Default` for KeyTrieNodegibbz002023-06-07
|
* build(deps): bump once_cell from 1.17.2 to 1.18.0 (#7248)dependabot[bot]2023-06-06
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump libc from 0.2.144 to 0.2.145 (#7244)dependabot[bot]2023-06-06
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(core): add plaintext matching fallback to tree-sitter matching (#4288)Alex Vinyals2023-06-05
|
* Exit gracefully on termination signals (#7236)Michael Davis2023-06-05
|
* feat(commands): allows cycling option values at runtime (#4411)Alex Vinyals2023-06-05
|
* fixed repeat_last_motion extends selection (#7159)Ethan Wilkes2023-05-28
|
* Fix off-by-one in select symbol references (#7132)Matthew Toohey2023-05-25
|
* Update diagnostics correctly on LSP exit (#7111)Poliorcetics2023-05-23
| | | | | | | * 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
* Add command to merge non-consecutive ranges (#7053)Szabin2023-05-19
| | | | | | | | | | | * 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`
* Rebase cleanup/fixes and use lsp::CompletionItem in item_to_transaction directlyPhilipp Mildenberger2023-05-18
|
* Apply all review suggestions (doc_id -> id, error message, unnecessary if)Philipp Mildenberger2023-05-18
| | | | Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
* Some minor clarity/cosmetic improvementsPhilipp Mildenberger2023-05-18
| | | | Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
* Add function `Editor::language_server_by_id` and refactor/simplify related ↵Philipp Mildenberger2023-05-18
| | | | code, also don't 'crash' in completion menu if language_server somehow disappeared
* Fix lsp_restart across multiple different document scopes (language servers ↵Philipp Mildenberger2023-05-18
| | | | weren't restarted, if not of the same scope id), and fix some smaller rebase issues
* Remove offset_encoding in CodeActionOrCommandItem, as it can be retrieved on ↵Philipp Mildenberger2023-05-18
| | | | demand
* Filter language servers also by capabilities in ↵Philipp Mildenberger2023-05-18
| | | | | | | | | `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`
* Filter out already seen language servers in requests that can be sent to ↵Philipp Mildenberger2023-05-18
| | | | multiple language servers (code-action, completion, symbol pickers)
* Use let else instead of variable and fix some error messagesPhilipp Mildenberger2023-05-18
| | | | Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
* Remove offset_encoding in CompletionItemPhilipp Mildenberger2023-05-18
|
* Refactor doc language servers to a HashMap, and the config to use a Vec to ↵Philipp Mildenberger2023-05-18
| | | | retain order
* Remove symbol picker is_empty checkPhilipp Mildenberger2023-05-18
|