- Get input maps working with `spawn_floating_window` - Save/Load files - Undo/Redo - Edit History Tree - Finish selections - [x] Guarantee that start and end are always ordered - Add in text actions - Yank - [x] Delete - [x] Change - Virtual Whitespace - Allow any-sized tabs - Modify input system to allow for keybinds that take input - Vim's f and F movement commands - Vim's r command - Command Search and Execution - Palette based UI? - [ ] Registering Plugin Commands that can be run in palette and via other plugins - [x] A way to query these commands by-plugin - Re-write the UI (again) - Separate ui components from layout - Re-do plugin system - Potentially have a C# plugins system? Use it instead of Lua? (probably not) - Re-do dylib plugin system - Re-do Lua plugin system - Core Events ~Define ultra-core common API~ - ~3rd-party core UI modifications must abide by this API (for example, another plugin must be able to open a file and have it be focused)~ - e.g. Open File, currently focused UI panel recieves event - Ability to probe core for installed plugins and their version - Plugins can register to be UI components that the user can define where they are laid out - Persist end of line cursor position - Generate key mappings from the plugin.Key enum - Fix jumping forward a word jumping past consecutive brackets - Re-do highlighter - Use tree-sitter? - Purely run highlighter on glyph-buffer? - Figure out someway to cache multi-line coloring (ex. quotes)