Commit graph

651 commits

Author SHA1 Message Date
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
7bfb9a2216
fix: remove thespian from win32 renderer module 2025-01-04 15:24:36 +01:00
9047439315
fix: merge vaxis and win32 event handling interfaces 2025-01-04 15:18:49 +01:00
1fdb5f240b
fix: always enable software cursor in gui builds 2025-01-04 15:18:49 +01:00
Jonathan Marler
1a595871dd
win32 standalone gui 2025-01-04 15:18:49 +01:00
1ad6b8db3d
fix: clamp cursor to buffer in toggle_cursel_prefix 2025-01-03 21:04:32 +01:00
023298cc47
feat: add a bullet to inline diagnostic messages 2025-01-03 20:06:45 +01:00
86ca13b847
feat: don't render diagnostic messages if there is too little space 2025-01-03 20:05:38 +01:00
5a34a7ead7
fix: don't attempt to render off the bottom of the screen 2025-01-03 19:56:15 +01:00
f63b8863d1
fix: add pretty error if clipboard request is denied by terminal
closes #97
2025-01-03 14:32:20 +01:00
dd042e2fdd
feat: position cursor at closest glyph boundary on click when beam cursor is enabled
closes #99
2025-01-03 13:52:47 +01:00
18b0c217fc
feat: use smaller NL symbol 2025-01-02 22:54:07 +01:00
e3d93da9e6
fix: whitespace rendering on scroll left
This also simplifies the renderer a little.
2025-01-02 22:51:36 +01:00
919d5ee9bb
feat(whitespace): add leading, eol, tabs modes and highlight leading/trailing errors
This changes whitespace rendering to use a map of the visible viewport.
The view map makes it easy and fast to implement various whitespace
highlighting and rendering features.
2025-01-02 18:27:27 +01:00
233e881f95 feat: add support for pasting from the native windows clipboard
This give us OSC52 equivalent support on windows.

closes #95
2024-12-24 14:44:12 +01:00
afca8a86bc
feat: add configuration option default_cursor 2024-12-20 21:44:35 +01:00
deaafbefa0
feat: upgrade cursors to block cursors when multi-cursor editing
This is to match the secondary cursors which are always block cursors.
It also give some visual feedback that we are multi-cursor.
2024-12-20 21:14:17 +01:00
69c2d06007
fix: hover should convert column to byte position in LSP response
closes: #85
2024-12-20 20:16:50 +01:00
1aa64b8ea4
fix: hover should convert column to byte position in LSP request
closes: #85
2024-12-20 17:56:04 +01:00
030b3cb139
refactor: show modifiers of modifiers in input view 2024-12-20 17:51:49 +01:00
f02fc60e1b
feat: add resulting key event detail to input view 2024-12-20 17:26:32 +01:00
1c087203e0
fix: escape file list contents to avoid rendering garbage 2024-12-20 15:34:29 +01:00