mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
plugins/lsp: add nixd language server
This commit is contained in:
parent
da04916de2
commit
885a746073
4 changed files with 95 additions and 5 deletions
12
flake.nix
12
flake.nix
|
@ -5,11 +5,15 @@
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
beautysh.url = "github:lovesegfault/beautysh";
|
beautysh = {
|
||||||
beautysh.inputs.nixpkgs.follows = "nixpkgs";
|
url = "github:lovesegfault/beautysh";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
pre-commit-hooks = {
|
||||||
pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
url = "github:cachix/pre-commit-hooks.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
|
@ -309,6 +309,53 @@ with lib; let
|
||||||
};
|
};
|
||||||
settings = cfg: {nil = {inherit (cfg) formatting diagnostics;};};
|
settings = cfg: {nil = {inherit (cfg) formatting diagnostics;};};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "nixd";
|
||||||
|
description = "Enable nixd, for Nix";
|
||||||
|
package = pkgs.nixd;
|
||||||
|
settings = cfg: {nixd = cfg;};
|
||||||
|
settingsOptions = {
|
||||||
|
# The evaluation section, provide auto completion for dynamic bindings.
|
||||||
|
eval = {
|
||||||
|
target = {
|
||||||
|
args = helpers.defaultNullOpts.mkNullable (with types; listOf str) "[]" ''
|
||||||
|
Accept args as "nix eval".
|
||||||
|
'';
|
||||||
|
|
||||||
|
installable = helpers.defaultNullOpts.mkStr "" ''
|
||||||
|
"nix eval"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
depth = helpers.defaultNullOpts.mkInt 0 "Extra depth for evaluation";
|
||||||
|
|
||||||
|
workers = helpers.defaultNullOpts.mkInt 3 "The number of workers for evaluation task.";
|
||||||
|
};
|
||||||
|
|
||||||
|
formatting = {
|
||||||
|
command = helpers.defaultNullOpts.mkStr "nixpkgs-fmt" ''
|
||||||
|
Which command you would like to do formatting
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
options = {
|
||||||
|
enable = helpers.defaultNullOpts.mkBool true ''
|
||||||
|
Enable option completion task.
|
||||||
|
If you are writting a package, disable this
|
||||||
|
'';
|
||||||
|
|
||||||
|
target = {
|
||||||
|
args = helpers.defaultNullOpts.mkNullable (with types; listOf str) "[]" ''
|
||||||
|
Accept args as "nix eval".
|
||||||
|
'';
|
||||||
|
|
||||||
|
installable = helpers.defaultNullOpts.mkStr "" ''
|
||||||
|
"nix eval"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "pylsp";
|
name = "pylsp";
|
||||||
description = "Enable pylsp, for Python.";
|
description = "Enable pylsp, for Python.";
|
||||||
|
|
35
tests/test-sources/plugins/lsp/nixd.nix
Normal file
35
tests/test-sources/plugins/lsp/nixd.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{pkgs}: {
|
||||||
|
example = {
|
||||||
|
plugins.lsp = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
servers.nixd = {
|
||||||
|
# TODO nixd is currently broken on Darwin
|
||||||
|
# https://github.com/nix-community/nixd/issues/107
|
||||||
|
# Thus, this test is currently disabled.
|
||||||
|
enable = !pkgs.stdenv.isDarwin;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
eval = {
|
||||||
|
target = {
|
||||||
|
args = ["foo" "bar"];
|
||||||
|
installable = "";
|
||||||
|
};
|
||||||
|
depth = 0;
|
||||||
|
workers = 3;
|
||||||
|
};
|
||||||
|
formatting = {
|
||||||
|
command = "nixpkgs-fmt";
|
||||||
|
};
|
||||||
|
options = {
|
||||||
|
enable = true;
|
||||||
|
target = {
|
||||||
|
args = ["yes" "no" "maybe"];
|
||||||
|
installable = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{pkgs}: {
|
||||||
empty = {
|
empty = {
|
||||||
plugins.lsp.enable = true;
|
plugins.lsp.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -87,6 +87,10 @@
|
||||||
lua-ls.enable = true;
|
lua-ls.enable = true;
|
||||||
metals.enable = true;
|
metals.enable = true;
|
||||||
nil_ls.enable = true;
|
nil_ls.enable = true;
|
||||||
|
# TODO nixd is currently broken on Darwin
|
||||||
|
# https://github.com/nix-community/nixd/issues/107
|
||||||
|
# Thus, this test is currently disabled.
|
||||||
|
nixd.enable = !pkgs.stdenv.isDarwin;
|
||||||
pylsp.enable = true;
|
pylsp.enable = true;
|
||||||
pyright.enable = true;
|
pyright.enable = true;
|
||||||
rnix-lsp.enable = true;
|
rnix-lsp.enable = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue