66 lines
1.5 KiB
Markdown
66 lines
1.5 KiB
Markdown
# Neovim Configuration System Patterns
|
|
|
|
## Architecture Overview
|
|
|
|
### Directory Structure
|
|
```
|
|
.
|
|
├── init.lua # Main entry point
|
|
├── lua/
|
|
│ ├── custom/ # Custom configurations
|
|
│ │ └── plugins/ # Plugin-specific settings
|
|
│ └── kickstart/ # Core functionality
|
|
│ └── plugins/ # Plugin management
|
|
```
|
|
|
|
## Design Patterns
|
|
|
|
### Plugin Management
|
|
- Module-based plugin organization
|
|
- Lazy loading for performance
|
|
- Plugin-specific configuration isolation
|
|
- Conditional plugin loading
|
|
|
|
### Configuration Patterns
|
|
1. Modular Configuration
|
|
- Separate files for different concerns
|
|
- Clear dependency management
|
|
- Isolated plugin configurations
|
|
|
|
2. Event-Driven Setup
|
|
- Lazy plugin loading
|
|
- Event-based initialization
|
|
- Conditional feature enabling
|
|
|
|
3. Error Handling
|
|
- Protected calls for plugin setup
|
|
- Fallback configurations
|
|
- Clear error reporting
|
|
|
|
## Component Relationships
|
|
1. Core System
|
|
- init.lua loads core modules
|
|
- Establishes basic editor settings
|
|
- Sets up plugin management
|
|
|
|
2. Plugin System
|
|
- Managed through lua/custom/plugins
|
|
- Isolated plugin configurations
|
|
- Dependency handling
|
|
|
|
3. Debug Integration
|
|
- Separate debug configuration
|
|
- Language-specific adapters
|
|
- Custom debug commands
|
|
|
|
## Technical Decisions
|
|
1. Lua-based configuration for:
|
|
- Better performance
|
|
- More powerful customization
|
|
- Cleaner syntax
|
|
|
|
2. Modular structure for:
|
|
- Easier maintenance
|
|
- Better organization
|
|
- Simplified updates
|