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; | ||||
| 
 | ||||
|   defaultServer = ["basedpyright"]; | ||||
|   defaultServer = "basedpyright"; | ||||
|   servers = { | ||||
|     pyright = { | ||||
|       package = pkgs.pyright; | ||||
|  | @ -220,8 +220,8 @@ in { | |||
|       enable = mkEnableOption "Python LSP support" // {default = config.vim.languages.enableLSP;}; | ||||
| 
 | ||||
|       server = mkOption { | ||||
|         description = "Python LSP server to use"; | ||||
|         type = listOf (enum (attrNames servers)); | ||||
|         description = "Python LSP server to use either as a single server or a list of servers"; | ||||
|         type = either (enum (attrNames servers)) (listOf (enum (attrNames servers))); | ||||
|         default = defaultServer; | ||||
|       }; | ||||
| 
 | ||||
|  | @ -229,7 +229,13 @@ in { | |||
|         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"]''; | ||||
|         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 { | ||||
|       vim.lsp.lspconfig.enable = true; | ||||
|       vim.lsp.lspconfig.sources = | ||||
|         lib.genAttrs | ||||
|         cfg.lsp.server | ||||
|         (name: servers.${name}.lspConfig); | ||||
|       vim.lsp.lspconfig.sources = let | ||||
|         serverList = | ||||
|           if isList cfg.lsp.server | ||||
|           then cfg.lsp.server | ||||
|           else [cfg.lsp.server]; | ||||
|       in | ||||
|         lib.genAttrs serverList (name: servers.${name}.lspConfig); | ||||
|     }) | ||||
| 
 | ||||
|     (mkIf cfg.format.enable { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 QuiNzX
				QuiNzX