aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui/editor.rs
Commit message (Collapse)AuthorAge
* helix-term: handle scrolling when mouse is enabled (#554)Dmitry Sharshakov2021-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * helix-term: handle scrolling when mouse is enabled Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: configure scrolling speed Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: use new config for scrolling Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * config: defaults for edtior config Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * config: add scroll-lines property Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: scroll hovered view Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: support inverted scrolling Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: remove duplicating code Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: do not focus view while scrolled Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: refactor mouse events and scrolling Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * simplify Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Appease clippyBlaž Hrastnik2021-08-10
|
* Only recalculate resize during rendering, this stops flashing on resizeBlaž Hrastnik2021-08-10
|
* fix small terminal size panic with info popup (#563)Kirawi2021-08-09
| | | | | | | * fix small terminal size panic with info popup * remove unused enumerator * fix subtraction overflow panic
* config: Rename [terminal] to [editor] and pass it into EditorBlaž Hrastnik2021-08-08
|
* mouse: Remove verify_screen_coords, refactor primary selection modificationBlaž Hrastnik2021-07-30
|
* Remove the jumpBlaž Hrastnik2021-07-30
|
* Mouse selection support (#509)Dmitry Sharshakov2021-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Initial mouse selection support Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Disable mouse event capture if editor crashes Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Translate screen coordinates to view position Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Select full lines by dragging on line numbers Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * editor: don't register dragging as a jump Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Count graphemes correctly Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Do not select lines when dragging on the line number bar Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Split out verify_screen_coords Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Do not iterate over the graphemes twice Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Switch view by clicking on it Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Add disable-mouse config option Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Support multiple selections with mouse Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Remove unnecessary check Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Refactor using match expression Co-authored-by: Gokul Soumya <gokulps15@gmail.com> Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Rename local variable Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Rename mouse option Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Refactor code Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Fix dragging selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Fix crash when clicking past last line Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Count characters better Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Remove comparison not needed anymore Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Validate coordinates before resolving position Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Tidy up references to editor tree Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Better way to determine line end and avoid overflow Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Fix for last line Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Add unit tests for text_pos_at_screen_coords Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-28
|\
| * Show pending keys in status line (#515)Gokul Soumya2021-07-28
| | | | | | | | | | * Show pending keys and counts in status line * Refactor pending key display
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-26
|\|
| * Allow multi key remappings in config file (#454)Gokul Soumya2021-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use tree like structure to store keymaps * Allow multi key keymaps in config file * Allow multi key keymaps in insert mode * Make keymap state self contained * Add keymap! macro for ergonomic declaration * Add descriptions for editor commands * Allow keymap! to take multiple keys * Restore infobox display * Fix keymap merging and add infobox titles * Fix and add tests for keymaps * Clean up comments and apply suggestions * Allow trailing commas in keymap! * Remove mode suffixes from keymaps * Preserve order of keys when showing infobox * Make command descriptions smaller * Strip infobox title prefix from items * Strip infobox title prefix from items
* | Collect some common patterns into methods on `Range`.Nathan Vegdahl2021-07-26
| |
* | Fix incorrect line hihglight when a selection is at the end of a line.Nathan Vegdahl2021-07-20
| |
* | Fixed primary cursor position calculation to use 1-width semantics.Nathan Vegdahl2021-07-19
| | | | | | | | | | This had a bunch of knock-on effects that were buggy, such as bracket match highlighting.
* | Properly fix `last_line` view calculation.Nathan Vegdahl2021-07-19
| | | | | | | | | | Turned out to be simpler than I thought. Didn't even need to change the other use-sites.
* | Fix last line number being drawn in the status bar.Nathan Vegdahl2021-07-19
| |
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-17
|\|
| * Injection Query Support (#430)Kirawi2021-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * wip * wip * fixed unsafe * fix clippy * move out reference variable * fmt * remove arc * change safety comment
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-06
|\|
| * Fix phantom lines in some CRLF files.Nathan Vegdahl2021-07-05
| | | | | | | | | | | | | | Fixes #415. The issue was that cursor highlighting wasn't extending to encompass the entire CRLF grapheme, and therefore ended up splitting it. This presumably was messing up other grapheme rendering as well, and this fixes that as well.
| * Fix rendering issues for infoboxIvan Tham2021-07-04
| |
| * Add infoboxIvan Tham2021-07-04
| |
* | Allow last line in file to lack a line break character.Nathan Vegdahl2021-07-02
| |
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan 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 `Range` methods for various kinds of validation.Nathan Vegdahl2021-07-01
|/
* Add some async job infrastructure.Joe Neeman2021-06-30
|
* ui: Use a box drawing character vertical line for splitsBlaž Hrastnik2021-06-29
|
* ui: Simplify conditionalBlaž Hrastnik2021-06-27
|
* Merge tab & char rendering codeBlaž Hrastnik2021-06-27
|
* This char_index is unusedBlaž Hrastnik2021-06-27
|
* Allocate the tab stop only onceBlaž Hrastnik2021-06-27
|
* Extract the merge "operator" into helix-coreBlaž Hrastnik2021-06-27
|
* Appease clippyBlaž Hrastnik2021-06-27
|
* Turn diagnostics rendering into span injection tooBlaž Hrastnik2021-06-27
|
* Simplify selection rendering by injecting highlight scopesBlaž Hrastnik2021-06-27
|
* Fix silly mistake in previous phantom line bug fix.Nathan Vegdahl2021-06-26
| | | | | Fixes #381. I was trying to change an index value that... wasn't even an index value.
* Fix highlight code splitting graphemes.Nathan Vegdahl2021-06-26
| | | | | | This resulted in phantom blank lines in files with CRLF line endings, but could potentially have manifested with other graphemes as well.
* 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 previous broken refactor key into helix-viewIvan Tham2021-06-24
| | | | | | | | Need to be used for autoinfo Revert "Revert "Refactor key into helix-view"" This reverts commit 10f9f72232f5789323d689bf0f9cd359715770d6.
* Patch the primary cursor with insert and select styleswojciechkepka2021-06-23
|
* Refactor, add `ui.cursor.primary`wojciechkepka2021-06-23
|
* Add ability to theme primary selecitionwojciechkepka2021-06-23
|
* Add ability to theme cursorwojciechkepka2021-06-23
|
* Increment char_index by grapheme char count.Nathan Vegdahl2021-06-23
| | | | It was just assuming single-char graphemes before.
* minor: Remove old TODOsBlaž Hrastnik2021-06-22
|
* Merge pull request #224 from helix-editor/line_ending_detectionBlaž Hrastnik2021-06-22
|\ | | | | Line ending detection
| * Merge branch 'master' of github.com:helix-editor/helix into ↵Nathan Vegdahl2021-06-20
| |\ | | | | | | | | | | | | | | | | | | line_ending_detection Rebasing was making me manually fix conflicts on every commit, so merging instead.