Commit Graph
43 Commits
Author SHA1 Message Date
Stevan Freeborn 20bc914d33 chore: remove allow-dirty 2026-03-12 05:37:12 -05:00
Stevan Freeborn b942306b29 chore: update cargo toml to allow release workflow contents to not fail workflow 2026-03-12 05:34:01 -05:00
Stevan Freeborn cfa70914a2 chore: regenerate release workflow 2026-03-12 05:28:18 -05:00
Stevan Freeborn c2b7298bb8 chore: setup github workflow for publishing using cargo-dist 2026-03-12 05:22:49 -05:00
Stevan Freeborn 4383573c8e feat: add support for opening links 2026-02-26 05:04:05 -06:00
Stevan Freeborn 65c9036ec9 fix: remove unused using 2026-02-25 17:18:34 -06:00
Stevan Freeborn b382f14a55 feat: add word wrap toggle functionality
Add the ability to toggle word wrap in the text editor with Alt+Z.
Word wrap can be enabled or disabled, affecting how long lines are
displayed in edit mode.

Changes:
- Add `is_word_wrap_on` state field with default value of false
- Implement `toggle_word_wrap()` and `is_word_wrap_on()` methods
- Add ToggleWordWrap variant to ViewAction enum
- Bind Alt+Z keyboard shortcut to toggle word wrap
- Refactor editor view to support dynamic wrapping behavior
  - Use responsive widget when wrap is enabled to constrain width
  - Apply Wrapping::WordOrGlyph when enabled, Wrapping::None otherwise
- Update editor view signature to accept word wrap state parameter
- Fix indentation inconsistencies in file.rs and state.rs
2026-02-25 17:17:34 -06:00
Stevan Freeborn 7462943c04 feat: display save indicator on new files 2026-02-21 05:31:00 -06:00
Stevan Freeborn 5faa42a3e1 feat: display indicator when need saving 2026-02-21 05:08:48 -06:00
Stevan Freeborn 268325adfa feat(main): if given file path as argument use it
- if existing file then populate default file with that file's state
- if non-existing file create it and populate default file with that
file
2026-02-19 16:11:59 -06:00
Stevan Freeborn 08d1adf44e feat(io): add method to just load file async 2026-02-19 16:11:59 -06:00
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 1beb61d95e Merge pull request #3 from StevanFreeborn/stevanfreeborn/feat/migrate-to-daemon
feat: migrate to a daemon to support windowing in future. allow to run without attached console
2026-01-26 12:45:11 -06:00
Stevan Freeborn 3b40d30744 feat: migrate to a daemon to support windowing in future. allow to run without attached console 2026-01-26 12:44:50 -06:00
Stevan Freeborn db0cd51818 chore: run cargo fmt 2026-01-25 17:26:40 -06:00
Stevan Freeborn 2c098b23b7 styles: working on making it look just right 2026-01-25 17:26:16 -06:00
Stevan Freeborn bd9489feb4 chore: remove evidence of my ginormous refactor 2026-01-25 04:55:09 -06:00
Stevan Freeborn 75ab718655 feat: add highlighting to editor 2026-01-24 21:24:32 -06:00
Stevan Freeborn cfad6c883c chore: set package version to 0.0.0 2026-01-24 20:52:54 -06:00
Stevan Freeborn 229fab3381 fix: enable tokio feature in iced 2026-01-24 20:51:26 -06:00
Stevan Freeborn b281b154fa chore: remove unused sync file ops 2026-01-24 20:51:26 -06:00
Stevan Freeborn 88006d08a2 feat: update handler logic to use async io methods and produce completion messages and implemend handlers to deal with completions 2026-01-24 20:51:26 -06:00
Stevan Freeborn 4e3bdf8db3 feat: added new messages to represent completion of saving and opening a file async 2026-01-24 20:51:26 -06:00
Stevan Freeborn 072ad61eb9 feat: implement async methods for saving and opening file 2026-01-24 20:51:26 -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
Stevan Freeborn cb5f1cf717 feat: refactor bindings to work in edit and preview modes 2026-01-23 07:09:50 -06:00
Stevan Freeborn 55bdbafce2 feat: add ability to preview markdown 2026-01-21 07:12:20 -06:00
Stevan Freeborn 9386fb38fd feat: refactor to make sure new tabs are added to end of the tab list always 2026-01-18 08:33:49 -06:00
Stevan Freeborn 573724901f feat: refactor state into hashmap + add new file action with keybind 2026-01-15 07:02:21 -06:00
Stevan Freeborn 599aacaf3b feat: keep track of multiple open files using tabbed buttons 2026-01-13 04:25:46 -06:00
Stevan Freeborn 3fd69df4db feat: implement font reset and wip on tab
- implemented the ability to reset
  font along with corresponding keybind
- added initial tab using buttons
  and on click loading file into
  editor state
2026-01-11 08:04:25 -06:00
Stevan Freeborn cf58763795 Merge branch 'main' of github.com:StevanFreeborn/zoeae 2026-01-10 08:02:29 -06:00
Stevan Freeborn 1704441315 feat: wire up keybinds
- added keybinds for existing file actions
- added keybinds to support zooming
2026-01-10 08:02:21 -06:00
Stevan Freeborn 674a9d0a37 docs: update readme.md 2026-01-09 07:53:44 -06:00
Stevan Freeborn c2a9685b5b feat: app icon 2026-01-09 07:51:53 -06:00
Stevan Freeborn 8e8409a7b5 feat: added saving existing file or new file 2026-01-09 07:18:43 -06:00
Stevan Freeborn 12bcf1b521 chore: update LICENSE.txt 2026-01-07 18:22:27 -06:00
Stevan Freeborn 5602ae555b chore: update program name in license notice 2026-01-07 18:19:47 -06:00
Stevan Freeborn 17df4aaad3 chore: rename package from 'ferris-pad' to 'zoeae' 2026-01-07 18:16:35 -06:00
Stevan Freeborn b95f406a0b chore: rename project from FerrisPad to Zoeae 2026-01-07 18:15:25 -06:00
Stevan Freeborn 1e8ec35703 docs: update README.md 2026-01-06 07:21:58 -06:00
Stevan Freeborn cb02373547 feat: trying hard to be a Rustacean with chat's help 2026-01-06 07:19:44 -06:00