mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
docs: Allow to add an url in the online documentation (#1139)
* plugin/committia: Use correct maintainers import * plugins/neocord: Remove redyf as the entry is not in the list * docs: Allow to add an URL to the plugin
This commit is contained in:
parent
9d30e87455
commit
82a24d0d42
6 changed files with 88 additions and 6 deletions
|
@ -12,6 +12,8 @@ with lib; let
|
|||
specialArgs = {inherit pkgs lib helpers;};
|
||||
};
|
||||
|
||||
inherit (options.config.meta) nixvimInfo;
|
||||
|
||||
mkMDDoc = options:
|
||||
(nixosOptionsDoc {
|
||||
inherit options transformOptions;
|
||||
|
@ -59,6 +61,17 @@ with lib; let
|
|||
then opts
|
||||
else filterAttrs (_: component: component.isOption && (isVisible component)) opts;
|
||||
path = removeWhitespace (concatStringsSep "/" path);
|
||||
moduleDoc =
|
||||
if builtins.length path >= 2 && lib.hasAttrByPath path nixvimInfo
|
||||
then let
|
||||
info = lib.getAttrFromPath path nixvimInfo;
|
||||
maintainers = options.config.meta.maintainers."${info.file}" or null;
|
||||
in
|
||||
"# ${lib.last path}\n\n"
|
||||
+ (lib.optionalString (maintainers != null && builtins.length maintainers > 0)
|
||||
"Maintainers: ${lib.concatStringsSep ", " (builtins.map (m: m.name) maintainers)}\n\n")
|
||||
+ (lib.optionalString (info.url != null) "Url: [${info.url}](${info.url})\n\n")
|
||||
else null;
|
||||
};
|
||||
|
||||
components =
|
||||
|
@ -114,6 +127,7 @@ with lib; let
|
|||
index = {
|
||||
options = {};
|
||||
path = removeWhitespace "${group}";
|
||||
moduleDoc = null;
|
||||
};
|
||||
components = {};
|
||||
isGroup = true;
|
||||
|
@ -183,7 +197,18 @@ with lib; let
|
|||
in
|
||||
(optionalString isBranch
|
||||
"mkdir -p ${opts.index.path}\n")
|
||||
+ "cp ${mkMDDoc opts.index.options} ${path}"
|
||||
+ (
|
||||
if opts.index.moduleDoc == null
|
||||
then "cp ${mkMDDoc opts.index.options} ${path}"
|
||||
else ''
|
||||
{
|
||||
cat <<EOF
|
||||
${opts.index.moduleDoc}
|
||||
EOF
|
||||
cat ${mkMDDoc opts.index.options}
|
||||
} > ${path}
|
||||
''
|
||||
)
|
||||
)
|
||||
modules;
|
||||
};
|
||||
|
|
|
@ -17,6 +17,47 @@
|
|||
../modules
|
||||
nixpkgsMaintainersList
|
||||
nixvimExtraArgsModule
|
||||
({lib, ...}:
|
||||
with lib; {
|
||||
# Attribute may contain the following fields:
|
||||
# - name: Name of the module
|
||||
# - kind: Either colorschemes or plugins
|
||||
# - url: Url for the plugin
|
||||
#
|
||||
# [kind name] will identify the plugin
|
||||
#
|
||||
# We need to use an attrs instead of a submodule to handle the merge.
|
||||
options.meta.nixvimInfo = mkOption {
|
||||
type =
|
||||
(types.nullOr types.attrs)
|
||||
// {
|
||||
# This will create an attrset of the form:
|
||||
# {
|
||||
# "path"."to"."plugin" = { "<name>" = <info>; };
|
||||
# }
|
||||
#
|
||||
# Where <info> is an attrset of the form:
|
||||
# {file = "path"; url = null or "<URL>";}
|
||||
merge = _: defs:
|
||||
lib.foldl' (acc: def:
|
||||
lib.recursiveUpdate acc {
|
||||
"${def.value.kind}"."${def.value.name}" = {
|
||||
inherit (def.value) url;
|
||||
inherit (def) file;
|
||||
};
|
||||
}) {
|
||||
plugins = {};
|
||||
colorschemes = {};
|
||||
}
|
||||
defs;
|
||||
};
|
||||
internal = true;
|
||||
default = null;
|
||||
description = ''
|
||||
Nixvim related information on the module
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ with lib; rec {
|
|||
name,
|
||||
namespace ? "plugins",
|
||||
maintainers,
|
||||
url ? defaultPackage.meta.homepage,
|
||||
imports ? [],
|
||||
# deprecations
|
||||
deprecateExtraOptions ? false,
|
||||
|
@ -51,7 +52,13 @@ with lib; rec {
|
|||
extraPackages ? [],
|
||||
callSetup ? true,
|
||||
}: {
|
||||
meta.maintainers = maintainers;
|
||||
meta = {
|
||||
inherit maintainers;
|
||||
nixvimInfo = {
|
||||
inherit name url;
|
||||
kind = namespace;
|
||||
};
|
||||
};
|
||||
|
||||
imports = let
|
||||
basePluginPath = [namespace name];
|
||||
|
|
|
@ -7,6 +7,10 @@ with lib; {
|
|||
mkVimPlugin = config: {
|
||||
name,
|
||||
namespace ? "plugins",
|
||||
url ?
|
||||
if defaultPackage != null
|
||||
then defaultPackage.meta.homepage
|
||||
else null,
|
||||
maintainers ? [],
|
||||
imports ? [],
|
||||
# deprecations
|
||||
|
@ -80,7 +84,13 @@ with lib; {
|
|||
};
|
||||
};
|
||||
in {
|
||||
meta.maintainers = maintainers;
|
||||
meta = {
|
||||
inherit maintainers;
|
||||
nixvimInfo = {
|
||||
inherit name url;
|
||||
kind = namespace;
|
||||
};
|
||||
};
|
||||
options.${namespace}.${name} =
|
||||
{
|
||||
enable = mkEnableOption originalName;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
helpers,
|
||||
pkgs,
|
||||
|
@ -12,7 +11,7 @@ helpers.vim-plugin.mkVimPlugin config {
|
|||
globalPrefix = "committia_";
|
||||
extraPackages = [pkgs.git];
|
||||
|
||||
maintainers = [lib.maintainers.alisonjenkins];
|
||||
maintainers = [helpers.maintainers.alisonjenkins];
|
||||
|
||||
settingsOptions = {
|
||||
open_only_vim_starting = helpers.defaultNullOpts.mkBool true ''
|
||||
|
|
|
@ -10,7 +10,7 @@ with lib;
|
|||
name = "neocord";
|
||||
defaultPackage = pkgs.vimPlugins.neocord;
|
||||
|
||||
maintainers = [maintainers.redyf];
|
||||
maintainers = [];
|
||||
|
||||
settingsOptions = {
|
||||
# General options.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue