Commit graph

2140 commits

Author SHA1 Message Date
8b50c7a3af
fix: fully deinit keybind.Mode to avoid race when switching modes 2025-11-05 16:39:35 +01:00
983e518f69
fix: add not-yet-persisted projects to recent_projecsts list 2025-11-05 16:33:42 +01:00
7744bdf6c4
fix: update Project.last_used when switching projects 2025-11-05 16:33:12 +01:00
03d07d682f
feat: always list active project first in project_manager.request_recent_projects 2025-11-05 14:43:55 +01:00
089a835160
refactor: remove active project last_used override in project_manager.load_recent_projects
Makes more sense to update last_used after loading as we may need to add the entry.
2025-11-05 14:42:39 +01:00
c47ce8702c
fix: don't leak project names in project_manager.request_recent_projects 2025-11-05 14:41:36 +01:00
9a961c8dd2
fix: check if tree-sitter Node.getParent() returns a null node in expand_selection
closes #360
2025-11-05 13:55:22 +01:00
0f7a4f25e4
fix: check for formatter executable before trying to start formatter job
closes #359
2025-11-04 21:32:18 +01:00
9a13191e10
feat: add reStructuredText support
closes #353
2025-11-04 17:19:51 +01:00
8be5a14eda
fix: allow indenting of blank lines if there is just one cursor 2025-11-04 15:47:45 +01:00
5e292e75b5
fix: store redo metadata along with undo metadata and restore it on redo
This commit refactors undo storage and handling significantly.

The undo/redo chaining in Buffer is much simpler and clearer.

The metadata generated by Editor now contains the pre and post change
states. The pre-state is restored on undo and the post-state is restored
on redo.

closes #348
2025-11-04 15:32:43 +01:00
76952a7d1b
fix: check clipboard is not empty before pasting in helix mode 2025-11-04 14:09:20 +01:00
03f2821e5f
fix: post location updates to project_manager creating or navigating buffers
This fixes newly created files not showing in the find_files palette. It also
fixes MRU ordering not updating when switching tabs.

closes #331
2025-11-04 13:19:09 +01:00
19f88a8349 feat: bind restore_closed_tab to ctrl+shift+t 2025-11-04 12:40:33 +01:00
n0n
1d28985568 feat: reopen closed tab 2025-11-04 12:40:33 +01:00
0b28218a98
feat: move open_previous_file keybind to project to work anywhere 2025-11-04 12:29:14 +01:00
b116d10348
feat: allow open_previous_file to jump back to a closed tab 2025-11-04 12:27:34 +01:00
eb72f06be1
refactor: rename maybe_reset_drag_source 2025-11-04 11:43:37 +01:00
15b600b570
fix: clipboard_palette does not paste the selected item 2025-11-04 11:42:50 +01:00
Igor Támara
1ac34340b4 test: [hx] Exercises some aspects of BEW and bew
closes #315
2025-11-03 22:48:20 +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
c3bd6b6bc3 refactor: [hx] group word movements 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
0bef3ce2e1
fix: do not indent blank lines 2025-11-03 22:43:25 +01:00
cd1d9f3042
fix: don't clip leading whitespace based on cursor column in smart_insert_line 2025-11-03 22:37:12 +01:00
9026404d6d
fix: save file when toggling auto_save on 2025-11-03 22:18:14 +01:00
15c9469365
fix: render auto_save state in filestate widget
closes #344
2025-11-03 22:16:48 +01:00
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