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