1
0
Fork 0
mirror of https://github.com/nix-community/nixvim.git synced 2025-11-08 19:46:06 +01:00

plugins/efmls-configs: migrate to mkNeovimPlugin

This commit is contained in:
Gaetan Lepage 2025-10-24 11:12:13 +02:00 committed by Gaétan Lepage
parent 4a274251bf
commit fa8240195a

View file

@ -1,25 +1,39 @@
{ {
lib, lib,
helpers,
config, config,
pkgs, pkgs,
... ...
}: }:
lib.nixvim.plugins.mkNeovimPlugin {
name = "efmls-configs";
package = "efmls-configs-nvim";
description = "Premade configurations for efm-langserver.";
maintainers = [ ];
dependencies = [
"efm-langserver"
];
imports = [
# TODO: added 2025-10-23, remove after 26.05
(lib.nixvim.mkRemovedPackageOptionModule {
plugin = "efmls-configs";
oldPackageName = "efmLangServer";
packageName = "efm-langserver";
})
# Propagate setup warnings
{ inherit (config.plugins.efmls-configs.setup) warnings; }
];
hasSettings = false;
callSetup = false;
extraOptions =
let let
tools = lib.importJSON ../../../generated/efmls-configs-sources.json;
inherit (import ./packages.nix lib) packaged; inherit (import ./packages.nix lib) packaged;
tools = lib.importJSON ../../../generated/efmls-configs-sources.json;
in in
{ {
options.plugins.efmls-configs = {
enable = lib.mkEnableOption "efmls-configs, premade configurations for efm-langserver";
package = lib.mkPackageOption pkgs "efmls-configs-nvim" {
default = [
"vimPlugins"
"efmls-configs-nvim"
];
};
externallyManagedPackages = lib.mkOption { externallyManagedPackages = lib.mkOption {
type = with lib.types; either (enum [ "all" ]) (listOf str); type = with lib.types; either (enum [ "all" ]) (listOf str);
description = '' description = ''
@ -105,10 +119,10 @@ in
default = { }; default = { };
}; };
}; };
config =
let
cfg = config.plugins.efmls-configs;
extraConfig =
cfg:
let
# Tools that have been selected by the user # Tools that have been selected by the user
tools = lib.lists.unique ( tools = lib.lists.unique (
lib.filter lib.isString ( lib.filter lib.isString (
@ -152,7 +166,7 @@ in
mkToolValue = mkToolValue =
kind: opt: kind: opt:
map ( map (
tool: if lib.isString tool then helpers.mkRaw "require 'efmls-configs.${kind}.${tool}'" else tool tool: if lib.isString tool then lib.nixvim.mkRaw "require 'efmls-configs.${kind}.${tool}'" else tool
) (lib.toList opt); ) (lib.toList opt);
setupOptions = setupOptions =
@ -177,9 +191,7 @@ in
(mkToolValue "linters" cfg.setup.all.linter) ++ (mkToolValue "formatters" cfg.setup.all.formatter); (mkToolValue "linters" cfg.setup.all.linter) ++ (mkToolValue "formatters" cfg.setup.all.formatter);
}; };
in in
lib.mkIf cfg.enable { {
extraPlugins = [ cfg.package ];
# TODO: print the location of the offending options # TODO: print the location of the offending options
warnings = lib.nixvim.mkWarnings "plugins.efmls-configs" { warnings = lib.nixvim.mkWarnings "plugins.efmls-configs" {
when = nixvimPkgs.wrong != [ ]; when = nixvimPkgs.wrong != [ ];
@ -196,20 +208,5 @@ in
}; };
extraPackages = map (name: cfg.toolPackages.${name}) nixvimPkgs.right; extraPackages = map (name: cfg.toolPackages.${name}) nixvimPkgs.right;
dependencies.efm-langserver.enable = lib.mkDefault true;
}; };
imports = [
{
# Propagate setup warnings
inherit (config.plugins.efmls-configs.setup) warnings;
}
# TODO: added 2025-10-23, remove after 26.05
(lib.nixvim.mkRemovedPackageOptionModule {
plugin = "efmls-configs";
oldPackageName = "efmLangServer";
packageName = "efm-langserver";
})
];
} }