nix-community.nixvim/plugins/null-ls/servers.nix
2022-12-19 02:18:15 +00:00

57 lines
1.4 KiB
Nix

{ pkgs, config, lib, inputs, ... }@args:
let
helpers = import ./helpers.nix args;
serverData = {
code_actions = { };
completion = { };
diagnostics = {
flake8 = {
packages = [ pkgs.python3Packages.flake8 ];
};
shellcheck = {
packages = [ pkgs.shellcheck ];
};
};
formatting = {
phpcbf = {
packages = [ pkgs.phpPackages.phpcbf ];
};
alejandra = {
packages = [ pkgs.alejandra ];
};
nixfmt = {
packages = [ pkgs.nixfmt ];
};
prettier = {
packages = [ pkgs.nodePackages.prettier ];
};
black = {
packages = [ pkgs.python3Packages.black ];
};
beautysh = {
packages = [ inputs.beautysh.packages.${pkgs.system}.beautysh-python38 ];
};
fourmolu = {
packages = [ pkgs.haskellPackages.fourmolu ];
};
fnlfmt = {
packages = [ pkgs.fnlfmt ];
};
};
};
# Format the servers to be an array of attrs like the following example
# [{
# name = "prettier";
# sourceType = "formatting";
# packages = [...];
# }]
serverDataFormatted = lib.mapAttrsToList
(sourceType: sourceSet:
lib.mapAttrsToList (name: attrs: attrs // { inherit sourceType name; }) sourceSet
)
serverData;
dataFlattened = lib.flatten serverDataFormatted;
in
{
imports = lib.lists.map (helpers.mkServer) dataFlattened;
}