mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	change: handle both single and multiple servers
This commit is contained in:
		
					parent
					
						
							
								bd2b9daa36
							
						
					
				
			
			
				commit
				
					
						81d489d8e1
					
				
			
		
					 1 changed files with 17 additions and 8 deletions
				
			
		|  | @ -14,7 +14,7 @@ | ||||||
| 
 | 
 | ||||||
|   cfg = config.vim.languages.python; |   cfg = config.vim.languages.python; | ||||||
| 
 | 
 | ||||||
|   defaultServer = ["basedpyright"]; |   defaultServer = "basedpyright"; | ||||||
|   servers = { |   servers = { | ||||||
|     pyright = { |     pyright = { | ||||||
|       package = pkgs.pyright; |       package = pkgs.pyright; | ||||||
|  | @ -220,8 +220,8 @@ in { | ||||||
|       enable = mkEnableOption "Python LSP support" // {default = config.vim.languages.enableLSP;}; |       enable = mkEnableOption "Python LSP support" // {default = config.vim.languages.enableLSP;}; | ||||||
| 
 | 
 | ||||||
|       server = mkOption { |       server = mkOption { | ||||||
|         description = "Python LSP server to use"; |         description = "Python LSP server to use either as a single server or a list of servers"; | ||||||
|         type = listOf (enum (attrNames servers)); |         type = either (enum (attrNames servers)) (listOf (enum (attrNames servers))); | ||||||
|         default = defaultServer; |         default = defaultServer; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|  | @ -229,7 +229,13 @@ in { | ||||||
|         description = "python LSP server package, or the command to run as a list of strings"; |         description = "python LSP server package, or the command to run as a list of strings"; | ||||||
|         example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; |         example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; | ||||||
|         type = lib.types.attrsOf (either package (listOf str)); |         type = lib.types.attrsOf (either package (listOf str)); | ||||||
|         default = lib.genAttrs cfg.lsp.server (name: servers.${name}.package); |         default = let | ||||||
|  |           serverList = | ||||||
|  |             if isList cfg.lsp.server | ||||||
|  |             then cfg.lsp.server | ||||||
|  |             else [cfg.lsp.server]; | ||||||
|  |         in | ||||||
|  |           lib.genAttrs serverList (name: servers.${name}.package); | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | @ -283,10 +289,13 @@ in { | ||||||
| 
 | 
 | ||||||
|     (mkIf cfg.lsp.enable { |     (mkIf cfg.lsp.enable { | ||||||
|       vim.lsp.lspconfig.enable = true; |       vim.lsp.lspconfig.enable = true; | ||||||
|       vim.lsp.lspconfig.sources = |       vim.lsp.lspconfig.sources = let | ||||||
|         lib.genAttrs |         serverList = | ||||||
|         cfg.lsp.server |           if isList cfg.lsp.server | ||||||
|         (name: servers.${name}.lspConfig); |           then cfg.lsp.server | ||||||
|  |           else [cfg.lsp.server]; | ||||||
|  |       in | ||||||
|  |         lib.genAttrs serverList (name: servers.${name}.lspConfig); | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     (mkIf cfg.format.enable { |     (mkIf cfg.format.enable { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 QuiNzX
				QuiNzX