update TODO

This commit is contained in:
Mitchell Hashimoto
2022-11-06 17:41:27 -08:00
parent 62a3419e81
commit 25f2c27e4b

20
TODO.md
View File

@ -1,18 +1,17 @@
Bugs:
* Glyph baseline is using the main font, but it can vary font to font
Performance:
* libuv allocates on every read, we should use a read buffer pool
* for scrollback, investigate using segmented list for sufficiently large
scrollback scenarios.
* reflow: text reflow is really poorly implemented right now specifically
for shrinking columns. Look into this. This may require changing the
screen data structure.
* Screen cell structure should be rethought to use some data oriented design,
also bring it closer to GPU cells, perhaps.
* Loading fonts on startups should probably happen in multiple threads
* Windowing event loop should not check `shouldClose` on every window
and should use should close callbacks instead.
* Window shutdown should be done in threads but GLFW window close cannot
be done in multiple threads making this a bit tricky.
Correctness:
@ -24,7 +23,6 @@ Correctness:
- need fallback glyphs if they're not supported
- can effect a crash using `vttest` menu `3 10` since it tries to parse
ASCII as UTF-8.
* Graphemes need to be detected and treated as a single unit
Improvements:
@ -33,12 +31,18 @@ Improvements:
* double-click to select a word
* triple-click to select a line
* shift-click and drag to continue selection
* keybind action: increase/decrease font size
Mac:
* Set menubar
* Preferences window
Major Features:
* Reloadable configuration
* Tabs (macOS only for UI reasons)
* Bell
* Mac:
- Switch to raw Cocoa and Metal instead of glfw and libuv (major!)
* Sixels: https://saitoha.github.io/libsixel/
* Kitty keyboard protocol: https://sw.kovidgoyal.net/kitty/keyboard-protocol/
* Kitty graphics protocol: https://sw.kovidgoyal.net/kitty/graphics-protocol/