mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
contributing: reduce emphasis on settingsOptions
- Add an additional caution in CONTRIBUTING.md#declaring-plugin-options - Remove `settingsOptions` from plugins/TEMPLATE.nix
This commit is contained in:
parent
55ad604d44
commit
86a887025f
2 changed files with 4 additions and 15 deletions
|
@ -185,6 +185,8 @@ list-plugins -k vim
|
||||||
> Declaring `settings`-options is **not required**, because the `settings` option is a freeform type.
|
> Declaring `settings`-options is **not required**, because the `settings` option is a freeform type.
|
||||||
>
|
>
|
||||||
> While `settings` options can be helpful for documentation and type-checking purposes, this is a double-edged sword because we have to ensure the options are correctly typed and documented to avoid unnecessary restrictions or confusion.
|
> While `settings` options can be helpful for documentation and type-checking purposes, this is a double-edged sword because we have to ensure the options are correctly typed and documented to avoid unnecessary restrictions or confusion.
|
||||||
|
>
|
||||||
|
> We usually recommend **not** declaring `settings` options, however there are exceptions where the trade-off is worth it.
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> Learn more about the [RFC 42](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) which motivated this new approach.
|
> Learn more about the [RFC 42](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) which motivated this new approach.
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
|
||||||
inherit (lib.nixvim) defaultNullOpts;
|
|
||||||
in
|
|
||||||
lib.nixvim.plugins.mkNeovimPlugin {
|
lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
name = "my-plugin";
|
name = "my-plugin";
|
||||||
moduleName = "my-plugin"; # TODO replace (or remove entirely if it is the same as `name`)
|
moduleName = "my-plugin"; # TODO replace (or remove entirely if it is the same as `name`)
|
||||||
|
@ -10,18 +7,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
|
|
||||||
maintainers = [ lib.maintainers.MyName ]; # TODO replace with your name
|
maintainers = [ lib.maintainers.MyName ]; # TODO replace with your name
|
||||||
|
|
||||||
# Optionally, explicitly declare some options. You don't have to.
|
# TODO provide an example for the `settings` option (or remove entirely if there is no useful example)
|
||||||
settingsOptions = {
|
# NOTE you can use `lib.literalExpression` or `lib.literalMD` if needed
|
||||||
foo = defaultNullOpts.mkUnsignedInt 97 ''
|
|
||||||
The best birth year.
|
|
||||||
'';
|
|
||||||
|
|
||||||
great_feature = defaultNullOpts.mkBool false ''
|
|
||||||
Whether to enable the great feature.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Optionally, provide an example for the `settings` option.
|
|
||||||
settingsExample = {
|
settingsExample = {
|
||||||
foo = 42;
|
foo = 42;
|
||||||
bar.__raw = "function() print('hello') end";
|
bar.__raw = "function() print('hello') end";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue