73 lines
1.9 KiB
Markdown
73 lines
1.9 KiB
Markdown
|
|
# System Architecture & Patterns
|
||
|
|
|
||
|
|
## Core Architecture
|
||
|
|
- Plugin management via lazy.nvim
|
||
|
|
- LSP-based intellisense and code navigation
|
||
|
|
- Event-driven configuration loading
|
||
|
|
- Modular plugin configuration
|
||
|
|
- Enhanced mode state management system
|
||
|
|
|
||
|
|
## Key Design Patterns
|
||
|
|
|
||
|
|
1. Mode Management
|
||
|
|
- Advanced state persistence
|
||
|
|
- Event-driven mode transitions
|
||
|
|
- Mode-specific context preservation
|
||
|
|
- Pre/post mode change hooks
|
||
|
|
- Mode validation system
|
||
|
|
- Mode-specific settings store
|
||
|
|
|
||
|
|
2. Event System
|
||
|
|
- Hierarchical event handling
|
||
|
|
- Event queueing mechanism
|
||
|
|
- Async event processing
|
||
|
|
- Event prioritization
|
||
|
|
- Mode-specific event handlers
|
||
|
|
|
||
|
|
3. Persistence Layer
|
||
|
|
- Versioned state storage
|
||
|
|
- State migration system
|
||
|
|
- Corruption detection
|
||
|
|
- Fallback mechanisms
|
||
|
|
- Incremental state updates
|
||
|
|
|
||
|
|
4. Integration Patterns
|
||
|
|
- Mode-aware plugin system
|
||
|
|
- LSP integration with mode context
|
||
|
|
- Buffer grouping by mode
|
||
|
|
- Window layout persistence
|
||
|
|
- Mode-specific UI elements
|
||
|
|
|
||
|
|
5. Configuration Patterns
|
||
|
|
- Centralized keybinding management
|
||
|
|
- Plugin-specific configuration in separate modules
|
||
|
|
- Default options set through vim.opt
|
||
|
|
- Autocmd groups for event handling
|
||
|
|
- Mode-specific settings and behaviors
|
||
|
|
|
||
|
|
6. LSP Integration
|
||
|
|
- Mason for LSP server management
|
||
|
|
- Uniform LSP configuration across languages
|
||
|
|
- Shared capabilities for completion
|
||
|
|
- Mode-specific language server configurations
|
||
|
|
|
||
|
|
7. Component Relationships
|
||
|
|
- Mode Manager ↔ Event System
|
||
|
|
- Event System ↔ Persistence Layer
|
||
|
|
- Mode Manager ↔ Status Line
|
||
|
|
- LSP ↔ Mode Context
|
||
|
|
- Buffer Groups ↔ Mode State
|
||
|
|
- Window Layout ↔ Mode State
|
||
|
|
- Plugins ↔ Mode Context
|
||
|
|
|
||
|
|
## Implementation Standards
|
||
|
|
- Lua for all configuration
|
||
|
|
- Consistent error handling
|
||
|
|
- Modular plugin organization
|
||
|
|
- Clear separation of concerns
|
||
|
|
- Mode-aware functionality
|
||
|
|
- State validation
|
||
|
|
- Event-driven architecture
|
||
|
|
- Robust error recovery
|
||
|
|
- Configuration versioning
|
||
|
|
- Context preservation
|