aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui/editor.rs
Commit message (Collapse)AuthorAge
* 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
* 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
* 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`
* Allow infoboxes to be disabled (#972)Omnikar2021-11-05
| | | | | | | | | | | * Allow infoboxes to be disabled * Document `infoboxes` default value * Rename `infoboxes` to `auto_info` * Document `auto-info` * Fix incomplete rename
* Replace documents SlotMap with BTreeMapBlaž Hrastnik2021-11-04
|
* Extract a clear_completion methodBlaž Hrastnik2021-10-29
|
* Improve statusline (#916)Omnikar2021-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Improve statusline * Change diagnostic count display to show counts of individual diagnostic types next to their corresponding gutter dots. * Add selection count to the statusline. * Do not display info or hint count in statusline * Reduce padding Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Reduce padding Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Use `Span::styled` * Reduce padding * Use `Style::patch` * Remove unnecessary `Cow` creation Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* fix warningBlaž Hrastnik2021-10-25
|
* completion: fully revert state before apply & insertText common prefixBlaž Hrastnik2021-10-25
|
* Mark a few functions as `const`Blaž Hrastnik2021-10-24
|
* fix: Don't crash on empty completion, don't retrigger on closeBlaž Hrastnik2021-10-07
|
* Filter the initial completionBlaž Hrastnik2021-10-05
|
* Experiment with autocompletion on idleBlaž Hrastnik2021-10-05
|
* idle timer wipBlaž Hrastnik2021-10-05
|
* syntax: Properly handle injection-regex for language injectionsBlaž Hrastnik2021-09-16
|
* Regex prompts should have a history with a specifiable registerBlaž Hrastnik2021-09-08
|
* Add a sticky mode for keymaps (#635)Gokul Soumya2021-09-05
|
* fix: use .cursor() instead of .headgbaranski2021-08-30
|
* fix: use head instead of anchor for relative linegbaranski2021-08-30
|
* Fix code indentation (#671)Omnikar2021-08-30
|
* fix: show current line number even if relative line is on (#656)Grzegorz Baranski2021-08-26
|
* better panic messages for when you're missing selection scopes (#608)Kirawi2021-08-22
|
* 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
* Fix clippy attrBlaž Hrastnik2021-08-19
|
* Avoid looking up ui.text per highlight rangeBlaž Hrastnik2021-08-19
|
* Extract view.inner_area(), simplify render_focused_view_elementsBlaž Hrastnik2021-08-19
|
* Refactor view.first_line/first_col into view.offset (Position)Blaž Hrastnik2021-08-19
|
* feat: relative numbers (#485)Grzegorz Baranski2021-08-16
| | | | | | | | | | | | | | | | | | | * feat(helix-view): configuring line-number * feat(helix-term): relative line numbers * feat(helix-term): passing editor::Config to render * fix(helix-view): remove LineNumber::None * feat(helix-term): rendering line-number according to configuration * fix(term): put calculating current line above line iteration * fix: add abs_diff function * deps: cargo update * fix: pass config argument
* 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
* Support primary clipboard (#548)Dmitry Sharshakov2021-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clipboard-none: add in-memory fallback buffer Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * view: add Wayland primary clipboard Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Format Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: copy to primary selection after mouse move stops Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: don't update primary selection if it is a single character Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: discard result of setting primary selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: add commands for interaction with primary clipboard Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * editor: implement primary selection copy/paste using commands Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: support xsel for primary selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: support xclip for primary selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: multiple cursor support for middle click paste Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * rename primary selection to primary clipboard in scope of PR Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: make middle click paste optional Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Format Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Update helix-term/src/ui/editor.rs * fix formatting Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * config: correct defaults if terminal prop is not set Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * refactor: merge clipboard and primary selection implementations Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Tidy up code Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * view: remove names for different clipboard/selection providers Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Update helix-view/src/clipboard.rs Co-authored-by: Gokul Soumya <gokulps15@gmail.com> * helix-view: tidy macros Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: refactor paste-replace commands Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: use new config for middle-click-paste Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: remove memory fallback for command and windows providers Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard-win: fix build Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: return empty string when primary clipboard is missing Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: fix errors in Windows build Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> Co-authored-by: Gokul Soumya <gokulps15@gmail.com>