mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
plugins/lsp/servers: use lib.mkPackageOption
This commit is contained in:
parent
0b86bf519b
commit
9c11b54065
2 changed files with 113 additions and 78 deletions
|
@ -4,24 +4,24 @@
|
||||||
#
|
#
|
||||||
# Helper function that returns the Nix module `plugins.lsp.servers.<name>`.
|
# Helper function that returns the Nix module `plugins.lsp.servers.<name>`.
|
||||||
#
|
#
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
name,
|
name,
|
||||||
description ? "Enable ${name}.",
|
description ? "Enable ${name}.",
|
||||||
serverName ? name,
|
serverName ? name,
|
||||||
package ? pkgs.${name},
|
package ? name,
|
||||||
url ? package.meta.homepage or null,
|
url ? null,
|
||||||
cmd ? (cfg: null),
|
cmd ? (cfg: null),
|
||||||
settings ? (cfg: cfg),
|
settings ? (cfg: cfg),
|
||||||
settingsOptions ? { },
|
settingsOptions ? { },
|
||||||
extraConfig ? cfg: { },
|
extraConfig ? cfg: { },
|
||||||
extraOptions ? { },
|
extraOptions ? { },
|
||||||
...
|
...
|
||||||
}:
|
}@args:
|
||||||
# returns a module
|
# returns a module
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
|
options,
|
||||||
helpers,
|
helpers,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
|
@ -29,11 +29,12 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.plugins.lsp.servers.${name};
|
cfg = config.plugins.lsp.servers.${name};
|
||||||
|
opt = options.plugins.lsp.servers.${name};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
meta.nixvimInfo = {
|
meta.nixvimInfo = {
|
||||||
# TODO: description
|
# TODO: description
|
||||||
inherit url;
|
url = args.url or opt.package.default.meta.homepage or null;
|
||||||
path = [
|
path = [
|
||||||
"plugins"
|
"plugins"
|
||||||
"lsp"
|
"lsp"
|
||||||
|
@ -46,11 +47,14 @@ in
|
||||||
plugins.lsp.servers.${name} = {
|
plugins.lsp.servers.${name} = {
|
||||||
enable = mkEnableOption description;
|
enable = mkEnableOption description;
|
||||||
|
|
||||||
package = mkOption {
|
package =
|
||||||
default = package;
|
if lib.isOption package then
|
||||||
type = types.nullOr types.package;
|
package
|
||||||
description = "Which package to use for ${name}.";
|
else
|
||||||
};
|
lib.mkPackageOption pkgs name {
|
||||||
|
nullable = true;
|
||||||
|
default = package;
|
||||||
|
};
|
||||||
|
|
||||||
cmd = mkOption {
|
cmd = mkOption {
|
||||||
type = with types; nullOr (listOf str);
|
type = with types; nullOr (listOf str);
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
helpers,
|
helpers,
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -11,7 +10,7 @@ let
|
||||||
{
|
{
|
||||||
name = "ansiblels";
|
name = "ansiblels";
|
||||||
description = "ansiblels for Ansible";
|
description = "ansiblels for Ansible";
|
||||||
package = pkgs.ansible-language-server;
|
package = "ansible-language-server";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/ansible-language-server"
|
"${cfg.package}/bin/ansible-language-server"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -28,7 +27,7 @@ let
|
||||||
{
|
{
|
||||||
name = "astro";
|
name = "astro";
|
||||||
description = "astrols for Astro";
|
description = "astrols for Astro";
|
||||||
package = pkgs.astro-language-server;
|
package = "astro-language-server";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/astro-ls"
|
"${cfg.package}/bin/astro-ls"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -37,12 +36,12 @@ let
|
||||||
{
|
{
|
||||||
name = "bashls";
|
name = "bashls";
|
||||||
description = "bashls for bash";
|
description = "bashls for bash";
|
||||||
package = pkgs.bash-language-server;
|
package = "bash-language-server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "beancount";
|
name = "beancount";
|
||||||
description = "beancount-language-server";
|
description = "beancount-language-server";
|
||||||
package = pkgs.beancount-language-server;
|
package = "beancount-language-server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "biome";
|
name = "biome";
|
||||||
|
@ -51,7 +50,7 @@ let
|
||||||
{
|
{
|
||||||
name = "bufls";
|
name = "bufls";
|
||||||
description = "Prototype for a Protobuf language server compatible with Buf.";
|
description = "Prototype for a Protobuf language server compatible with Buf.";
|
||||||
package = pkgs.buf-language-server;
|
package = "buf-language-server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "ccls";
|
name = "ccls";
|
||||||
|
@ -60,29 +59,27 @@ let
|
||||||
{
|
{
|
||||||
name = "clangd";
|
name = "clangd";
|
||||||
description = "clangd LSP for C/C++";
|
description = "clangd LSP for C/C++";
|
||||||
package = pkgs.clang-tools;
|
package = "clang-tools";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "clojure-lsp";
|
name = "clojure-lsp";
|
||||||
description = "clojure-lsp for Clojure";
|
description = "clojure-lsp for Clojure";
|
||||||
serverName = "clojure_lsp";
|
serverName = "clojure_lsp";
|
||||||
package = pkgs.clojure-lsp;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "cmake";
|
name = "cmake";
|
||||||
description = "cmake language server";
|
description = "cmake language server";
|
||||||
package = pkgs.cmake-language-server;
|
package = "cmake-language-server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "csharp-ls";
|
name = "csharp-ls";
|
||||||
description = "csharp-ls for C#";
|
description = "csharp-ls for C#";
|
||||||
package = pkgs.csharp-ls;
|
|
||||||
serverName = "csharp_ls";
|
serverName = "csharp_ls";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "cssls";
|
name = "cssls";
|
||||||
description = "cssls for CSS";
|
description = "cssls for CSS";
|
||||||
package = pkgs.vscode-langservers-extracted;
|
package = "vscode-langservers-extracted";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/vscode-css-language-server"
|
"${cfg.package}/bin/vscode-css-language-server"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -91,19 +88,19 @@ let
|
||||||
{
|
{
|
||||||
name = "dagger";
|
name = "dagger";
|
||||||
description = "dagger for Cuelang";
|
description = "dagger for Cuelang";
|
||||||
package = pkgs.cuelsp;
|
package = "cuelsp";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "dartls";
|
name = "dartls";
|
||||||
description = "dart language-server";
|
description = "dart language-server";
|
||||||
package = pkgs.dart;
|
package = "dart";
|
||||||
settingsOptions = import ./dartls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./dartls-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { dart = cfg; };
|
settings = cfg: { dart = cfg; };
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "denols";
|
name = "denols";
|
||||||
description = "denols for Deno";
|
description = "denols for Deno";
|
||||||
package = pkgs.deno;
|
package = "deno";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "dhall-lsp-server";
|
name = "dhall-lsp-server";
|
||||||
|
@ -114,7 +111,10 @@ let
|
||||||
name = "digestif";
|
name = "digestif";
|
||||||
description = "digestif for LaTeX";
|
description = "digestif for LaTeX";
|
||||||
# luaPackages.digestif is currently broken, using lua54Packages instead
|
# luaPackages.digestif is currently broken, using lua54Packages instead
|
||||||
package = pkgs.lua54Packages.digestif;
|
package = [
|
||||||
|
"lua54Packages"
|
||||||
|
"digestif"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "docker-compose-language-service";
|
name = "docker-compose-language-service";
|
||||||
|
@ -124,7 +124,7 @@ let
|
||||||
{
|
{
|
||||||
name = "dockerls";
|
name = "dockerls";
|
||||||
description = "dockerls for Dockerfile";
|
description = "dockerls for Dockerfile";
|
||||||
package = pkgs.dockerfile-language-server-nodejs;
|
package = "dockerfile-language-server-nodejs";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/docker-langserver"
|
"${cfg.package}/bin/docker-langserver"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -133,22 +133,24 @@ let
|
||||||
{
|
{
|
||||||
name = "efm";
|
name = "efm";
|
||||||
description = "efm-langserver for misc tools";
|
description = "efm-langserver for misc tools";
|
||||||
package = pkgs.efm-langserver;
|
package = "efm-langserver";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "elmls";
|
name = "elmls";
|
||||||
description = "elmls for Elm";
|
description = "elmls for Elm";
|
||||||
package = pkgs.elmPackages.elm-language-server;
|
package = [
|
||||||
|
"elmPackages"
|
||||||
|
"elm-language-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "emmet-ls";
|
name = "emmet-ls";
|
||||||
description = "emmet_ls, emmet support based on LSP";
|
description = "emmet_ls, emmet support based on LSP";
|
||||||
package = pkgs.emmet-ls;
|
|
||||||
serverName = "emmet_ls";
|
serverName = "emmet_ls";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "eslint";
|
name = "eslint";
|
||||||
package = pkgs.vscode-langservers-extracted;
|
package = "vscode-langservers-extracted";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/vscode-eslint-language-server"
|
"${cfg.package}/bin/vscode-eslint-language-server"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -156,7 +158,7 @@ let
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "elixirls";
|
name = "elixirls";
|
||||||
package = pkgs.elixir-ls;
|
package = "elixir-ls";
|
||||||
cmd = cfg: [ "${cfg.package}/bin/elixir-ls" ];
|
cmd = cfg: [ "${cfg.package}/bin/elixir-ls" ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -172,12 +174,11 @@ let
|
||||||
{
|
{
|
||||||
name = "fsautocomplete";
|
name = "fsautocomplete";
|
||||||
description = "fsautocomplete for F#";
|
description = "fsautocomplete for F#";
|
||||||
package = pkgs.fsautocomplete;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "futhark-lsp";
|
name = "futhark-lsp";
|
||||||
description = "futhark-lsp for Futhark";
|
description = "futhark-lsp for Futhark";
|
||||||
package = pkgs.futhark;
|
package = "futhark";
|
||||||
serverName = "futhark_lsp";
|
serverName = "futhark_lsp";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -197,12 +198,15 @@ let
|
||||||
name = "golangci-lint-ls";
|
name = "golangci-lint-ls";
|
||||||
description = "golangci-lint-ls for Go";
|
description = "golangci-lint-ls for Go";
|
||||||
serverName = "golangci_lint_ls";
|
serverName = "golangci_lint_ls";
|
||||||
package = pkgs.golangci-lint-langserver;
|
package = "golangci-lint-langserver";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "graphql";
|
name = "graphql";
|
||||||
description = "graphql for GraphQL";
|
description = "graphql for GraphQL";
|
||||||
package = pkgs.nodePackages.graphql-language-service-cli;
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"graphql-language-service-cli"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "helm-ls";
|
name = "helm-ls";
|
||||||
|
@ -212,7 +216,7 @@ let
|
||||||
{
|
{
|
||||||
name = "hls";
|
name = "hls";
|
||||||
description = "haskell language server";
|
description = "haskell language server";
|
||||||
package = pkgs.haskell-language-server;
|
package = "haskell-language-server";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"haskell-language-server-wrapper"
|
"haskell-language-server-wrapper"
|
||||||
"--lsp"
|
"--lsp"
|
||||||
|
@ -221,7 +225,7 @@ let
|
||||||
{
|
{
|
||||||
name = "html";
|
name = "html";
|
||||||
description = "HTML language server from `vscode-langservers-extracted`";
|
description = "HTML language server from `vscode-langservers-extracted`";
|
||||||
package = pkgs.vscode-langservers-extracted;
|
package = "vscode-langservers-extracted";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/vscode-html-language-server"
|
"${cfg.package}/bin/vscode-html-language-server"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -230,12 +234,15 @@ let
|
||||||
{
|
{
|
||||||
name = "htmx";
|
name = "htmx";
|
||||||
description = "htmx for HTMX";
|
description = "htmx for HTMX";
|
||||||
package = pkgs.htmx-lsp;
|
package = "htmx-lsp";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "intelephense";
|
name = "intelephense";
|
||||||
description = "intelephense for PHP";
|
description = "intelephense for PHP";
|
||||||
package = pkgs.nodePackages.intelephense;
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"intelephense"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "java-language-server";
|
name = "java-language-server";
|
||||||
|
@ -252,7 +259,7 @@ let
|
||||||
{
|
{
|
||||||
name = "jsonls";
|
name = "jsonls";
|
||||||
description = "jsonls for JSON";
|
description = "jsonls for JSON";
|
||||||
package = pkgs.vscode-langservers-extracted;
|
package = "vscode-langservers-extracted";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"${cfg.package}/bin/vscode-json-language-server"
|
"${cfg.package}/bin/vscode-json-language-server"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -262,7 +269,7 @@ let
|
||||||
{
|
{
|
||||||
name = "jsonnet-ls";
|
name = "jsonnet-ls";
|
||||||
description = "jsonnet language server";
|
description = "jsonnet language server";
|
||||||
package = pkgs.jsonnet-language-server;
|
package = "jsonnet-language-server";
|
||||||
serverName = "jsonnet_ls";
|
serverName = "jsonnet_ls";
|
||||||
settingsOptions = import ./jsonnet-ls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./jsonnet-ls-settings.nix { inherit lib helpers; };
|
||||||
}
|
}
|
||||||
|
@ -281,7 +288,7 @@ let
|
||||||
{
|
{
|
||||||
name = "leanls";
|
name = "leanls";
|
||||||
description = "leanls for Lean";
|
description = "leanls for Lean";
|
||||||
package = pkgs.lean4;
|
package = "lean4";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "lemminx";
|
name = "lemminx";
|
||||||
|
@ -294,14 +301,14 @@ let
|
||||||
{
|
{
|
||||||
name = "ltex";
|
name = "ltex";
|
||||||
description = "ltex-ls for LanguageTool";
|
description = "ltex-ls for LanguageTool";
|
||||||
package = pkgs.ltex-ls;
|
package = "ltex-ls";
|
||||||
settingsOptions = import ./ltex-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./ltex-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { ltex = cfg; };
|
settings = cfg: { ltex = cfg; };
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "lua-ls";
|
name = "lua-ls";
|
||||||
description = "lua-ls for Lua";
|
description = "lua-ls for Lua";
|
||||||
package = pkgs.lua-language-server;
|
package = "lua-language-server";
|
||||||
serverName = "lua_ls";
|
serverName = "lua_ls";
|
||||||
settingsOptions = import ./lua-ls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./lua-ls-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { Lua = cfg; };
|
settings = cfg: { Lua = cfg; };
|
||||||
|
@ -309,7 +316,6 @@ let
|
||||||
{
|
{
|
||||||
name = "marksman";
|
name = "marksman";
|
||||||
description = "marksman for Markdown";
|
description = "marksman for Markdown";
|
||||||
package = pkgs.marksman;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "metals";
|
name = "metals";
|
||||||
|
@ -318,7 +324,7 @@ let
|
||||||
{
|
{
|
||||||
name = "nextls";
|
name = "nextls";
|
||||||
description = "The language server for Elixir that just works.";
|
description = "The language server for Elixir that just works.";
|
||||||
package = pkgs.next-ls;
|
package = "next-ls";
|
||||||
cmd = cfg: [
|
cmd = cfg: [
|
||||||
"nextls"
|
"nextls"
|
||||||
"--stdio"
|
"--stdio"
|
||||||
|
@ -332,13 +338,13 @@ let
|
||||||
{
|
{
|
||||||
name = "nickel-ls";
|
name = "nickel-ls";
|
||||||
description = "nls for Nickel";
|
description = "nls for Nickel";
|
||||||
package = pkgs.nls;
|
package = "nls";
|
||||||
serverName = "nickel_ls";
|
serverName = "nickel_ls";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "nil-ls";
|
name = "nil-ls";
|
||||||
description = "nil for Nix";
|
description = "nil for Nix";
|
||||||
package = pkgs.nil;
|
package = "nil";
|
||||||
serverName = "nil_ls";
|
serverName = "nil_ls";
|
||||||
settingsOptions = import ./nil-ls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./nil-ls-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { nil = cfg; };
|
settings = cfg: { nil = cfg; };
|
||||||
|
@ -346,12 +352,11 @@ let
|
||||||
{
|
{
|
||||||
name = "nimls";
|
name = "nimls";
|
||||||
description = "nimls for Nim";
|
description = "nimls for Nim";
|
||||||
package = pkgs.nimlsp;
|
package = "nimlsp";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "nixd";
|
name = "nixd";
|
||||||
description = "nixd for Nix";
|
description = "nixd for Nix";
|
||||||
package = pkgs.nixd;
|
|
||||||
settings = cfg: { nixd = cfg; };
|
settings = cfg: { nixd = cfg; };
|
||||||
settingsOptions = import ./nixd-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./nixd-settings.nix { inherit lib helpers; };
|
||||||
extraConfig = cfg: {
|
extraConfig = cfg: {
|
||||||
|
@ -369,17 +374,19 @@ let
|
||||||
{
|
{
|
||||||
name = "ocamllsp";
|
name = "ocamllsp";
|
||||||
description = "ocamllsp for OCaml";
|
description = "ocamllsp for OCaml";
|
||||||
package = pkgs.ocamlPackages.ocaml-lsp;
|
package = [
|
||||||
|
"ocamlPackages"
|
||||||
|
"ocaml-lsp"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "ols";
|
name = "ols";
|
||||||
description = "ols for the Odin programming language";
|
description = "ols for the Odin programming language";
|
||||||
package = pkgs.ols;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "omnisharp";
|
name = "omnisharp";
|
||||||
description = "OmniSharp language server for C#";
|
description = "OmniSharp language server for C#";
|
||||||
package = pkgs.omnisharp-roslyn;
|
package = "omnisharp-roslyn";
|
||||||
cmd = cfg: [ "${cfg.package}/bin/OmniSharp" ];
|
cmd = cfg: [ "${cfg.package}/bin/OmniSharp" ];
|
||||||
settings = cfg: { omnisharp = cfg; };
|
settings = cfg: { omnisharp = cfg; };
|
||||||
settingsOptions = {
|
settingsOptions = {
|
||||||
|
@ -438,39 +445,51 @@ let
|
||||||
{
|
{
|
||||||
name = "perlpls";
|
name = "perlpls";
|
||||||
description = "PLS for Perl";
|
description = "PLS for Perl";
|
||||||
package = pkgs.perlPackages.PLS;
|
package = [
|
||||||
|
"perlPackages"
|
||||||
|
"PLS"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "pest-ls";
|
name = "pest-ls";
|
||||||
description = "pest_ls for pest";
|
description = "pest_ls for pest";
|
||||||
package = pkgs.pest-ide-tools;
|
package = "pest-ide-tools";
|
||||||
serverName = "pest_ls";
|
serverName = "pest_ls";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "phpactor";
|
name = "phpactor";
|
||||||
description = "phpactor for PHP";
|
description = "phpactor for PHP";
|
||||||
package = pkgs.phpactor;
|
package = "phpactor";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "prismals";
|
name = "prismals";
|
||||||
description = "prismals for Prisma";
|
description = "prismals for Prisma";
|
||||||
package = pkgs.nodePackages."@prisma/language-server";
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"@prisma/language-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "prolog-ls";
|
name = "prolog-ls";
|
||||||
description = "prolog_ls for SWI-Prolog";
|
description = "prolog_ls for SWI-Prolog";
|
||||||
serverName = "prolog_ls";
|
serverName = "prolog_ls";
|
||||||
package = pkgs.swiProlog;
|
package = "swiProlog";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "purescriptls";
|
name = "purescriptls";
|
||||||
description = "purescriptls for PureScript";
|
description = "purescriptls for PureScript";
|
||||||
package = pkgs.nodePackages.purescript-language-server;
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"purescript-language-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "pylsp";
|
name = "pylsp";
|
||||||
description = "pylsp for Python";
|
description = "pylsp for Python";
|
||||||
package = pkgs.python3Packages.python-lsp-server;
|
package = [
|
||||||
|
"python3Packages"
|
||||||
|
"python-lsp-server"
|
||||||
|
];
|
||||||
settings = cfg: { pylsp = cfg; };
|
settings = cfg: { pylsp = cfg; };
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -484,7 +503,10 @@ let
|
||||||
{
|
{
|
||||||
name = "r-language-server";
|
name = "r-language-server";
|
||||||
description = "languageserver for R";
|
description = "languageserver for R";
|
||||||
package = pkgs.rPackages.languageserver;
|
package = [
|
||||||
|
"rPackages"
|
||||||
|
"languageserver"
|
||||||
|
];
|
||||||
serverName = "r_language_server";
|
serverName = "r_language_server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -505,10 +527,6 @@ let
|
||||||
{
|
{
|
||||||
name = "ruff-lsp";
|
name = "ruff-lsp";
|
||||||
description = "ruff-lsp, for Python";
|
description = "ruff-lsp, for Python";
|
||||||
# TODO: Added 2024-08-19; remove 2024-11-19
|
|
||||||
# Ruff-lsp was moved out of python3Packages set without alias
|
|
||||||
# Using fallback as a transition period
|
|
||||||
package = pkgs.ruff-lsp or pkgs.python3Packages.ruff-lsp;
|
|
||||||
serverName = "ruff_lsp";
|
serverName = "ruff_lsp";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -527,12 +545,15 @@ let
|
||||||
{
|
{
|
||||||
name = "solargraph";
|
name = "solargraph";
|
||||||
description = "solargraph for Ruby";
|
description = "solargraph for Ruby";
|
||||||
package = pkgs.rubyPackages.solargraph;
|
package = [
|
||||||
|
"rubyPackages"
|
||||||
|
"solargraph"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "sourcekit";
|
name = "sourcekit";
|
||||||
description = "sourcekit language server for Swift and C/C++/Objective-C";
|
description = "sourcekit language server for Swift and C/C++/Objective-C";
|
||||||
package = pkgs.sourcekit-lsp;
|
package = "sourcekit-lsp";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "sqls";
|
name = "sqls";
|
||||||
|
@ -541,17 +562,22 @@ let
|
||||||
{
|
{
|
||||||
name = "svelte";
|
name = "svelte";
|
||||||
description = "svelte language server for Svelte";
|
description = "svelte language server for Svelte";
|
||||||
package = pkgs.nodePackages.svelte-language-server;
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"svelte-language-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "tailwindcss";
|
name = "tailwindcss";
|
||||||
description = "tailwindcss language server for tailwindcss";
|
description = "tailwindcss language server for tailwindcss";
|
||||||
package = pkgs.nodePackages."@tailwindcss/language-server";
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"@tailwindcss/language-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "taplo";
|
name = "taplo";
|
||||||
description = "taplo for TOML";
|
description = "taplo for TOML";
|
||||||
package = pkgs.taplo;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "templ";
|
name = "templ";
|
||||||
|
@ -560,7 +586,7 @@ let
|
||||||
{
|
{
|
||||||
name = "terraformls";
|
name = "terraformls";
|
||||||
description = "terraform-ls for terraform";
|
description = "terraform-ls for terraform";
|
||||||
package = pkgs.terraform-ls;
|
package = "terraform-ls";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "texlab";
|
name = "texlab";
|
||||||
|
@ -578,7 +604,7 @@ let
|
||||||
{
|
{
|
||||||
name = "tsserver";
|
name = "tsserver";
|
||||||
description = "tsserver for TypeScript";
|
description = "tsserver for TypeScript";
|
||||||
package = pkgs.typescript-language-server;
|
package = "typescript-language-server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "typos-lsp";
|
name = "typos-lsp";
|
||||||
|
@ -589,13 +615,12 @@ let
|
||||||
name = "typst-lsp";
|
name = "typst-lsp";
|
||||||
serverName = "typst_lsp";
|
serverName = "typst_lsp";
|
||||||
description = "typst-lsp for typst";
|
description = "typst-lsp for typst";
|
||||||
package = pkgs.typst-lsp;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "vala-ls";
|
name = "vala-ls";
|
||||||
description = "vala_ls for Vala";
|
description = "vala_ls for Vala";
|
||||||
serverName = "vala_ls";
|
serverName = "vala_ls";
|
||||||
package = pkgs.vala-language-server;
|
package = "vala-language-server";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "vhdl-ls";
|
name = "vhdl-ls";
|
||||||
|
@ -626,17 +651,23 @@ let
|
||||||
{
|
{
|
||||||
name = "vuels";
|
name = "vuels";
|
||||||
description = "vuels for Vue";
|
description = "vuels for Vue";
|
||||||
package = pkgs.nodePackages.vls;
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"vls"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "volar";
|
name = "volar";
|
||||||
description = "@volar/vue-language-server for Vue";
|
description = "@volar/vue-language-server for Vue";
|
||||||
package = pkgs.nodePackages."@volar/vue-language-server";
|
package = [
|
||||||
|
"nodePackages"
|
||||||
|
"@volar/vue-language-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "yamlls";
|
name = "yamlls";
|
||||||
description = "yamlls for YAML";
|
description = "yamlls for YAML";
|
||||||
package = pkgs.yaml-language-server;
|
package = "yaml-language-server";
|
||||||
settings = cfg: { yaml = cfg; };
|
settings = cfg: { yaml = cfg; };
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -648,7 +679,7 @@ in
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
let
|
let
|
||||||
mkLsp = import ./_mk-lsp.nix { inherit lib config pkgs; };
|
mkLsp = import ./_mk-lsp.nix;
|
||||||
lspModules = map mkLsp servers;
|
lspModules = map mkLsp servers;
|
||||||
in
|
in
|
||||||
lspModules
|
lspModules
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue