Skip to main content

Revolutionary Lua Development Experience

A powerful language server and static analyzer for Lua, built with Rust for blazing performance. Full LSP support for Lua 5.1-5.5 and LuaJIT with advanced EmmyLua annotations.

10x Faster
Multi-editor
MIT Licensed
example.lua

Quick Start

Get up and running with EmmyLua Analyzer in minutes

1

Install via Cargo

Install the language server using Rust’s package manager:
cargo install emmylua_ls
Alternatively, download pre-built binaries from the releases page.
2

Set Up Your Editor

Configure your preferred editor to use EmmyLua:See the Editor Setup guide for detailed instructions.
3

Start Coding

Create a Lua file and start using EmmyLua annotations:
example.lua
---@class Vector3
---@field x number
---@field y number
---@field z number

---@param a Vector3
---@param b Vector3
---@return Vector3
function add(a, b)
    return {
        x = a.x + b.x,
        y = a.y + b.y,
        z = a.z + b.z
    }
end
You’ll immediately get auto-completion, type checking, and inline documentation.

Powerful Features

Everything you need for professional Lua development

Smart Completion

Context-aware auto-completion with module paths, lambda generation, and enum support

Type Checking

Advanced static analysis with real-time error detection and configurable diagnostics

Code Navigation

Go to definition, find references, and workspace-wide symbol search

Refactoring

Safe rename refactoring with cross-file support and conflict detection

Code Formatting

Professional code formatting powered by EmmyLuaCodeStyle

Semantic Highlighting

Advanced syntax coloring based on semantic analysis and type information

EmmyLua Annotations

Rich type annotation system for better code intelligence

Type Annotations

Define types, classes, aliases, enums, and generics for precise type checking

Function Annotations

Document parameters, return types, overloads, and async behavior

Advanced Features

Fields, operators, casts, meta-programming, and more

Diagnostic Control

Fine-tune warnings and errors on a per-file or per-line basis

Comprehensive Lua Support

Lua Versions

Lua 5.1 - Full compatibility
Lua 5.2 - Complete feature set
Lua 5.3 - Integer types & UTF-8
Lua 5.4 - Attributes & generational GC
Lua 5.5 - New global syntax
LuaJIT - Performance optimizations

LSP Features

Auto-completion with context
Go to definition & references
Hover information & signature help
Rename refactoring
Code formatting & folding
Semantic tokens & inlay hints

Ready to Get Started?

Join developers worldwide using EmmyLua Analyzer for professional Lua development