modules/files: fix creating configs of vim type

This commit is contained in:
Stanislav Asunkin 2024-07-19 11:37:00 +03:00
parent daa94bd6c2
commit c9a6912be5
3 changed files with 32 additions and 17 deletions

View file

@ -2,6 +2,7 @@
name, name,
config, config,
lib, lib,
pkgs,
helpers, helpers,
... ...
}: }:
@ -17,11 +18,12 @@
config = config =
let let
derivationName = "nvim-" + lib.replaceStrings [ "/" ] [ "-" ] name; derivationName = "nvim-" + lib.replaceStrings [ "/" ] [ "-" ] name;
writeContent = if config.type == "lua" then helpers.writeLua else pkgs.writeText;
in in
{ {
path = lib.mkDefault name; path = lib.mkDefault name;
type = lib.mkDefault (if lib.hasSuffix ".vim" name then "vim" else "lua"); type = lib.mkDefault (if lib.hasSuffix ".vim" name then "vim" else "lua");
# No need to use mkDerivedConfig; this option is readOnly. # No need to use mkDerivedConfig; this option is readOnly.
plugin = helpers.writeLua derivationName config.content; plugin = writeContent derivationName config.content;
}; };
} }

View file

@ -1,16 +0,0 @@
{
after = {
files."after/ftplugin/python.lua" = {
localOpts.conceallevel = 1;
keymaps = [
{
mode = "n";
key = "<C-g>";
action = ":!python script.py<CR>";
options.silent = true;
}
];
};
};
}

View file

@ -0,0 +1,29 @@
{
after = {
files."after/ftplugin/python.lua" = {
localOpts.conceallevel = 1;
keymaps = [
{
mode = "n";
key = "<C-g>";
action = ":!python script.py<CR>";
options.silent = true;
}
];
};
};
vim-type = {
files."plugin/default_indent.vim".opts = {
shiftwidth = 2;
expandtab = true;
};
extraConfigLuaPost = ''
vim.cmd.runtime("plugin/default_indent.vim")
assert(vim.o.shiftwidth == 2, "shiftwidth is not set")
assert(vim.o.expandtab, "expandtab is not set")
'';
};
}