Commit Graph
5 Commits
Author SHA1 Message Date
Stevan Freeborn 569ff2a716 refactor: remove unused imports 2026-02-19 16:11:59 -06:00
Stevan Freeborn 2f4a04a5de feat: support vert and hori scrolling of editor 2026-01-30 07:17:00 -06:00
Stevan Freeborn 2c098b23b7 styles: working on making it look just right 2026-01-25 17:26:16 -06:00
Stevan Freeborn 75ab718655 feat: add highlighting to editor 2026-01-24 21:24:32 -06:00
Stevan Freeborn f5d98197ac refactor: modularize architecture
refactors the application structure to move away from a monolithic
`main.rs`.

- **Domain Models**: Extracted `State`, `Message`, `FileAction`, and
`ViewAction` into `state.rs` and `message.rs`. Enforced encapsulation on
`State` using private fields and public accessors.
- **Controller Layer**: Created `handler.rs` to handle business logic
and I/O operations, transforming the main `update` loop into a pure
event router.
- **Component System**: Split the UI into composable, stateless
functions in `components/` (tabs, editor, status_bar, action_bar),
removing the 100+ line view function.
- **File Logic**: Encapsulated file operations and safe path handling
within `file.rs`, removing fragile `expect` calls from the UI layer.
- **Utilities**: Centralized static configuration, keybindings, and I/O
helpers into `constants.rs`, `key_bindings.rs`, and `io.rs`.

This change decouples the view from the model and makes the core
application logic testable
2026-01-24 20:51:26 -06:00