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";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
beautysh.url = "github:lovesegfault/beautysh";
|
||||
beautysh.inputs.nixpkgs.follows = "nixpkgs";
|
||||
beautysh = {
|
||||
url = "github:lovesegfault/beautysh";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
||||
pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
||||
pre-commit-hooks = {
|
||||
url = "github:cachix/pre-commit-hooks.nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
|
|
|
@ -309,6 +309,53 @@ with lib; let
|
|||
};
|
||||
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";
|
||||
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 = {
|
||||
plugins.lsp.enable = true;
|
||||
};
|
||||
|
@ -87,6 +87,10 @@
|
|||
lua-ls.enable = true;
|
||||
metals.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;
|
||||
pyright.enable = true;
|
||||
rnix-lsp.enable = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue