Language / θ¨θͺ: English | ζ₯ζ¬θͺ
A modern, performance-optimized Neovim configuration built on LazyVim with support for multiple programming languages and cross-platform compatibility.
- π Modern Architecture: Built on LazyVim with lazy loading for optimal performance
- π§ Neovim 0.11+ Support: Hybrid LSP setup supporting both new
vim.lsp.config()API and legacynvim-lspconfig - π Multi-Language Support: TypeScript, Lua, Python, Rust, C++, LaTeX, and JSON with comprehensive LSP configurations
- π¦ Smart Plugin Management: Organized plugin structure with
core/andplugins/separation - π― Type Safety: Extensive LuaCATS annotations for better development experience
- β‘ Performance Optimized: Lazy loading, caching, and efficient startup times
- π Advanced Diagnostics: Rich diagnostic display with virtual text and inlay hints
- π οΈ Development Tools: Integrated debugging, testing, and formatting capabilities
- TypeScript/JavaScript: Full LSP support with inlay hints, auto-formatting with Prettier
- Lua: Advanced configuration with lazy.nvim library support and LuaCATS annotations
- Python: Pyright integration with Rye virtual environment detection
- Rust: Comprehensive rust-analyzer setup with extensive configuration and debugging
- C/C++: clangd with background indexing and clang-tidy integration
- LaTeX: LTeX language server for academic writing
- JSON: Schema validation and formatting
- Neovim: 0.11+ (recommended) or 0.10+ (legacy support)
- Git: For plugin management and version control
- Node.js: For TypeScript/JavaScript development
- Python: For Python development (Rye supported)
- Rust: For Rust development (cargo/rustc)
- C/C++: clangd for C/C++ development
- β Linux: Full support with tmux clipboard integration
- β macOS: Native clipboard support with pbcopy/pbpaste
- β Windows (WSL): win32yank integration for seamless clipboard
-
Backup your existing Neovim configuration:
mv ~/.config/nvim ~/.config/nvim.backup
-
Clone this repository:
git clone https://github.com/darallium/neovim-config ~/.config/nvim -
Start Neovim:
nvim
-
Install plugins: Lazy.nvim will automatically install all plugins on first startup.
lua/
βββ core/ # Core Neovim settings
β βββ init.lua # Core module loader
β βββ options.lua # Vim options and settings
β βββ keymap.lua # Key mappings
β βββ lsp.lua # New LSP API (Neovim 0.11+)
β βββ global.lua # Global variables and platform detection
βββ plugins/ # Plugin configurations
β βββ lsp.lua # LSP configuration (hybrid setup)
β βββ Telescope.lua # Fuzzy finder
β βββ nvim-treesitter.lua # Syntax highlighting
β βββ cmp.lua # Completion engine
β βββ rust.lua # Rust-specific tools
β βββ copilot.lua # GitHub Copilot integration
β βββ colorscheme.lua # Color scheme settings
β βββ dashboard.lua # Start screen
β βββ ui.lua # UI enhancements
βββ util.lua # Utility functions
gd- Go to definitiongD- Go to declarationgi- Go to implementationgr- Go to referencesK- Hover documentation
;;- Open Telescope picker
<leader>ca- Code actions<leader>dr- Debug runnables
- LazyVim: Modern Neovim configuration framework
- lazy.nvim: Plugin manager with lazy loading
- nvim-lspconfig: LSP configuration
- nvim-cmp: Completion engine
- nvim-treesitter: Syntax highlighting
- Telescope: Fuzzy finder
- rustaceanvim: Rust development tools
- nvim-dap: Debug adapter protocol
- GitHub Copilot: AI pair programming
- none-ls.nvim: Formatting and linting
- crates.nvim: Rust crate management
- nvim-treesitter-context: Context-aware syntax highlighting
This configuration supports both Neovim 0.11+ native LSP API and legacy nvim-lspconfig:
-- Automatic version detection
if vim.fn.has('nvim-0.11') == 1 then
require("core.lsp").setup(capabilities) -- New API
else
-- Legacy lspconfig setup
end- Project-aware LSP activation (only in directories with
package.json) - Comprehensive inlay hints for parameters, types, and return values
- Auto-formatting with Prettier on save
- Extensive rust-analyzer configuration with 450+ lines of settings
- Custom completion snippets (Ok, Some, Err, Arc::new, etc.)
- Integrated debugging and testing tools
- Crate management with semantic versioning
- Rye virtual environment auto-detection
- Pyright with workspace-wide analysis
- Auto-detection of Python interpreters
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GPLv3 License - see the LICENSE file for details.
- LazyVim for the excellent foundation
- Neovim team for the amazing editor
- All plugin authors who make the Neovim ecosystem incredible
- LSP not starting: Check if the language server is installed and available in PATH
- Slow startup: Ensure plugins are properly configured for lazy loading
- Clipboard issues: Verify clipboard tools are installed (
xclip,pbcopy, orwin32yank) - TypeScript errors: Ensure you're in a Node.js project with
package.json
# Check Neovim version
nvim --version
# Check LSP status
:LspInfo
# Check plugin status
:Lazy
# Check health
:checkhealth