modules/dependencies: add nodejs

This commit is contained in:
Gaetan Lepage 2025-04-07 16:01:03 +02:00 committed by nix-infra-bot
parent 75f7ec4995
commit 81874690ce
4 changed files with 54 additions and 35 deletions

View file

@ -13,6 +13,10 @@ let
default = "git"; default = "git";
example = [ "gitMinimal" ]; example = [ "gitMinimal" ];
}; };
nodejs = {
default = "nodejs";
example = "pkgs.nodejs_22";
};
tree-sitter.default = "tree-sitter"; tree-sitter.default = "tree-sitter";
ueberzug.default = "ueberzugpp"; ueberzug.default = "ueberzugpp";
which.default = "which"; which.default = "which";

View file

@ -1,6 +1,5 @@
{ {
lib, lib,
pkgs,
... ...
}: }:
let let
@ -14,15 +13,17 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
extraOptions = { imports = [
nodePackage = lib.mkPackageOption pkgs "nodejs" { # TODO: added 2025-04-07, remove after 25.05
nullable = true; (lib.nixvim.mkRemovedPackageOptionModule {
default = null; plugin = "gitlab";
}; packageName = "nodejs";
}; oldPackageName = "node";
})
];
extraConfig = cfg: { extraConfig = {
extraPackages = [ cfg.nodePackage ]; dependencies.nodejs.enable = lib.mkDefault true;
}; };
settingsOptions = { settingsOptions = {

View file

@ -1,4 +1,8 @@
{ lib, pkgs, ... }: {
lib,
config,
...
}:
let let
inherit (lib) types; inherit (lib) types;
inherit (lib.nixvim) defaultNullOpts literalLua; inherit (lib.nixvim) defaultNullOpts literalLua;
@ -10,15 +14,20 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
extraOptions = { imports = [
nodePackage = lib.mkPackageOption pkgs "nodejs" { # TODO: added 2025-04-07, remove after 25.05
nullable = true; (lib.nixvim.mkRemovedPackageOptionModule {
default = null; plugin = "sg";
}; packageName = "nodejs";
}; oldPackageName = "node";
extraConfig = cfg: { })
plugins.sg.settings.node_executable = lib.mkIf (cfg.nodePackage != null) ( ];
lib.mkDefault (lib.getExe cfg.nodePackage)
extraConfig = {
dependencies.nodejs.enable = lib.mkDefault true;
plugins.sg.settings.node_executable = lib.mkIf config.dependencies.nodejs.enable (
lib.mkDefault (lib.getExe config.dependencies.nodejs.package)
); );
}; };

View file

@ -230,6 +230,10 @@ lib.nixvim.plugins.mkNeovimPlugin {
)) ))
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule {
plugin = "treesitter";
packageName = "nodejs";
})
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
plugin = "treesitter"; plugin = "treesitter";
packageName = "treesitter"; packageName = "treesitter";
@ -413,14 +417,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
example = false; example = false;
description = "Whether to enable Nixvim injections, e.g. highlighting `extraConfigLua` as lua."; description = "Whether to enable Nixvim injections, e.g. highlighting `extraConfigLua` as lua.";
}; };
nodejsPackage = lib.mkPackageOption pkgs "nodejs" {
nullable = true;
example = "pkgs.nodejs_22";
extraDescription = ''
This is required to build grammars if you are not using `nixGrammars`.
'';
};
}; };
# NOTE: We call setup manually below. # NOTE: We call setup manually below.
@ -455,17 +451,26 @@ lib.nixvim.plugins.mkNeovimPlugin {
extraPackages = [ extraPackages = [
cfg.gccPackage cfg.gccPackage
cfg.nodejsPackage
]; ];
dependencies.tree-sitter.enable = lib.mkIf (!cfg.nixGrammars) lib.mkDefault true; dependencies = lib.mkIf (!cfg.nixGrammars) {
warnings = lib.nixvim.mkWarnings "plugins.treesitter" { nodejs.enable = lib.mkDefault true;
when = !cfg.nixGrammars && (!config.dependencies.tree-sitter.enable); tree-sitter.enable = lib.mkDefault true;
message = ''
`tree-sitter` is required to build grammars as you are not using `nixGrammars`.
You may want to set `dependencies.tree-sitter.enable` to `true`.
'';
}; };
warnings = lib.nixvim.mkWarnings "plugins.treesitter" (
lib.map
(packageName: {
when = !cfg.nixGrammars && (!config.dependencies.${packageName}.enable);
message = ''
`${packageName}` is required to build grammars as you are not using `nixGrammars`.
You may want to set `dependencies.${packageName}.enable` to `true`.
'';
})
[
"nodejs"
"tree-sitter"
]
);
opts = mkIf cfg.folding { opts = mkIf cfg.folding {
foldmethod = mkDefault "expr"; foldmethod = mkDefault "expr";