summaryrefslogtreecommitdiff
path: root/helix-term/src/ui/editor.rs
Commit message (Collapse)AuthorAge
* Make repeat operator work with completion edits (#1640)Mateusz S. Szczygieł2022-03-01
| | | | | | | | | | | * add basic completion replay * use transaction as the last completion * completion replay only on trigger position * cache changes in CompletionAction Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Highlight matching text in file picker suggestions (#1635)Ludwig Stecher2022-03-01
| | | | | | | * Highlight matching text in file picker suggestions * Remove cache, specialize highlighting code * Fix outdated comments
* Show infobox to hint textobjects with `mi` and `ma` (#1686)Daniel S Poulin2022-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Show infobox to hint textobjects with `mi` and `ma` * Add note to infobox than any pair of characters will work too The wording could probably be a little more clear, but I wanted to keep it short but still accurate. * Don't allocate a vec for the static help text * Fix bug where `mi<esc>` would swallow next input and persist infobox * Better help text for arbitrary pair matching in textobject selection * Add way to add fake pending key data below status, use with `mi`/`ma` This is a bit hacky as it makes use of global state which will end up managed in multiple places, but has precedent in the way autoinfo works. There should probably be a bigger refactor to handle this kind of state better. * Return early on anything other than `mi` and `ma` for autoinfo * Remove "ascii" from help text with `mi` and `ma` * Update helix-term/src/ui/editor.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* 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
* feat(commands): command palette (#1400)Matouš Dzivjak2022-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(commands): command palette Add new command to display command pallete that can be used to discover and execute available commands. Fixes: https://github.com/helix-editor/helix/issues/559 * Make picker take the whole context, not just editor * Bind command pallete * Typable commands also in the palette * Show key bindings for commands * Fix tests, small refactor * Refactor keymap mapping, fix typo * Ignore sequence key bindings for now * Apply suggestions * Fix lint issues in tests * Fix after rebase Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Merge remote-tracking branch 'origin/master' into debugBlaž Hrastnik2022-02-13
|\
| * Show infobox with register contentsGokul Soumya2022-02-10
| |
| * Stop collecting highlight_iter events then turning back into iterBlaž Hrastnik2022-01-30
| |
| * Remove some unnecessary clippy tagsBlaž Hrastnik2022-01-30
| |
| * Automatically commit changes to history if not in insert modeBlaž Hrastnik2022-01-30
| | | | | | | | Fixes #1500
| * Merge pull request #1154 from sudormrfbin/cursor-shape-newBlaž Hrastnik2022-01-23
| |\ | | | | | | Change cursor shape on mode change
| | * Merge branch 'master' into cursor-shape-newGokul Soumya2022-01-06
| | |\
| | * | Manually draw all block cursorsGokul Soumya2021-12-23
| | | |
| | * | Merge branch 'master' into cursor-shape-newGokul Soumya2021-12-18
| | |\ \
| | * | | Remove ui.cursor.primary and hashmap lookupsGokul Soumya2021-12-18
| | | | |
| | * | | Change cursor shape on mode changeGokul Soumya2021-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | Fixes #323. Due to terminal limitations we can only change the shape of the primary cursor.
| * | | | Slicing micro-optimizationBlaž Hrastnik2022-01-23
| | | | |
| * | | | Speed up ensure_next_boundary during renderBlaž Hrastnik2022-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code: let start = ensure_grapheme_boundary_next(text, text.byte_to_char(start)); let end = ensure_grapheme_boundary_next(text, text.byte_to_char(end)); Would convert byte to char index, but then internally immediately convert back to byte index, operate on it, then convert it to char index. This change reduces the amount of time spent in ensure_grapheme_boundary from 29% to 2%.
| * | | | syntax: Split parsing and highlightingBlaž Hrastnik2022-01-23
| | | | |
| * | | | 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>
| * | | switch redundant current! usage to doc! (#1416)Kirawi2022-01-03
| | | |
| * | | feat(ui): file encoding in statusline (#1355)Matouš Dzivjak2021-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(ui): file encoding in statusline Display file encoding in statusline if the encoding isn't UTF-8. * Re-export encoding_rs from core From there it can be imported by other mods that rely on it.
| * | | Truncate the start of file paths in the StatusLine (#1351)BB2021-12-25
| | |/ | |/| | | | | | | | | | | | | | | | * Truncate the start of file paths in the StatusLine * cargo fmt Co-authored-by: Bódi Balázs <97936@4ig.hu>
| * | Add ui.gutter to theme all gutters (i.e. set bg)Blaž Hrastnik2021-12-13
| | |
| * | 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
| * | feat: Make it possible to keybind `TypableCommands` (#1169)Oskar Nehlin2021-12-04
| | | | | | | | | | | | | | | | | | | | | * Make TypableCommands mappable * Fix pr comments * Update PartialEq implementation
| * | Bump rust to 1.57, fix new lint failuresBlaž Hrastnik2021-12-03
| | |
| * | Revert "Improve dedent behavior, make kill_to_line_end behave like emacs ↵Blaž Hrastnik2021-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#1173)" 1. pressing o on a line with no indentation will open a new line as expected, but esc will then delete the line altogether 2. the kill_line behavior happens after insert mode changes are already commited to history, and the change isn't commited. pressing u after this will break highlighting & undo history This reverts commit c08d2fae587a0a5dd2a1e2e44a1f385d142c9d59.
| * | ui: Optimize tree-sitter style lookupsBlaž Hrastnik2021-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | Tree sitter returns an index referring to the position of the scope in the scopes array. We can use that same index to avoid a hashmap lookup and instead store the styles in an array. This currently stores the styles in both a map and an array because the UI still uses hashmap lookups, but it's a reasonable tradeoff.
| * | ui: Only calculate span styling when it's actually in boundsBlaž Hrastnik2021-12-01
| | |
| * | Improve dedent behavior, make kill_to_line_end behave like emacs (#1173)WindSoilder2021-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * restore indent when press esc right after open a new line * add comment for restore_indent * fix, and make kill to line end behaves like emacs * update comment * fix comment * adjust cancel restore_indent situation * check esc logic in mode transaction * improve comment * add more check for dedent * update comment * use matches to check for last_cmd * no need to introduct CommandFun type
* | | dap: Highlight line of current stack frameBlaž Hrastnik2021-12-01
| | |
* | | Remove another parameter from render_viewBlaž Hrastnik2021-11-30
| | |
* | | dap: Extract diagnostics gutter into gutters.rsBlaž Hrastnik2021-11-30
| | |
* | | dap: Rewrite breakpoints so that there's a single set maintainedBlaž Hrastnik2021-11-30
| | |
* | | Pass editor into render_view & gutter, reducing the number of paramsBlaž Hrastnik2021-11-30
| | |
* | | Merge remote-tracking branch 'origin/master' into debugBlaž Hrastnik2021-11-30
|\| |
| * | Extract gutters into helix-viewBlaž Hrastnik2021-11-29
| | |
| * | Reuse a text buffer for each gutter lineBlaž Hrastnik2021-11-29
| | |
| * | Tie the GutterFn lifetime to the doc so we can avoid cloning dataBlaž Hrastnik2021-11-29
| | |
| * | Gutter functionsBlaž Hrastnik2021-11-29
| |/
| * Jump to end char of surrounding pair from any cursor pos (#1121)Martin Junghanns2021-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Jump to end char of surrounding pair from any cursor pos * Separate bracket matching into exact and fuzzy search * Add constants for bracket chars * Abort early if char under cursor is not a bracket * Simplify bracket char validation * Refactor node search and unify find methods * Remove bracket constants
* | dap: Toggle breakpoints without changing selection, fix offset calcBlaž Hrastnik2021-11-22
| |
* | ui: Since diagnostics are sorted, we can use binary searchBlaž Hrastnik2021-11-22
| |
* | dap: Modify breakpoints in place with no cloningBlaž Hrastnik2021-11-22
| |
* | Merge remote-tracking branch 'origin/master' into debugBlaž Hrastnik2021-11-21
|\|
| * ui: Increase diagnostics sideline width to 100 max and wrap if neededBlaž Hrastnik2021-11-16
| |
| * Implement "Goto last modification" command (#1067)ath32021-11-14
| |
| * helix-term/editor: display scratch buffer name in status barCole Helbling2021-11-14
| |
| * Allow keys to be mapped to sequences of commands (#589)Omnikar2021-11-11
| | | | | | | | | | | | | | | | | | * Allow keys to be mapped to sequences of commands * Handle `Sequence` at the start of `Keymap::get` * Use `"[Multiple commands]"` as command sequence doc * Add command sequence example to `remapping.md`