nix-community.nixvim/plugins/nvim-lsp/basic-servers.nix
2022-10-28 00:40:40 +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++.";
packages = [ pkgs.clang-tools ];
}
{
name = "cssls";
description = "Enable cssls, for CSS";
packages = [ pkgs.nodePackages.vscode-langservers-extracted ];
}
{
name = "eslint";
description = "Enable eslint";
packages = [ pkgs.nodePackages.vscode-langservers-extracted ];
}
{
name = "elixirls";
description = "Enable elixirls";
packages = [ ];
cmd = ["${pkgs.elixir_ls}/bin/elixir-ls"];
}
{
name = "gdscript";
description = "Enable gdscript, for Godot";
packages = [ ];
}
{
name = "gopls";
description = "Enable gopls, for Go.";
}
{
name = "html";
description = "Enable html, for HTML";
packages = [ pkgs.nodePackages.vscode-langservers-extracted ];
}
{
name = "jsonls";
description = "Enable jsonls, for JSON";
packages = [ 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";
packages = with pkgs; [
nodePackages.typescript
nodePackages.typescript-language-server
];
}
{
name = "vuels";
description = "Enable vuels, for Vue";
packages = [ pkgs.nodePackages.vue-language-server ];
}
{
name = "zls";
description = "Enable zls, for Zig.";
}
];
in
{
imports = lib.lists.map (helpers.mkLsp) servers;
}