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: Bugs:
* Glyph baseline is using the main font, but it can vary font to font
Performance: Performance:
* libuv allocates on every read, we should use a read buffer pool
* for scrollback, investigate using segmented list for sufficiently large * for scrollback, investigate using segmented list for sufficiently large
scrollback scenarios. scrollback scenarios.
* reflow: text reflow is really poorly implemented right now specifically * reflow: text reflow is really poorly implemented right now specifically
for shrinking columns. Look into this. This may require changing the for shrinking columns. Look into this. This may require changing the
screen data structure. 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 * 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: Correctness:
@ -24,7 +23,6 @@ Correctness:
- need fallback glyphs if they're not supported - need fallback glyphs if they're not supported
- can effect a crash using `vttest` menu `3 10` since it tries to parse - can effect a crash using `vttest` menu `3 10` since it tries to parse
ASCII as UTF-8. ASCII as UTF-8.
* Graphemes need to be detected and treated as a single unit
Improvements: Improvements:
@ -33,12 +31,18 @@ Improvements:
* double-click to select a word * double-click to select a word
* triple-click to select a line * triple-click to select a line
* shift-click and drag to continue selection * shift-click and drag to continue selection
* keybind action: increase/decrease font size
Mac:
* Set menubar
* Preferences window
Major Features: Major Features:
* Reloadable configuration
* Tabs (macOS only for UI reasons)
* Bell * Bell
* Mac:
- Switch to raw Cocoa and Metal instead of glfw and libuv (major!)
* Sixels: https://saitoha.github.io/libsixel/ * Sixels: https://saitoha.github.io/libsixel/
* Kitty keyboard protocol: https://sw.kovidgoyal.net/kitty/keyboard-protocol/ * Kitty keyboard protocol: https://sw.kovidgoyal.net/kitty/keyboard-protocol/
* Kitty graphics protocol: https://sw.kovidgoyal.net/kitty/graphics-protocol/ * Kitty graphics protocol: https://sw.kovidgoyal.net/kitty/graphics-protocol/