Thank you for contributing.
See Development for environment setup, tips and tools.
Following are used during CI and strongly recommended during local development.
Lint: luacheck
Style: StyLua
Language server: luals
You can install them via you OS package manager e.g. pacman
, brew
or other via other package managers such as cargo
or luarocks
The following quality checks are mandatory and are performed during CI. They run on the entire lua
directory and return 1 on any failure.
You can run them all via make
or make all
You can setup git hooks to run all checks by running scripts/setup-hooks.sh
- Runs luacheck quietly using
.luacheck
settings
make lint
- Runs stylua using
.stylua.toml
settings - Runs
scripts/doc-comments.sh
to validate annotated documentation
make style
You can automatically fix stylua issues via:
make style-fix
- Runs the checks that the LSP lua language server runs inside nvim using
.luarc.json
viascripts/luals-check.sh
make check
Assumes $VIMRUNTIME
is /usr/share/nvim/runtime
. Adjust as necessary e.g.
VIMRUNTIME="/my/path/to/runtime" make check
To add a new action, add a file in actions/name-of-the-action.lua
. You should export a setup
function if some configuration is needed.
Once you did, you should run make help-update
When adding new options, you should declare the defaults in the main nvim-tree.lua
file.
Documentation for options should also be added to nvim-tree-opts
in doc/nvim-tree-lua.txt
Please reference any issues in the description e.g. "resolves #1234".
Please check "allow edits by maintainers" to allow nvim-tree developers to make small changes such as documentation tweaks.
A test case to reproduce the issue is required. A "Clean Room" Replication is preferred.