mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-05 18:01:32 +00:00
40 lines
1.1 KiB
Nix
40 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib.attrsets) optionalAttrs recursiveUpdate;
|
|
inherit (lib.lists) optionals;
|
|
inherit (lib.modules) mkIf;
|
|
inherit (lib.nvim.lua) toLuaObject;
|
|
inherit (lib.nvim.dag) entryAfter entryAnywhere;
|
|
|
|
cfg = config.vim.utility.oil-nvim;
|
|
in {
|
|
config = mkIf cfg.enable {
|
|
vim = {
|
|
startPlugins = ["oil-nvim"] ++ (optionals cfg.gitStatus.enable ["oil-git-status.nvim"]);
|
|
|
|
pluginRC.oil-nvim = let
|
|
gitStatusDefaultOpts = {
|
|
# https://github.com/refractalize/oil-git-status.nvim?tab=readme-ov-file#configuration
|
|
win_options = {
|
|
signcolumn = "yes:2";
|
|
};
|
|
};
|
|
|
|
setupOpts =
|
|
recursiveUpdate
|
|
(optionalAttrs cfg.gitStatus.enable gitStatusDefaultOpts)
|
|
cfg.setupOpts;
|
|
in
|
|
entryAnywhere ''
|
|
require("oil").setup(${toLuaObject setupOpts});
|
|
'';
|
|
|
|
pluginRC.oil-git-status-nvim = mkIf cfg.gitStatus.enable (entryAfter ["oil-nvim"] ''
|
|
require("oil-git-status").setup(${toLuaObject cfg.gitStatus.setupOpts})
|
|
'');
|
|
};
|
|
};
|
|
}
|