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