Commit graph

622 commits

Author SHA1 Message Date
Meredith Oleander
a0f8d33781 tui/editor.zig: add disable_selection, and make check_selection play nice with inclusive selections 2025-01-22 18:47:55 +11:00
Meredith Oleander
80c8795c3b
Merge branch 'master' into helix-mode-selections 2025-01-22 13:47:37 +11:00
84655c4ff8
feat(buffers): add dirty state indicator to buffer switcher 2025-01-21 22:53:09 +01:00
3f06f6b19c
feat(buffers): add buffer switcher 2025-01-21 22:32:43 +01:00
4dddadb46d
feat(buffers): add home screen save all command 2025-01-21 21:44:05 +01:00
661808f316
feat(buffers): render buffer dirty state in open recent files palette 2025-01-21 21:43:35 +01:00
aa1e0674cc
feat(buffers): move buffer lifetime management to new Buffer.Manager module 2025-01-21 21:42:36 +01:00
142f6e51ae
feat(tui): show screen dimentions on resize 2025-01-20 20:30:24 +01:00
29f8b4680d
fix: disable mouse_idle_timer
It's not very important and it's too spammy which makes debug builds slow.
2025-01-20 15:49:16 +01:00
4f5fa4a3ba
feat(keybind): move selection mode into keybind mode configuration 2025-01-19 19:21:44 +01:00
Meredith Oleander
70f0d8bea6
add helix selection internal tweaks 2025-01-19 17:37:36 +01:00
Meredith Oleander
3e65503902
develop helix cursor mode 2025-01-19 17:37:33 +01:00
9fc8e3edc3
fix(editor): send editor view and cursor position updates when number of document lines changes
closes #162
2025-01-19 12:10:59 +01:00
9f29853cd6
Merge pull request #149 from travisstaloch/lsp-rename
implement lsp rename
2025-01-18 23:33:25 +01:00
461726e10e
feat: add pause_undo and resume_undo commands
closes #91
2025-01-18 22:59:50 +01:00
4277f0f57b
feat(lsp): rename_symbol: add support for LSPs that do send document updates for renames 2025-01-18 20:34:14 +01:00
80cb31f75a
feat: copy current line if there is no selection
closes #160
2025-01-18 17:16:00 +01:00
f61c6c7f87
fix: cancel when clicking outside of a palette instead of activating the current item 2025-01-18 12:52:55 +01:00
48efa5536f
fix: use after free on fast project switching 2025-01-17 21:13:47 +01:00
d2735a5dd7
fix: prevent an integer overflow in editor.cancel_all_selections() on project switch 2025-01-17 20:52:34 +01:00
e1b1591167
feat(win32 gui): add font selection palette
closes #102
2025-01-17 20:32:20 +01:00
04b77b4d28
fix(lsp): rename_symbol: convert columns to byte offsets and back 2025-01-17 15:56:46 +01:00
155c1f663d
feat(lsp): rename_symbol: treat out-of-file edits as references 2025-01-16 23:02:52 +01:00
a449e0ec97
feat(lsp): rename_symbol: add cursors at rename points for interactive rename 2025-01-16 22:23:03 +01:00
e597fee2e5
feat(lsp): rename_symbol: decode and normalize file uri 2025-01-16 22:22:34 +01:00
Travis Staloch
bfdeffc70f
lsp-rename: minor cosmetic cleanups 2025-01-16 22:04:38 +01:00
Travis Staloch
1c37de6c29
feat(lsp): buffer renames in order to send a single, atomic message 2025-01-16 22:04:38 +01:00
Travis Staloch
1fd4455adb
feat(lsp): initial support for textDocument/rename
flow keybinds: changes f2 from toggle_input_mode to rename_symbol and
moves toggle_input_mode command to ctrl+shift+f2 (since ctrl+f2 is
already bound to insert_command_name)

the replacement text is hard coded for now. i've checked that replace
works with zls and pylsp which send WorkspaceEdit response messages in
different shapes - zls sends shape `{"changes": {}}` while pylsp sends
`{"documentChanges": []}`.

currently the 'rename_symbol_item' commands are sent one at a time.
however they should be buffered and be performed between one
buf_for_update, update_buf pair.  this will be addressed in a follow up.
2025-01-16 22:04:35 +01:00
dcddd373b5
feat(find_in_files): clear file list and log if no matches are found 2025-01-15 14:23:30 +01:00
9d6b760f03
feat: remove single trailing new line in shell_execute_insert 2025-01-15 11:26:17 +01:00
35ca71e032
feat: add config option gutter_symbols 2025-01-14 21:37:54 +01:00
6530a7a51c
feat(win32 gui): add reset_fontsize and rest_fontface commands 2025-01-14 19:54:51 +01:00
e09df735a5
feat: remove existing cursor if clicked again in add cursor mode
closes #146
2025-01-14 17:48:26 +01:00
7d138a742c feat(win32 gui): add set_fontface and set_fontsize commands 2025-01-10 23:10:59 +01:00
João Pedro
a21f0e6ac5 Fix half and whole page movements 2025-01-10 22:34:42 +01:00
5300e3346d feat(win32 gui): add adjust_fontsize command to zoom in/out 2025-01-09 20:08:12 +01:00
caeb3fc338
feat(config): migrate to a simpler config file format 2025-01-08 22:14:29 +01:00
9e4e81eb0d
feat(win32 gui): read fontface and size from gui_config 2025-01-08 15:57:38 +01:00
1acc9b107e
refactor(config): BREAKING rename config option config_files to include_files 2025-01-08 14:36:47 +01:00
eaa7ad87b7
feat(win32 gui): add gui_config.json config file 2025-01-08 14:36:43 +01:00
e1f0a4d074
feat: add sample binding of shell_execute_log 2025-01-07 23:08:24 +01:00
cfc99b61dc
feat: add commands to execute shell tasks from keybindings
This is the first part of #67.
2025-01-07 22:45:29 +01:00
Jonathan Marler
337b6ce626 win32 gui: rework startup/hwnd sync 2025-01-07 22:02:16 +01:00
0c7f19b5dd feat: support matching of shifted keybindings
This allows us to bind things like alt+F and ctrl+?. Binding
with and explicit shift modifier is still allowed, such as alt+shift+f.
2025-01-07 14:53:34 +01:00
Jonathan Marler
064522959b more emacs bindings 2025-01-06 20:28:24 +01:00
206e23a603
fix: crash on rendering zero width chars 2025-01-06 16:15:59 +01:00
aa95e78a80 refactor(nested config files): simplify and avoid duplicate code
Also, fix a small use after free bug.
2025-01-06 12:12:14 +01:00
Jonathan Marler
194fe70d6e feat(nested config files)
Adds a config_files option to config.json that allows the user
to specify one or more config files to load in addition to the
main config file.

For me this allows me to keep my flow configuration in a shared dotfiles
repository managed by git.
2025-01-06 12:12:14 +01:00
7cbd63accd
feat(win32 gui): add direct copy to windows clipboard support
closes #100
2025-01-05 21:54:43 +01:00
5ac80f0b6f
feat(win32 gui): add clipboard paste support 2025-01-04 21:48:47 +01:00