.emmyrc.json, which provides comprehensive control over language server features, diagnostics, formatting, and workspace settings.
Configuration Files
Primary Configuration
The main configuration file for EmmyLua Analyzer. Place this file in your project root directory.Priority: HighestFormat: JSON with schema support
Compatibility Configuration
Legacy compatibility configuration file.Auto Conversion: Automatically converts to
.emmyrc.json formatOverride Rules: Settings are overridden by .emmyrc.json if both existCompatibility: Partial feature support onlyThe
.emmyrc.json format is richer and more flexible. We recommend using this format for the best experience.Schema Support
For intelligent completion and validation of configuration files, add a schema reference to your configuration:- Auto-completion for configuration keys
- Inline documentation for each setting
- Validation of values and types
- Quick navigation to related settings
Configuration Location
Project Root Directory
Place.emmyrc.json in the root directory of your Lua project:
Workspace Configuration
For multi-root workspaces, you can:- Global Configuration: Place
.emmyrc.jsonat the workspace root - Project-Specific: Each workspace root can have its own
.emmyrc.json - Workspace Roots: Use the
workspace.workspaceRootssetting to define multiple root directories
Configuration Hierarchy
EmmyLua Analyzer applies configuration in the following order:- Default Values: Built-in defaults for all settings
.luarc.json: Legacy configuration (if present).emmyrc.json: Primary configuration (overrides previous)- File-Level Annotations: Inline
---@diagnosticcomments (highest priority)
Configuration Priority Example
Configuration Priority Example
Configuration Categories
EmmyLua configuration is organized into the following categories:Language Features
Completion, hover, hints, references, and code actions
Diagnostics
Error detection, type checking, and diagnostic rules
Formatting
Code formatting and external tool integration
Workspace
File discovery, libraries, and project structure
Runtime
Lua version, require patterns, and special symbols
Strict Mode
Type checking strictness and verification rules
Quick Start
Create a basic configuration file to get started:Common Configuration Patterns
Game Development (LÖVE2D)
Neovim Plugin Development
OpenResty Development
Strict Type Checking
Next Steps
Complete Configuration Reference
Explore all available configuration options
Diagnostic Configuration
Configure diagnostic rules and severity levels
Formatting Setup
Set up code formatting with external tools
Workspace Settings
Configure project structure and libraries
