2023-02-20 11:42:13 +01:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
2023-12-02 17:58:49 +01:00
|
|
|
}:
|
|
|
|
with lib; let
|
2023-11-06 15:04:08 +01:00
|
|
|
helpers = import ./helpers.nix;
|
2022-08-05 12:08:19 +00:00
|
|
|
serverData = {
|
2023-01-19 16:02:40 +00:00
|
|
|
code_actions = {
|
2023-07-03 14:08:20 -05:00
|
|
|
eslint = {
|
|
|
|
package = pkgs.nodePackages.eslint;
|
|
|
|
};
|
|
|
|
eslint_d = {
|
|
|
|
package = pkgs.nodePackages.eslint_d;
|
|
|
|
};
|
2023-02-20 11:42:13 +01:00
|
|
|
gitsigns = {};
|
2023-01-23 14:58:50 +01:00
|
|
|
shellcheck = {
|
|
|
|
package = pkgs.shellcheck;
|
|
|
|
};
|
2023-05-21 13:27:14 +05:30
|
|
|
statix = {
|
|
|
|
package = pkgs.statix;
|
|
|
|
};
|
2022-12-30 22:04:43 +01:00
|
|
|
};
|
2023-02-20 11:42:13 +01:00
|
|
|
completion = {};
|
2022-08-05 12:08:19 +00:00
|
|
|
diagnostics = {
|
2023-07-03 09:56:29 +02:00
|
|
|
alex = {
|
|
|
|
package = pkgs.nodePackages.alex;
|
2022-11-15 11:36:42 +00:00
|
|
|
};
|
2023-12-06 10:12:35 +07:00
|
|
|
ansiblelint = {
|
|
|
|
package = pkgs.ansible-lint;
|
|
|
|
};
|
2023-01-23 14:58:50 +01:00
|
|
|
cppcheck = {
|
|
|
|
package = pkgs.cppcheck;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
deadnix = {
|
|
|
|
package = pkgs.deadnix;
|
|
|
|
};
|
2023-07-03 14:08:20 -05:00
|
|
|
eslint = {
|
|
|
|
package = pkgs.nodePackages.eslint;
|
|
|
|
};
|
|
|
|
eslint_d = {
|
|
|
|
package = pkgs.nodePackages.eslint_d;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
flake8 = {
|
|
|
|
package = pkgs.python3Packages.flake8;
|
|
|
|
};
|
2023-01-23 14:58:50 +01:00
|
|
|
gitlint = {
|
|
|
|
package = pkgs.gitlint;
|
|
|
|
};
|
2023-11-21 13:43:19 +00:00
|
|
|
golangci_lint = {
|
|
|
|
package = pkgs.golangci-lint;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
hadolint = {
|
|
|
|
package = pkgs.hadolint;
|
|
|
|
};
|
2023-11-23 07:40:49 +00:00
|
|
|
ktlint = {
|
|
|
|
package = pkgs.ktlint;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
luacheck = {
|
|
|
|
package = pkgs.luaPackages.luacheck;
|
|
|
|
};
|
2023-12-06 10:34:59 +07:00
|
|
|
markdownlint = {
|
|
|
|
package = pkgs.nodePackages.markdownlint-cli;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
mypy = {
|
|
|
|
package = pkgs.mypy;
|
|
|
|
};
|
|
|
|
protolint = {
|
|
|
|
package = pkgs.protolint;
|
|
|
|
};
|
|
|
|
pylint = {
|
|
|
|
package = pkgs.pylint;
|
|
|
|
};
|
2023-12-23 23:35:59 +01:00
|
|
|
revive = {
|
|
|
|
pacakge = pkgs.revive;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
shellcheck = {
|
|
|
|
package = pkgs.shellcheck;
|
2023-05-21 13:27:14 +05:30
|
|
|
};
|
|
|
|
statix = {
|
|
|
|
package = pkgs.statix;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
vale = {
|
|
|
|
package = pkgs.vale;
|
|
|
|
};
|
|
|
|
vulture = {
|
|
|
|
package = pkgs.python3Packages.vulture;
|
|
|
|
};
|
2023-12-06 10:37:53 +07:00
|
|
|
write_good = {
|
|
|
|
package = pkgs.write-good;
|
|
|
|
};
|
2023-12-06 10:39:11 +07:00
|
|
|
yamllint = {
|
|
|
|
package = pkgs.yamllint;
|
|
|
|
};
|
2022-08-05 12:08:19 +00:00
|
|
|
};
|
|
|
|
formatting = {
|
2022-08-19 21:33:35 +02:00
|
|
|
alejandra = {
|
2023-01-19 10:45:15 +00:00
|
|
|
package = pkgs.alejandra;
|
2022-08-19 21:33:35 +02:00
|
|
|
};
|
2023-10-17 17:29:43 +08:00
|
|
|
beautysh = {
|
|
|
|
package = pkgs.beautysh;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
black = {
|
|
|
|
package = pkgs.python3Packages.black;
|
|
|
|
};
|
|
|
|
cbfmt = {
|
|
|
|
package = pkgs.cbfmt;
|
|
|
|
};
|
2023-07-03 14:08:20 -05:00
|
|
|
eslint = {
|
|
|
|
package = pkgs.nodePackages.eslint;
|
|
|
|
};
|
|
|
|
eslint_d = {
|
|
|
|
package = pkgs.nodePackages.eslint_d;
|
|
|
|
};
|
2023-10-28 10:50:09 +00:00
|
|
|
fantomas = {
|
|
|
|
package = pkgs.fantomas;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
fnlfmt = {
|
|
|
|
package = pkgs.fnlfmt;
|
|
|
|
};
|
|
|
|
fourmolu = {
|
|
|
|
package = pkgs.haskellPackages.fourmolu;
|
|
|
|
};
|
2023-10-18 19:58:27 +08:00
|
|
|
gofmt = {
|
|
|
|
package = pkgs.go;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
isort = {
|
|
|
|
package = pkgs.isort;
|
|
|
|
};
|
|
|
|
jq = {
|
|
|
|
package = pkgs.jq;
|
|
|
|
};
|
2023-11-23 07:40:49 +00:00
|
|
|
ktlint = {
|
|
|
|
package = pkgs.ktlint;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
markdownlint = {
|
|
|
|
package = pkgs.nodePackages.markdownlint-cli;
|
|
|
|
};
|
2022-08-19 21:33:35 +02:00
|
|
|
nixfmt = {
|
2023-01-19 10:45:15 +00:00
|
|
|
package = pkgs.nixfmt;
|
2022-08-19 21:33:35 +02:00
|
|
|
};
|
2023-05-21 13:27:14 +05:30
|
|
|
nixpkgs_fmt = {
|
|
|
|
package = pkgs.nixpkgs-fmt;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
phpcbf = {
|
|
|
|
package = pkgs.phpPackages.phpcbf;
|
|
|
|
};
|
2022-08-05 12:08:19 +00:00
|
|
|
prettier = {
|
2023-01-19 10:45:15 +00:00
|
|
|
package = pkgs.nodePackages.prettier;
|
2022-08-05 12:08:19 +00:00
|
|
|
};
|
2023-07-03 14:08:20 -05:00
|
|
|
prettier_d_slim = {
|
|
|
|
package = pkgs.nodePackages.prettier_d_slim;
|
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
protolint = {
|
|
|
|
package = pkgs.protolint;
|
2022-08-05 12:08:19 +00:00
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
rustfmt = {
|
|
|
|
package = pkgs.rustfmt;
|
2022-12-01 14:37:30 +00:00
|
|
|
};
|
2023-07-03 09:56:29 +02:00
|
|
|
shfmt = {
|
|
|
|
package = pkgs.shfmt;
|
|
|
|
};
|
|
|
|
sqlfluff = {
|
|
|
|
package = pkgs.sqlfluff;
|
2022-12-19 02:18:15 +00:00
|
|
|
};
|
2023-01-23 14:58:50 +01:00
|
|
|
stylua = {
|
|
|
|
package = pkgs.stylua;
|
|
|
|
};
|
|
|
|
taplo = {
|
|
|
|
package = pkgs.taplo;
|
|
|
|
};
|
2023-12-06 10:43:57 +07:00
|
|
|
trim_newlines = {};
|
|
|
|
trim_whitespace = {};
|
2022-08-05 12:08:19 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
# Format the servers to be an array of attrs like the following example
|
|
|
|
# [{
|
|
|
|
# name = "prettier";
|
|
|
|
# sourceType = "formatting";
|
|
|
|
# packages = [...];
|
|
|
|
# }]
|
2023-02-20 11:42:13 +01:00
|
|
|
serverDataFormatted =
|
2023-12-02 17:58:49 +01:00
|
|
|
mapAttrsToList
|
2023-02-20 11:42:13 +01:00
|
|
|
(
|
2023-12-02 17:58:49 +01:00
|
|
|
sourceType:
|
|
|
|
mapAttrsToList
|
|
|
|
(
|
|
|
|
name: attrs:
|
|
|
|
attrs
|
|
|
|
// {
|
|
|
|
inherit sourceType name;
|
|
|
|
}
|
|
|
|
)
|
2022-11-13 15:20:23 +00:00
|
|
|
)
|
|
|
|
serverData;
|
2023-12-02 17:58:49 +01:00
|
|
|
dataFlattened = flatten serverDataFormatted;
|
2023-02-20 11:42:13 +01:00
|
|
|
in {
|
2023-12-02 17:59:09 +01:00
|
|
|
imports =
|
|
|
|
(map helpers.mkServer dataFlattened)
|
|
|
|
++ [
|
|
|
|
./prettier.nix
|
|
|
|
];
|
2022-12-30 22:04:43 +01:00
|
|
|
|
2023-02-20 11:42:13 +01:00
|
|
|
config = let
|
2023-10-13 11:43:42 -06:00
|
|
|
cfg = config.plugins.none-ls;
|
2023-05-21 17:19:38 +02:00
|
|
|
gitsignsEnabled = cfg.sources.code_actions.gitsigns.enable;
|
2023-02-20 11:42:13 +01:00
|
|
|
in
|
2023-12-02 17:58:49 +01:00
|
|
|
mkIf cfg.enable {
|
|
|
|
plugins.gitsigns.enable = mkIf gitsignsEnabled true;
|
|
|
|
extraPackages = optional gitsignsEnabled pkgs.git;
|
2022-12-30 22:04:43 +01:00
|
|
|
};
|
2022-08-05 12:08:19 +00:00
|
|
|
}
|