Skip to content

Commit

Permalink
lib/plugins: introduce mkMetaModule
Browse files Browse the repository at this point in the history
  • Loading branch information
MattSturgeon committed Jan 29, 2025
1 parent e908e34 commit 1a5f1b4
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 20 deletions.
19 changes: 9 additions & 10 deletions lib/plugins/mk-neovim-plugin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
name,
maintainers,
url ? throw "default",
url ? null,
imports ? [ ],
description ? null,
# deprecations
Expand Down Expand Up @@ -62,15 +62,6 @@ let
luaConfigAtLocation = utils.mkConfigAt configLocation cfg.luaConfig.content;
in
{
meta = {
inherit maintainers;
nixvimInfo = {
inherit description;
url = args.url or opts.package.default.meta.homepage;
path = loc;
};
};

options = lib.setAttrByPath loc (
{
enable = lib.mkEnableOption packPathName;
Expand Down Expand Up @@ -168,6 +159,14 @@ in
++ [
module
(utils.mkPluginPackageModule { inherit loc packPathName package; })
(utils.mkMetaModule {
inherit
loc
maintainers
description
url
;
})
]
++ lib.optional deprecateExtraOptions (
lib.mkRenamedOptionModule (loc ++ [ "extraOptions" ]) settingsPath
Expand Down
19 changes: 9 additions & 10 deletions lib/plugins/mk-vim-plugin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
}:
{
name,
url ? throw "default",
url ? null,
maintainers,
imports ? [ ],
description ? null,
Expand Down Expand Up @@ -55,15 +55,6 @@ let
opts = lib.getAttrFromPath loc options;
in
{
meta = {
inherit maintainers;
nixvimInfo = {
inherit description;
url = args.url or opts.package.default.meta.homepage;
path = loc;
};
};

options = lib.setAttrByPath loc (
{
enable = lib.mkEnableOption packPathName;
Expand Down Expand Up @@ -100,6 +91,14 @@ in
++ [
module
(lib.nixvim.plugins.utils.mkPluginPackageModule { inherit loc packPathName package; })
(lib.nixvim.plugins.utils.mkMetaModule {
inherit
loc
maintainers
description
url
;
})
]
++ lib.optional (deprecateExtraConfig && createSettingsOption) (
lib.mkRenamedOptionModule (loc ++ [ "extraConfig" ]) settingsPath
Expand Down
29 changes: 29 additions & 0 deletions lib/plugins/utils.nix
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,33 @@
];
};
};

/**
Produce a module that defines a plugin's metadata.
*/
mkMetaModule =
{
loc,
maintainers,
description,
url ? null,
}@args:
{ options, ... }:
let
opts = lib.getAttrFromPath loc options;
url =
if args.url or null == null then
opts.package.default.meta.homepage or (throw "unable to get URL for `${lib.showOption loc}`.")
else
args.url;
in
{
meta = {
inherit maintainers;
nixvimInfo = {
inherit description url;
path = loc;
};
};
};
}

0 comments on commit 1a5f1b4

Please sign in to comment.