We welcome contributions to avante.nvim! This guide will help you get started with contributing to the project.
If you encounter a bug or have a feature request:
- Check existing issues first to avoid duplicates
- Use the appropriate issue template
- Provide detailed information including:
- Neovim version
- Plugin version
- Operating system
- Reproduction steps
- Expected vs actual behavior
- Error messages (if any)
Before submitting a pull request:
- Fork the repository
- Create a feature branch from
main - Make your changes following the coding standards
- Test thoroughly on multiple scenarios
- Write clear commit messages
- Update documentation if needed
- Submit the pull request
-
Clone the repository:
git clone https://github.com/yetone/avante.nvim.git cd avante.nvim -
Install dependencies:
# For Rust components cargo build # For Lua components make deps
-
Build the project:
make
Before submitting changes:
-
Test in different environments:
- Different Neovim versions (0.10.1+)
- Different operating systems
- Different AI providers
-
Test key functionality:
- Basic ask/chat functionality
- File selection and context
- Provider switching
- Key bindings
- Integration with other plugins
-
Run automated tests (if available):
make test
- Use 2 spaces for indentation
- Follow LuaLS conventions
- Use meaningful variable names
- Add comments for complex logic
- Follow the existing code style
- Use
cargo fmtfor formatting - Use
cargo clippyfor linting - Follow Rust conventions
- Add documentation comments
- Update relevant documentation for new features
- Use clear and concise language
- Provide examples where helpful
- Follow the existing documentation structure
- Be respectful and inclusive
- Help others learn and grow
- Focus on constructive feedback
- Respect different perspectives and experiences
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For general questions and discussions
- Discord: For real-time chat and community support
- Pull Requests: For code contributions
-
Provider Support:
- Adding new AI providers
- Improving existing provider integrations
- Testing provider configurations
-
Plugin Integrations:
- Adding support for more Neovim plugins
- Improving existing integrations
- Creating extension examples
-
Documentation:
- Improving existing documentation
- Adding more examples
- Creating video tutorials
-
Testing:
- Writing automated tests
- Manual testing on different platforms
- Performance testing
-
UI/UX Improvements:
- Enhancing the sidebar interface
- Improving visual feedback
- Better error handling
-
Performance:
- Optimizing response times
- Reducing memory usage
- Improving startup time
- Enhanced AI Interactions: Improve the depth of AI analysis and recommendations
- LSP + Tree-sitter + LLM Integration: More accurate code suggestions and analysis
- Better codebase indexing: Improved context understanding
- Advanced tool integrations: More powerful built-in tools
- Chat with current file
- Apply diff patch
- Chat with the selected block
- Slash commands
- Edit the selected block
- Smart Tab (Cursor Flow)
- Chat with project (
@codebase) - Chat with selected files
- Tool use
- MCP integration
- Better codebase indexing
- Enhanced AI interactions
- LSP + Tree-sitter + LLM integration
If you like this project, please consider supporting the maintainer:
|
Meshy AI The #1 AI 3D Model Generator for Creators
|
BabelTower API No account needed, use any model instantly
|
We would like to express our heartfelt gratitude to the contributors of the following open-source projects, whose code has provided invaluable inspiration and reference for the development of avante.nvim:
| Project | License | Functionality | Location |
|---|---|---|---|
| git-conflict.nvim | No License | Diff comparison functionality | lua/avante/diff.lua |
| ChatGPT.nvim | Apache 2.0 License | Calculation of tokens count | lua/avante/utils/tokens.lua |
| img-clip.nvim | MIT License | Clipboard image support | lua/avante/clipboard.lua |
| copilot.lua | MIT License | Copilot support | lua/avante/providers/copilot.lua |
| jinja.vim | MIT License | Template filetype support | syntax/jinja.vim |
| codecompanion.nvim | MIT License | Secrets logic support | lua/avante/providers/init.lua |
| aider | Apache 2.0 License | Planning mode user prompt | lua/avante/templates/planning.avanterules |
The high quality and ingenuity of these projects' source code have been immensely beneficial throughout our development process. We extend our sincere thanks and respect to the authors and contributors of these projects.
avante.nvim is licensed under the Apache 2.0 License. By contributing to this project, you agree that your contributions will be licensed under the same license.
- Commercial use: ✅ Allowed
- Modification: ✅ Allowed
- Distribution: ✅ Allowed
- Patent use: ✅ Allowed
- Private use: ✅ Allowed
- Liability: ❌ Not provided
- Warranty: ❌ Not provided
For the full license text, see the LICENSE file.
The project has been growing steadily with contributions from the community. You can view the star history on GitHub.
- Questions about contributing: Open a GitHub Discussion
- Technical issues: Open a GitHub Issue
- Real-time chat: Join our Discord server
- Documentation: Check the Wiki
- Installation help: See Installation Guide
- Configuration help: See Configuration Guide
- Usage questions: See Usage Guide
- Advanced features: See Advanced Features
Thank you for considering contributing to avante.nvim! Every contribution, no matter how small, helps make the project better for everyone.