Files
Greg Shuflin 55f316f028 Command::NAMES as single source of truth for names/aliases; use in dispatch and completion
- Move Command enum to commands/mod.rs with NAMES, from_name, takes_path_arg
- Replace manual match in CommandAPI::execute with Command::from_name
- Derive canonical names for completion from Command::NAMES (first per variant)
- Simplify complete() to use Command::takes_path_arg instead of complete_path_arg
- Fix bug: 'h' was incorrectly listed as alias for both help and finder
2026-03-03 14:22:10 -08:00

1.6 KiB

TODO

Bugs

  • typing a tab literal is jacked up, fix

Input options

  • need to implement expandtab option

EditorAction Improvements

  • Have the colon character pop up a command palette window
  • General refactor of EditorAction type
  • HidePane should probably not do buffer manipulation itself
  • Individual actions for inserting/deleting large amounts of text?
  • On save, a status message should be displayed, using the same EditorAction framework
  • AddOverlay action is defined and handled but never constructed externally — wire it up so commands and scripts can emit overlays via the action system
  • PanePosition::Main { tab } field is unused — implement tab ordering for the main editing area
  • OverlayLifetime::Persistent is unused — use it for long-lived status indicators (e.g. unsaved-changes marker, read-only indicator)

Help

  • Make help text more sophisticated — dynamically generated from keybindings and command definitions rather than a static string; could include sections for current mode, available commands with their aliases, and key bindings

Styling

  • Theme is never constructed — wire Theme::default_theme() into the renderer so StyleName variants resolve to actual TextAttrs instead of being looked up at each call site
  • StyleName::Error, Warning, Hint, and Default variants are unused — use them for command output errors, LSP diagnostics, and default buffer text once the theme is wired up
  • Color and TextAttrs are unused — these become live once the renderer uses Theme::resolve() to translate StyleName to terminal attributes