Contributing guide
April 9, 2026 ยท View on GitHub
Contributions are more than welcome!
Commit messages / PR title
Please ensure your pull request title conforms to Conventional Commits.
CI
CI checks are run using nix.
Development
Dev environment
We use the following tools:
Formatting
.editorconfig(witheditorconfig-checker)stylua[Lua]alejandra[Nix]
Linting
luacheck[Lua]markdownlint[Markdown]
Static type checking
Nix devShell
- Requires flakes to be enabled.
This project provides a flake.nix that can
bootstrap all of the above development tools.
To enter a development shell:
nix develop
To apply formatting, while in a devShell, run
pre-commit run --all
If you use direnv,
just run direnv allow and you will be dropped in this devShell.
Running tests
Have nvim command installed to your PATH
(must be usable via the interpreter line #!/usr/bin/env -S nvim -l)
Navigate to the root of the repository and run ./test.nvim
They will also ran as part of the pre-commit checks.
Running tests and checks with Nix
If you just want to run all checks that are available, run:
nix flake check -L --option sandbox false
To run tests locally, using Nix:
nix build .#checks.<your-system>.integration-nightly -L --option sandbox false
For example:
nix build .#checks.x86_64-linux.integration-nightly -L --option sandbox false
For formatting and linting:
nix build .#checks.<your-system>.pre-commit-check -L
For static type checking:
nix build .#checks.<your-system>.type-check-nightly -L