First of all, thank you for considering contributing to Lion! It's people like you who make Lion a great tool for developers.
Before you begin:
- Make sure you have a GitHub account
- Familiarize yourself with Rust if you haven't already
- Check out the existing issues to see if the issue you want to work on already exists
If you've found a bug, please create an issue on the GitHub repository with the following information:
- A clear title and description
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Your environment (OS, Rust version, etc.)
We love hearing ideas for new features! To suggest an enhancement:
- Check if the enhancement has already been suggested or implemented
- Create an issue on GitHub with a clear title and detailed description
- Explain why this enhancement would be useful to Lion users
- Fork the repository on GitHub
- Clone your fork locally
git clone https://github.com/your-username/lion.git cd lion - Create a new branch for your changes
git checkout -b feature/your-feature-name
- Make your changes
- Run the tests and make sure everything passes
cargo test - Commit your changes with a descriptive message
git commit -m "Add feature: your feature description" - Push to your fork
git push origin feature/your-feature-name
- Create a pull request from your branch to the main repository
- Make sure you have Rust and Cargo installed. If not, follow the official instructions
- Clone the repository and navigate to the project directory
- Run
cargo buildto ensure everything compiles correctly
- Follow the standard Rust formatting guidelines
- Run
cargo fmtbefore committing to ensure consistent style - Use
cargo clippyto catch common mistakes
If you want to add support for a new programming language:
- Create a new module under
src/languages/ - Implement at least the basic functions:
new,run, and optionallydepandproj - Update the file type detection in
main.rs - Add your language to the supported languages list in the README
Please ensure all your code changes have appropriate tests:
- Run existing tests with
cargo test - Add new tests for new functionality
- Ensure your changes don't break existing functionality
src/main.rs- Entry point of the applicationsrc/controller.rs- Contains the main logic for processing commandssrc/languages/- Contains modules for each supported languagesrc/utils.rs- Utility functions used across the project
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Be respectful and inclusive
- Focus on the issue, not the person
- Consider different perspectives
- Accept constructive criticism
If you have any questions about contributing, feel free to open an issue labeled "question" in the GitHub repository.
Thank you for contributing to Lion!