Contributions to avante.nvim are welcome! If you're interested in helping out, please feel free to submit pull requests or open issues. Before contributing, ensure that your code has been thoroughly tested.
Running nix develop will give you a shell with all dependencies.
You can build the rag service with nix build .#ragService or install it
declaratively with uv via:
uv venv --no-managed-python
source .venv/bin/activate
uv pip install py/rag-service
- Install StyLua for Lua code formatting.
- Install pre-commit for managing and maintaining pre-commit hooks.
- After cloning the repository, run the following command to set up pre-commit hooks:
pre-commit install --install-hooks
rustup component add rustfmt
rustup component add clippyFor setting up lua_ls you can use the following for nvim-lspconfig:
lua_ls = {
settings = {
Lua = {
runtime = {
version = "LuaJIT",
special = { reload = "require" },
},
workspace = {
library = {
vim.fn.expand "$VIMRUNTIME/lua",
vim.fn.expand "$VIMRUNTIME/lua/vim/lsp",
vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy",
},
},
},
},
},You can also use the following config for lazydev.nvim:
{
"folke/lazydev.nvim",
ft = "lua",
cmd = "LazyDev",
opts = {
dependencies = {
-- Manage libuv types with lazy. Plugin will never be loaded
{ "Bilal2453/luvit-meta", lazy = true },
},
library = {
{ path = "~/workspace/avante.nvim/lua", words = { "avante" } },
{ path = "luvit-meta/library", words = { "vim%.uv" } },
},
},
},Then you can set dev = true in your lazy config for development.
The infra attempts by default to setup everything in "--managed" mode.
make lint
make lua-typecheck
make luatest
If the previous doesn't work you can check the Makefile targets and run the files in scripts/ with --live instead.
Use ratchet to upgrade and pin actions to specific commit. See the 'upgrade-actions' target in Makefile.
- Create a branch
release-vX.Xif it doesn't exist yet - Create a tag. The CI will create a release as a "draft"
- Edit the release notes and "publish" the release