kickstart.nvim/cline_docs/systemPatterns.md

102 lines
2.5 KiB
Markdown

# System Patterns
## Architecture Patterns
### 1. Plugin System
- Uses lazy.nvim for plugin management
- Plugins are defined in init.lua
- Supports lazy loading via events/commands
- Custom plugins can be added in lua/custom/plugins/
### 2. Configuration Structure
```
.
├── init.lua # Main configuration file
├── lua/
│ ├── kickstart/ # Core functionality
│ │ └── plugins/ # Built-in plugin configs
│ └── custom/ # User customizations
│ └── plugins/ # Custom plugin configs
└── doc/ # Documentation
```
### 3. Key Design Patterns
#### Modular Configuration
- Core settings in init.lua
- Plugin-specific configurations in separate files
- Custom configurations isolated in lua/custom/
#### Event-Driven Architecture
- Uses Neovim's event system for plugin loading
- Autocommands for specific behaviors
- LSP events for IDE features
#### Layer-Based Organization
1. Core Settings Layer
- Basic Vim options
- Key mappings
- Global variables
2. Plugin Layer
- Plugin management
- Plugin configurations
- Plugin-specific settings
3. LSP Layer
- Language server configurations
- Completion setup
- Diagnostic settings
4. UI Layer
- Colorscheme
- Statusline
- Visual enhancements
## Technical Decisions
### 1. Configuration Language
- Lua chosen over VimScript for:
- Better performance
- Modern syntax
- Rich data structures
- Better integration with Neovim
### 2. Plugin Selection
- Minimal but powerful set of defaults
- Focus on maintained, actively developed plugins
- Preference for Lua-based plugins
- Built-in LSP over CoC or similar alternatives
### 3. Code Organization
- Single init.lua for easy understanding
- Modular structure available through kickstart-modular.nvim
- Clear separation between core and user customizations
### 4. Performance Considerations
- Lazy loading of plugins
- Efficient event handling
- Minimal startup impact
- Careful LSP configuration
## Key Technical Standards
1. Code Style
- Consistent Lua formatting
- Clear commenting
- Documented configuration options
2. Plugin Management
- Versioned dependencies
- Conditional loading
- Clear plugin specifications
3. Error Handling
- Protected calls for plugin loading
- Fallbacks for missing dependencies
- Clear error messages
4. Documentation
- Inline documentation
- Help files
- Clear user instructions