neovim: simplify plugin config schema
This commit is contained in:
@@ -3,11 +3,21 @@ moduleArgs@{ config, lib, pkgs, ... }:
|
||||
let
|
||||
inherit (builtins) map;
|
||||
inherit (lib) concatMapStrings mkIf optionalString;
|
||||
# this structure roughly mirrors home-manager's `programs.neovim.plugins` option
|
||||
plugins = import ./plugins.nix moduleArgs;
|
||||
plugin-packages = map (p: p.plugin) plugins;
|
||||
plugin-config-viml = concatMapStrings (p: optionalString (p.type or "" == "viml") p.config) plugins;
|
||||
plugin-config-lua = concatMapStrings (p: optionalString (p.type or "" == "lua") p.config) plugins;
|
||||
plugin-configs = concatMapStrings (p:
|
||||
optionalString
|
||||
(p ? config) (
|
||||
if (p.type or "") == "viml" then
|
||||
p.config
|
||||
else
|
||||
''
|
||||
lua <<EOF
|
||||
${p.config}
|
||||
EOF
|
||||
''
|
||||
)
|
||||
) plugins;
|
||||
in
|
||||
{
|
||||
sane.programs.neovim = {
|
||||
@@ -36,13 +46,8 @@ in
|
||||
customRC = ''
|
||||
${builtins.readFile ./vimrc}
|
||||
|
||||
""""" PLUGIN CONFIG (vim)
|
||||
${plugin-config-viml}
|
||||
|
||||
""""" PLUGIN CONFIG (lua)
|
||||
lua <<EOF
|
||||
${plugin-config-lua}
|
||||
EOF
|
||||
""""" PLUGIN CONFIG
|
||||
${plugin-configs}
|
||||
'';
|
||||
};
|
||||
neovim-unwrapped' = with pkgs; (neovim-unwrapped.override {
|
||||
|
Reference in New Issue
Block a user