60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# Neovim Configuration System Patterns
|
|
|
|
## Architecture Overview
|
|
```
|
|
.
|
|
├── init.lua # Main configuration entry point
|
|
└── lua/
|
|
└── kickstart/
|
|
└── plugins/ # Plugin-specific configurations
|
|
├── debug.lua # DAP debugging setup
|
|
├── lint.lua # nvim-lint configuration
|
|
└── autopairs.lua # Auto-pairing setup
|
|
```
|
|
|
|
## Core Patterns
|
|
|
|
### Plugin Organization
|
|
- Lazy.nvim for plugin management and lazy loading
|
|
- Modular plugin configuration files
|
|
- Clear separation of concerns per plugin
|
|
- Event-based plugin loading for better startup time
|
|
|
|
### LSP Integration
|
|
- Mason.nvim for LSP server management
|
|
- Comprehensive language server configurations
|
|
- Integrated completion with nvim-cmp
|
|
- Automatic server installation and setup
|
|
|
|
### Development Tools Integration
|
|
1. Debugging System
|
|
- nvim-dap for debug adapter protocol support
|
|
- Language-specific debug configurations (Go, Python)
|
|
- Integrated debug UI with nvim-dap-ui
|
|
- Custom keymaps for debug operations
|
|
|
|
2. Linting Framework
|
|
- File-type specific linters
|
|
- Automatic lint on events (BufEnter, BufWritePost, InsertLeave)
|
|
- Configurable linter selection per filetype
|
|
- Integration with LSP diagnostics
|
|
|
|
3. Code Completion
|
|
- nvim-cmp as completion engine
|
|
- LSP-based completions
|
|
- Snippet integration
|
|
- Auto-pairs integration for brackets/quotes
|
|
|
|
## Component Relationships
|
|
1. Plugin Manager (lazy.nvim) → Plugin Configurations
|
|
2. LSP Layer → Language Servers → Code Intelligence
|
|
3. Debug Adapters → DAP UI → User Interface
|
|
4. Linters → Diagnostic Framework → Error Reporting
|
|
|
|
## Design Decisions
|
|
1. Event-driven plugin loading for performance
|
|
2. Modular configuration for maintainability
|
|
3. Extensive use of built-in LSP capabilities
|
|
4. Integration between complementary tools (LSP, DAP, Linters)
|
|
5. Custom keymaps for efficient workflow
|