mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-26 09:20:08 +00:00 
			
		
		
		
	modules/lsp: add nvim-docs-view
A neovim plugin to display lsp hover documentation in a side panel.
This commit is contained in:
		
					parent
					
						
							
								30552a9ec3
							
						
					
				
			
			
				commit
				
					
						ce8fdf0003
					
				
			
		
					 8 changed files with 110 additions and 12 deletions
				
			
		|  | @ -38,6 +38,7 @@ inputs: let | ||||||
|         trouble.enable = true; |         trouble.enable = true; | ||||||
|         lspSignature.enable = true; |         lspSignature.enable = true; | ||||||
|         lsplines.enable = isMaximal; |         lsplines.enable = isMaximal; | ||||||
|  |         nvim-docs-view.enable = isMaximal; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       vim.debugger = { |       vim.debugger = { | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1108,6 +1108,22 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "nvim-docs-view": { | ||||||
|  |       "flake": false, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1697737319, | ||||||
|  |         "narHash": "sha256-EmQbnleqxE+VHO5bMI9U/gMpwbJbPdNhrEWE7357MCE=", | ||||||
|  |         "owner": "amrbashir", | ||||||
|  |         "repo": "nvim-docs-view", | ||||||
|  |         "rev": "74a5e989e3fdcfd9418bb9dfec0ace308e00a5a0", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "amrbashir", | ||||||
|  |         "repo": "nvim-docs-view", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "nvim-lightbulb": { |     "nvim-lightbulb": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|  | @ -1511,6 +1527,7 @@ | ||||||
|         "nvim-cursorline": "nvim-cursorline", |         "nvim-cursorline": "nvim-cursorline", | ||||||
|         "nvim-dap": "nvim-dap", |         "nvim-dap": "nvim-dap", | ||||||
|         "nvim-dap-ui": "nvim-dap-ui", |         "nvim-dap-ui": "nvim-dap-ui", | ||||||
|  |         "nvim-docs-view": "nvim-docs-view", | ||||||
|         "nvim-lightbulb": "nvim-lightbulb", |         "nvim-lightbulb": "nvim-lightbulb", | ||||||
|         "nvim-lspconfig": "nvim-lspconfig", |         "nvim-lspconfig": "nvim-lspconfig", | ||||||
|         "nvim-navbuddy": "nvim-navbuddy", |         "nvim-navbuddy": "nvim-navbuddy", | ||||||
|  |  | ||||||
							
								
								
									
										29
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -116,6 +116,12 @@ | ||||||
|       flake = false; |       flake = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     nvim-docs-view = { | ||||||
|  |       url = "github:amrbashir/nvim-docs-view"; | ||||||
|  |       flake = false; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # language support | ||||||
|     sqls-nvim = { |     sqls-nvim = { | ||||||
|       url = "github:nanotee/sqls.nvim"; |       url = "github:nanotee/sqls.nvim"; | ||||||
|       flake = false; |       flake = false; | ||||||
|  | @ -146,6 +152,17 @@ | ||||||
|       flake = false; |       flake = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     glow-nvim = { | ||||||
|  |       url = "github:ellisonleao/glow.nvim"; | ||||||
|  |       flake = false; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # Tidal cycles | ||||||
|  |     tidalcycles = { | ||||||
|  |       url = "github:mitchmindtree/tidalcycles.nix"; | ||||||
|  |       inputs.vim-tidal-src.url = "github:tidalcycles/vim-tidal"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     # Copying/Registers |     # Copying/Registers | ||||||
|     registers = { |     registers = { | ||||||
|       url = "github:tversteeg/registers.nvim"; |       url = "github:tversteeg/registers.nvim"; | ||||||
|  | @ -373,18 +390,6 @@ | ||||||
|       flake = false; |       flake = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # Markdown |  | ||||||
|     glow-nvim = { |  | ||||||
|       url = "github:ellisonleao/glow.nvim"; |  | ||||||
|       flake = false; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     # Tidal cycles |  | ||||||
|     tidalcycles = { |  | ||||||
|       url = "github:mitchmindtree/tidalcycles.nix"; |  | ||||||
|       inputs.vim-tidal-src.url = "github:tidalcycles/vim-tidal"; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     # Minimap |     # Minimap | ||||||
|     minimap-vim = { |     minimap-vim = { | ||||||
|       url = "github:wfxr/minimap.vim"; |       url = "github:wfxr/minimap.vim"; | ||||||
|  |  | ||||||
|  | @ -95,6 +95,7 @@ with lib; let | ||||||
|     "lsp-lines" |     "lsp-lines" | ||||||
|     "vim-dirtytalk" |     "vim-dirtytalk" | ||||||
|     "highlight-undo" |     "highlight-undo" | ||||||
|  |     "nvim-docs-view" | ||||||
|   ]; |   ]; | ||||||
|   # You can either use the name of the plugin or a package. |   # You can either use the name of the plugin or a package. | ||||||
|   pluginType = with types; |   pluginType = with types; | ||||||
|  |  | ||||||
|  | @ -16,5 +16,6 @@ _: { | ||||||
|     ./lightbulb |     ./lightbulb | ||||||
|     ./lspkind |     ./lspkind | ||||||
|     ./lsplines |     ./lsplines | ||||||
|  |     ./nvim-docs-view | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										26
									
								
								modules/lsp/nvim-docs-view/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								modules/lsp/nvim-docs-view/config.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib) mkIf nvim; | ||||||
|  |   inherit (builtins) toString; | ||||||
|  | 
 | ||||||
|  |   cfg = config.vim.lsp.nvim-docs-view; | ||||||
|  | in { | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     vim = { | ||||||
|  |       lsp.enable = true; | ||||||
|  |       startPlugins = ["nvim-docs-view"]; | ||||||
|  | 
 | ||||||
|  |       luaConfigRC.nvim-docs-view = nvim.dag.entryAnywhere '' | ||||||
|  |         require("docs-view").setup { | ||||||
|  |           position = "${cfg.position}", | ||||||
|  |           width = ${toString cfg.width}, | ||||||
|  |           height = ${toString cfg.height}, | ||||||
|  |           update_mode = "${cfg.updateMode}", | ||||||
|  |         } | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								modules/lsp/nvim-docs-view/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/lsp/nvim-docs-view/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | _: { | ||||||
|  |   imports = [ | ||||||
|  |     ./config.nix | ||||||
|  |     ./nvim-docs-view.nix | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										41
									
								
								modules/lsp/nvim-docs-view/nvim-docs-view.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								modules/lsp/nvim-docs-view/nvim-docs-view.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | ||||||
|  | {lib, ...}: let | ||||||
|  |   inherit (lib) mkEnableOption mkOption types; | ||||||
|  | in { | ||||||
|  |   options.vim.lsp.nvim-docs-view = { | ||||||
|  |     enable = mkEnableOption "nvim-docs-view, for displaying lsp hover documentation in a side panel."; | ||||||
|  | 
 | ||||||
|  |     position = mkOption { | ||||||
|  |       type = types.enum ["left" "right" "top" "bottom"]; | ||||||
|  |       default = "right"; | ||||||
|  |       description = '' | ||||||
|  |         Where to open the docs view panel | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     height = mkOption { | ||||||
|  |       type = types.int; | ||||||
|  |       default = 10; | ||||||
|  |       description = '' | ||||||
|  |         Height of the docs view panel if the position is set to either top or bottom | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     width = mkOption { | ||||||
|  |       type = types.int; | ||||||
|  |       default = 60; | ||||||
|  |       description = '' | ||||||
|  |         Width of the docs view panel if the position is set to either left or right | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     updateMode = mkOption { | ||||||
|  |       type = types.enum ["auto" "manual"]; | ||||||
|  |       default = "auto"; | ||||||
|  |       description = '' | ||||||
|  |         Determines the mechanism used to update the docs view panel content. | ||||||
|  |         - If auto, the content will update upon cursor move. | ||||||
|  |         - If manual, the content will only update once :DocsViewUpdate is called | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue