Since Doom Nvim is an active and barely new port, maintained mostly by a single person, there may be things that need doing, mostly features that need implementing, and documentation that needs documenting.
You are welcome to contribute with anything to improve Doom Nvim, but please look at contributing code to know better how to contribute and which code style you should use ❤️
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub.
- If you’ve encountered a bug, file a bug report.
- Check out our issue tracker for reported issues. If you find one that you have an answer for, that would be a great help!
- Look for issues tagged help wanted. These tend to be a little (or a lot) harder, and are issues outside my own expertise.
- If you are a Windows user and you are interested in contributing to Doom Nvim so that it works correctly on your environment, you can do it freely since I currently do not have that system to do tests.
All the errors ocurred in Doom Nvim are saved into a doom.log
file inside the
~/.local/share/nvim/
directory. If the logs are very long, please paste it
using a [gist].
A step-by-step guide can help considerably to debug the error that occurs and thus reach a solution more quickly.
Some important data would be:
- Your custom configuration if you have one
(
doomrc.lua
,doom_config.lua
andplugins.lua
) - Which branch of Doom Nvim are you using
- Which plugins are you using
- To request a new feature, please use the prefix
Feature request:
in your issue. - To request a keybind, please use the prefix
Keybind request:
in your issue. - To request an enhancement, please use the prefix
Enhancement:
in your issue.
In this way, it is much easier and more organized to identify the type of issue and handle the requests.
Doom Nvim follows some code style rules like ones the mentioned below:
- Single quotes over double quotes.
- Tabs over spaces.
- Variable names in
snake_case
, except in the BASH installation script. - Function names in
snake_case
. - stylua is used to format lua files with the following configuration:
column_width = 80
line_endings = "Unix"
indent_type = "Tabs"
indent_width = 4
quote_style = "AutoPreferSingle"
NOTE: use
--config-path /path/to/doom/nvim/stylua.toml
to use doom's stylua configuration.
- selene is a blazing-fast modern Lua linter written in Rust which is used for linting doom's source code. We make use of some custom rules so we can be sure that selene will not raise false errors.
NOTE: use
selene .
in doom's root dir and selene will automatically detect theselene.toml
anddoom.toml
files.
- Target
develop
instead ofmain
. The only exception are hotfixes!
- The keybindings should be declared in core/keybindings, except when they are keybindings of Lua plugins.
After having made all your changes and having tested them locally to certify that they work and do not break any of the current code, you can proceed to upload your pull request :)