2023-02-01 19:11:37 +00:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
check ? true,
|
|
|
|
}: let
|
2024-04-07 14:16:08 +00:00
|
|
|
inherit (lib.modules) mkDefault;
|
|
|
|
inherit (lib.lists) concatLists;
|
|
|
|
|
2024-04-20 15:09:39 +00:00
|
|
|
# The core neovim modules.
|
|
|
|
# Contains configuration for core neovim features
|
|
|
|
# such as spellchecking, mappings, and the init script (init.vim).
|
2024-04-07 14:16:08 +00:00
|
|
|
neovim = map (p: ./neovim + "/${p}") [
|
2024-04-20 15:09:39 +00:00
|
|
|
"init"
|
2024-04-07 14:16:08 +00:00
|
|
|
"mappings"
|
2023-02-01 19:11:37 +00:00
|
|
|
];
|
|
|
|
|
2024-04-20 15:09:39 +00:00
|
|
|
# Individual plugin modules, separated by the type of plugin.
|
|
|
|
# While adding a new type, you must make sure your type is
|
|
|
|
# included in the list below.
|
2024-04-07 14:16:08 +00:00
|
|
|
plugins = map (p: ./plugins + "/${p}") [
|
|
|
|
"assistant"
|
|
|
|
"autopairs"
|
|
|
|
"comments"
|
|
|
|
"completion"
|
|
|
|
"dashboard"
|
|
|
|
"debugger"
|
|
|
|
"filetree"
|
|
|
|
"git"
|
|
|
|
"languages"
|
|
|
|
"lsp"
|
|
|
|
"minimap"
|
|
|
|
"notes"
|
|
|
|
"projects"
|
|
|
|
"rich-presence"
|
|
|
|
"session"
|
|
|
|
"snippets"
|
2024-04-27 13:22:42 +00:00
|
|
|
# "spellcheck" # FIXME: see neovim/init/spellcheck.nix
|
2024-04-07 14:16:08 +00:00
|
|
|
"statusline"
|
|
|
|
"tabline"
|
|
|
|
"terminal"
|
|
|
|
"theme"
|
|
|
|
"treesitter"
|
|
|
|
"ui"
|
|
|
|
"utility"
|
|
|
|
"visuals"
|
|
|
|
];
|
|
|
|
|
2024-04-20 15:09:39 +00:00
|
|
|
# The neovim wrapper, used to build a wrapped neovim package
|
|
|
|
# using the configuration passed in `neovim` and `plugins` modules.
|
|
|
|
wrapper = map (p: ./wrapper + "/${p}") [
|
|
|
|
"build"
|
2024-04-20 23:10:06 +00:00
|
|
|
"rc"
|
2024-04-20 15:09:39 +00:00
|
|
|
"warnings"
|
|
|
|
];
|
|
|
|
|
2024-05-06 20:09:40 +00:00
|
|
|
# Extra modules, such as deprecation warnings
|
|
|
|
# or renames in one place.
|
|
|
|
extra = map (p: ./extra + "/${p}") [
|
|
|
|
"deprecations.nix"
|
|
|
|
];
|
|
|
|
|
|
|
|
allModules = concatLists [neovim plugins wrapper extra];
|
2024-04-07 14:16:08 +00:00
|
|
|
|
2023-02-01 19:11:37 +00:00
|
|
|
pkgsModule = {config, ...}: {
|
|
|
|
config = {
|
2023-11-06 09:33:38 +00:00
|
|
|
_module = {
|
|
|
|
inherit check;
|
|
|
|
args = {
|
2024-04-07 14:16:08 +00:00
|
|
|
baseModules = allModules;
|
|
|
|
pkgsPath = mkDefault pkgs.path;
|
|
|
|
pkgs = mkDefault pkgs;
|
2023-11-06 09:33:38 +00:00
|
|
|
};
|
|
|
|
};
|
2023-02-01 19:11:37 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
in
|
2024-04-07 14:16:08 +00:00
|
|
|
allModules ++ [pkgsModule]
|