Added
- Select All (Ctrl+A): Select all text in the editor.
- Find Previous (Ctrl+Shift+G): Search backwards through the document.
- Go To Line (Ctrl+G): Jump to a specific line number with a dedicated dialog.
- macOS Dark Mode Detection: Automatic system theme detection on macOS via
AppleInterfaceStyledefaults key.
Changed
- Major Architecture Refactoring: Decomposed monolithic
main.rs(~2000 lines) into a clean, modular structure separating application logic from UI concerns:src/app/— Application logic layer:state.rs— Centralized application state managementmessages.rs— Message-passing enum for decoupled communicationtext_ops.rs— Text editing operations (find, replace, go-to-line)file_filters.rs— File type filter definitionsplatform.rs— Platform-specific detection (dark mode across OS)settings.rs— User preferences (moved fromsrc/)updater.rs— Update checker (moved fromsrc/)
src/ui/— Presentation layer:main_window.rs— Main window constructionmenu.rs— Menu bar buildertheme.rs— Theme and color managementfile_dialogs.rs— Native file dialog wrappersdialogs/— All dialog windows (About, Find, Go To Line, Settings, Update)
src/main.rs— Reduced to ~210 lines of top-level orchestration
- Module imports: Use
super::for sibling module imports withinapp/for cleaner internal references.
Technical
- Net change: +2,084 lines / -1,916 lines across 20 files.
- Clear separation of concerns enables independent testing and easier maintenance.
- Logical grouping paves the way for future plugin/extension architecture.
- All existing functionality preserved — no behavioral changes.