odin_editor/todo.md

80 lines
2.7 KiB
Markdown

# Bugs
- Fix jumping forward a word jumping past consecutive brackets
- Scrolling past end/beginning of grep results panics
- "change selection" not pushing snapshot
- Don't allow panel navigation in grep panel
# Visual QOL
- Split grep search results into a table to avoid funky unaligned text
# TODO
- [ ] Jump List
- [x] Use grouped lifetimes exclusively for memory allocation/freeing
- [ ] Highlight which panel is currently active
- [ ] Persist end of line cursor position
- Testing Harness
- [x] Replay user inputs and assert buffer contents/changes
- [ ] Finish writing tests for all current user actions
- Vim-like Macro replays
- [ ] Simple File Search (vim /)
- Modify input system to allow for keybinds that take input
- Vim's f and F movement commands
- Vim's r command
- Save/Load files
- [x] Save
- [ ] Load when changed on disk
- LSP Integration
- [ ] Language Server Configurations
- [ ] Diagnostics
- [ ] In-line errors
- [ ] Go-to Definition/
- [ ] Find references
- [ ] Integrate tree-sitter
- [x] Syntax Highlighting
- [ ] Auto Setup Parsers
- [ ] Download parser
- [ ] Compile/"Install"
- [ ] Auto-indent
- [x] Infer indent with similar lines
- [x] Infer indent with C-style scopes (languages using '{')
- [ ] Infer indent inside multi-line function calls (again C-style)
- [ ] Somehow use tree-sitter to be language agnostic (not sure this is even possible with TS)
- [ ] Bootleg Telescope
- [ ] Grepping Files
- [x] Query across project
- [x] Open file in new buffer
- [x] Open file in new buffer at found location
- [ ] Preview file with context
- [x] Show Context
- [ ] Properly show lines numbers
- [ ] Don't overlap result list with file preview
- [ ] Open Buffer Search
- [ ] Workspace file search
- Re-write the UI (again)
- [x] New UI
- [ ] Styling
- [x] Background colors
- [x] Borders + Border Color
- [ ] Rounded corners?
- [ ] Gradients?
- Undo/Redo
- [x] Basic/Naive Undo/Redo
- [ ] Interface for undo-able actions
- [ ] Edit History Tree
- [ ] Undo history saved to disk
- Finish selections
- [x] Guarantee that start and end are always ordered
- [ ] Whole Line Selections
- Add in text actions
- [x] Yank
- [x] Delete
- [ ] Change
- [x] Change
- [ ] Change word
- [ ] Change inside delimiter
- Virtual Whitespace
- Allow any-sized tabs
- Command Search and Execution
- Refactor to remove generics added specifically for plugins
- Palette based UI?