1.9 KiB
1.9 KiB
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
-
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
-
Linting Framework
- File-type specific linters
- Automatic lint on events (BufEnter, BufWritePost, InsertLeave)
- Configurable linter selection per filetype
- Integration with LSP diagnostics
-
Code Completion
- nvim-cmp as completion engine
- LSP-based completions
- Snippet integration
- Auto-pairs integration for brackets/quotes
Component Relationships
- Plugin Manager (lazy.nvim) → Plugin Configurations
- LSP Layer → Language Servers → Code Intelligence
- Debug Adapters → DAP UI → User Interface
- Linters → Diagnostic Framework → Error Reporting
Design Decisions
- Event-driven plugin loading for performance
- Modular configuration for maintainability
- Extensive use of built-in LSP capabilities
- Integration between complementary tools (LSP, DAP, Linters)
- Custom keymaps for efficient workflow