plugins/gitignore: init

This commit is contained in:
Gaetan Lepage 2024-04-15 08:39:29 +02:00 committed by Gaétan Lepage
parent 6ebd538ede
commit 84d7453e44
3 changed files with 82 additions and 0 deletions

View file

@ -42,6 +42,7 @@
./git/git-worktree.nix ./git/git-worktree.nix
./git/gitblame.nix ./git/gitblame.nix
./git/gitgutter.nix ./git/gitgutter.nix
./git/gitignore.nix
./git/gitlinker.nix ./git/gitlinker.nix
./git/gitmessenger.nix ./git/gitmessenger.nix
./git/gitsigns ./git/gitsigns

68
plugins/git/gitignore.nix Normal file
View file

@ -0,0 +1,68 @@
{
lib,
helpers,
config,
pkgs,
...
}:
with lib;
# We use `mkVimPlugin` to avoid having a `settings` option.
# Indeed, this plugin is not configurable in the common sense (no `setup` function).
helpers.vim-plugin.mkVimPlugin config {
name = "gitignore";
originalName = "gitignore.nvim";
defaultPackage = pkgs.vimPlugins.gitignore-nvim;
maintainers = [maintainers.GaetanLepage];
extraOptions = {
keymap = mkOption {
type = with types;
nullOr
(
either
str
(submodule {
options = {
key = mkOption {
type = str;
description = "The key to map.";
example = "<leader>gi";
};
mode = helpers.keymaps.mkModeOption "n";
options = helpers.keymaps.mapConfigOptions;
};
})
);
default = null;
description = ''
Keyboard shortcut for the `gitignore.generate` command.
Can be:
- A string: which key to bind
- An attrs: if you want to customize the mode and/or the options of the keymap
(`desc`, `silent`, ...)
'';
example = "<leader>gi";
};
};
extraConfig = cfg: {
keymaps =
optional (cfg.keymap != null)
(
(
if isString cfg.keymap
then {
mode = "n";
key = cfg.keymap;
}
else cfg.keymap
)
// {
action.__raw = "require('gitignore').generate";
}
);
};
}

View file

@ -0,0 +1,13 @@
{
empty = {
plugins.gitignore.enable = true;
};
example = {
plugins.gitignore = {
enable = true;
keymap = "<leader>gi";
};
};
}