Skip to main content

Crate reovim_module_vim

Crate reovim_module_vim 

Source
Expand description

Vim policy module.

This module provides Vim-style behavior for reovim:

  • Keybindings: Standard Vim keys (hjkl, operators, modes)
  • Operators: Vim operators (d, y, c) - delete, yank, change
  • Resolvers: Mode-specific key interpretation (counts, registers)
  • Visual mode: Entry, exit, manipulation, operators
  • Policy: Vim lookup behavior (wait for longer sequences)

§Architecture

This is a POLICY module - it defines HOW the editor behaves. The kernel and drivers provide the mechanisms (WHAT can be done).

┌─────────────────────────────────────────────────────────┐
│  VIM POLICY MODULE (this module)           POLICY       │
│  → Vim keybindings (hjkl, dd, etc.)                     │
│  → Vim operators (d, y, c with motions)                 │
│  → Vim resolvers (count/register handling)              │
│  → Visual mode commands (selection operations)          │
│  → Vim behavior (wait for longer sequences)             │
├─────────────────────────────────────────────────────────┤
│  MECHANISM MODULES                         CAPABILITIES │
│  editor/, keymap/, motions/                             │
│  → "What operations are possible"                       │
└─────────────────────────────────────────────────────────┘

§Example

use reovim_module_vim::VimModule;

let module = VimModule::new();
let bindings = module.keybindings();
// Returns ~180 Vim keybindings

Re-exports§

pub use modes::VIM_MODULE;
pub use modes::VimMode;
pub use providers::VimDefaultModeProvider;
pub use providers::VimModuleProviderExt;
pub use session_state::PendingCharOp;
pub use session_state::VimSessionState;
pub use ids::CHANGE;
pub use ids::DELETE;
pub use ids::OperatorId;
pub use ids::YANK;
pub use operators::ChangeCommand;
pub use operators::ChangeOperator;
pub use operators::DeleteCommand;
pub use operators::DeleteOperator;
pub use operators::Operator;
pub use operators::OperatorContext;
pub use operators::OperatorError;
pub use operators::Range;
pub use operators::YankCommand;
pub use operators::YankOperator;
pub use operators::operator_commands;
pub use fallback::VimFallbackHandler;
pub use vim_lookup_policy::VimLookupPolicy;
pub use commands::ChangeLine;
pub use commands::ChangeToEndOfLine;
pub use commands::EnterCommandLineMode;
pub use commands::EnterInsertEndOfLine;
pub use commands::EnterInsertFirstNonBlank;
pub use commands::EnterInsertMode;
pub use commands::EnterInsertModeAppend;
pub use commands::EnterReplaceMode;
pub use commands::EnterSearchBackward;
pub use commands::EnterSearchForward;
pub use commands::EnterWindowMode;
pub use commands::ExecuteFindChar;
pub use commands::ExitCommandLineMode;
pub use commands::ExitToNormal;
pub use commands::OpenLineAbove;
pub use commands::OpenLineBelow;
pub use commands::ReplaceBackspace;
pub use resolvers::VimCaseResolver;
pub use resolvers::VimChangeResolver;
pub use resolvers::VimCommandLineResolver;
pub use resolvers::VimDeleteResolver;
pub use resolvers::VimInsertResolver;
pub use resolvers::VimNormalResolver;
pub use resolvers::VimReplaceResolver;
pub use resolvers::VimVisualResolver;
pub use resolvers::VimYankResolver;
pub use visual::ChangeSelection;
pub use visual::DedentSelection;
pub use visual::DeleteSelection;
pub use visual::EnterVisualBlockMode;
pub use visual::EnterVisualLineMode;
pub use visual::EnterVisualMode;
pub use visual::ExitVisualMode;
pub use visual::IndentSelection;
pub use visual::LowercaseSelection;
pub use visual::ReselectLast;
pub use visual::SwapAnchor;
pub use visual::ToggleCaseSelection;
pub use visual::ToggleVisualBlock;
pub use visual::ToggleVisualChar;
pub use visual::ToggleVisualLine;
pub use visual::UppercaseSelection;
pub use visual::YankSelection;
pub use visual::visual_commands;
pub use visual::visual_entry_commands;
pub use visual::visual_exit_commands;
pub use visual::visual_operator_commands;
pub use visual::visual_selection_commands;

Modules§

annotation
Vim annotation module.
bindings
Vim keybindings.
commands
Vim-specific commands.
fallback
Vim fallback handler for character insertion.
ids
Command and operator ID constants for the vim module.
macros
Macro recording and playback support (Epic #465 Phase 8D).
modes
Vim mode definitions.
operators
Vim operators - delete, yank, change, case transformation.
providers
Default mode provider for the Vim module.
resolvers
Vim mode key resolvers.
session_state
Vim-specific per-session state.
vim_lookup_policy
Vim-style lookup policy.
visual
Visual mode commands - entry, exit, selection manipulation, and operators.

Structs§

VimModule
Vim policy module.