Commit graph

1090 commits

Author SHA1 Message Date
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
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
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
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
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
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
7f7f12a441 feat: update vcs changed files info when click on branch status 2025-10-28 22:20:36 +01:00
Igor Támara
fdf2b6d376 feat: allow to update vcs changed files info for current project 2025-10-28 22:20:36 +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
d6e9cec04d
fix: prevent Widget.msg and EventHandler.msg from being corrupted by thespian.message.send 2025-10-28 21:58:33 +01:00
3e4a604739
refactor: move git status request to project_manager 2025-10-28 21:31:32 +01:00
ff8b849015
fix: remove top_layer log spam 2025-10-27 19:19:19 +01:00
bb71749585
fix: set terminal cursor color even if enable_terminal_color_scheme is false 2025-10-26 14:30:57 +01:00
265bff583b
feat: make tabs draggable 2025-10-25 00:09:35 +02:00
1426142d35
feat: add tui.set_drag_source function 2025-10-25 00:09:35 +02:00
9dbb15c796
feat: add tui top layer rendering support 2025-10-25 00:09:35 +02:00
6cc45d76cf
feat: allow conversion of Widget.Box to renderer.Layer.Options 2025-10-25 00:09:35 +02:00
0493d3899a
feat: add drag_pos and drag_anchor to Button 2025-10-25 00:06:51 +02:00
752a356d38
feat: place new tabs next to previously active tab 2025-10-24 12:25:23 +02:00
6678e0c1e3
feat: replace ephemeral buffers on save as even if they were dirty 2025-10-24 12:24:49 +02:00
2704c7be07
feat: add place_next_tab and swap_tabs commands 2025-10-24 12:21:48 +02:00
89e9fd7b83
feat: add move_tab_next/_previous commands 2025-10-24 12:19:03 +02:00
724543f7a1
fix: crash when switching from a customized theme 2025-10-21 18:14:27 +02: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
99c28b8102
refactor: move clipboard_history command to tui module 2025-10-13 20:00:09 +02:00
634a18cb56
feat: add clipboard history palette 2025-10-13 19:50:04 +02:00