Overview
EmmyLua Analyzer integrates seamlessly with Neovim’s native LSP client, providing powerful Lua language support with minimal configuration. Enjoy intelligent completions, diagnostics, and navigation in your favorite terminal editor.Prerequisites:
- Neovim 0.8 or higher (0.9+ recommended)
- EmmyLua Analyzer installed (
cargo install emmylua_ls) - Optional: nvim-lspconfig plugin
Installation Methods
Method 1: Using nvim-lspconfig (Recommended)
Method 2: Native LSP (Neovim 0.10+)
Method 3: Manual LSP Setup
Configuration
Complete Configuration Example
Here’s a full configuration with all features enabled:init.lua
Neovim-Specific Configuration
For Neovim Lua development, add this configuration:init.lua
Project Configuration File
Create.emmyrc.json in your project root:
.emmyrc.json
Key Mappings
Recommended Keybindings
init.lua
Integration with Completion Plugins
nvim-cmp
init.lua
coq.nvim
init.lua
Advanced Configuration
Multiple Lua Versions per Project
Use different configurations based on file location:init.lua
Custom Commands
Add custom LSP commands:init.lua
Troubleshooting
LSP not starting
LSP not starting
Solution:
-
Check if emmylua_ls is in PATH:
-
Verify LSP is running:
-
Check LSP logs:
-
Restart the LSP:
Completions not appearing
Completions not appearing
Solution:
-
Verify LSP is attached:
-
Check completion settings:
- Ensure nvim-cmp is configured correctly
-
Trigger completion manually:
Ctrl+X Ctrl+O(omni-completion)
Diagnostics not showing
Diagnostics not showing
Solution:
-
Enable diagnostics:
-
Check diagnostic settings:
-
View all diagnostics:
Slow performance
Slow performance
Solution:
-
Ignore unnecessary directories:
- Reduce workspace library size
-
Disable features you don’t need:
-
Increase timeout:
False 'undefined global vim' warnings
False 'undefined global vim' warnings
Solution:Add ‘vim’ to diagnostics globals:Or add Neovim runtime to workspace library:
Example init.vim Configuration
For Vimscript users:init.vim
Next Steps
Configuration
Explore advanced configuration options
Annotations
Learn about type annotations
Features
Discover all LSP features
Performance
Optimize for large projects
