Skip to content

Commit

Permalink
plugins/neogit: switch to mkNeovimPlugin
Browse files Browse the repository at this point in the history
  • Loading branch information
GaetanLepage committed Mar 1, 2024
1 parent be87309 commit 8c0bdb1
Show file tree
Hide file tree
Showing 5 changed files with 790 additions and 244 deletions.
2 changes: 1 addition & 1 deletion plugins/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
./git/gitlinker.nix
./git/gitmessenger.nix
./git/gitsigns.nix
./git/neogit.nix
./git/neogit

./languages/clangd-extensions.nix
./languages/debugprint.nix
Expand Down
243 changes: 0 additions & 243 deletions plugins/git/neogit.nix

This file was deleted.

104 changes: 104 additions & 0 deletions plugins/git/neogit/default.nix
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 8c0bdb1

Please sign in to comment.