Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@nicholasjpaterno
Copy link
Contributor

No description provided.

Adopt turbovault parser/core for headings, links, slugs, and block output to get OFM-aware parsing with code-block exclusions and consistent metadata.
- Update turbovault-parser from 1.2.1 to 1.2.3
- Cleans up transitive dependencies (removes anyhow, nom 7.x, thiserror)
- Bump rust-version to 1.90
- Add keybinds-rs for extensible keybinding dispatch with multi-key sequences
- Add strum for enum iteration and string conversion
- Create keybindings module with Action enum defining all bindable actions
- Add KeybindingMode enum for mode-based keybinding organization
- Add Keybindings struct wrapping keybinds-rs with mode support
- Define comprehensive default keybindings for all modes
- Support TOML configuration format for user customization

Modes supported:
- Normal: main navigation and actions
- Help: help popup scrolling
- ThemePicker: theme selection
- Interactive: element navigation
- InteractiveTable: table cell navigation
- LinkFollow: link navigation and selection
- LinkSearch: link filtering
- Search: outline filtering
- DocSearch: document content search
- CommandPalette: command execution
- CellEdit: table cell editing
- ConfirmDialog: confirmation prompts
- Add keybindings field to Config for TOML-based customization
- Add keybindings() method to Config for loading user bindings
- Add keybindings field to App struct
- Add current_keybinding_mode() to map AppMode to KeybindingMode
- Add get_action_for_key() for action-based key dispatch
- Support all app modes: Normal, Interactive, LinkFollow, Search,
  DocSearch, CommandPalette, Help, ThemePicker, CellEdit, ConfirmDialog
Major refactor of the event loop to use the keybindings system:

- Add ActionResult enum for action outcomes (Continue, Quit, RunEditor)
- Add execute_action() method to App that handles all 60+ actions
- Add helper methods: exit_current_mode(), handle_confirm_action(),
  handle_cancel_action(), handle_search_backspace(), table_navigate_*()
- Replace 600+ lines of nested match statements with clean dispatch
- Separate text input handling from action handling
- Keep character input for search/edit modes outside action system

The event loop is now ~100 lines vs ~600 lines previously, making it
much easier to understand and maintain. All key handling now flows
through the customizable keybindings system.
- JumpToParent now works in both Outline and Content focus
- PageDown/PageUp now properly scroll help popup when in Help mode
- Add scroll_help_page_down/up methods for half-page scrolling
@nicholasjpaterno nicholasjpaterno merged commit 2212c0c into main Dec 12, 2025
1 check passed
@nicholasjpaterno nicholasjpaterno deleted the release/v0.5.0 branch December 12, 2025 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants