mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 19:12:38 +00:00 
			
		
		
		
	feat: add leap keybindings
This commit is contained in:
		
					parent
					
						
							
								0068af2d66
							
						
					
				
			
			
				commit
				
					
						5a56de1b9f
					
				
			
		
					 2 changed files with 82 additions and 20 deletions
				
			
		|  | @ -1,7 +1,6 @@ | ||||||
| { | { | ||||||
|   config, |   config, | ||||||
|   lib, |   lib, | ||||||
|   pkgs, |  | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| with lib; let | with lib; let | ||||||
|  | @ -13,18 +12,59 @@ in { | ||||||
|       "vim-repeat" |       "vim-repeat" | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     vim.nnoremap = { |     vim.maps.normal = mkMerge [ | ||||||
|       "<leader>h" = "<cmd> HopPattern<CR>"; |       (mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to") | ||||||
|     }; |       (mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to") | ||||||
|  |       (mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window") | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     vim.maps.operator = mkMerge [ | ||||||
|  |       (mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to") | ||||||
|  |       (mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to") | ||||||
|  |       (mkBinding cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till") | ||||||
|  |       (mkBinding cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till") | ||||||
|  |       (mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window") | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     vim.maps.visualOnly = mkMerge [ | ||||||
|  |       (mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to") | ||||||
|  |       (mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to") | ||||||
|  |       (mkBinding cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till") | ||||||
|  |       (mkBinding cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till") | ||||||
|  |       (mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window") | ||||||
|  |     ]; | ||||||
| 
 | 
 | ||||||
|     vim.luaConfigRC.leap-nvim = nvim.dag.entryAnywhere '' |     vim.luaConfigRC.leap-nvim = nvim.dag.entryAnywhere '' | ||||||
|       require('leap').add_default_mappings() |       require('leap').opts = { | ||||||
|       -- TODO: register custom keybinds |         max_phase_one_targets = nil, | ||||||
|       -- require('leap').leap { |         highlight_unlabeled_phase_one_targets = false, | ||||||
|       --   opts = { |         max_highlighted_traversal_targets = 10, | ||||||
|       --     labels = {} |         case_sensitive = false, | ||||||
|       --   } |         equivalence_classes = { ' \t\r\n', }, | ||||||
|       -- } |         substitute_chars = {}, | ||||||
|  |         safe_labels = { | ||||||
|  |           "s", "f", "n", "u", "t", "/", | ||||||
|  |           "S", "F", "N", "L", "H", "M", "U", "G", "T", "?", "Z" | ||||||
|  |         }, | ||||||
|  |         labels = { | ||||||
|  |           "s", "f", "n", | ||||||
|  |           "j", "k", "l", "h", "o", "d", "w", "e", "m", "b", | ||||||
|  |           "u", "y", "v", "r", "g", "t", "c", "x", "/", "z", | ||||||
|  |           "S", "F", "N", | ||||||
|  |           "J", "K", "L", "H", "O", "D", "W", "E", "M", "B", | ||||||
|  |           "U", "Y", "V", "R", "G", "T", "C", "X", "?", "Z" | ||||||
|  |         }, | ||||||
|  |         special_keys = { | ||||||
|  |           repeat_search = '<enter>', | ||||||
|  |           next_phase_one_target = '<enter>', | ||||||
|  |           next_target = {'<enter>', ';'}, | ||||||
|  |           prev_target = {'<tab>', ','}, | ||||||
|  |           next_group = '<space>', | ||||||
|  |           prev_group = '<tab>', | ||||||
|  |           multi_accept = '<enter>', | ||||||
|  |           multi_revert = '<backspace>', | ||||||
|  |         }, | ||||||
|  |       } | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,13 +1,35 @@ | ||||||
| { | {lib, ...}: | ||||||
|   config, | with lib; | ||||||
|   lib, | with builtins; { | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.vim.utility.motion.leap; |  | ||||||
| in { |  | ||||||
|   options.vim.utility.motion.leap = { |   options.vim.utility.motion.leap = { | ||||||
|     enable = mkEnableOption "Enable leap.nvim plugin (easy motion)"; |     enable = mkEnableOption "Enable leap.nvim plugin (easy motion)"; | ||||||
|  | 
 | ||||||
|  |     mappings = { | ||||||
|  |       leapForwardTo = mkOption { | ||||||
|  |         type = types.nullOr types.str; | ||||||
|  |         description = "Leap forward to"; | ||||||
|  |         default = "s"; | ||||||
|  |       }; | ||||||
|  |       leapBackwardTo = mkOption { | ||||||
|  |         type = types.nullOr types.str; | ||||||
|  |         description = "Leap backward to"; | ||||||
|  |         default = "S"; | ||||||
|  |       }; | ||||||
|  |       leapForwardTill = mkOption { | ||||||
|  |         type = types.nullOr types.str; | ||||||
|  |         description = "Leap forward till"; | ||||||
|  |         default = "x"; | ||||||
|  |       }; | ||||||
|  |       leapBackwardTill = mkOption { | ||||||
|  |         type = types.nullOr types.str; | ||||||
|  |         description = "Leap backward till"; | ||||||
|  |         default = "X"; | ||||||
|  |       }; | ||||||
|  |       leapFromWindow = mkOption { | ||||||
|  |         type = types.nullOr types.str; | ||||||
|  |         description = "Leap from window"; | ||||||
|  |         default = "gs"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 n3oney
				n3oney