110 lines
2.8 KiB
Nix
110 lines
2.8 KiB
Nix
{
|
|
config,
|
|
inputs,
|
|
pkgs,
|
|
util,
|
|
...
|
|
}:
|
|
let
|
|
# Directories for nvim to use.
|
|
runtimes = [
|
|
"~/.cache/nvim"
|
|
"~/.cache/nvim/treesitter"
|
|
"${inputs.nvimAlign}"
|
|
"${inputs.nvimAutoclose}"
|
|
"${inputs.nvimBufferline}"
|
|
"${inputs.nvimCloseBuffers}"
|
|
"${inputs.nvimColorizer}"
|
|
"${inputs.nvimDevicons}"
|
|
"${inputs.nvimDressing}"
|
|
"${inputs.nvimGen}"
|
|
"${inputs.nvimGitsigns}"
|
|
"${inputs.nvimGruvboxMaterial}"
|
|
"${inputs.nvimIndentoMatic}"
|
|
"${inputs.nvimLspconfig}"
|
|
"${inputs.nvimPlenary}"
|
|
"${inputs.nvimTelescope}"
|
|
"${inputs.nvimTodo}"
|
|
"${inputs.nvimTreesitter}"
|
|
"${inputs.nvimTree}"
|
|
"${inputs.nvimTrouble}"
|
|
];
|
|
|
|
# Order of files to load.
|
|
configs = [
|
|
./module/key/Rekey.lua
|
|
./module/key/Leader.lua
|
|
./module/config/Autoread.lua
|
|
./module/config/Etc.lua
|
|
./module/config/Search.lua
|
|
./module/config/Tab.lua
|
|
./module/config/Highlight.lua
|
|
./module/plugin/Filetree.lua
|
|
./module/plugin/Gruvbox.lua
|
|
./module/plugin/Bufferline.lua
|
|
./module/plugin/Autoclose.lua
|
|
./module/plugin/Gitsigns.lua
|
|
./module/plugin/Trouble.lua
|
|
./module/plugin/Closebuffers.lua
|
|
./module/plugin/Telescope.lua
|
|
./module/plugin/Todo.lua
|
|
./module/plugin/Indent.lua
|
|
./module/plugin/Align.lua
|
|
./module/plugin/Treesitter.lua
|
|
./module/plugin/Fold.lua
|
|
./module/plugin/Gen.lua
|
|
./module/plugin/Colorizer.lua
|
|
./module/plugin/Dressing.lua
|
|
./module/plugin/lsp/Go.lua
|
|
./module/plugin/lsp/Haskell.lua
|
|
./module/plugin/lsp/Lua.lua
|
|
./module/plugin/lsp/Nix.lua
|
|
./module/plugin/lsp/Rust.lua
|
|
./module/plugin/lsp/Tex.lua
|
|
./module/key/Autocomplete.lua
|
|
./module/key/Buffer.lua
|
|
./module/key/Cmd.lua
|
|
./module/key/Colorscheme.lua
|
|
./module/key/Filetree.lua
|
|
./module/key/Gitsigns.lua
|
|
./module/key/Navigation.lua
|
|
./module/key/Prompt.lua
|
|
./module/key/Save.lua
|
|
./module/key/Sort.lua
|
|
./module/key/TabWidth.lua
|
|
./module/key/Telescope.lua
|
|
./module/key/Terminal.lua
|
|
./module/key/Trouble.lua
|
|
];
|
|
|
|
# Configuration.
|
|
accent = config.module.style.color.accent;
|
|
bg = config.module.style.color.bg.regular;
|
|
fg = config.module.style.color.fg.dark;
|
|
ollamaModel = config.module.ollama.primaryModel;
|
|
selection = config.module.style.color.selection;
|
|
|
|
# Plugin paths to install.
|
|
runtimeRc = builtins.foldl' (acc: r: acc + "set runtimepath+=${r}\n") "" runtimes;
|
|
|
|
# My configuration files combined into one big file.
|
|
cfgRaw = pkgs.writeText "nvim-rc-raw" (util.readFiles configs);
|
|
cfg = pkgs.replaceVars cfgRaw {
|
|
inherit
|
|
accent
|
|
bg
|
|
fg
|
|
ollamaModel
|
|
selection
|
|
;
|
|
};
|
|
|
|
# Tell Neovim to load this file.
|
|
configRc = "lua dofile(\"${cfg}\")";
|
|
|
|
init = pkgs.writeText "nvim-init" (runtimeRc + configRc);
|
|
in
|
|
{
|
|
inherit init;
|
|
}
|