mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +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
				
			
		|  | @ -162,3 +162,7 @@ | ||||||
| [Mr-Helpful](https://github.com/Mr-Helpful) | [Mr-Helpful](https://github.com/Mr-Helpful) | ||||||
| 
 | 
 | ||||||
| - Corrects pin names used for nvim themes | - Corrects pin names used for nvim themes | ||||||
|  | 
 | ||||||
|  | [Libadoxon](https://github.com/Libadoxon) | ||||||
|  | 
 | ||||||
|  | - Add [git-conflict](https://github.com/akinsho/git-conflict.nvim) plugin for resolving git conflicts | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ in { | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./gitsigns |     ./gitsigns | ||||||
|     ./vim-fugitive |     ./vim-fugitive | ||||||
|  |     ./git-conflict | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   options.vim.git = { |   options.vim.git = { | ||||||
|  | @ -13,6 +14,7 @@ in { | ||||||
|       Enabling this option will enable the following plugins: |       Enabling this option will enable the following plugins: | ||||||
|       * gitsigns |       * gitsigns | ||||||
|       * vim-fugitive |       * vim-fugitive | ||||||
|  |       * git-conflict | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										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)}) | ||||||
|  |         ''; | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   ]); | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								modules/plugins/git/git-conflict/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/git/git-conflict/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     ./config.nix | ||||||
|  |     ./git-conflict.nix | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								modules/plugins/git/git-conflict/git-conflict.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/plugins/git/git-conflict/git-conflict.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib.options) mkEnableOption; | ||||||
|  |   inherit (lib.nvim.binds) mkMappingOption; | ||||||
|  |   inherit (lib.nvim.types) mkPluginSetupOption; | ||||||
|  | in { | ||||||
|  |   options.vim.git.git-conflict = { | ||||||
|  |     enable = mkEnableOption "git-conflict" // {default = config.vim.git.enable;}; | ||||||
|  |     setupOpts = mkPluginSetupOption "git-conflict" {}; | ||||||
|  | 
 | ||||||
|  |     mappings = { | ||||||
|  |       ours = mkMappingOption "Choose Ours [Git-Conflict]" "co"; | ||||||
|  |       theirs = mkMappingOption "Choose Theirs [Git-Conflict]" "ct"; | ||||||
|  |       both = mkMappingOption "Choose Both [Git-Conflict]" "cb"; | ||||||
|  |       none = mkMappingOption "Choose None [Git-Conflict]" "c0"; | ||||||
|  |       prevConflict = mkMappingOption "Go to the previous Conflict [Git-Conflict]" "]x"; | ||||||
|  |       nextConflict = mkMappingOption "Go to the next Conflict [Git-Conflict]" "[x"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -423,6 +423,18 @@ | ||||||
|       "url": "https://github.com/notomo/gesture.nvim/archive/dbd839bda337cb73911aeef06897eb29cb99f76f.tar.gz", |       "url": "https://github.com/notomo/gesture.nvim/archive/dbd839bda337cb73911aeef06897eb29cb99f76f.tar.gz", | ||||||
|       "hash": "1cqiahc52xh113l8lgpz3k852vvqkv2srj9shdkyya76a2v2sf9d" |       "hash": "1cqiahc52xh113l8lgpz3k852vvqkv2srj9shdkyya76a2v2sf9d" | ||||||
|     }, |     }, | ||||||
|  |     "git-conflict-nvim": { | ||||||
|  |       "type": "Git", | ||||||
|  |       "repository": { | ||||||
|  |         "type": "GitHub", | ||||||
|  |         "owner": "akinsho", | ||||||
|  |         "repo": "git-conflict.nvim" | ||||||
|  |       }, | ||||||
|  |       "branch": "main", | ||||||
|  |       "revision": "a1badcd070d176172940eb55d9d59029dad1c5a6", | ||||||
|  |       "url": "https://github.com/akinsho/git-conflict.nvim/archive/a1badcd070d176172940eb55d9d59029dad1c5a6.tar.gz", | ||||||
|  |       "hash": "05rnwhm1fmg3yb7j2xc9nmw262jc687qxhwabn97qarrk2da0r0a" | ||||||
|  |     }, | ||||||
|     "gitsigns-nvim": { |     "gitsigns-nvim": { | ||||||
|       "type": "Git", |       "type": "Git", | ||||||
|       "repository": { |       "repository": { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ben Mayer
				Ben Mayer