nix-community.nixvim/plugins/nvim-lsp/basic-servers.nix
2022-10-30 22:15:16 +01:00

80 lines
1.9 KiB
Nix

{ pkgs, config, lib, ... }@args:
let
helpers = import ./helpers.nix args;
servers = [
{
name = "clangd";
description = "Enable clangd LSP, for C/C++.";
package = pkgs.clang-tools;
}
{
name = "cssls";
description = "Enable cssls, for CSS";
package = pkgs.nodePackages.vscode-langservers-extracted;
}
{
name = "eslint";
description = "Enable eslint";
package = pkgs.nodePackages.vscode-langservers-extracted;
}
{
name = "elixirls";
description = "Enable elixirls";
package = null;
cmd = ["${pkgs.elixir_ls}/bin/elixir-ls"];
}
{
name = "gdscript";
description = "Enable gdscript, for Godot";
package = null;
}
{
name = "gopls";
description = "Enable gopls, for Go.";
}
{
name = "html";
description = "Enable html, for HTML";
package = pkgs.nodePackages.vscode-langservers-extracted;
}
{
name = "jsonls";
description = "Enable jsonls, for JSON";
package = pkgs.nodePackages.vscode-langservers-extracted;
}
{
name = "pyright";
description = "Enable pyright, for Python.";
}
{
name = "rnix-lsp";
description = "Enable rnix LSP, for Nix";
serverName = "rnix";
}
{
name = "rust-analyzer";
description = "Enable rust-analyzer, for Rust.";
serverName = "rust_analyzer";
}
{
name = "tsserver";
description = "Enable tsserver for typescript";
package = pkgs.nodePackages.typescript-language-server;
extraPackages = {
typescript = pkgs.nodePackages.typescript;
};
}
{
name = "vuels";
description = "Enable vuels, for Vue";
package = pkgs.nodePackages.vue-language-server;
}
{
name = "zls";
description = "Enable zls, for Zig.";
}
];
in
{
imports = lib.lists.map (helpers.mkLsp) servers;
}