mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 19:12:38 +00:00 
			
		
		
		
	treewide: begin restructuring the module tree
This commit is contained in:
		
					parent
					
						
							
								e1835f6c46
							
						
					
				
			
			
				commit
				
					
						7c730a78e5
					
				
			
		
					 254 changed files with 749 additions and 664 deletions
				
			
		
							
								
								
									
										67
									
								
								modules/plugins/languages/elixir/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								modules/plugins/languages/elixir/config.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib.modules) mkIf; | ||||
|   inherit (lib.meta) getExe; | ||||
|   inherit (lib.nvim.dag) entryAnywhere; | ||||
| 
 | ||||
|   cfg = config.vim.languages.elixir; | ||||
| in { | ||||
|   config = mkIf (cfg.enable) { | ||||
|     vim.startPlugins = [ | ||||
|       "elixir-tools" | ||||
|     ]; | ||||
| 
 | ||||
|     vim.luaConfigRC.elixir-tools = entryAnywhere '' | ||||
|         local elixir = require("elixir") | ||||
|         local elixirls = require("elixir.elixirls") | ||||
| 
 | ||||
|         elixir.setup { | ||||
|           elixirls = { | ||||
|           -- alternatively, point to an existing elixir-ls installation (optional) | ||||
|           -- not currently supported by elixirls, but can be a table if you wish to pass other args `{"path/to/elixirls", "--foo"}` | ||||
|           cmd = "${getExe pkgs.elixir-ls}", | ||||
| 
 | ||||
|           -- default settings, use the `settings` function to override settings | ||||
|           settings = elixirls.settings { | ||||
|             dialyzerEnabled = true, | ||||
|             fetchDeps = false, | ||||
|             enableTestLenses = false, | ||||
|             suggestSpecs = false, | ||||
|           }, | ||||
| 
 | ||||
|           on_attach = function(client, bufnr) | ||||
|             local map_opts = { buffer = true, noremap = true} | ||||
| 
 | ||||
|             -- run the codelens under the cursor | ||||
|             vim.keymap.set("n", "<space>r",  vim.lsp.codelens.run, map_opts) | ||||
|             -- remove the pipe operator | ||||
|             vim.keymap.set("n", "<space>fp", ":ElixirFromPipe<cr>", map_opts) | ||||
|             -- add the pipe operator | ||||
|             vim.keymap.set("n", "<space>tp", ":ElixirToPipe<cr>", map_opts) | ||||
|             vim.keymap.set("v", "<space>em", ":ElixirExpandMacro<cr>", map_opts) | ||||
| 
 | ||||
|             -- bindings for standard LSP functions. | ||||
|             vim.keymap.set("n", "<space>df", "<cmd>lua vim.lsp.buf.format()<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>gd", "<cmd>lua vim.diagnostic.open_float()<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>dt", "<cmd>lua vim.lsp.buf.definition()<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>K", "<cmd>lua vim.lsp.buf.hover()<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>gD","<cmd>lua vim.lsp.buf.implementation()<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>1gD","<cmd>lua vim.lsp.buf.type_definition()<cr>", map_opts) | ||||
| 
 | ||||
|             -- keybinds for fzf-lsp.nvim: https://github.com/gfanto/fzf-lsp.nvim | ||||
|             -- you could also use telescope.nvim: https://github.com/nvim-telescope/telescope.nvim | ||||
|             -- there are also core vim.lsp functions that put the same data in the loclist | ||||
|             vim.keymap.set("n", "<space>gr", ":References<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>g0", ":DocumentSymbols<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<space>gW", ":WorkspaceSymbols<cr>", map_opts) | ||||
|             vim.keymap.set("n", "<leader>d", ":Diagnostics<cr>", map_opts) | ||||
|           end | ||||
|         } | ||||
|       } | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										6
									
								
								modules/plugins/languages/elixir/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/languages/elixir/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| { | ||||
|   imports = [ | ||||
|     ./config.nix | ||||
|     ./elixir-tools.nix | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										7
									
								
								modules/plugins/languages/elixir/elixir-tools.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/plugins/languages/elixir/elixir-tools.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| {lib, ...}: let | ||||
|   inherit (lib.options) mkEnableOption; | ||||
| in { | ||||
|   options.vim.languages.elixir = { | ||||
|     enable = mkEnableOption "Elixir language support"; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue