aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/compositor.rs
Commit message (Collapse)AuthorAge
* Add custom event type replacing crossterm's Event (#3169)Gokul Soumya2022-08-09
| | | | | | | | | | Ported over from 61365dfbf3 in the `gui` branch. This will allow adding our own events, most notably an idle timer event (useful for adding debounced input in [dynamic pickers][1] used by interactive global search and workspace symbols). [1]: https://github.com/helix-editor/helix/pull/3110 Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Add lsp signature help (#1755)Gokul Soumya2022-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add lsp signature help * Do not move signature help popup on multiple triggers * Highlight current parameter in signature help * Auto close signature help * Position signature help above to not block completion * Update signature help on backspace/insert mode delete * Add lsp.auto-signature-help config option * Add serde default annotation for LspConfig * Show LSP inactive message only if signature help is invoked manually * Do not assume valid signature help response from LSP Malformed LSP responses are common, and these should not crash the editor. * Check signature help capability before sending request * Reuse Open enum for PositionBias in popup * Close signature popup and exit insert mode on escape * Add config to control signature help docs display * Use new Margin api in signature help * Invoke signature help on changing to insert mode
* use test terminal backend for integration testsSkyler Hawthorne2022-06-19
|
* Add more context; Editor::open doesn't need to own pathSkyler Hawthorne2022-06-19
|
* Make regex_prompt directly call cx.push_layerBlaž Hrastnik2022-03-28
|
* Fix bug with auto replacing components in compositor (#1711)Gokul Soumya2022-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix bug with auto replacing components in compositor This was last known to be working with 5995568c at the time of commit, but now doesn't work with latest rust stable. The issue probably stems from using std::any::type_name() for finding a component in the compositor, for which the docs explicitly warn against considering it as a unique identifier for types. `replace_or_push()` takes a boxed `Component` and passes it to `find_id()` which compares this with a bare Component. `type_name()` returns `Box<T>` for the former and `T` for latter and we have a false negative. This has been solved by using a generics instead of trait objects to pass in a `T: Component` and then use it for comparison. I'm not exactly sure how this worked fine at the time of commit of 5995568c; maybe the internal implementation of `type_name()` changed to properly indicate indirection with Box. * Do not compare by type name in compositor find_id
* 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
* Prevent multiple code action popupsGokul Soumya2022-02-08
|
* 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
* ui: popup: Don't allow scrolling past the end of contentBlaž Hrastnik2021-12-10
|
* Only use a single documentation popup (#1241)Kirawi2021-12-08
|
* Simplify compositor.findBlaž Hrastnik2021-11-18
|
* Fix doctest broken on 2021 editionBlaž Hrastnik2021-10-22
|
* Prevent LSP Messages from displaying when a prompt is presented (#824)Leoi Hung Kin2021-10-15
| | | | | * Prevent LSP Messages from displaying when a prompt is presented * use match guard
* 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
* Add ctrl-z to suspendIvan Tham2021-08-03
|
* Resume last pickerIvan Tham2021-07-22
| | | | Inspired by space ' in doom emacs.
* Fix unused `Result` warnings in helix-term.Nathan Vegdahl2021-07-02
|
* 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.
* Add some async job infrastructure.Joe Neeman2021-06-30
|
* Fix AnyComponent testBlaž 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>
* Add progress spinners to status linewojciechkepka2021-06-21
|
* Fix doc warningsIvan Tham2021-06-20
|
* Add cursor kind to separate hidden cursor from posIvan Tham2021-06-15
| | | | | Now IME cursor position should be correct since we can still set cursor position without drawing the cursor.
* Disable failing doctestBlaž Hrastnik2021-06-07
|
* Clippy lintBlaž Hrastnik2021-06-03
|
* Fix split sizes getting out of sync with the terminal size, refs #69Blaž Hrastnik2021-06-03
|
* autoresize terminal in compositor renderJan Hrastnik2021-06-02
|
* Simplify the compositor callback.Blaž Hrastnik2021-05-09
|
* Inline tui as helix-tui fork.Blaž Hrastnik2021-05-09
| | | | | We only rely on some of the rendering primitives and implement our Cursive-style compositor on top.
* Tokio migration.Blaž Hrastnik2021-05-06
|
* ui: Improve completion state handling.Blaž Hrastnik2021-04-05
|
* Filter the completion menu based on text entered.Blaž Hrastnik2021-03-27
|
* wip: Async async. Delay response handling with a callback.Blaž Hrastnik2021-03-26
|
* Merge some imports.Blaž Hrastnik2021-03-22
|
* minor: TODO comment cleanupBlaž Hrastnik2021-03-16
|
* ui: popup: scroll documentation popups with c-u/c-d.Blaž Hrastnik2021-03-08
|
* ui: Move terminal into compositor, redo required_size hints.Blaž Hrastnik2021-03-08
|
* ui: Share popup code with menu.Blaž Hrastnik2021-03-02
| | | | Menu is now just wrapped in a popup.
* ui: Make editor more resilient about being shrunk too small.Blaž Hrastnik2021-03-01
|
* popup: wip work on completion popupsBlaž Hrastnik2021-02-09
|
* Refactoring: move language_servers into Editor, proper load for doc.Blaž Hrastnik2021-01-21
|
* Retrieve completion options on ctrl-x.Blaž Hrastnik2020-12-23
|
* ui: buffer picker on ctrl-bBlaž Hrastnik2020-12-21
|
* prompt: make the callback a FnOnce.Blaž Hrastnik2020-12-15
|
* Fix cursor positioning.Blaž Hrastnik2020-12-13
|
* wip: Move to new rendering structure.Blaž Hrastnik2020-12-13
|
* wip: Getting the new prompt to render in a new layer.Blaž Hrastnik2020-12-11
|