mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
modules/dependencies: add nodejs
This commit is contained in:
parent
75f7ec4995
commit
81874690ce
4 changed files with 54 additions and 35 deletions
|
@ -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";
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue