mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-28 03:20:08 +02:00
plugins/neogit: switch to mkNeovimPlugin
This commit is contained in:
parent
be87309e0c
commit
8c0bdb17e9
5 changed files with 790 additions and 244 deletions
104
plugins/git/neogit/default.nix
Normal file
104
plugins/git/neogit/default.nix
Normal file
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
lib,
|
||||
helpers,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
helpers.neovim-plugin.mkNeovimPlugin config {
|
||||
name = "neogit";
|
||||
defaultPackage = pkgs.vimPlugins.neogit;
|
||||
extraPackages = [pkgs.git];
|
||||
|
||||
maintainers = [maintainers.GaetanLepage];
|
||||
|
||||
# TODO introduced 2024-02-29: remove 2024-04-29
|
||||
deprecateExtraOptions = true;
|
||||
imports =
|
||||
map (
|
||||
optionPath:
|
||||
mkRemovedOptionModule
|
||||
(["plugins" "neogit"] ++ optionPath)
|
||||
"This option has been removed upstream. Please refer to the plugin documentation to update your configuration."
|
||||
)
|
||||
[
|
||||
["disableCommitConfirmation"]
|
||||
["disableBuiltinNotifications"]
|
||||
["useMagitKeybindings "]
|
||||
["commitPopup"]
|
||||
["sections" "unmerged"]
|
||||
["sections" "unpulled"]
|
||||
];
|
||||
optionsRenamedToSettings = [
|
||||
"disableSigns"
|
||||
"disableHint"
|
||||
"disableContextHighlighting"
|
||||
"autoRefresh"
|
||||
"graphStyle"
|
||||
"kind"
|
||||
"signs"
|
||||
"integrations"
|
||||
["sections" "untracked"]
|
||||
["sections" "unstaged"]
|
||||
["sections" "staged"]
|
||||
["sections" "stashes"]
|
||||
["sections" "recent"]
|
||||
"mappings"
|
||||
];
|
||||
|
||||
settingsOptions = import ./options.nix {inherit lib helpers;};
|
||||
|
||||
settingsExample = {
|
||||
kind = "floating";
|
||||
commit_popup.kind = "floating";
|
||||
preview_buffer.kind = "floating";
|
||||
popup.kind = "floating";
|
||||
integrations.diffview = false;
|
||||
disable_commit_confirmation = true;
|
||||
disable_builtin_notifications = true;
|
||||
sections = {
|
||||
untracked.folded = false;
|
||||
unstaged.folded = false;
|
||||
staged.folded = false;
|
||||
stashes.folded = false;
|
||||
unpulled.folded = false;
|
||||
unmerged.folded = true;
|
||||
recent.folded = true;
|
||||
};
|
||||
mappings = {
|
||||
status = {
|
||||
l = "Toggle";
|
||||
a = "Stage";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = cfg: {
|
||||
assertions =
|
||||
map
|
||||
(
|
||||
name: {
|
||||
assertion = let
|
||||
enabled = cfg.settings.integrations.${name};
|
||||
isEnabled = (isBool enabled) && enabled;
|
||||
in
|
||||
isEnabled
|
||||
-> config.plugins.${name}.enable;
|
||||
message = ''
|
||||
Nixvim (plugins.neogit): You have enabled the `${name}` integration, but `plugins.${name}.enable` is `false`.
|
||||
'';
|
||||
}
|
||||
)
|
||||
[
|
||||
"telescope"
|
||||
"diffview"
|
||||
"fzf-lua"
|
||||
];
|
||||
|
||||
extraPackages =
|
||||
optional
|
||||
(hasInfix "which" (cfg.settings.commit_view.verify_commit.__raw or ""))
|
||||
pkgs.which;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue