feat: migrating neovim
This commit is contained in:
parent
86266f8205
commit
8d5e0e6566
47 changed files with 1964 additions and 222 deletions
123
home-manager/modules/neovim/plugins/lsp.nix
Normal file
123
home-manager/modules/neovim/plugins/lsp.nix
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.nixvim = {
|
||||
extraConfigLuaPre =
|
||||
# lua
|
||||
''
|
||||
vim.fn.sign_define("DiagnosticSignError", { text = " ", texthl = "DiagnosticError", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DiagnosticSignWarn", { text = " ", texthl = "DiagnosticWarn", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DiagnosticSignHint", { text = " ", texthl = "DiagnosticHint", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("DiagnosticSignInfo", { text = " ", texthl = "DiagnosticInfo", linehl = "", numhl = "" })
|
||||
'';
|
||||
plugins = {
|
||||
lspkind.enable = true;
|
||||
lsp-lines.enable = true;
|
||||
lsp-format.enable = false; # conform-nvim does this
|
||||
lsp = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
silent = true;
|
||||
diagnostic = {
|
||||
# Navigate in diagnostics
|
||||
"<leader>lp" = "goto_prev";
|
||||
"<leader>ln" = "goto_next";
|
||||
};
|
||||
|
||||
extra = [
|
||||
{
|
||||
action.__raw =
|
||||
# lua
|
||||
''
|
||||
function()
|
||||
vim.lsp.buf.format({
|
||||
async = true,
|
||||
range = {
|
||||
["start"] = vim.api.nvim_buf_get_mark(0, "<"),
|
||||
["end"] = vim.api.nvim_buf_get_mark(0, ">"),
|
||||
}
|
||||
})
|
||||
end
|
||||
'';
|
||||
mode = "v";
|
||||
key = "<leader>lf";
|
||||
options = {
|
||||
desc = "Format selection";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
lspBuf = {
|
||||
"<leader>la" = "code_action";
|
||||
"<leader>ld" = "definition";
|
||||
"<leader>lf" = "format";
|
||||
"<leader>lD" = "references";
|
||||
"<leader>lt" = "type_definition";
|
||||
"<leader>li" = "implementation";
|
||||
"<leader>lh" = "hover";
|
||||
"<leader>lr" = "rename";
|
||||
};
|
||||
};
|
||||
servers = {
|
||||
nil-ls = {
|
||||
enable = true;
|
||||
filetypes = ["nix"];
|
||||
settings = {
|
||||
formatting = {
|
||||
command = ["${lib.getExe pkgs.nixfmt-rfc-style}"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
which-key.settings.spec = [
|
||||
{
|
||||
__unkeyed = "<leader>l";
|
||||
group = " LSP";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>la";
|
||||
desc = "Code Action";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>ld";
|
||||
desc = "Definition";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>lD";
|
||||
desc = "References";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>lf";
|
||||
desc = "Format";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>lp";
|
||||
desc = "Prev";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>ln";
|
||||
desc = "Next";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>lt";
|
||||
desc = "Type Definition";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>li";
|
||||
desc = "Implementation";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>lh";
|
||||
desc = "Hover";
|
||||
}
|
||||
{
|
||||
__unkeyed = "<leader>lr";
|
||||
desc = "Rename";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue