mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	utility/binds/which-key: allow configurable category labels
This commit is contained in:
		
					parent
					
						
							
								94f18af742
							
						
					
				
			
			
				commit
				
					
						29b9bd4db0
					
				
			
		
					 2 changed files with 20 additions and 100 deletions
				
			
		|  | @ -3,14 +3,17 @@ | ||||||
|   lib, |   lib, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   inherit (lib) mkIf nvim; |   inherit (lib.modules) mkIf; | ||||||
|  |   inherit (lib.strings) optionalString; | ||||||
|  |   inherit (lib.nvim.lua) toLuaObject; | ||||||
|  |   inherit (lib.nvim.dag) entryAnywhere; | ||||||
| 
 | 
 | ||||||
|   cfg = config.vim.binds.whichKey; |   cfg = config.vim.binds.whichKey; | ||||||
| in { | in { | ||||||
|   config = mkIf (cfg.enable) { |   config = mkIf (cfg.enable) { | ||||||
|     vim.startPlugins = ["which-key"]; |     vim.startPlugins = ["which-key"]; | ||||||
| 
 | 
 | ||||||
|     vim.luaConfigRC.whichkey = nvim.dag.entryAnywhere '' |     vim.luaConfigRC.whichkey = entryAnywhere '' | ||||||
|       local wk = require("which-key") |       local wk = require("which-key") | ||||||
|       wk.setup ({ |       wk.setup ({ | ||||||
|         key_labels = { |         key_labels = { | ||||||
|  | @ -20,108 +23,14 @@ in { | ||||||
|           ["<tab>"] = "TAB", |           ["<tab>"] = "TAB", | ||||||
|         }, |         }, | ||||||
| 
 | 
 | ||||||
|         ${lib.optionalString (config.vim.ui.borders.plugins.which-key.enable) '' |         ${optionalString (config.vim.ui.borders.plugins.which-key.enable) '' | ||||||
|         window = { |         window = { | ||||||
|           border = "${config.vim.ui.borders.plugins.which-key.style}", |           border = "${config.vim.ui.borders.plugins.which-key.style}", | ||||||
|         }, |         }, | ||||||
|       ''} |       ''} | ||||||
|       }) |       }) | ||||||
| 
 | 
 | ||||||
|       wk.register({ |       wk.register(${toLuaObject cfg.register}) | ||||||
|         ${ |  | ||||||
|         if config.vim.tabline.nvimBufferline.enable |  | ||||||
|         then '' |  | ||||||
|           -- Buffer |  | ||||||
|           ["<leader>b"] = { name = "+Buffer" }, |  | ||||||
|           ["<leader>bm"] = { name = "BufferLineMove" }, |  | ||||||
|           ["<leader>bs"] = { name = "BufferLineSort" }, |  | ||||||
|           ["<leader>bsi"] = { name = "BufferLineSortById" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.telescope.enable |  | ||||||
|         then '' |  | ||||||
|           ["<leader>f"] = { name = "+Telescope" }, |  | ||||||
|            -- Telescope |  | ||||||
|           ["<leader>fl"] = { name = "Telescope LSP" }, |  | ||||||
|           ["<leader>fm"] = { name = "Cellular Automaton" }, -- TODO: mvoe this to its own parent group |  | ||||||
|           ["<leader>fv"] = { name = "Telescope Git" }, |  | ||||||
|           ["<leader>fvc"] = { name = "Commits" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.lsp.trouble.enable |  | ||||||
|         then '' |  | ||||||
|           -- Trouble |  | ||||||
|           ["<leader>lw"] = { name = "Workspace" }, |  | ||||||
|           ["<leader>x"] = { name = "+Trouble" }, -- TODO: move all trouble binds to the same parent group |  | ||||||
|           ["<leader>l"] = { name = "+Trouble" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.lsp.nvimCodeActionMenu.enable |  | ||||||
|         then '' |  | ||||||
|           -- Parent Groups |  | ||||||
|           ["<leader>c"] = { name = "+CodeAction" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.minimap.codewindow.enable || config.vim.minimap.minimap-vim.enable |  | ||||||
|         then '' |  | ||||||
|           -- Minimap |  | ||||||
|           ["<leader>m"] = { name = "+Minimap" }, -- TODO: remap both minimap plugins' keys to be the same |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.notes.mind-nvim.enable || config.vim.notes.obsidian.enable || config.vim.notes.orgmode.enable |  | ||||||
|         then '' |  | ||||||
|           -- Notes |  | ||||||
|           ["<leader>o"] = { name = "+Notes" }, |  | ||||||
|           -- TODO: options for other note taking plugins and their individual binds |  | ||||||
|           -- TODO: move all note-taker binds under leader + o |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         # TODO: This probably will need to be reworked for custom-keybinds |  | ||||||
|         if config.vim.filetree.nvimTree.enable |  | ||||||
|         then '' |  | ||||||
|           -- NvimTree |  | ||||||
|           ["<leader>t"] = { name = "+NvimTree" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.git.gitsigns.enable |  | ||||||
|         then '' |  | ||||||
|           -- Git |  | ||||||
|           ["<leader>g"] = { name = "+Gitsigns" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|         ${ |  | ||||||
|         if config.vim.utility.preview.glow.enable |  | ||||||
|         then '' |  | ||||||
|           -- Markdown |  | ||||||
|           ["<leader>pm"] = { name = "+Preview Markdown" }, |  | ||||||
|         '' |  | ||||||
|         else "" |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       }) |  | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,7 +1,18 @@ | ||||||
| {lib, ...}: let | { | ||||||
|   inherit (lib) mkEnableOption; |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib.options) mkEnableOption mkOption; | ||||||
|  |   inherit (lib.types) attrsOf str; | ||||||
| in { | in { | ||||||
|   options.vim.binds.whichKey = { |   options.vim.binds.whichKey = { | ||||||
|     enable = mkEnableOption "which-key keybind helper menu"; |     enable = mkEnableOption "which-key keybind helper menu"; | ||||||
|  | 
 | ||||||
|  |     register = mkOption { | ||||||
|  |       description = "Register label for which-key keybind helper menu"; | ||||||
|  |       type = attrsOf str; | ||||||
|  |       default = {}; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Frothy
				Frothy