2024-07-05 18:45:37 +02:00
|
|
|
{
|
|
|
|
vimPlugins,
|
|
|
|
lib,
|
|
|
|
writeText,
|
|
|
|
pkgs,
|
|
|
|
}:
|
|
|
|
let
|
2024-07-11 22:52:53 +01:00
|
|
|
inherit (import ../../plugins/none-ls/packages.nix pkgs) packaged noPackage;
|
2024-07-05 18:45:37 +02:00
|
|
|
|
|
|
|
builtinSources = lib.trivial.importJSON "${vimPlugins.none-ls-nvim.src}/doc/builtins.json";
|
|
|
|
|
|
|
|
builtinSourceNames = lib.mapAttrs (_: lib.attrNames) builtinSources;
|
|
|
|
|
|
|
|
toolNames = lib.unique (lib.flatten (lib.attrValues builtinSourceNames));
|
|
|
|
|
|
|
|
undeclaredTool = lib.filter (
|
2024-07-11 22:52:53 +01:00
|
|
|
name: !(lib.hasAttr name packaged || lib.elem name noPackage)
|
2024-07-05 18:45:37 +02:00
|
|
|
) toolNames;
|
|
|
|
|
|
|
|
uselesslyDeclaredTool = lib.filter (name: !(lib.elem name toolNames)) (
|
2024-07-11 22:52:53 +01:00
|
|
|
noPackage ++ (lib.attrNames packaged)
|
2024-07-05 18:45:37 +02:00
|
|
|
);
|
|
|
|
in
|
|
|
|
writeText "efmls-configs-sources.nix" (
|
2024-07-05 21:53:05 +02:00
|
|
|
assert lib.assertMsg (lib.length undeclaredTool == 0)
|
|
|
|
"Undeclared tools: ${lib.generators.toPretty { } undeclaredTool}";
|
|
|
|
assert lib.assertMsg (lib.length uselesslyDeclaredTool == 0)
|
|
|
|
"Tool is not supported upstream: ${lib.generators.toPretty { } uselesslyDeclaredTool}";
|
2024-07-05 18:45:37 +02:00
|
|
|
"# WARNING: DO NOT EDIT\n"
|
|
|
|
+ "# This file is generated with packages.<system>.none-ls-builtins, which is run automatically by CI\n"
|
|
|
|
+ (lib.generators.toPretty { } builtinSourceNames)
|
|
|
|
)
|