nixos/home/programs/nvim/plugins/lsp.nix

68 lines
1.7 KiB
Nix

{ pkgs, ... }: {
programs.nixvim.plugins = {
lsp-format.enable = true;
lsp = {
enable = true;
servers = {
bashls.enable = true;
clangd.enable = false;
gopls.enable = false;
nixd = {
enable = true;
extraOptions = { expr = "import <nixpkgs> {}"; };
};
tailwindcss.enable = true;
html.enable = true;
svelte.enable = false;
marksman.enable = true;
phpactor.enable = true;
# intelephense = {
# enable = true;
# package = pkgs.nodePackages.intelephense;
# settings = {
# init_options = {
# globalStoragePath = "~/.local/share/intelephense";
# };
# };
# };
dockerls.enable = true;
elmls.enable = true;
};
keymaps.lspBuf = {
"gd" = "definition";
"gD" = "references";
"gt" = "type_definition";
"gi" = "implementation";
"K" = "hover";
};
};
none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
# gofmt.enable = true;
# goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
# golines.enable = true;
# gofumpt.enable = true;
phpcsfixer.enable = true;
elm_format.enable = true;
blade_formatter = {
enable = true;
package = pkgs.blade-formatter;
};
};
};
};
ts-autotag = { enable = true; };
};
}