mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-26 09:20:08 +00:00 
			
		
		
		
	feat: add leap keybindings
This commit is contained in:
		
					parent
					
						
							
								c5aee897be
							
						
					
				
			
			
				commit
				
					
						0770b96098
					
				
			
		
					 2 changed files with 82 additions and 20 deletions
				
			
		|  | @ -1,7 +1,6 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; let | ||||
|  | @ -13,18 +12,59 @@ in { | |||
|       "vim-repeat" | ||||
|     ]; | ||||
| 
 | ||||
|     vim.nnoremap = { | ||||
|       "<leader>h" = "<cmd> HopPattern<CR>"; | ||||
|     }; | ||||
|     vim.maps.normal = 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.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 '' | ||||
|       require('leap').add_default_mappings() | ||||
|       -- TODO: register custom keybinds | ||||
|       -- require('leap').leap { | ||||
|       --   opts = { | ||||
|       --     labels = {} | ||||
|       --   } | ||||
|       -- } | ||||
|       require('leap').opts = { | ||||
|         max_phase_one_targets = nil, | ||||
|         highlight_unlabeled_phase_one_targets = false, | ||||
|         max_highlighted_traversal_targets = 10, | ||||
|         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 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; let | ||||
|   cfg = config.vim.utility.motion.leap; | ||||
| in { | ||||
| {lib, ...}: | ||||
| with lib; | ||||
| with builtins; { | ||||
|   options.vim.utility.motion.leap = { | ||||
|     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