๐ Quick Start โข โจ Features โข ๐ฆ Installation โข ๐ Documentation โข ๐ ๏ธ Development
Powered by Rust's blazing performance and memory safety
|
|
|
|
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. |
|
|
|
|
Before getting started, ensure you have Rust installed on your system:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
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
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.
- ๐ Features Guide - Comprehensive feature documentation
- โ๏ธ Configuration - Advanced configuration options
- ๐จ Code Style - Formatting and style guidelines
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
Generate beautiful API documentation:
# Basic usage
emmylua_doc_cli --input ./src --output ./docs
Perform comprehensive code analysis:
# Analyze current workspace
emmylua_check .
# Analyze specific directory with detailed output
emmylua_check ./src --verbose --format json
# 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_check
# 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
We welcome contributions!.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to all contributors and the Lua community for their continuous support.