1.6 KiB
1.6 KiB
System Patterns: Neovim Configuration
System Architecture
-
Core Configuration Structure
- init.lua as main configuration file
- Lazy plugin management system
- LSP integration through nvim-lspconfig
- Custom keymaps and settings
-
Key Components
- Plugin Management (lazy.nvim)
- LSP Configuration
- Treesitter Integration
- Diagnostic System
- Custom Keybindings
Key Technical Decisions
Plugin Management
- Using lazy.nvim for plugin management
- Lazy loading enabled for better startup performance
- Plugin-specific configurations contained within setup blocks
LSP Implementation
- Mason for LSP server management
- nvim-lspconfig for LSP configuration
- Custom LSP attach events and keymaps
- Diagnostic configuration through vim.diagnostic
Editor Features
- Treesitter for syntax highlighting
- Telescope for fuzzy finding
- Which-key for keymap discovery
- Mini.nvim for various utilities
Component Relationships
-
Plugin Dependencies
- LSP plugins depend on nvim-lspconfig
- UI elements depend on having Nerd Font
- Telescope depends on plenary.nvim
-
Configuration Flow
- Leader key set before plugins
- Basic options configured early
- Plugins loaded through lazy.nvim
- LSP servers configured after plugins
- Keymaps set after all configurations
Design Patterns
-
Modularity
- Separate plugin configurations
- Isolated LSP server settings
- Independent keymap definitions
-
Event-Driven
- LSP attach events
- Autocommands for specific behaviors
- Lazy loading based on events