mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-03 20:22:21 +00:00 
			
		
		
		
	Compare commits
	
		
			7 commits
		
	
	
		
			
				d70c3a8340
			
			...
			
				c4d80273aa
			
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							
							
								
							
							
	
	
	c4d80273aa | 
						
						
							|||
| 
							 | 
						
							
							
								
							
							
	
	
	72846557d5 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	af87edae84 | 
						
						
							||
| 
							
							
								
							
							
	
	
	5d607f3aef | 
						
						
							|||
| 
							 | 
						
							
							
								
							
							
	
	
	ec2c64e04d | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	94908ffb0a | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	045f098f0e | 
						
						
							
					 11 changed files with 93 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -15,6 +15,7 @@ isMaximal: {
 | 
			
		|||
 | 
			
		||||
    spellcheck = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      programmingWordlist.enable = isMaximal;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    lsp = {
 | 
			
		||||
| 
						 | 
				
			
			@ -162,6 +163,7 @@ isMaximal: {
 | 
			
		|||
      enable = true;
 | 
			
		||||
      gitsigns.enable = true;
 | 
			
		||||
      gitsigns.codeActions.enable = false; # throws an annoying debug message
 | 
			
		||||
      neogit.enable = isMaximal;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    minimap = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,10 @@
 | 
			
		|||
  module interface. You may set [](#opt-vim.clipboard.registers) appropriately
 | 
			
		||||
  to configure Neovim to use the system clipboard.
 | 
			
		||||
 | 
			
		||||
- Changed which-key group used for gitsigns from `<leader>g` to `<leader>h` to
 | 
			
		||||
  align with the "hunks" themed mapping and avoid conflict with the new [neogit]
 | 
			
		||||
  group.
 | 
			
		||||
 | 
			
		||||
[NotAShelf](https://github.com/notashelf):
 | 
			
		||||
 | 
			
		||||
[typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim
 | 
			
		||||
| 
						 | 
				
			
			@ -433,10 +437,11 @@
 | 
			
		|||
 | 
			
		||||
[solarized.nvim]: https://github.com/maxmx03/solarized.nvim
 | 
			
		||||
[smart-splits.nvim]: https://github.com/mrjones2014/smart-splits.nvim
 | 
			
		||||
[neogit]: https://github.com/NeogitOrg/neogit
 | 
			
		||||
 | 
			
		||||
- Add [solarized.nvim] theme with support for multiple variants
 | 
			
		||||
 | 
			
		||||
- Add [smart-splits.nvim] for navigating between Neovim windows and terminal multiplexer panes.
 | 
			
		||||
  Available at `vim.utility.smart-splits`.
 | 
			
		||||
 | 
			
		||||
- Restore vim-dirtytalk plugin and fix ordering with spellcheck in generated config.
 | 
			
		||||
- Fix lualine separator options
 | 
			
		||||
- Add [neogit], an interactive and powerful Git interface for Neovim, inspired by Magit
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
      "runner"
 | 
			
		||||
      "session"
 | 
			
		||||
      "snippets"
 | 
			
		||||
      # "spellcheck" # FIXME: see neovim/init/spellcheck.nix
 | 
			
		||||
      "spellcheck"
 | 
			
		||||
      "statusline"
 | 
			
		||||
      "tabline"
 | 
			
		||||
      "terminal"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,6 +94,8 @@ in {
 | 
			
		|||
      Enabling this option will unconditionally set
 | 
			
		||||
      {option}`vim.spellcheck.enable` to true as vim-dirtytalk
 | 
			
		||||
      depends on spellchecking having been set up.
 | 
			
		||||
 | 
			
		||||
      Run {command}`:DirtytalkUpdate` on first use to download the spellfile.
 | 
			
		||||
      :::
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ in {
 | 
			
		|||
    ./vim-fugitive
 | 
			
		||||
    ./git-conflict
 | 
			
		||||
    ./gitlinker-nvim
 | 
			
		||||
    ./neogit
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  options.vim.git = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,7 +69,7 @@ in {
 | 
			
		|||
        };
 | 
			
		||||
 | 
			
		||||
        binds.whichKey.register = pushDownDefault {
 | 
			
		||||
          "<leader>g" = "+Gitsigns";
 | 
			
		||||
          "<leader>h" = "+Gitsigns";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        pluginRC.gitsigns = entryAnywhere ''
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								modules/plugins/git/neogit/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/plugins/git/neogit/config.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
{
 | 
			
		||||
  options,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  inherit (lib.modules) mkIf;
 | 
			
		||||
  inherit (lib.nvim.binds) pushDownDefault mkKeymap;
 | 
			
		||||
 | 
			
		||||
  cfg = config.vim.git.neogit;
 | 
			
		||||
 | 
			
		||||
  keys = cfg.mappings;
 | 
			
		||||
  inherit (options.vim.git.neogit) mappings;
 | 
			
		||||
in {
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    vim = {
 | 
			
		||||
      startPlugins = ["plenary-nvim"];
 | 
			
		||||
 | 
			
		||||
      lazy.plugins.neogit = {
 | 
			
		||||
        package = "neogit";
 | 
			
		||||
        setupModule = "neogit";
 | 
			
		||||
        inherit (cfg) setupOpts;
 | 
			
		||||
 | 
			
		||||
        cmd = ["Neogit"];
 | 
			
		||||
 | 
			
		||||
        keys = [
 | 
			
		||||
          (mkKeymap "n" keys.open "<Cmd>Neogit<CR>" {desc = mappings.open.description;})
 | 
			
		||||
          (mkKeymap "n" keys.commit "<Cmd>Neogit commit<CR>" {desc = mappings.commit.description;})
 | 
			
		||||
          (mkKeymap "n" keys.pull "<Cmd>Neogit pull<CR>" {desc = mappings.pull.description;})
 | 
			
		||||
          (mkKeymap "n" keys.push "<Cmd>Neogit push<CR>" {desc = mappings.push.description;})
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      binds.whichKey.register = pushDownDefault {
 | 
			
		||||
        "<leader>g" = "+Git";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								modules/plugins/git/neogit/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/git/neogit/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./config.nix
 | 
			
		||||
    ./neogit.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								modules/plugins/git/neogit/neogit.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								modules/plugins/git/neogit/neogit.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
{lib, ...}: let
 | 
			
		||||
  inherit (lib.options) mkEnableOption;
 | 
			
		||||
  inherit (lib.nvim.binds) mkMappingOption;
 | 
			
		||||
  inherit (lib.nvim.types) mkPluginSetupOption;
 | 
			
		||||
in {
 | 
			
		||||
  options.vim.git.neogit = {
 | 
			
		||||
    enable = mkEnableOption "An Interactive and powerful Git interface [Neogit]";
 | 
			
		||||
    setupOpts = mkPluginSetupOption "neogit" {};
 | 
			
		||||
 | 
			
		||||
    mappings = {
 | 
			
		||||
      open = mkMappingOption "Git Status [Neogit]" "<leader>gs";
 | 
			
		||||
      commit = mkMappingOption "Git Commit [Neogit]" "<leader>gc";
 | 
			
		||||
      pull = mkMappingOption "Git pull [Neogit]" "<leader>gp";
 | 
			
		||||
      push = mkMappingOption "Git push [Neogit]" "<leader>gP";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ in {
 | 
			
		|||
      # like to append programming to spelllangs as soon as
 | 
			
		||||
      # possible while the plugin is enabled and the state
 | 
			
		||||
      # directory can be found.
 | 
			
		||||
      pluginRC.vim-dirtytalk = entryAfter ["spellcheck"] ''
 | 
			
		||||
      luaConfigRC.vim-dirtytalk = entryAfter ["spellcheck"] ''
 | 
			
		||||
        -- If Neovim can find (or access) the state directory
 | 
			
		||||
        -- then append "programming" wordlist from vim-dirtytalk
 | 
			
		||||
        -- to spelllang table. If path cannot be found, display
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1530,6 +1530,22 @@
 | 
			
		|||
      "url": "https://github.com/IogaMaster/neocord/archive/2ebf3792a8100376bb65fd66d5dbf60f50af7529.tar.gz",
 | 
			
		||||
      "hash": "1ycx26ppfb5djxji1mwamr7ra29z8sm0fs9a6hhwn0l69x06x353"
 | 
			
		||||
    },
 | 
			
		||||
    "neogit": {
 | 
			
		||||
      "type": "GitRelease",
 | 
			
		||||
      "repository": {
 | 
			
		||||
        "type": "GitHub",
 | 
			
		||||
        "owner": "NeogitOrg",
 | 
			
		||||
        "repo": "neogit"
 | 
			
		||||
      },
 | 
			
		||||
      "pre_releases": false,
 | 
			
		||||
      "version_upper_bound": null,
 | 
			
		||||
      "release_prefix": null,
 | 
			
		||||
      "submodules": false,
 | 
			
		||||
      "version": "v2.0.0",
 | 
			
		||||
      "revision": "7f97dbfc5af3b898c6660d927c23e3a96a5bd069",
 | 
			
		||||
      "url": "https://api.github.com/repos/NeogitOrg/neogit/tarball/v2.0.0",
 | 
			
		||||
      "hash": "0nyv64ai3765if7bdfyx01a0xmsmhm8cjvxyvh2s40bzvkx8xy17"
 | 
			
		||||
    },
 | 
			
		||||
    "neorg": {
 | 
			
		||||
      "type": "Git",
 | 
			
		||||
      "repository": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue