mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +00:00 
			
		
		
		
	feat: conditionally write which-key registers
This commit is contained in:
		
					parent
					
						
							
								4354cabc39
							
						
					
				
			
			
				commit
				
					
						b4027c4bba
					
				
			
		
					 4 changed files with 111 additions and 51 deletions
				
			
		|  | @ -1,49 +0,0 @@ | |||
| { | ||||
|   pkgs, | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: | ||||
| with lib; | ||||
| with builtins; let | ||||
|   cfg = config.vim.binds.whichKey; | ||||
| in { | ||||
|   options.vim.binds.whichKey = { | ||||
|     enable = mkEnableOption "which-key menu"; | ||||
|   }; | ||||
| 
 | ||||
|   config = mkIf (cfg.enable) { | ||||
|     vim.startPlugins = ["which-key"]; | ||||
| 
 | ||||
|     vim.luaConfigRC.whichkey = nvim.dag.entryAnywhere '' | ||||
|       require("which-key").setup {} | ||||
| 
 | ||||
|       local wk = require("which-key") | ||||
|       wk.register({ | ||||
|         ["<leader>b"] = { name = "+Buffer" }, | ||||
|         ["<leader>c"] = { name = "+CodeAction" }, | ||||
|         ["<leader>b"] = { name = "+Buffer" }, | ||||
|         ["<leader>f"] = { name = "+Telescope" }, | ||||
|         ["<leader>m"] = { name = "+Minimap" }, | ||||
|         ["<leader>o"] = { name = "+Notes" }, | ||||
|         ["<leader>t"] = { name = "+NvimTree" }, | ||||
|         ["<leader>x"] = { name = "+Trouble" }, -- TODO: move all trouble binds to the same parent group | ||||
|         ["<leader>l"] = { name = "+Trouble" }, | ||||
| 
 | ||||
|         -- Buffer | ||||
|         ["<leader>bm"] = { name = "BufferLineMove" }, | ||||
|         ["<leader>bm"] = { name = "BufferLineSort" }, | ||||
| 
 | ||||
|         -- 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" }, | ||||
| 
 | ||||
|         -- Trouble | ||||
|         ["<leader>lw"] = { name = "Workspace" }, | ||||
|       }) | ||||
| 
 | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
|  | @ -5,7 +5,7 @@ | |||
|   ... | ||||
| }: { | ||||
|   imports = [ | ||||
|     ./which-key.nix | ||||
|     ./cheatsheet.nix | ||||
|     ./which-key | ||||
|     ./cheatsheet | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										109
									
								
								modules/utility/utility/which-key/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								modules/utility/utility/which-key/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,109 @@ | |||
| { | ||||
|   pkgs, | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: | ||||
| with lib; | ||||
| with builtins; let | ||||
|   cfg = config.vim.binds.whichKey; | ||||
| in { | ||||
|   options.vim.binds.whichKey = { | ||||
|     enable = mkEnableOption "which-key menu"; | ||||
|   }; | ||||
| 
 | ||||
|   config = mkIf (cfg.enable) { | ||||
|     vim.startPlugins = ["which-key"]; | ||||
| 
 | ||||
|     vim.luaConfigRC.whichkey = nvim.dag.entryAnywhere '' | ||||
|       require("which-key").setup {} | ||||
| 
 | ||||
|       local wk = require("which-key") | ||||
|       wk.register({ | ||||
| 
 | ||||
|         ${ | ||||
|         if config.vim.tabline.nvimBufferline.enable | ||||
|         then '' | ||||
|           -- Buffer | ||||
|           ["<leader>b"] = { name = "+Buffer" }, | ||||
|           ["<leader>bm"] = { name = "BufferLineMove" }, | ||||
|         '' | ||||
|         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" }, | ||||
|         '' | ||||
|         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 "" | ||||
|       } | ||||
| 
 | ||||
|         ${ | ||||
|         if config.vim.filetree.nvimTreeLua.enable | ||||
|         then '' | ||||
|           -- NvimTree | ||||
|           ["<leader>t"] = { name = "+NvimTree" }, | ||||
|         '' | ||||
|         else "" | ||||
|       } | ||||
| 
 | ||||
|       ${ | ||||
|         if config.vim.git.gitsigns.enable | ||||
|         then '' | ||||
|           -- Git | ||||
|           ["<leader>g"] = { name = "+Gitsigns" }, | ||||
|         '' | ||||
|         else "" | ||||
|       } | ||||
| 
 | ||||
|       }) | ||||
| 
 | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 NotAShelf
				NotAShelf