helix: assert languages migration warning

This commit is contained in:
Austin Horstman
2026-06-01 12:41:11 -05:00
parent 9a638c1442
commit c81a3d2383
3 changed files with 80 additions and 11 deletions

View File

@@ -1,4 +1,5 @@
{
helix-example-settings = ./example-settings.nix;
helix-legacy-languages = ./legacy-languages.nix;
helix-only-extraconfig = ./only-extraconfig.nix;
}

View File

@@ -0,0 +1,57 @@
{
config,
pkgs,
...
}:
{
# Exercise merging legacy list definitions with new attrset definitions.
imports = [
{
programs.helix.languages.language-server.nil = {
command = "nil";
};
}
];
programs.helix = {
enable = true;
package = config.lib.test.mkStubPackage { outPath = "@helix@"; };
languages = [
{
name = "rust";
auto-format = false;
}
];
};
test.asserts.warnings.expected = [
''
Using `programs.helix.languages` as a list is deprecated and will be
removed in a future release. Please use `programs.helix.languages.language` instead.
This option now generates the whole languages.toml file instead of just the language array in that file.
Use:
programs.helix.languages = { language = <languages list>; }
''
];
nmt.script =
let
expectedLanguages = pkgs.writeText "helix-languages.expected.toml" ''
[[language]]
auto-format = false
name = "rust"
[language-server.nil]
command = "nil"
'';
in
''
assertFileContent \
home-files/.config/helix/languages.toml \
${expectedLanguages}
'';
}