2023-09-08 15:11:10 +02:00
|
|
|
{
|
|
|
|
lib,
|
2023-11-06 15:04:08 +01:00
|
|
|
helpers,
|
2023-09-08 15:11:10 +02:00
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
2024-05-05 19:39:35 +02:00
|
|
|
with lib;
|
|
|
|
let
|
2023-09-08 15:11:10 +02:00
|
|
|
cfg = config.plugins.lsp.servers.nixd;
|
2024-05-05 19:39:35 +02:00
|
|
|
in
|
|
|
|
{
|
2023-09-08 15:11:10 +02:00
|
|
|
# Options: https://github.com/nix-community/nixd/blob/main/docs/user-guide.md#configuration
|
|
|
|
options.plugins.lsp.servers.nixd.settings = {
|
|
|
|
# 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.
|
|
|
|
Explicitly set to `"nixpkgs-fmt"` will automatically add `pkgs.nixpkgs-fmt` to the nixvim
|
|
|
|
environment.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
options = {
|
|
|
|
enable = helpers.defaultNullOpts.mkBool true ''
|
|
|
|
Enable option completion task.
|
2024-03-07 19:44:13 +01:00
|
|
|
If you are writing a package, disable this
|
2023-09-08 15:11:10 +02:00
|
|
|
'';
|
|
|
|
|
|
|
|
target = {
|
|
|
|
args = helpers.defaultNullOpts.mkNullable (with types; listOf str) "[]" ''
|
|
|
|
Accept args as "nix eval".
|
|
|
|
'';
|
|
|
|
|
|
|
|
installable = helpers.defaultNullOpts.mkStr "" ''
|
|
|
|
"nix eval"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
config = mkIf cfg.enable {
|
|
|
|
extraPackages = optional (cfg.settings.formatting.command == "nixpkgs-fmt") pkgs.nixpkgs-fmt;
|
|
|
|
};
|
2023-09-08 15:11:10 +02:00
|
|
|
}
|