mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-06 07:14:31 +02:00
efmls-configs: Use upstream tool definitions (#692)
This commit is contained in:
parent
9cf2c342a2
commit
6b93c8fa6d
4 changed files with 13 additions and 143 deletions
|
@ -1,5 +1,4 @@
|
||||||
pkgs: rec {
|
pkgs: {
|
||||||
efmls-configs-tools = pkgs.callPackage ./efmls-configs {};
|
|
||||||
autogenerated-configs = pkgs.callPackage ({stdenv}:
|
autogenerated-configs = pkgs.callPackage ({stdenv}:
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "autogenerated-configs";
|
pname = "autogenerated-configs";
|
||||||
|
@ -10,7 +9,6 @@ pkgs: rec {
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp ${efmls-configs-tools}/share/* $out
|
|
||||||
'';
|
'';
|
||||||
}) {};
|
}) {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
stdenv,
|
|
||||||
python3,
|
|
||||||
vimPlugins,
|
|
||||||
}: let
|
|
||||||
extract = stdenv.mkDerivation {
|
|
||||||
pname = "extract_efmls_tools";
|
|
||||||
version = "1";
|
|
||||||
|
|
||||||
src = ./extract.py;
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
buildInputs = [python3];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $src $out/bin/extract_efmls_tools.py
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "efmls-configs-tools";
|
|
||||||
inherit (vimPlugins.efmls-configs-nvim) version src;
|
|
||||||
|
|
||||||
nativeBuildInputs = [extract];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
extract_efmls_tools.py ./lua/efmls-configs > efmls-configs-tools.json
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share
|
|
||||||
cp efmls-configs-tools.json $out/share
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,91 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
import json
|
|
||||||
|
|
||||||
tool_path = sys.argv[1]
|
|
||||||
|
|
||||||
tools = {
|
|
||||||
"linters": {},
|
|
||||||
"formatters": {},
|
|
||||||
}
|
|
||||||
|
|
||||||
identity_langs = [
|
|
||||||
"bash",
|
|
||||||
"blade",
|
|
||||||
"c",
|
|
||||||
"clojure",
|
|
||||||
"cmake",
|
|
||||||
"crystal",
|
|
||||||
"csh",
|
|
||||||
"css",
|
|
||||||
"d",
|
|
||||||
"dart",
|
|
||||||
"fish",
|
|
||||||
"gitcommit",
|
|
||||||
"go",
|
|
||||||
"haskell",
|
|
||||||
"html",
|
|
||||||
"java",
|
|
||||||
"javascript",
|
|
||||||
"json",
|
|
||||||
"jsonc",
|
|
||||||
"ksh",
|
|
||||||
"less",
|
|
||||||
"lua",
|
|
||||||
"make",
|
|
||||||
"markdown",
|
|
||||||
"nix",
|
|
||||||
"pawn",
|
|
||||||
"php",
|
|
||||||
"proto",
|
|
||||||
"python",
|
|
||||||
"roslyn",
|
|
||||||
"ruby",
|
|
||||||
"rust",
|
|
||||||
"sass",
|
|
||||||
"scala",
|
|
||||||
"scss",
|
|
||||||
"sh",
|
|
||||||
"slim",
|
|
||||||
"sml",
|
|
||||||
"solidity",
|
|
||||||
"sql",
|
|
||||||
"tex",
|
|
||||||
"toml",
|
|
||||||
"typescript",
|
|
||||||
"vala",
|
|
||||||
"vim",
|
|
||||||
"yaml",
|
|
||||||
"zsh",
|
|
||||||
"misc",
|
|
||||||
]
|
|
||||||
|
|
||||||
lang_map = {
|
|
||||||
"c#": "cs",
|
|
||||||
"c++": "cpp",
|
|
||||||
"docker": "dockerfile",
|
|
||||||
"objective-c": "objc",
|
|
||||||
"objective-c++": "objcpp",
|
|
||||||
"terraform": "tf",
|
|
||||||
}
|
|
||||||
|
|
||||||
for lang in identity_langs:
|
|
||||||
lang_map[lang] = lang
|
|
||||||
|
|
||||||
for kind in ["linters", "formatters"]:
|
|
||||||
for file in os.listdir(tool_path + "/" + kind):
|
|
||||||
tool_name = file.removesuffix(".lua")
|
|
||||||
languages = []
|
|
||||||
with open(tool_path + "/" + kind + "/" + file) as f:
|
|
||||||
for line in f.readlines():
|
|
||||||
if line.startswith("-- languages:"):
|
|
||||||
languages = [
|
|
||||||
lang_map[l.strip()]
|
|
||||||
for l in line.split(":")[1].strip().split(",")
|
|
||||||
]
|
|
||||||
break
|
|
||||||
tools[kind][tool_name] = languages
|
|
||||||
|
|
||||||
print(json.dumps(tools, indent=4, sort_keys=True))
|
|
|
@ -6,13 +6,9 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
tools = trivial.importJSON ./efmls-configs-tools.json;
|
tools = trivial.importJSON "${pkgs.vimPlugins.efmls-configs-nvim.src}/doc/supported-list.json";
|
||||||
inherit (tools) linters formatters;
|
|
||||||
|
|
||||||
searchLanguages = tools: (lists.unique (builtins.concatLists (builtins.attrValues tools)));
|
languages = builtins.attrNames tools;
|
||||||
languages =
|
|
||||||
lists.filter
|
|
||||||
(v: v != "misc") (lists.unique ((searchLanguages linters) ++ (searchLanguages formatters)));
|
|
||||||
in {
|
in {
|
||||||
options.plugins.efmls-configs = {
|
options.plugins.efmls-configs = {
|
||||||
enable = mkEnableOption "efmls-configs, premade configurations for efm-langserver";
|
enable = mkEnableOption "efmls-configs, premade configurations for efm-langserver";
|
||||||
|
@ -33,11 +29,15 @@ in {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
setup = let
|
setup = let
|
||||||
languageTools = lang: tools:
|
languageTools = lang: kind:
|
||||||
builtins.attrNames (attrsets.filterAttrs (_: lists.any (e: e == lang)) tools);
|
builtins.map (v: v.name) (
|
||||||
|
if builtins.hasAttr kind tools.${lang}
|
||||||
|
then tools.${lang}.${kind}
|
||||||
|
else []
|
||||||
|
);
|
||||||
|
|
||||||
miscLinters = languageTools "misc" linters;
|
miscLinters = languageTools "misc" "linters";
|
||||||
miscFormatters = languageTools "misc" formatters;
|
miscFormatters = languageTools "misc" "formatters";
|
||||||
|
|
||||||
mkChooseOption = lang: kind: possible: let
|
mkChooseOption = lang: kind: possible: let
|
||||||
toolType = with types; either (enum possible) helpers.rawType;
|
toolType = with types; either (enum possible) helpers.rawType;
|
||||||
|
@ -58,8 +58,8 @@ in {
|
||||||
in {
|
in {
|
||||||
name = lang;
|
name = lang;
|
||||||
value = {
|
value = {
|
||||||
linter = mkChooseOption lang "linter" ((langTools linters) ++ miscLinters);
|
linter = mkChooseOption lang "linter" ((langTools "linters") ++ miscLinters);
|
||||||
formatter = mkChooseOption lang "formatter" ((langTools formatters) ++ miscFormatters);
|
formatter = mkChooseOption lang "formatter" ((langTools "formatters") ++ miscFormatters);
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
languages))
|
languages))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue