summaryrefslogtreecommitdiff
path: root/helix-term/src/ui/menu.rs
Commit message (Collapse)AuthorAge
* ignore Enter keypress when menu has no selection (#1704)Michael Davis2022-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ignore Enter keypress when menu has no selection supersedes #1622 Builds on the work in #1285. I want to allow Enter to create a newline when there is no selection in the autocomplete menu. This occurs somewhat often when using LSP autocomplete in Elixir which uses `do/end` blocks (and I set the autocomplete menu delay to 0 which exacerbates the problem): ```elixir defmodule MyModule do def do_foo(x) do x end def other_function(y) do| end ``` Here the cursor is `|` in insert mode. The LSP suggests `do_foo` but I want to create a newline. Hitting Enter currently closes the menu, so I end up having to hit Enter twice when the module contains any local with a `do` prefix, which can be inconsistent. With this change, we ignore the Enter keypress to end up creating the newline in this case. * pop compositor layer when ignoring Enter keypress * move closing function out of consumed event result closure * explicitly label close_fn as an 'Option<Callback>'
* Close some popups automatically (#1285)Bram2022-02-23
| | | | | | | | | | | | | | | | | | | * Add Event::Used to use event callback without consuming * Close popup if contents ignored event * collect event results before executing callbacks * don't add new result variant, use Ignored(..) instead * break in match cases * Make auto_close configurable * fix merge * auto close hover popups * fix formatting
* ui: menu: Don't allocate scrollbar space if options fitBlaž Hrastnik2022-01-31
|
* ui: Only render menu scrollbar if it doesn't fitBlaž Hrastnik2022-01-31
|
* Render code actions as a menu, allow adding padding to popupBlaž Hrastnik2022-01-31
|
* Fix panics when resizing (#1408)Mathis Brossier2022-01-16
| | | | | | | | | | | * Change buffer.get & buffer.get_mut to return Option, Implement Trait Index & IndexMut to panic * Prevent FilePicker from drawing outside buffer (rust panics) * apply suggestion * add function in_bounds to avoid useless calculations Co-authored-by: mathis <mathis.brossier@universite-paris-saclay.fr>
* Macros (#1234)Omnikar2021-12-12
| | | | | | | | | | | | | | | | | | | | | | | | * Macros WIP `helix_term::compositor::Callback` changed to take a `&mut Context` as a parameter for use by `play_macro` * Default to `@` register for macros * Import `KeyEvent` * Special-case shift-tab -> backtab in `KeyEvent` conversion * Move key recording to the compositor * Add comment * Add persistent display of macro recording status When macro recording is active, the pending keys display will be shifted 3 characters left, and the register being recorded to will be displayed between brackets — e.g., `[@]` — right of the pending keys display. * Fix/add documentation
* fix: Normalize backtab into shift-tabBlaž Hrastnik2021-12-06
| | | | Fixes #1150
* fix: shift-tab mappings broken after efc2b4c7Blaž Hrastnik2021-11-12
|
* Refactor keyevent handling using key, ctrl macros (#1058)Gokul Soumya2021-11-10
| | | | | | Adds ctrl! and alt! macros (which existed before the big keymap refactor) and uses them in event handling of Components. Note that this converts crossterm's KeyEvent to our own KeyEvent on each invocation of handle_event in Components.
* move_up will select last item, when no item selected (#907)CossonLeo2021-10-26
|
* Add c-j c-k to menu keymap for move_up move_down (#908)CossonLeo2021-10-26
|
* Update to rust 1.56 + 2021 editionBlaž Hrastnik2021-10-22
|
* fix: If backspacing past the start offset, cancel completionBlaž Hrastnik2021-10-16
| | | | Refs #822
* ui: Trigger recalculate_size per popup render so contents can readjustBlaž Hrastnik2021-09-13
|
* Add ui.menu text style (#664)CossonLeo2021-08-28
| | | | | | | | | * add menu text style * add ui.menu.text ui.info ui.info.text to book * change ui.menu.text to ui.menu * fix book's ui.menu
* Refactor new Rect construction (#575)Gokul Soumya2021-08-21
| | | | | | | | | | * Refactor new Rect construction Introduces methods that can be chained to construct new Rects out of pre-existing ones * Clamp x and y to edges in Rect chop methods * Rename Rect clipping functions
* Show file preview in split pane in fuzzy finder (#534)Gokul Soumya2021-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add preview pane for fuzzy finder * Fix picker preview lag by caching * Add picker preview for document symbols * Cache picker preview per document instead of view * Use line instead of range for preview doc * Add picker preview for buffer picker * Fix render bug and refactor picker * Refactor picker preview rendering * Split picker and preview and compose The current selected item is cloned on every event, which is undesirable * Refactor out clones in previewed picker * Retrieve doc from editor if possible in filepicker * Disable syntax highlight for picker preview Files already loaded in memory have syntax highlighting enabled * Ignore directory symlinks in file picker * Cleanup unnecessary pubs and derives * Remove unnecessary highlight from file picker * Reorganize buffer rendering * Use normal picker for code actions * Remove unnecessary generics and trait impls * Remove prepare_for_render and make render mutable * Skip picker preview if screen small, less padding
* ui: completion: Use sort_text to sort the completionsBlaž Hrastnik2021-08-11
|
* ui: menu: Allow wrapping around on ctrl-p/shift tabBlaž Hrastnik2021-08-06
|
* fix: ui/menu: Don't allow scrolling past the end of completionBlaž Hrastnik2021-07-23
| | | | Fixes #472
* Simplify ui/menu.rsBlaž Hrastnik2021-07-23
|
* Calculate completion popup sizingBlaž Hrastnik2021-07-19
| | | | Fixes #220
* Fix unused variable, parameter, and `mut` warnings in helix-term.Nathan Vegdahl2021-07-02
|
* Remove #[allow(unused)] from helix-term, and fix unused imports.Nathan Vegdahl2021-07-02
| | | | Lots of other warning still left. Will address in subsequent commits.
* Address nightly clippy warningsBlaž Hrastnik2021-06-27
|
* reverse the dependency between helix-tui and helix-view (#366)Keith Simmons2021-06-25
| | | | | | | | | * reverse the dependency between helix-tui and helix-view by moving a fiew types to view * fix tests * clippy and format fixes Co-authored-by: Keith Simmons <keithsim@microsoft.com>
* Fix Shift-Tab for moving upwards in menuKevin Sjöberg2021-06-09
|
* ui: Menu rendering adjustmentsBlaž Hrastnik2021-05-27
|
* Display more data in completion popups.Blaž Hrastnik2021-05-22
|
* Drop some useless imports.Blaž Hrastnik2021-05-09
|
* Simplify the compositor callback.Blaž Hrastnik2021-05-09
|
* Define text color (mostly) in theme.toml.Blaž Hrastnik2021-05-07
|
* clippy lintBlaž Hrastnik2021-05-06
|
* ui: Improve completion state handling.Blaž Hrastnik2021-04-05
|
* clippy lintBlaž Hrastnik2021-03-31
|
* Filter the completion menu based on text entered.Blaž Hrastnik2021-03-27
|
* Fix crash if pressing enter when nothing selected in completion.Blaž Hrastnik2021-03-24
|
* Merge some imports.Blaž Hrastnik2021-03-22
|
* syntax: Reuse parser instances. highlight_iter() no longer needs &mut.Blaž Hrastnik2021-03-12
|
* ui: menu: Adjust scroll via required_size area caching.Blaž Hrastnik2021-03-08
|
* ui: Move terminal into compositor, redo required_size hints.Blaž Hrastnik2021-03-08
|
* ui: Scrollable popup menu, with scrollbar indicator.Blaž Hrastnik2021-03-03
|
* ui: Share popup code with menu.Blaž Hrastnik2021-03-02
| | | | Menu is now just wrapped in a popup.
* popup: wip work on completion popupsBlaž Hrastnik2021-02-09