88 lines
2.6 KiB
Nix
88 lines
2.6 KiB
Nix
{pkgs, ...}: {
|
|
home-manager.users.moritz.programs.nixvim = {
|
|
extraPlugins = with pkgs.vimPlugins; [
|
|
elixir-tools-nvim
|
|
];
|
|
|
|
extraConfigLuaPost = ''
|
|
local elixir = require("elixir")
|
|
local elixirls = require("elixir.elixirls")
|
|
|
|
elixir.setup {
|
|
nextls = {
|
|
enable = true,
|
|
cmd = vim.fn.exepath("nextls"),
|
|
},
|
|
elixirls = {
|
|
enable = true,
|
|
cmd = vim.fn.exepath("elixir-ls"),
|
|
settings = elixirls.settings {
|
|
dialyzerEnabled = true,
|
|
enableTestLenses = true,
|
|
},
|
|
on_attach = function(client, bufnr)
|
|
vim.keymap.set("n", "<localleader>fp", ":ElixirFromPipe<cr>", { buffer = true, noremap = true })
|
|
vim.keymap.set("n", "<localleader>tp", ":ElixirToPipe<cr>", { buffer = true, noremap = true })
|
|
vim.keymap.set("v", "<localleader>em", ":ElixirExpandMacro<cr>", { buffer = true, noremap = true })
|
|
end,
|
|
},
|
|
}
|
|
'';
|
|
plugins.actions-preview.enable = true;
|
|
|
|
plugins.lsp = {
|
|
enable = true;
|
|
inlayHints = true;
|
|
servers = {
|
|
rust_analyzer = {
|
|
enable = true;
|
|
installRustc = false;
|
|
installCargo = false;
|
|
settings.files.watcher = "server";
|
|
};
|
|
lexical.enable = true;
|
|
lua_ls.enable = true;
|
|
nil_ls.enable = true;
|
|
nixd.enable = true;
|
|
nixd.extraOptions.settings.nixd = {
|
|
nixpkgs = {
|
|
expr = "import <nixpkgs> { }";
|
|
};
|
|
options = {
|
|
nixos = {
|
|
expr = ''builtins.head (builtins.attrValues ((builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations).options'';
|
|
};
|
|
"flake-parts" = {
|
|
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options'';
|
|
};
|
|
"flake-parts2" = {
|
|
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).currentSystem.options'';
|
|
};
|
|
};
|
|
};
|
|
tinymist.enable = true;
|
|
};
|
|
keymaps = {
|
|
diagnostic = {
|
|
"]j" = "goto_next";
|
|
"[k" = "goto_prev";
|
|
};
|
|
lspBuf = {
|
|
K = "hover";
|
|
gD = "references";
|
|
gd = "definition";
|
|
gi = "implementation";
|
|
gt = "type_definition";
|
|
"<leader>r" = "rename";
|
|
};
|
|
extra = [
|
|
{
|
|
key = "<leader>q";
|
|
action.__raw = ''require("actions-preview").code_actions'';
|
|
options.desc = "Quick/code action";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|