plugins/none-ls: use defaultText in package options

This commit is contained in:
Matt Sturgeon 2024-09-03 16:59:32 +01:00
parent a8a7e405f4
commit d2aad1071f
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 219 additions and 168 deletions

View file

@ -8,8 +8,9 @@ sourceType: sourceName:
... ...
}: }:
let let
inherit (import ./packages.nix pkgs) packaged; inherit (import ./packages.nix lib) packaged;
pkg = packaged.${sourceName}; pkg = packaged.${sourceName};
loc = lib.toList pkg;
cfg = config.plugins.none-ls; cfg = config.plugins.none-ls;
cfg' = config.plugins.none-ls.sources.${sourceType}.${sourceName}; cfg' = config.plugins.none-ls.sources.${sourceType}.${sourceName};
@ -55,7 +56,12 @@ in
'' ''
)); ));
} }
// lib.optionalAttrs (pkg != null) { default = pkg; } // lib.optionalAttrs (pkg != null) {
default =
lib.attrByPath loc (lib.warn "${lib.concatStringsSep "." loc} cannot be found in pkgs!" null)
pkgs;
defaultText = lib.literalExpression "pkgs.${lib.concatStringsSep "." loc}";
}
); );
}; };

View file

@ -1,4 +1,4 @@
pkgs: { lib: {
# builtin sources that don't require a package # builtin sources that don't require a package
noPackage = [ noPackage = [
"gitrebase" "gitrebase"
@ -19,172 +19,217 @@ pkgs: {
# nixpkgs packages for a given source # nixpkgs packages for a given source
packaged = packaged =
{ # Top-level packages
inherit (pkgs) lib.genAttrs [
actionlint "actionlint"
alejandra "alejandra"
asmfmt "asmfmt"
astyle "astyle"
bibclean "bibclean"
biome "biome"
buf "buf"
cbfmt "cbfmt"
checkmake "checkmake"
checkstyle "checkstyle"
clazy "clazy"
codespell "codespell"
commitlint "commitlint"
cppcheck "cppcheck"
csharpier "csharpier"
deadnix "deadnix"
dfmt "dfmt"
djhtml "djhtml"
djlint "djlint"
erlfmt "erlfmt"
fantomas "fantomas"
fish "fish"
fnlfmt "fnlfmt"
fprettify "fprettify"
gitlint "gitlint"
gofumpt "gofumpt"
golines "golines"
hadolint "hadolint"
hclfmt "hclfmt"
isort "isort"
joker "joker"
just "just"
ktlint "ktlint"
leptosfmt "leptosfmt"
mdformat "mdformat"
mdl "mdl"
mypy "mypy"
pmd "pmd"
prettierd "prettierd"
proselint "proselint"
protolint "protolint"
pylint "pylint"
revive "revive"
rstcheck "rstcheck"
rubocop "rubocop"
rubyfmt "rubyfmt"
rufo "rufo"
rustywind "rustywind"
scalafmt "scalafmt"
selene "selene"
semgrep "semgrep"
shellharden "shellharden"
shfmt "shfmt"
smlfmt "smlfmt"
sqlfluff "sqlfluff"
statix "statix"
stylelint "stylelint"
stylua "stylua"
tfsec "tfsec"
topiary "topiary"
trivy "trivy"
typstfmt "typstfmt"
typstyle "typstyle"
uncrustify "uncrustify"
usort "usort"
vale "vale"
verilator "verilator"
yamlfix "yamlfix"
yamlfmt "yamlfmt"
yamllint "yamllint"
yapf "yapf"
zprint "zprint"
zsh "zsh"
; ] lib.id
inherit (pkgs.nodePackages) alex prettier; # Scoped packages
inherit (pkgs.python3.pkgs) black; //
inherit (pkgs.phpPackages) phpmd phpstan; lib.concatMapAttrs
inherit (pkgs.rubyPackages) htmlbeautifier; (
inherit (pkgs.ocamlPackages) ocamlformat; scope: names:
ansiblelint = pkgs.ansible-lint; lib.genAttrs names (name: [
bean_check = pkgs.beancount; scope
bean_format = pkgs.beancount; name
blackd = pkgs.black; ])
buildifier = pkgs.bazel-buildtools; )
cfn_lint = pkgs.python3.pkgs.cfn-lint; {
clang_format = pkgs.clang-tools; nodePackages = [
clj_kondo = pkgs.clj-kondo; "alex"
cmake_format = pkgs.cmake-format; "prettier"
cmake_lint = pkgs.cmake-format; ];
credo = pkgs.elixir; phpPackages = [
crystal_format = pkgs.crystal; "phpmd"
cue_fmt = pkgs.cue; "phpstan"
d2_fmt = pkgs.d2; ];
dart_format = pkgs.dart; rubyPackages = [ "htmlbeautifier" ];
dictionary = pkgs.curl; ocamlPackages = [ "ocamlformat" ];
dotenv_linter = pkgs.dotenv-linter; }
dxfmt = pkgs.dioxus-cli; # Packages where the name is different
editorconfig_checker = pkgs.editorconfig-checker; // {
elm_format = pkgs.elmPackages.elm-format; ansiblelint = "ansible-lint";
emacs_scheme_mode = pkgs.emacs; bean_check = "beancount";
emacs_vhdl_mode = pkgs.emacs; bean_format = "beancount";
erb_format = pkgs.rubyPackages.erb-formatter; black = [
fish_indent = pkgs.fish; "python3"
format_r = pkgs.R; "pkgs"
# TODO: Added 2024-06-13; remove 2024-09-13 "black"
# Nixpkgs renamed to _3 & _4 without maintaining an alias ];
# Out of sync lock files could be using either attr name... blackd = "black";
gdformat = pkgs.gdtoolkit_4 or pkgs.gdtoolkit; buildifier = "bazel-buildtools";
gdlint = pkgs.gdtoolkit_4 or pkgs.gdtoolkit; cfn_lint = "python3.pkgs.cfn-lint";
gitsigns = pkgs.git; clang_format = "clang-tools";
gleam_format = pkgs.gleam; clj_kondo = "clj-kondo";
glslc = pkgs.shaderc; cmake_format = "cmake-format";
gn_format = pkgs.gn; cmake_lint = "cmake-format";
gofmt = pkgs.go; credo = "elixir";
goimports = pkgs.gotools; crystal_format = "crystal";
goimports_reviser = pkgs.goimports-reviser; cue_fmt = "cue";
golangci_lint = pkgs.golangci-lint; d2_fmt = "d2";
google_java_format = pkgs.google-java-format; dart_format = "dart";
haml_lint = pkgs.mastodon; dictionary = "curl";
haxe_formatter = pkgs.haxe; dotenv_linter = "dotenv-linter";
isortd = pkgs.isort; dxfmt = "dioxus-cli";
ltrs = pkgs.languagetool-rust; editorconfig_checker = "editorconfig-checker";
markdownlint_cli2 = pkgs.markdownlint-cli2; elm_format = [
markdownlint = pkgs.markdownlint-cli; "elmPackages"
mix = pkgs.elixir; "elm-format"
nimpretty = pkgs.nim; ];
nixfmt = pkgs.nixfmt-classic; emacs_scheme_mode = "emacs";
nixpkgs_fmt = pkgs.nixpkgs-fmt; emacs_vhdl_mode = "emacs";
opacheck = pkgs.open-policy-agent; erb_format = [
opentofu_fmt = pkgs.opentofu; "rubyPackages"
pg_format = pkgs.pgformatter; "erb-formatterpkgs"
phpcbf = pkgs.phpPackages.php-codesniffer; ];
phpcsfixer = pkgs.phpPackages.php-cs-fixer; fish_indent = "fish";
phpcs = pkgs.phpPackages.php-codesniffer; format_r = "R";
# TODO: Added 2024-08-31; remove 2024-11-31 # FIXME: Can't have transition fallbacks anymore
# prisma was moved out of nodePackages set without alias gdformat = "gdtoolkit_4";
# Using fallback as a transition period gdlint = "gdtoolkit_4";
prisma_format = pkgs.prisma or pkgs.nodePackages.prisma; gitsigns = "git";
ptop = pkgs.fpc; gleam_format = "gleam";
puppet_lint = pkgs.puppet-lint; glslc = "shaderc";
qmlformat = pkgs.qt6.qtdeclarative; gn_format = "gn";
qmllint = pkgs.qt6.qtdeclarative; gofmt = "go";
racket_fixw = pkgs.racket; goimports = "gotools";
raco_fmt = pkgs.racket; goimports_reviser = "goimports-reviser";
rego = pkgs.open-policy-agent; golangci_lint = "golangci-lint";
rpmspec = pkgs.rpm; google_java_format = "google-java-format";
sqlformat = pkgs.python3.pkgs.sqlparse; haml_lint = "mastodon";
staticcheck = pkgs.go-tools; haxe_formatter = "haxe";
surface = pkgs.elixir; isortd = "isort";
swift_format = pkgs.swift-format; ltrs = "languagetool-rust";
teal = pkgs.luaPackages.tl; markdownlint_cli2 = "markdownlint-cli2";
terraform_fmt = pkgs.terraform; markdownlint = "markdownlint-cli";
terraform_validate = pkgs.terraform; mix = "elixir";
terragrunt_fmt = pkgs.terragrunt; nimpretty = "nim";
terragrunt_validate = pkgs.terragrunt; nixfmt = "nixfmt-classic";
tidy = pkgs.html-tidy; nixpkgs_fmt = "nixpkgs-fmt";
treefmt = pkgs.treefmt2; opacheck = "open-policy-agent";
verible_verilog_format = pkgs.verible; opentofu_fmt = "opentofu";
vint = pkgs.vim-vint; pg_format = "pgformatter";
write_good = pkgs.write-good; phpcbf = [
xmllint = pkgs.libxml2; "phpPackages"
"php-codesnifferpkgs"
];
phpcsfixer = [
"phpPackages"
"php-cs-fixerpkgs"
];
phpcs = [
"phpPackages"
"php-codesnifferpkgs"
];
# FIXME: Can't have transition fallbacks anymore
prisma_format = "prisma";
ptop = "fpc";
puppet_lint = "puppet-lint";
qmlformat = [
"qt6"
"qtdeclarativepkgs"
];
qmllint = [
"qt6"
"qtdeclarativepkgs"
];
racket_fixw = "racket";
raco_fmt = "racket";
rego = "open-policy-agent";
rpmspec = "rpm";
sqlformat = [
"python3"
"pkgs"
"sqlparse"
];
staticcheck = "go-tools";
surface = "elixir";
swift_format = "swift-format";
teal = "luaPackages.tl";
terraform_fmt = "terraform";
terraform_validate = "terraform";
terragrunt_fmt = "terragrunt";
terragrunt_validate = "terragrunt";
tidy = "html-tidy";
treefmt = "treefmt2";
verible_verilog_format = "verible";
vint = "vim-vint";
write_good = "write-good";
xmllint = "libxml2";
} }
# builtin sources that are not packaged in nixpkgs # builtin sources that are not packaged in nixpkgs
// pkgs.lib.genAttrs [ // lib.genAttrs [
"blade_formatter" "blade_formatter"
"bsfmt" "bsfmt"
"bslint" "bslint"

View file

@ -37,7 +37,7 @@ let
declared = declared =
let let
inherit (import ../plugins/none-ls/packages.nix pkgs) noPackage packaged; inherit (import ../plugins/none-ls/packages.nix lib) noPackage packaged;
in in
noPackage ++ lib.attrsets.attrNames packaged; noPackage ++ lib.attrsets.attrNames packaged;