revw 0.2.5

A vim-like TUI for managing notes and resources
Documentation
pub fn get_help_content() -> Vec<String> {
    vec![
        "".to_string(),
        "  ██████╗ ███████╗██╗   ██╗██╗    ██╗".to_string(),
        "  ██╔══██╗██╔════╝██║   ██║██║    ██║".to_string(),
        "  ██████╔╝█████╗  ██║   ██║██║ █╗ ██║".to_string(),
        "  ██╔══██╗██╔══╝  ╚██╗ ██╔╝██║███╗██║".to_string(),
        "  ██║  ██║███████╗ ╚████╔╝ ╚███╔███╔╝".to_string(),
        "  ╚═╝  ╚═╝╚══════╝  ╚═══╝   ╚══╝╚══╝ ".to_string(),
        "".to_string(),
        "  A vim-like TUI for managing notes and resources".to_string(),
        "".to_string(),
        "═══════════════════════════════════════════════════════════════".to_string(),
        "".to_string(),
        "VIEW MODE CONTROLS".to_string(),
        "".to_string(),
        "Navigation:".to_string(),
        "  j/k or ↑/↓   - select card (or mouse wheel)".to_string(),
        "  gg           - select first card".to_string(),
        "  G            - select last card".to_string(),
        "  :gi          - jump to first INSIDE entry".to_string(),
        "  :go          - jump to first OUTSIDE entry".to_string(),
        "  /            - search forward".to_string(),
        "  n/N          - next/prev match (jumps to card)".to_string(),
        "  :noh         - clear search highlighting".to_string(),
        "".to_string(),
        "Editing:".to_string(),
        "  Enter        - open edit overlay for selected card".to_string(),
        "  :ai          - add new INSIDE entry (jumps to it)".to_string(),
        "  :ao          - add new OUTSIDE entry (jumps to it)".to_string(),
        "  :o           - order entries (by percentage then name) and auto-save".to_string(),
        "  :op          - order by percentage only and auto-save".to_string(),
        "  :on          - order by name only and auto-save".to_string(),
        "".to_string(),
        "Copy/Paste:".to_string(),
        "  :c           - copy all rendered content (with OUTSIDE/INSIDE headers)".to_string(),
        "  :ci          - copy INSIDE section only".to_string(),
        "  :co          - copy OUTSIDE section only".to_string(),
        "  :cu          - copy URL from selected card".to_string(),
        "  :v           - paste file path or JSON content".to_string(),
        "  :vu          - paste URL from clipboard to selected card".to_string(),
        "  :vi          - paste INSIDE from clipboard (overwrite)".to_string(),
        "  :vo          - paste OUTSIDE from clipboard (overwrite)".to_string(),
        "  :va          - paste both INSIDE and OUTSIDE from clipboard (append)".to_string(),
        "  :vai         - paste INSIDE from clipboard (append)".to_string(),
        "  :vao         - paste OUTSIDE from clipboard (append)".to_string(),
        "  :xi          - clear INSIDE section".to_string(),
        "  :xo          - clear OUTSIDE section".to_string(),
        "".to_string(),
        "Entry Operations:".to_string(),
        "  :dd          - delete selected entry".to_string(),
        "  :yy          - duplicate selected entry".to_string(),
        "".to_string(),
        "Visual Mode (multi-card selection):".to_string(),
        "  v            - enter Visual mode".to_string(),
        "  j/k          - extend selection".to_string(),
        "  :cc          - copy selected cards (rendered)".to_string(),
        "  :ccj         - copy selected cards (JSON)".to_string(),
        "  :dc          - delete selected cards".to_string(),
        "  Esc/Ctrl+[   - exit Visual mode".to_string(),
        "".to_string(),
        "Filter (View mode only):".to_string(),
        "  :f pattern   - filter entries by pattern".to_string(),
        "  :nof         - clear filter".to_string(),
        "".to_string(),
        "Settings:".to_string(),
        "  :set number / :set nu       - enable line numbers (Edit mode)".to_string(),
        "  :set nonumber / :set nonu   - disable line numbers".to_string(),
        "  :set card=N                 - set max visible cards (1-10, default: 5)".to_string(),
        "".to_string(),
        "File Explorer Commands (when explorer has focus):".to_string(),
        "  Enter or o   - open file or enter directory".to_string(),
        "  ..           - navigate to parent directory".to_string(),
        "  :a           - create new JSON file".to_string(),
        "  :d           - create new directory".to_string(),
        "  :m           - rename file".to_string(),
        "  :dd          - delete file (confirms with yes/no)".to_string(),
        "  :yy          - copy file (asks destination)".to_string(),
        "".to_string(),
        "Other:".to_string(),
        "  r            - toggle View/Edit mode".to_string(),
        "  :Lexplore / :Lex / :lx - toggle file explorer".to_string(),
        "  Ctrl+w w     - cycle between explorer and file window".to_string(),
        "  Ctrl+w h     - move to explorer window (left)".to_string(),
        "  Ctrl+w l     - move to file window (right)".to_string(),
        "  :h or ?      - help".to_string(),
        "  q or Esc     - quit".to_string(),
        "".to_string(),
        "EDIT MODE CONTROLS".to_string(),
        "".to_string(),
        "Navigation:".to_string(),
        "  h/j/k/l or arrow keys - move cursor".to_string(),
        "  e            - next word end".to_string(),
        "  b            - previous word start".to_string(),
        "  gg           - jump to top".to_string(),
        "  G            - jump to bottom".to_string(),
        "  :gi          - jump to first INSIDE entry".to_string(),
        "  :go          - jump to first OUTSIDE entry".to_string(),
        "".to_string(),
        "Editing:".to_string(),
        "  i            - enter insert mode".to_string(),
        "  x            - delete character at cursor".to_string(),
        "  X            - delete character before cursor".to_string(),
        "  Esc or Ctrl+[ - exit insert mode".to_string(),
        "  u            - undo".to_string(),
        "  Ctrl+r       - redo".to_string(),
        "  g-           - undo".to_string(),
        "  g+           - redo".to_string(),
        "".to_string(),
        "Search:".to_string(),
        "  /            - search forward".to_string(),
        "  n/N          - next/prev match".to_string(),
        "  :noh         - clear search highlighting".to_string(),
        "".to_string(),
        "Commands:".to_string(),
        "  :ai          - add INSIDE entry".to_string(),
        "  :ao          - add OUTSIDE entry".to_string(),
        "  :o           - order entries (by percentage then name)".to_string(),
        "  :op          - order by percentage only".to_string(),
        "  :on          - order by name only".to_string(),
        "  :dd          - delete current entry (entire object)".to_string(),
        "  :yy          - duplicate current entry (entire object)".to_string(),
        "  :ci          - copy INSIDE section (JSON format)".to_string(),
        "  :co          - copy OUTSIDE section (JSON format)".to_string(),
        "  :vi          - paste INSIDE from clipboard (overwrite)".to_string(),
        "  :vo          - paste OUTSIDE from clipboard (overwrite)".to_string(),
        "  :va          - paste both INSIDE and OUTSIDE from clipboard (append)".to_string(),
        "  :vai         - paste INSIDE from clipboard (append)".to_string(),
        "  :vao         - paste OUTSIDE from clipboard (append)".to_string(),
        "  :xi          - clear INSIDE section".to_string(),
        "  :xo          - clear OUTSIDE section".to_string(),
        "  :w           - save".to_string(),
        "  :wq          - save and quit".to_string(),
        "  :q           - quit".to_string(),
        "  :e           - reload file".to_string(),
        "  :ar          - toggle auto-reload (default: on)".to_string(),
        "  :f pattern   - filter entries".to_string(),
        "  :nof         - clear filter".to_string(),
        "  :Lexplore / :Lex / :lx - toggle file explorer".to_string(),
        "  Ctrl+w w     - cycle between explorer and file window".to_string(),
        "  Ctrl+w h     - move to explorer window (left)".to_string(),
        "  Ctrl+w l     - move to file window (right)".to_string(),
        "  :h or ?      - help".to_string(),
        "".to_string(),
        "Settings:".to_string(),
        "  :set number / :set nu       - enable line numbers".to_string(),
        "  :set nonumber / :set nonu   - disable line numbers".to_string(),
        "  :set card=N                 - set max visible cards (1-10, default: 5)".to_string(),
        "".to_string(),
        "Substitute:".to_string(),
        "  :s/foo/bar/     - substitute first occurrence in current line".to_string(),
        "  :s/foo/bar/g    - substitute all occurrences in current line".to_string(),
        "  :%s/foo/bar/    - substitute first occurrence in all lines".to_string(),
        "  :%s/foo/bar/g   - substitute all occurrences in all lines".to_string(),
    ]
}