diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..16198586 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# Contributing to LazyVim + +## General Guidelines + +- Avoid using Vim plugins whenever possible. +- If an extra requires a Vim plugin, explain why in the PR description. +- Ensure all configurations are overridable by the user, using Lazy's specs. +- Tag specs as `optional` if they should only be enabled when the user has them installed. +- Implement proper lazy-loading for every plugin added in an extra. +- Understand how Lazy's dependencies work. For Lua dependencies, do not specify + them in the `dependencies` field. Instead, add them as a separate spec with `lazy=true`. + +## Contributing an Extra Plugin + +- The plugin should be well-known and require significant configuration. +- Simple specs containing just the plugin with some options will not be accepted. + +## Contributing an Extra Language + +- The extra should include the setup most widely used by the community. +- Include Tree-sitter parsers that are not yet the default. +- Include the most widely used LSP server setup. +- Avoid the need for LSP wrapper packages whenever possible. +- Only add a formatter if it is typically used by the community instead of the LSP formatter. +- Only add extra linters if the community typically uses them instead of just the LSP linters. +- Every language extra requires a `recommended` section as part of the extra. + Check lspconfig server configurations for the proper filetypes and root directories. + Refer to other extras for creating the `recommended` section.