Commit graph

68 commits

Author SHA1 Message Date
629e6048aa
fix: use thespian.store/restore_error in tui.deinit
This prevents errors in tui.deinit, for example DEADSEND messages from timers,
from over writing the final exit message from the tui actor.
2024-08-29 16:53:54 +02:00
336ea8684e
feat: update thespian and add delay_send_cancellable tags 2024-08-29 16:52:26 +02:00
c01576412a
refactor: prefer orelse to if(pred) |x| x else y 2024-08-29 13:13:45 +02:00
0b42308321
feat: duplicate vim modes to create helix modes 2024-08-26 20:54:21 +02:00
Tim Culverhouse
d4b7a6ab9b vim: change cursor shape when only one cursor
In vim mode, change the cursor shape depending on the mode. This is only
applicable if `enable_terminal_cursor` is set to true and there is only
one cursor in the editor.
2024-08-26 20:49:54 +02:00
bff019e26e
fix: dupe top_bar and bottom_bar to keep it in scope 2024-08-25 23:26:18 +02:00
c627a49518
feat: add config option enable_terminal_color_scheme
This option defaults to off on windows because windows does not support
resetting the terminal colors on exit.

closes #26
2024-08-21 22:07:36 +02:00
231e4ccb88 feat: add open_recent_project and change_project commands 2024-08-19 20:35:05 +02:00
ea31e414ee refactor: clean-up command naming 2024-08-18 17:59:28 +02:00
4b6c08154b feat: add theme selection palette
Also, refactor to share palette code and make palettes scroll properly
with the mouse wheel.
2024-08-14 21:27:32 +02:00
22f838a2da fix: deinit tui.mouse_idle_timer after it fires 2024-08-13 23:10:09 +02:00
26ef53747d fix: don't send hover events to dead widgets 2024-08-13 22:57:21 +02:00
f53dc74e9d feat: add a mouse idle timer that clears hover state 2024-08-13 22:51:22 +02:00
50d47a73f2 feat: add mouse resizing of panel views 2024-08-13 19:38:35 +02:00
7f0f8c9ed3 feat: set terminal background to match editor 2024-08-12 23:24:10 +02:00
9b00805546 feat: avoid sigwinch handling if we detect in band resize capability 2024-08-07 21:46:46 +02:00
16ec05c75b feat: add force_terminate command 2024-07-02 12:21:40 +02:00
032982c1e8 refactor: rework error handling to simplifiy command implementation and provide better back traces 2024-06-26 23:29:39 +02:00
21b604f4d6 fix(windows): reduce idle cpu usage to zero on windows
Now we use a keepalive timer instead of forcing no-sleep to keep the work
queue from running empty and causing flow to exit early.
2024-06-26 22:24:36 +02:00
e7c8fea3f0 feat: add scrollbar to command palette 2024-06-21 01:20:17 +02:00
d4019d00b2 feat: add keybind hints to command palette 2024-06-20 22:27:13 +02:00
3ea039f41c fix(tui): reset drag context when invalidating the widget tree
This prevents a segfault if dragging and navigating at the same time.
2024-06-20 22:21:49 +02:00
da5e7873d5 refactor: remove obsolete log_widgets command 2024-06-19 17:48:50 +02:00
866451779b fix(vaxis): prevent a crash on large bracketed paste operations
Now we just serialize *all* event data and drop the grapheme cache
that was overflowing.
2024-06-19 17:39:27 +02:00
25556336b9 feat: add initial simplistic command palette implementation 2024-06-14 21:48:28 +02:00
771c1dd980 fix(tui): prevent render overload on high mouse report rates 2024-06-14 20:06:46 +02:00
701107253f fix(tui): prevent button active state from sticking 2024-06-14 19:53:57 +02:00
2faa5c6b9b feat: minor frame timing improvments 2024-06-10 21:43:00 +02:00
ee6582b469 fix: resize handling corrections 2024-06-08 20:10:17 +02:00
961e5afe41 feat: initial windows support 2024-06-07 22:12:28 +02:00
e00ceed052 refactor: update libvaxis and remove some notcurses cruft 2024-06-05 20:06:26 +02:00
f075ab7272 fix(vaxis): don't leave alternate screen before resetting the terminal 2024-05-22 21:24:50 +02:00
2d904d5122 fix(vaxis): prevent mouse drag operations from becoming sticking 2024-05-22 21:23:49 +02:00
5ca9e18ee2 fix(vaxis): use an independant thread for InputReader and leave it running
There is no need to unblock the input reader thread. It can be cleaned
up by the OS and signaling it wrecks our exit code.
2024-05-22 21:21:44 +02:00
49ad54d60c feat: implement remaining terminal handling functions via libvaxis 2024-05-22 10:40:08 +02:00
ced45d50e4 fix: use blocking tty io with libvaxis
This resolves WouldBlock issues with libvaxis and tty issues with macos.
2024-05-18 01:47:03 +02:00
6225944a7e fix: add missing renderer deinit() on exit 2024-05-17 21:18:54 +02:00
1cd3cb17ce feat: add libvaxis renderer 2024-05-10 12:44:14 +02:00
b15fa47f30 refactor: add renderer abstraction layer 2024-05-09 11:48:33 +02:00
c2b734a8f6 fix: an early panic on startup if ~/.config does not exist 2024-04-23 21:28:29 +02:00
c79c684969 feat: minor improvements to LSP error handling 2024-04-21 00:02:24 +02:00
ef57339258 feat: add support for language server window/showMessage notifications 2024-04-20 23:47:34 +02:00
0523350596 feat: add support for undercurl styles 2024-04-19 22:10:27 +02:00
07571ef363 refactor: load persisted projects before file system scan
This should improve usability for very large projects.
2024-04-15 23:07:03 +02:00
3eba052c15 fix: shutdown race if project_manager does not exit faster than tui 2024-04-15 21:29:27 +02:00
1d9155864d fix: prevent mini/overlay modes from stomping each other
Also, allow cancelling modes by clicking the flow button.
2024-04-11 18:35:33 +02:00
2416251fc3 feat: generate hover events during drag operations 2024-04-11 18:32:57 +02:00
9aea1f54f5 feat: allow runtime changing of the gutter mode 2024-04-10 22:12:19 +02:00
53554be4b0 refactor: drop dead send warnings in tui log 2024-04-10 18:37:42 +02:00
1c01773a09 fix: shutdown project_manager before restart 2024-04-08 22:28:08 +02:00