mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-03 20:22:21 +00:00 
			
		
		
		
	plugins/git: add git-conflict-nvim (#637)
* plugins/git: add git-conflict-nvim; modularize * plugins/git: build git-conflict-nvim ourselves
This commit is contained in:
		
					parent
					
						
							
								e49228d642
							
						
					
				
			
			
				commit
				
					
						a86df770c1
					
				
			
		
					 6 changed files with 88 additions and 1 deletions
				
			
		
							
								
								
									
										40
									
								
								modules/plugins/git/git-conflict/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								modules/plugins/git/git-conflict/config.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  inherit (lib.modules) mkIf mkMerge;
 | 
			
		||||
  inherit (lib.nvim.binds) addDescriptionsToMappings mkSetBinding;
 | 
			
		||||
  inherit (lib.nvim.dag) entryAnywhere;
 | 
			
		||||
  inherit (lib.nvim.lua) toLuaObject;
 | 
			
		||||
 | 
			
		||||
  cfg = config.vim.git.git-conflict;
 | 
			
		||||
 | 
			
		||||
  self = import ./git-conflict.nix {inherit lib config;};
 | 
			
		||||
  gcMappingDefinitions = self.options.vim.git.git-conflict.mappings;
 | 
			
		||||
 | 
			
		||||
  gcMappings = addDescriptionsToMappings cfg.mappings gcMappingDefinitions;
 | 
			
		||||
in {
 | 
			
		||||
  config = mkIf cfg.enable (mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      vim = {
 | 
			
		||||
        startPlugins = ["git-conflict-nvim"];
 | 
			
		||||
 | 
			
		||||
        maps = {
 | 
			
		||||
          normal = mkMerge [
 | 
			
		||||
            (mkSetBinding gcMappings.ours "<Plug>(git-conflict-ours)")
 | 
			
		||||
            (mkSetBinding gcMappings.theirs "<Plug>(git-conflict-theirs)")
 | 
			
		||||
            (mkSetBinding gcMappings.both "<Plug>(git-conflict-both)")
 | 
			
		||||
            (mkSetBinding gcMappings.none "<Plug>(git-conflict-none)")
 | 
			
		||||
            (mkSetBinding gcMappings.prevConflict "<Plug>(git-conflict-prev-conflict)")
 | 
			
		||||
            (mkSetBinding gcMappings.nextConflict "<Plug>(git-conflict-next-conflict)")
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        pluginRC.git-conflict = entryAnywhere ''
 | 
			
		||||
          require('git-conflict').setup(${toLuaObject ({default_mappings = false;} // cfg.setupOpts)})
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
  ]);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue