mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +00:00 
			
		
		
		
	convert nim module
This commit is contained in:
		
					parent
					
						
							
								1f3b417469
							
						
					
				
			
			
				commit
				
					
						16c7c28ba1
					
				
			
		
					 2 changed files with 60 additions and 59 deletions
				
			
		|  | @ -6,32 +6,34 @@ | ||||||
| }: let | }: let | ||||||
|   inherit (builtins) attrNames; |   inherit (builtins) attrNames; | ||||||
|   inherit (lib.options) mkEnableOption mkOption; |   inherit (lib.options) mkEnableOption mkOption; | ||||||
|   inherit (lib.meta) getExe; |   inherit (lib.meta) getExe'; | ||||||
|   inherit (lib.modules) mkIf mkMerge; |   inherit (lib.modules) mkIf mkMerge; | ||||||
|   inherit (lib.lists) isList; |   inherit (lib.types) enum listOf package; | ||||||
|   inherit (lib.types) enum either listOf package str; |  | ||||||
|   inherit (lib.nvim.types) mkGrammarOption; |   inherit (lib.nvim.types) mkGrammarOption; | ||||||
|   inherit (lib.nvim.lua) expToLua; |   inherit (lib.generators) mkLuaInline; | ||||||
|  |   inherit (lib.nvim.attrsets) mapListToAttrs; | ||||||
| 
 | 
 | ||||||
|   cfg = config.vim.languages.nim; |   cfg = config.vim.languages.nim; | ||||||
| 
 | 
 | ||||||
|   defaultServer = "nimlsp"; |   defaultServers = ["nimlsp"]; | ||||||
|   servers = { |   servers = { | ||||||
|     nimlsp = { |     nimlsp = { | ||||||
|       package = pkgs.nimlsp; |       enable = true; | ||||||
|       lspConfig = '' |       cmd = [(getExe' pkgs.nimlsp "nimlsp")]; | ||||||
|         lspconfig.nimls.setup{ |       filetypes = ["nim"]; | ||||||
|           capabilities = capabilities; |       root_dir = | ||||||
|           on_attach = default_on_attach; |         mkLuaInline | ||||||
|           cmd = ${ |         /* | ||||||
|           if isList cfg.lsp.package |         lua | ||||||
|           then expToLua cfg.lsp.package |         */ | ||||||
|           else '' |         '' | ||||||
|             {"${cfg.lsp.package}/bin/nimlsp"} |           function(bufnr, on_dir) | ||||||
|           '' |               local fname = vim.api.nvim_buf_get_name(bufnr) | ||||||
|         }; |               on_dir( | ||||||
|         } |                 util.root_pattern '*.nimble'(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) | ||||||
|       ''; |               ) | ||||||
|  |           end | ||||||
|  |         ''; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | @ -55,17 +57,11 @@ in { | ||||||
| 
 | 
 | ||||||
|     lsp = { |     lsp = { | ||||||
|       enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; |       enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; | ||||||
|       server = mkOption { |  | ||||||
|         description = "Nim LSP server to use"; |  | ||||||
|         type = str; |  | ||||||
|         default = defaultServer; |  | ||||||
|       }; |  | ||||||
| 
 | 
 | ||||||
|       package = mkOption { |       servers = mkOption { | ||||||
|         description = "Nim LSP server package, or the command to run as a list of strings"; |         description = "Nim LSP server to use"; | ||||||
|         example = ''[lib.getExe pkgs.nimlsp]''; |         type = listOf (enum (attrNames servers)); | ||||||
|         type = either package (listOf str); |         default = defaultServers; | ||||||
|         default = servers.${cfg.lsp.server}.package; |  | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | @ -101,8 +97,12 @@ in { | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     (mkIf cfg.lsp.enable { |     (mkIf cfg.lsp.enable { | ||||||
|       vim.lsp.lspconfig.enable = true; |       vim.lsp.servers = | ||||||
|       vim.lsp.lspconfig.sources.nim-lsp = servers.${cfg.lsp.server}.lspConfig; |         mapListToAttrs (n: { | ||||||
|  |           name = n; | ||||||
|  |           value = servers.${n}; | ||||||
|  |         }) | ||||||
|  |         cfg.lsp.servers; | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     (mkIf cfg.format.enable { |     (mkIf cfg.format.enable { | ||||||
|  |  | ||||||
|  | @ -5,27 +5,30 @@ | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   inherit (lib.options) mkEnableOption mkOption; |   inherit (lib.options) mkEnableOption mkOption; | ||||||
|   inherit (lib.types) str either package listOf; |   inherit (lib.types) enum listOf; | ||||||
|   inherit (lib.modules) mkIf mkMerge; |   inherit (lib.modules) mkIf mkMerge; | ||||||
|   inherit (lib.nvim.lua) expToLua; |  | ||||||
|   inherit (lib.nvim.types) mkGrammarOption; |   inherit (lib.nvim.types) mkGrammarOption; | ||||||
|   inherit (builtins) isList; |   inherit (lib.meta) getExe; | ||||||
|  |   inherit (lib.generators) mkLuaInline; | ||||||
|  |   inherit (lib.nvim.attrsets) mapListToAttrs; | ||||||
|  |   inherit (builtins) attrNames; | ||||||
| 
 | 
 | ||||||
|   defaultServer = "nushell"; |   defaultServers = ["nushell"]; | ||||||
|   servers = { |   servers = { | ||||||
|     nushell = { |     nushell = { | ||||||
|       package = pkgs.nushell; |       enable = true; | ||||||
|       lspConfig = '' |       cmd = [(getExe pkgs.nushell) "--no-config-file" "--lsp"]; | ||||||
|         lspconfig.nushell.setup{ |       filetypes = ["nu"]; | ||||||
|           capabilities = capabilities, |       root_dir = | ||||||
|           on_attach = default_on_attach, |         mkLuaInline | ||||||
|           cmd = ${ |         /* | ||||||
|           if isList cfg.lsp.package |         lua | ||||||
|           then expToLua cfg.lsp.package |         */ | ||||||
|           else ''{"${cfg.lsp.package}/bin/nu", "--no-config-file", "--lsp"}'' |         '' | ||||||
|         } |           function(bufnr, on_dir) | ||||||
|         } |             on_dir(vim.fs.root(bufnr, { '.git' }) or vim.fs.dirname(vim.api.nvim_buf_get_name(bufnr))) | ||||||
|       ''; |           end | ||||||
|  |         ''; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | @ -41,17 +44,11 @@ in { | ||||||
| 
 | 
 | ||||||
|     lsp = { |     lsp = { | ||||||
|       enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; |       enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; | ||||||
|       server = mkOption { |  | ||||||
|         type = str; |  | ||||||
|         default = defaultServer; |  | ||||||
|         description = "Nu LSP server to use"; |  | ||||||
|       }; |  | ||||||
| 
 | 
 | ||||||
|       package = mkOption { |       servers = mkOption { | ||||||
|         type = either package (listOf str); |         description = "Nu LSP server to use"; | ||||||
|         default = servers.${cfg.lsp.server}.package; |         type = listOf (enum (attrNames servers)); | ||||||
|         example = ''[(lib.getExe pkgs.nushell) "--lsp"]''; |         default = defaultServers; | ||||||
|         description = "Nu LSP server package, or the command to run as a list of strings"; |  | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  | @ -63,8 +60,12 @@ in { | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     (mkIf cfg.lsp.enable { |     (mkIf cfg.lsp.enable { | ||||||
|       vim.lsp.lspconfig.enable = true; |       vim.lsp.servers = | ||||||
|       vim.lsp.lspconfig.sources.nu-lsp = servers.${cfg.lsp.server}.lspConfig; |         mapListToAttrs (n: { | ||||||
|  |           name = n; | ||||||
|  |           value = servers.${n}; | ||||||
|  |         }) | ||||||
|  |         cfg.lsp.servers; | ||||||
|     }) |     }) | ||||||
|   ]); |   ]); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 sjcobb
				sjcobb