"Fossies" - the Fresh Open Source Software Archive

Member "neovim-0.4.4/CONTRIBUTING.md" (5 Aug 2020, 9320 Bytes) of package /linux/misc/neovim-0.4.4.tar.gz:

As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field. See also the last Fossies "Diffs" side-by-side code changes report for "CONTRIBUTING.md": 0.3.8_vs_0.4.2.

Contributing to Neovim

Getting started

If you want to help but don't know where to start, here are some low-risk/isolated tasks:

Reporting problems

Developer guidelines

Pull requests (PRs)

Stages: WIP, RFC, RDY

Pull requests have three stages: [WIP] (Work In Progress), [RFC] (Request For Comment) and [RDY] (Ready).

Commit messages

Follow commit message hygiene to make reviews easier and to make the VCS/git logs more valuable.

Automated builds (CI)

Each pull request must pass the automated builds on Travis CI, QuickBuild and AppVeyor.

Clang scan-build

View the Clang report to see potential bugs found by the Clang scan-build analyzer.


View the PVS report to see potential bugs found by PVS Studio.


Coverity runs against the master build. To view the defects, just request access; you will be approved.



You can run the linter locally by:

make lint

The lint step downloads the master error list and excludes them, so only lint errors related to the local changes are reported.

You can lint a single file (but this will not exclude legacy errors):

./src/clint.py src/nvim/ops.c


The repo includes a .clang-format config file which (mostly) matches the style-guide. You can use clang-format to format code with the gq operator in Nvim:

if !empty(findfile('.clang-format', ';'))
  setlocal formatprg=clang-format\ -style=file


To help review pull requests, start with this checklist.

Reviewing can be done on GitHub, but you may find it easier to do locally. Using hub, you can create a new branch with the contents of a pull request, e.g. #1820:

hub checkout https://github.com/neovim/neovim/pull/1820

Use git log -p master..FETCH_HEAD to list all commits in the feature branch which aren't in the master branch; -p shows each commit's diff. To show the whole surrounding function of a change as context, use the -W argument as well.