mikavilpas/emmylua-analyzer-rust
๐ Quick Navigation
๐ Quick Start โข โจ Features โข ๐ฆ Installation โข ๐ Documentation โข ๐ ๏ธ Development
๐ซ Revolutionary Lua Development Experience
Powered by Rust's blazing performance and memory safety
๐ฏ What Makes Us Different
โก Performance First
|
๐ง Intelligent Analysis
|
๐ง Universal Compatibility
|
๐ Developer Ecosystem
|
๐๏ธ Architecture & Crates
Our project is meticulously organized into specialized crates, each serving a critical role in the Lua analysis ecosystem:
| Crate | Badge | Description |
|---|---|---|
| ๐ emmylua_parser | The foundational Rust-based Lua parser engineered for maximum efficiency and accuracy. Powers all downstream analysis tools. | |
| ๐ง emmylua_code_analysis | Advanced semantic analysis engine providing deep code understanding, type inference, and cross-reference resolution. | |
| ๐ฅ๏ธ emmylua_ls | The complete Language Server Protocol implementation offering rich IDE features across all major editors. | |
| ๐ emmylua_doc_cli | Professional documentation generator creating beautiful, searchable API docs from your Lua code and annotations. | |
| โ emmylua_check | Comprehensive static analysis tool for code quality assurance, catching bugs before they reach production. |
โจ Features
๐ฏ Core Capabilities
๐ Language Support
|
๐ Annotation System
|
๐ ๏ธ LSP Features
|
๐จ Code Quality
|
๐ 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/CppCXY/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
- ๐ Features Guide - Comprehensive feature documentation
- โ๏ธ Configuration - Advanced configuration options
- ๐จ Code Style - Formatting and style guidelines
๐ ๏ธ Usage & Examples
๐ฅ๏ธ Language Server (emmylua_ls)
Start the language server with default settings:
emmylua_lsAdvanced 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_lsServer 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 --input ./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/CppCXY/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_checkTesting
# Run all tests
cargo test
# Run tests for specific crate
cargo test -p emmylua_parser
# Run with coverage
cargo test --all-features --no-fail-fastContributing
We welcome contributions!.
๐ 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.