{ config, lib, pkgs, ... }: let inherit (lib) mkIf; cfg = config.programs.neovim; in { config = mkIf cfg.enable { programs.neovim.plugins = [ pkgs.vimPlugins.fugitive { # FIXME: wait for it to reach nixpkgs plugin = pkgs.vimPlugins.gitsigns-nvim.overrideAttrs rec { version = "1.0.2"; src = pkgs.fetchFromGitHub { owner = "lewis6991"; repo = "gitsigns.nvim"; tag = "v${version}"; hash = "sha256-qWusbKY+3d1dkW5oLYDyfSLdt1qFlJdDeXgFWqQ4hUI="; }; }; type = "lua"; config = # lua '' -- local gitsigns = require("gitsigns"); vim.keymap.set("v", "gs", function() gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }); end); gitsigns.setup(); ''; } ]; }; # For accurate stack trace _file = ./default.nix; }