Welcome to the LunarVim contributing guide. We are excited about the prospect of you joining our community!
There are many opportunities to contributing to the project at any level. Every contribution is highly valued and no contribution is too small.
You do not need to write code to contribute to this project. Documentation, demos, and feature design advancements are a key part of this project's growth.
One of the best ways to begin contributing in a meaningful way is by helping find bugs and filing issues for them.
git remote add upstream https://github.com/lunarvim/LunarVim.git
git fetch upstream
and git rebase [-i] upstream/rolling
to update your branches with the latest contributions.Install pre-commit which will run all linters and formatters for you as a pre-commit-hook.
All lua code is formatted with Stylua.
Avoid platform-dependent code
stylua --config-path ./utils/.stylua.toml -c .
All shell code is formatted according to Google Shell Style Guide
bash
shfmt -i 2 -ci -l -d .
To avoid duplicate work, create a draft pull request.
Commit header format:
<type>(<scope>?): <summary>
│ │ │
│ │ └─> Present tense. 'add something...'(O) vs 'added something...'(X)
│ │ Imperative mood. 'move cursor to...'(O) vs 'moves cursor to...'(X)
│ │ Not capitalized.
│ │ No period at the end.
│ │
│ └─> Commit Scope is optional, but strongly recommended.
│ Use lower case.
│ 'plugin', 'file', or 'directory' name is suggested, but not limited.
│
└─> Commit Type: build|ci|docs|feat|fix|perf|refactor|test
Real world examples:
feat(quickfix): add 'q' binding to quit quickfix window when focused
fix(installer): add missing "HOME" variable
Name your branches meaningfully.
ex)
(feature|bugfix|hotfix)/what-my-pr-does
Members of the community have multiple ways to collaborate on the project. We encourage you to join the community: