Commit graph

2348 commits

Author SHA1 Message Date
fd880b0094
fix: don't stomp on existing selection when entering helix SEL mode 2025-11-27 20:18:48 +01:00
084822ebd6
refactor: eliminate redundent healper function 2025-11-27 20:13:58 +01:00
71387aaa43
refactor: re-write all helix commands to use bound self parameter
This makes implementing commands in helix mode almost identical to
implementing them inside the editor directly.
2025-11-27 20:11:22 +01:00
fb6e47fd77
fix: init all cursors in init_helix_select_mode 2025-11-27 19:41:34 +01:00
1bc53b5875
refactor: use orelse in CurSel.to_selection 2025-11-27 19:30:32 +01:00
93f8587881
refactor: move goto_line_vim into mode specific commands files 2025-11-27 18:23:23 +01:00
a48b87a150
refactor: mark helix mode keybindings that are not implemented 2025-11-27 18:19:13 +01:00
fd7bed592d
refactor: move more mode specific commands to helix & vim 2025-11-27 18:03:53 +01:00
a5c360a2ec
refactor: completely remove inclusive selection mode
Having inclusive mode change a few critical functions behind the sceans
is not a good way to share functionality. Basically every function is
broken in one or the other mode. So we remove it entirely and instead
will rely on different functions for different behaviors.
2025-11-27 17:22:58 +01:00
b8e9f981f2
refactor: add explicit command for initializing helix select mode 2025-11-27 16:57:59 +01:00
3c8b35b25e
fix: remove typo 2025-11-27 16:56:54 +01:00
631e8fca41
refactor: reduce duplication of context getting code in helix mode 2025-11-27 16:45:42 +01:00
b3db0922ed
fix: make helix move_prev_word_start an exact match to real helix 2025-11-27 16:44:16 +01:00
ab6c1c92ae
refactor: simplify disable_selection to never move the cursor 2025-11-27 16:16:05 +01:00
2311b68896
refactor: split is_not_word_char into char_class and CharClass 2025-11-27 16:13:57 +01:00
1671fae685
refactor: add Selection.from_cursor_inclusive 2025-11-27 16:12:38 +01:00
76e247fb0b
refactor: add Cursor char_at, char_left/_right, test_left/_right functions 2025-11-27 16:11:53 +01:00
f99e10652c
refactor: add Editor.with_cursels_const_repeat 2025-11-27 12:34:19 +01:00
c7c271e903
refactor: CurSel.to_selection is internal 2025-11-27 12:34:14 +01:00
8ba6e1843a
refactor: don't special case cursor rendering in inclusive mode
This is too confusing. Rendering cursors differently, only in inclusive
mode and only if there is an active selection is too confusing and pushes
a lot of edge cases into otherwise simple commands.

This will likely break a lot of the existing helix commands, but is better
in the long run to fix them anyway.
2025-11-27 12:34:10 +01:00
423b8c1613 fix: build fix after rebase/merge 2025-11-27 12:33:01 +01:00
Jakob Ingvast
1bae864022 Fixed selection extensions with new helper functions 2025-11-27 12:33:01 +01:00
Jakob Ingvast
608df1518a Initial attempt to fix prev and next word movement 2025-11-27 12:33:01 +01:00
a639201807
fix: remove extra close_file call in mainview.extract_state 2025-11-26 19:21:23 +01:00
7dcde628ac
refactor: drop config file loading message 2025-11-26 19:21:05 +01:00
198ee29abe
refactor: remove verbose log messages in mainview 2025-11-26 19:20:46 +01:00
008950255b
fix: don't respond to editor events in mainview during project switch 2025-11-26 19:20:14 +01:00
335f1bedab
fix: some minor typos 2025-11-26 19:13:05 +01:00
4f68e692d1
refactor: add a lot of logging during change_project 2025-11-26 19:12:27 +01:00
e134cfc949
refactor: use exaustive enum for whitespace 2025-11-26 16:40:08 +01:00
2ca1a742a1
feat: add whitespace_mode external 2025-11-26 16:39:48 +01:00
741096cb43
fix: navigate to editor_file_path only if it's buffer was restored 2025-11-26 16:26:31 +01:00
c8840f0756
fix: make sure project state is freed with the correct allocator 2025-11-26 16:26:31 +01:00
20129ea773
feat: save and restore mainview state when switching projects 2025-11-26 16:26:31 +01:00
bbeba10fe5
refactor: split up mainview write_state and extract_state functions
For better reusuability. So we can store/restore state on project switch.
2025-11-26 16:26:31 +01:00
690498fdcc
feat: add modes_can_change_cursor configuration option 2025-11-26 16:26:31 +01:00
c1707b132e
fix: smart select next find mode if find mode is .auto 2025-11-26 12:52:23 +01:00
891b80e5bb
fix: case fold find pattern in find_all_ranges mode .case_folded 2025-11-26 12:48:29 +01:00
29231ad87a
fix: windows build 2025-11-26 12:13:54 +01:00
9f57d8ef28
fix: bump libvaxis grapheme cache size to 32kb
This fixes some graphemes getting lost on very large screens with a lot of
text on screen.
2025-11-26 12:08:46 +01:00
50a4336b8c
fix: incorrect line offset in goto_line_and_column 2025-11-26 12:06:56 +01:00
74e7406034
fix: guarantee progress in find_all_ranges when pattern is shorter than a utf8 sequence 2025-11-26 10:22:04 +01:00
99f9f95dbc
fix: use a partial write capable case folding writer in Buffer.find_all_ranges
This fixes case insensitive search. Previously the case folding would fail on
input slices that contain partial utf8 sequences, which is normal in the
buffer write process design. Now these partial utf8 sequences are not consumed
and instead pushed to the next write call where they will be completed from the
main buffer contents.
2025-11-26 09:56:39 +01:00
68b17301cd
refactor: use unchecked Utf8View in utf8 transformation
Internally we use only validated utf8 and unchecked performs much better
and reduces unused error values.
2025-11-26 09:33:04 +01:00
2520a37a90
feat: add case auto and case insensitive mode to find 2025-11-25 22:48:11 +01:00
abee93d366
refactor: add unicode.is_lowercase 2025-11-25 22:35:14 +01:00
047409cd29
feat: add find_mode parameter to Editor.find_query 2025-11-25 21:51:23 +01:00
64d95ee009
refactor: move FindMode to Buffer 2025-11-25 21:50:36 +01:00
3ebe68a384
refactor: implement find_all_ranges mode .case_folded 2025-11-25 21:43:12 +01:00
37428bd698
refactor: add unicode.case_folded_write 2025-11-25 21:42:51 +01:00