Commit graph

370 commits

Author SHA1 Message Date
Igor Támara
878aef9926 feat: [hx] miw and miW support 2025-11-18 10:48:07 +01:00
Igor Támara
a35bbc7e96 refactor: prepare match minimode 2025-11-18 10:48:07 +01:00
1600bf6406
fix: task_palette should use the correct mode hints for width calculations 2025-11-17 20:24:24 +01:00
Igor Támara
f6d1f27337 feat: [hx] mm match brackets support 2025-11-17 18:43:42 +01:00
Igor Támara
6e9e00e142 feat: add symbol palette
The palette intentionally shows narrow to give more prevalence to file
contents and see the context.
2025-11-16 22:56:36 +01:00
e6f0953732
feat: add path segment completion to open_recent palette 2025-11-11 13:26:48 +01:00
6502989fb8
fix: task palette width calculation properly this time 2025-11-10 16:39:45 +01:00
36c975dc20
fix: prevent different match types from cancelling each other out 2025-11-10 14:12:53 +01:00
Igor Támara
b7d1f15eb5 feat: [hx] Alt+s Add cursors with selections for selected lines 2025-11-07 13:51:59 +01:00
e5d78c95a5
feat: split and navigate on shift+enter in find_file 2025-11-06 19:23:15 +01:00
05a551b5b4
fix: match offset in task_palette 2025-11-06 12:22:27 +01:00
7019d56142
fix: un-cramp empty task list 2025-11-06 12:17:58 +01:00
477e232f19
fix: add back missing space to clipboard palette hints 2025-11-05 20:38:24 +01:00
76952a7d1b
fix: check clipboard is not empty before pasting in helix mode 2025-11-04 14:09:20 +01:00
15b600b570
fix: clipboard_palette does not paste the selected item 2025-11-04 11:42:50 +01:00
Igor Támara
8d2355dcb8 refactor: [hx] move and extend word sharing common code 2025-11-03 22:48:20 +01:00
Igor Támara
a8c056c211 feat: hx extend word to right 2025-11-03 22:48:20 +01:00
f6234e6048
refactor: remove pointless dupe call in move_to_char 2025-11-02 21:35:32 +01:00
223260887d
feat: add underlining keybinds ctrl+_, ctrl+= and ctrl+plus
ctrl+_ => select char to underline with
ctrl+= => underline with '='
ctrl+plus => underline with '=' preserving spaces

closes #350
2025-11-02 21:32:52 +01:00
f727c4882f
refactor: make get_char.options.start optional 2025-11-02 20:40:03 +01:00
b5e591c172
refactor: move_to_char to use new get_char mini mode 2025-11-02 20:28:07 +01:00
28688b49de
refactor: move_to_char mini mode into a reusable get_char mini mode 2025-11-02 20:26:55 +01:00
4d375d2d9b
feat: add support for groups in clipboard history
This introduces the concept of clipboard history groups. A group is created
for each high level clipboard operation. Cut, copy, etc. Single cursor
operations will create a group with just one entry. Multi-cursor operations
on the other hand will create groups with multiple clipboard history entries.
This makes for very powerful clipboard history integration with multi-cursor
support.

This commit also adds the ability to apply integer parmeters to the paste
command to select a clipboard group to paste.

Also, pasting from the system clipboard will detect if the system clipboard is
equivalent to the top most clipboard group, and if so use the group instead.
This allows much better multi-cursor support when using the system copy & paste
commands.
2025-10-31 22:53:50 +01:00
63745f1e6b refactor: use @memcpy to splat replacement string
Also, don't leak replacement string.
2025-10-30 22:40:53 +01:00
18bc89edf8 refactor: replace cursel_length with Buffer.Node.get_range
get_range is likely much faster because it only walks the buffer tree
once. Besides the performance difference it should give identical results.
2025-10-30 22:40:53 +01:00
Igor Támara
8246f2b0ba feat: [hx] r to replace with a character
If no selection, the character under the cursor is replaced, if
selection, each character is replaced by the typed character.
2025-10-30 22:40:53 +01:00
Igor Támara
131d9db5ce feat: [hx] match clipboard behaviour on delete 2025-10-30 19:14:08 +01:00
23ea7333a7 refactor: remove obsolete vim mode delete_line placeholder 2025-10-30 11:45:43 +01:00
Igor Támara
e76c47e1a6 feat: bar status shows extend or select when on helix mode 2025-10-29 20:58:40 +01:00
Igor Támara
f5efe8e94f feat: [hx] Add F, T, t, f select and extension movements 2025-10-29 20:58:40 +01:00
Igor Támara
65665fb28b feat: [hx] in Normal mode select to char right
f j in normal mode selects to the char j in the buffer if it exists,
else the cursor stays in place
2025-10-29 20:58:40 +01:00
Igor Támara
151f108b80 feat: [hx] add group function to move cursor beyond eol
In Helix, F, T, t, f bring the cursor to the character being
searched for, if not found, the cursor is not moved at all.
2025-10-29 20:58:40 +01:00
61de5d89d7
refactor: rename open_changed_files to show_vcs_status
This fits a bit better as we will add commands to do more than just
open the files in the status palette.
2025-10-28 22:21:16 +01:00
Igor Támara
b6010767f2 feat: Add open changed files palette to commands
The palette shows modified and new files for the current project
allowing to open one by one
2025-10-28 22:20:36 +01:00
Igor Támara
b07cd859fe refactor: hx removing commented test code and unused constant 2025-10-15 10:12:34 +02:00
Igor Támara
eb05939b81 refactor: use flow clipboard in hx mode
hx users will envy flow clipboard history :P, fortunately it's possible
to use F4 to shift modes
2025-10-15 10:12:34 +02:00
Igor Támara
7faea783f3 refactor: hx paste(before, replace, after)
Code simplification and zig idiomatics to improve code readability.
2025-10-15 10:12:34 +02:00
Igor Támara
f288d24e13 hx: feature parity on copy paste (P before, R replace, r after) 2025-10-15 10:12:34 +02:00
46def038bd
feat: trip leading whitespace from clipboard history palette display 2025-10-13 20:27:43 +02:00
6c6a8cee32
feat: add byte or line count hint to clipboard history palette 2025-10-13 20:21:05 +02:00
634a18cb56
feat: add clipboard history palette 2025-10-13 19:50:04 +02:00
acb0e16621
feat: add helix mode support for clipboard history changes 2025-10-13 19:49:20 +02:00
b7343219c1
fix: memory leaks in operations that call cut_selection or cut_to 2025-10-13 13:24:10 +02:00
06788c4243
fix: apply expand_home to path in save_as command 2025-10-13 11:57:13 +02:00
239b7dfa82
fix: prevent use-after-free error in open_file mini mode 2025-10-13 11:57:05 +02:00
25a719382f
fix: store button click locations as signed values 2025-10-10 16:05:50 +02:00
fac4eda72c
fix: formatting 2025-10-10 09:46:41 +02:00
c7b46856bb refactor: explicity publish internal helix functions for unittests only
We don't want internal functions in the mode specific extention modules becoming
shared code. To avoid this, mark the functions as private and publish only through
a structure marked clearly as for testing only.

If these functions are useful as shared code they can be moved to the editor module
or else where.
2025-10-10 09:35:44 +02:00
Igor Támara
a6f5ffcdc5 hx: add tests for some Helix mode movements 2025-10-10 09:35:44 +02:00
Igor Támara
a64d7c3afa hx: attempt to add tests in separate file 2025-10-10 09:35:44 +02:00