A language server designed specifically for the XMake build system, developed based on the EmmyLua project, providing powerful IDE support for XMake Lua scripts.
- Intelligent Code Completion - Smart completion for XMake APIs, including functions, configuration options, and parameter hints
- Syntax Highlighting - Syntax highlighting for XMake Lua scripts
- Error Detection - Real-time detection of syntax errors and XMake configuration issues
- Code Navigation - Supports go to definition, find references, and symbol navigation
- Hover Information - Displays function documentation, parameter descriptions, and usage examples
- XMake API Support - Complete XMake 2.7.7+ API definitions and documentation
- Target Configuration Suggestions - Smart completion for target, package, option, and other configurations
- Platform & Architecture Awareness - Smart suggestions for cross-platform configurations
- Dependency Package Management - TODO: Smart support for package.lua and dependency configuration
- Build Rule Support - TODO: Code completion for custom build rules
Make sure you have the Rust toolchain installed (recommended 1.89+):
# Clone the repository
git clone https://github.com/CppCXY/xmake_ls.git
cd xmake_ls
# Build the project
cargo build --release -p xmake_ls
# The executable will be generated at target/release/xmake_lstodo
xmake_ls/
├── crates/
│ ├── xmake_ls/ # Main language server
│ └── xmake_code_analysis/ # Code analysis core
# Run tests
cargo test
# Check code formatting
cargo fmt --check- Fork the project and create a feature branch
- Write code and add tests
- Ensure all tests pass
- Submit a Pull Request
This project is licensed under MIT. See the LICENSE file for details.
Thanks to all developers who contributed to this project!
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- XMake Official: XMake Website
- XMake - Lightweight cross-platform build tool based on Lua
- EmmyLua - The original EmmyLua language server project
If you find this project helpful, please consider giving us a ⭐ Star!