Commit graph

189 commits

Author SHA1 Message Date
5afabeb7a5
fix: translate command line column from byte position to actual column 2025-02-10 19:52:06 +01:00
c186264eac
feat: add configuration and command to toggle display of inline diagnostics 2025-02-06 21:13:35 +01:00
72234e7cb3
Merge master-pre-zig-0.14 into zig-0.13 2025-02-06 21:11:35 +01:00
lulvz
5c352be7d0 feat(vim): add goto definition keybind back, fix cut word descriptions, removed unnecessary is_not_word_char_vim 2025-02-04 20:40:18 +00:00
1764b3259c
fix: allow cut to cut to end of the document
closes #165
2025-02-04 20:33:36 +01:00
lulvz
04748a4add feat(vim): add vim-style cut, copy, and paste operations that use internal clipboard only 2025-02-03 20:09:12 +00:00
lulvz
87fb11eaa1 feat(vim): update selection mode to normal (while inclusive doesn't work) and add cut operations for word navigation 2025-02-02 21:59:30 +00:00
lulvz
5269f2eff6 feat(editor): implement cut operations for internal clipboard buffer for vim 2025-02-02 16:45:18 +00:00
lulvz
5d21fb07dc feat(vim): add move_word_right_end_vim function (correspondent to e in NORMAL mode) and update keybindings 2025-02-02 13:16:15 +00:00
lulvz
a3864224dd feat(editor): implement vim-style word movement for cursor navigation 2025-02-02 13:08:15 +00:00
lulvz
21540af8ef feat(editor): start implementing is_word_boundary_left_vim for vim-like word detection 2025-02-02 02:04:44 +00:00
e6e0301a78
feat(buffers): save/restore full editor state on buffer switch 2025-01-29 23:03:34 +01:00
b45b5910ee
feat(buffers): save and restore editor metadata on buffer switch 2025-01-29 20:56:56 +01:00
a706e0b976
feat: allow setting the file type in create_scratch_buffer command
Also, fix args forwarding.
2025-01-27 19:52:55 +01:00
939537ed84
feat(buffers): add support for ephemeral buffers
Ephemeral buffers are not hidden and kept when closed. Ephemeral buffers
can be turned into regular buffers by saving them with save_as.
2025-01-27 18:59:13 +01:00
304a62dfdc
feat(tasks): mark task buffers as clean when task exits 2025-01-26 21:06:52 +01:00
d7b48b40f1
feat(tabs): start work on a tabbar widget 2025-01-23 22:32:08 +01:00
1d947ab499
refactor: improve capsulation and safety of tui module public api 2025-01-23 16:45:04 +01:00
4145460012
refactor: simplify Plane/Widget usage 2025-01-23 16:12:56 +01:00
a4ac3a42fd
feat(keybind): special case disable_selection in delete_selection 2025-01-22 15:29:01 +01:00
0368bb15a6
feat(keybind): simplify and clean-up a little 2025-01-22 15:28:03 +01:00
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
aa1e0674cc
feat(buffers): move buffer lifetime management to new Buffer.Manager module 2025-01-21 21:42:36 +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
d2735a5dd7
fix: prevent an integer overflow in editor.cancel_all_selections() on project switch 2025-01-17 20:52:34 +01:00
04b77b4d28
fix(lsp): rename_symbol: convert columns to byte offsets and back 2025-01-17 15:56:46 +01:00
a449e0ec97
feat(lsp): rename_symbol: add cursors at rename points for interactive rename 2025-01-16 22:23:03 +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
e09df735a5
feat: remove existing cursor if clicked again in add cursor mode
closes #146
2025-01-14 17:48:26 +01:00
João Pedro
a21f0e6ac5 Fix half and whole page movements 2025-01-10 22:34:42 +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
206e23a603
fix: crash on rendering zero width chars 2025-01-06 16:15:59 +01:00
7cbd63accd
feat(win32 gui): add direct copy to windows clipboard support
closes #100
2025-01-05 21:54:43 +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
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