Skip to content

EmmyLuaLs/emmylua-analyzer-rust

Repository files navigation

🌟 EmmyLua Analyzer Rust

GitHub stars GitHub license GitHub release Rust Crates.io


💫 Revolutionary Lua Development Experience

Powered by Rust's blazing performance and memory safety

🎯 What Makes Us Different

Performance First

  • 10x faster than traditional Lua Language servers
  • Zero-cost abstractions with Rust
  • Incremental compilation for instant feedback
  • Memory-efficient analysis engine

🧠 Intelligent Analysis

  • Advanced type inference system
  • Cross-reference resolution
  • Semantic highlighting with context
  • Real-time error detection

🔧 Universal Compatibility

  • Lua 5.1 through 5.5 support
  • LuaJIT optimization
  • Cross-platform deployment
  • Editor-agnostic LSP implementation

📚 Developer Ecosystem

  • Rich documentation generation
  • Code formatting and style enforcement
  • Static analysis and linting
  • Project scaffolding tools

✨ Features

🎯 Core Capabilities

🔍 Language Support

  • 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

📝 Annotation System

  • EmmyLua annotations
  • Luacats documentation

🛠️ LSP Features

  • Auto-completion with context
  • Go to definition
  • Find references
  • Go to implementation
  • Hover information
  • Signature help
  • Rename refactoring
  • Code actions
  • Diagnostics
  • Document symbols
  • Workspace symbols
  • Code formatting
  • Code folding
  • Document links
  • Semantic tokens
  • Inlay hints
  • Document highlights
  • Code lens
  • Call hierarchy
  • Symbol search
  • Document color

🎨 Code Quality

  • Syntax highlighting
  • Error detection
  • Code formatting
  • Style enforcement
  • More Linting

🚀 Quick Start

Prerequisites

Before getting started, ensure you have Rust installed on your system:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

📦 Installation

Choose your preferred installation method:

🦀 Via Cargo
# Install the language server
cargo install emmylua_ls

# Install documentation generator
cargo install emmylua_doc_cli

# Install static analyzer
cargo install emmylua_check
📥 Pre-built Binaries

Download the latest binaries from our releases page.

🔧 Build from Source
git clone https://github.com/EmmyLuaLs/emmylua-analyzer-rust.git
cd emmylua-analyzer-rust
cargo build --release -p emmylua_ls

🎮 Editor Integration

VS Code

Install the EmmyLua Extension for the best development experience.

Neovim

Configure with your LSP client:

vim.lsp.enable({"emmylua_ls"})
Intellij IDE

Install the EmmyLua2 Plugin from the JetBrains Marketplace.

Other Editors

EmmyLua Analyzer Rust implements the standard LSP protocol, making it compatible with any editor that supports LSP.


📖 Documentation


🛠️ Usage & Examples

🖥️ Language Server (emmylua_ls)

Start the language server with default settings:

emmylua_ls

Advanced usage with custom configuration:

# TCP mode for remote debugging
emmylua_ls -c tcp --port 5007 --log-level debug --log-path ./logs

# Stdio mode (default)
emmylua_ls -c stdio --log-level info

# Stdio mode default parameters
emmylua_ls

Server Parameters:

  • -c, --communication: Communication method (stdio | tcp)
  • --port: TCP port when using TCP mode (default: 5007)
  • --log-level: Logging level (debug | info | warn | error)
  • --log-path: Directory for log files

📚 Documentation Generator (emmylua_doc_cli)

Generate beautiful API documentation:

# Basic usage
emmylua_doc_cli ./src --output ./docs

✅ Static Analyzer (emmylua_check)

Perform comprehensive code analysis:

# Analyze current workspace
emmylua_check .

# Analyze specific directory with detailed output
emmylua_check ./src --verbose --format json

🏗️ Development

Building from Source

# Clone the repository
git clone https://github.com/EmmyLuaLs/emmylua-analyzer-rust.git
cd emmylua-analyzer-rust

# Build all crates
cargo build --release

# Build specific components
cargo build --release -p emmylua_ls
cargo build --release -p emmylua_doc_cli
cargo build --release -p emmylua_check

Testing

# Run all tests
cargo test

# Run tests for specific crate
cargo test -p emmylua_parser

# Run with coverage
cargo test --all-features --no-fail-fast

Contributing

We welcome contributions!.

More details can be found in our CONTRIBUTING.md file.


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments

Special thanks to all contributors and the Lua community for their continuous support.

⬆ Back to Top

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 29