Commit graph

2113 commits

Author SHA1 Message Date
99cd7b6dc5
refactor: send auto_save state in more editor events 2025-11-03 22:16:09 +01:00
0c38e8c4ea
fix: don't show dirty state in tabs for auto_save buffers 2025-11-03 22:14:43 +01:00
8d0f333ad8
refactor: simplify Buffer.write_state 2025-11-03 22:14:15 +01:00
30b1329d10
refactor: move auto_save flag from Editor to Buffer 2025-11-03 22:13:54 +01:00
fa6ea11d57
fix: only reset mouse drag context when the dragging button is released
closes #320
2025-11-03 20:48:08 +01:00
1fb3a8828a
fix: be more precise about tracking active state in scrollbar_v widget 2025-11-03 20:47:18 +01:00
2d65864e74
fix: merge selections when collapsing cursors
closes #318
2025-11-03 18:31:51 +01:00
79369bf2ca
fix: also collapse cursors during mouse operations 2025-11-03 18:31:27 +01:00
1c96a45822
feat: add CurSel.merge function 2025-11-03 18:30:45 +01:00
1f3419ec94
feat: add Selection.merge and Selection.expand functions 2025-11-03 18:29:51 +01:00
5fccffc4b6
feat: add Cursor.within predicate function 2025-11-03 18:29:32 +01:00
1d1d828097
fix: move cursor to the beginning of an egc in Cursor.clamp_to_buffer
closes #317
2025-11-03 16:25:22 +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
7af0c7ff71
fix: improve dupe_cursel_down to correctly handle duplicating at EOF
closes #346
2025-11-02 19:24:04 +01:00
e1e82a57eb
fix: improve dupe_cursel_up to correctly handle duplicating at EOF 2025-11-02 19:23:09 +01:00
1c486ccd93
fix: support no selection special case for cut and copy commands with multiple cursors
closes #355
2025-11-02 18:18:52 +01:00
d12494a7b9
fix: update flow-syntax to fix ziggy schema file extension 2025-11-02 18:07:31 +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
6f57578925
feat: add flow mode bindings for plain move_begin (ctrl+k home) 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
411b26d4aa feat: Add functionals with parameters
* The group of mut cursels has a new member that receives
a parameter
* Added a function to get the number of items(one visible
cell characters) within a cursel.
2025-10-30 22:40:53 +01:00
3249c35c02
Merge branch github/master 2025-10-30 21:32:27 +01:00
932c79fb13
fix: crash in home screen
Button click handlers may delete the button, so we should not touch self after
calling them.
2025-10-30 21:30:13 +01:00
Igor Támara
131d9db5ce feat: [hx] match clipboard behaviour on delete 2025-10-30 19:14:08 +01:00
a0fa079a13
fix: remove workaround for Buffer.store_to_file_const bug on non-linux platforms
This bug was fixed in the previous commit.
2025-10-30 18:06:43 +01:00
ab4d1cdfa5
fix: always use std.Io.Writer.writeAll to avoid write underflow 2025-10-30 18:04:37 +01:00
b556c1da61
fix: add workaround for Buffer.store_to_file_const bug on non-linux platforms 2025-10-30 16:54:10 +01:00
d201a84ec8
fix: add test of Buffer.store_to_file_and_clean 2025-10-30 16:09:03 +01:00
18a7190545
fix: normalize_file_path_dot_prefix on windows 2025-10-30 15:14:34 +01:00
ec783d68a6
feat: bind insert_command_name to ctrl+k ctrl+s in flow mode
Like in visual studio code, as insert_command_name is the closest thing
we have to a keybind reference.
2025-10-30 14:19:13 +01:00
eb11a40a9f
feat: bind select_line to alt+shift+e in flow mode
Like in visual studio, because the more common ctrl+l is already taken.

Also, remove some keybinds for commands that don't exist.
2025-10-30 14:18:17 +01:00
70a793d942
feat: add select_line command 2025-10-30 14:17:02 +01:00
21d1555aca
feat: add repeat argument to delete_line 2025-10-30 12:58:15 +01:00
fc8642768d
refactor: merge select_line_around_cursor into select_line_at_cursor 2025-10-30 12:46:42 +01:00
4087e0a3f9 fix: preserve cursor column and target in delete_line
This is the expected behaviour (for me at least) and makes delete_line
significantly more useful than plain `cut` with no selection.

closes #342
2025-10-30 11:45:43 +01:00
e42f3ff3a5 refactor: use select_line_at_cursor to simplify cut_internal_vim 2025-10-30 11:45:43 +01:00
772e2e7d29 refactor: use select_line_at_cursor to simplify cut command 2025-10-30 11:45:43 +01:00
c27795bc95 feat: add multi cursor support to delete_line 2025-10-30 11:45:43 +01:00
dff0b233d1 feat: add flow mode keybinding for delete_line 2025-10-30 11:45:43 +01:00
62873353b8 refactor: use an enum to select select_line_at_cursor mode 2025-10-30 11:45:43 +01:00
23ea7333a7 refactor: remove obsolete vim mode delete_line placeholder 2025-10-30 11:45:43 +01:00
jmcaine
04c1ece3a8 feat: delete_line implemented 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