aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/nixvim/plugins/gitsigns/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/development/nixvim/plugins/gitsigns/default.nix')
-rw-r--r--modules/development/nixvim/plugins/gitsigns/default.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/modules/development/nixvim/plugins/gitsigns/default.nix b/modules/development/nixvim/plugins/gitsigns/default.nix
new file mode 100644
index 0000000..af8b920
--- /dev/null
+++ b/modules/development/nixvim/plugins/gitsigns/default.nix
@@ -0,0 +1,45 @@
+# Git integration: signs, blame, diffs and hunk operations
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ base16Colors = import ../../../../colors/base16 { inherit config lib pkgs; };
+in
+{
+ config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ plugins.gitsigns = {
+ enable = true;
+
+ settings = {
+ signs = {
+ add.text = "┃";
+ change.text = "┃";
+ delete.text = "▁";
+ topdelete.text = "▔";
+ changedelete.text = "~";
+ untracked.text = "┆";
+ };
+
+ signcolumn = false;
+ numhl = true;
+ current_line_blame = false;
+ current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>";
+
+ on_attach = builtins.readFile ./on-attach.lua;
+ };
+ };
+
+ highlight = with base16Colors.colorsWithHashPrefix; {
+ GitSignsAdd.fg = base0B;
+ GitSignsChange.fg = base0A;
+ GitSignsDelete.fg = base08;
+ GitSignsTopdelete.fg = base08;
+ GitSignsChangedelete.fg = base0A;
+ GitSignsUntracked.fg = base0C;
+ GitSignsCurrentLineBlame.fg = base04;
+ };
+ };
+}