Whilst any help is very special, please be considerate of certain rules in order to make the codebase uniform/coherent.
-
When you need help:
-
When contributing:
Whenever something happens the way it's not supposed to, file an issue!, but before you do, try the following:
- If you haven't already, always try updating the plugin first. Issues may be fixed before you can even file one, so always make sure you are up to date beforehand.
- Make sure you are running the latest neovim version. Whenever I test neorg, I test it on the latest compiled neovim from source which I recompile everyday. While you don't have to be that extreme with your updates, make sure you're at least running the latest neovim nightly.
If you're certain it's a fault of the plugin, not your configuration, in the issue please provide the following:
- The neovim version you're running (
nvim --version
) - The neorg log file (you'll find it at
stdpath('data') .. '/neorg.log'
). This file will contain the necessary info for me to effectively debug. You can run:echo stdpath('data')
if you're unsure where that path resides. - The branch of Neorg you are using (unstable/main/some other experimental branch)
- The list of modules you have loaded (you can run
:Neorg module list
to see a comprehensive list) - Other plugins you are using which you think could potentially be conflicting with neorg.
- Steps to reproduce the bug, if any - sometimes bugs get triggered only on certain configurations, which can be a pain. If you're aware that the bug requires a specific config, be sure to include that information as well!
Formatting is done in the project via stylua
. You should install it with lua 5.2 support, as that
version allows for the formatting of goto
blocks. You can install it via cargo: cargo install stylua --features lua52
.
You can then run make format
in the project root to automatically format all your lua code. Good stuff.
- I use snake_case for everything, and you should too :P
- Please comment all your code! Annotations for functions are generated by neogen.
Whenever you are planning on extending neorg, try your best to add all extra functionality through modules and modules only. Make changes to the Neorg core only if absolutely necessary.
When adding stuff, use lua only. vim.cmd
in extreme cases :)
The documentations (wiki pages) are generated based on the comments in the code. All the logic for generating the wiki is in docgen/
.
To generate documentations locally, run make local-documentation
(see Makefile
for more details). If there's no error, you should then see a wiki/
folder generated.
If you feel like improving the documentation, please make changes to the corresponding comments in the correct file. For example, to make changes to the core.qol.todo_items
documentation, please make changes to the comments in ./lua/neorg/modules/core/qol/todo_items/module.lua
Tips:
grep
for the string you want to find.