nix-community.nixvim/plugins/null-ls/servers.nix

40 lines
949 B
Nix
Raw Normal View History

{ pkgs, config, lib, ... }@args:
let
helpers = import ./helpers.nix args;
serverData = {
code_actions = {
};
completion = {
};
diagnostics = {
};
formatting = {
alejandra = {
packages = [ pkgs.alejandra ];
};
nixfmt = {
packages = [ pkgs.nixfmt ];
};
prettier = {
packages = [ pkgs.nodePackages.prettier ];
};
flake8 = {
packages = [ pkgs.python3Packages.flake8 ];
};
};
};
# 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;
}