bat: allow setting themes/syntaxes without IFD
The way the `bat` module is currently written makes it essentially impossible to use themes and syntaxes without IFD, since you must provide the contents as string, instead of just giving a path to be linked. With this change, setting themes/syntaxes by-string will start issuing warnings, and a new attribute model is added, lightly inspired by how `programs.zsh.plugins` avoided this issue.
This commit is contained in:
parent
68f7d8c0fb
commit
44635279a0
4 changed files with 164 additions and 36 deletions
|
|
@ -13,11 +13,11 @@ with lib;
|
|||
map-syntax = [ "*.jenkinsfile:Groovy" "*.props:Java Properties" ];
|
||||
};
|
||||
|
||||
themes.testtheme = ''
|
||||
themes.testtheme.src = pkgs.writeText "testtheme.tmTheme" ''
|
||||
This is a test theme.
|
||||
'';
|
||||
|
||||
syntaxes.testsyntax = ''
|
||||
syntaxes.testsyntax.src = pkgs.writeText "testsyntax.sublime-syntax" ''
|
||||
This is a test syntax.
|
||||
'';
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1 +1,4 @@
|
|||
{ bat = ./bat.nix; }
|
||||
{
|
||||
bat = ./bat.nix;
|
||||
bat-deprecated-options = ./deprecated-options.nix;
|
||||
}
|
||||
|
|
|
|||
67
tests/modules/programs/bat/deprecated-options.nix
Normal file
67
tests/modules/programs/bat/deprecated-options.nix
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
|
||||
config = {
|
||||
theme = "TwoDark";
|
||||
pager = "less -FR";
|
||||
map-syntax = [ "*.jenkinsfile:Groovy" "*.props:Java Properties" ];
|
||||
};
|
||||
|
||||
themes.testtheme = ''
|
||||
This is a test theme.
|
||||
'';
|
||||
|
||||
syntaxes.testsyntax = ''
|
||||
This is a test syntax.
|
||||
'';
|
||||
};
|
||||
|
||||
test.stubs.bat = { };
|
||||
|
||||
test.asserts.warnings.enable = true;
|
||||
test.asserts.warnings.expected = [
|
||||
''
|
||||
Using programs.bat.themes as a string option is deprecated and will be
|
||||
removed in the future. Please change to using it as an attribute set
|
||||
instead.
|
||||
''
|
||||
''
|
||||
Using programs.bat.syntaxes as a string option is deprecated and will be
|
||||
removed in the future. Please change to using it as an attribute set
|
||||
instead.
|
||||
''
|
||||
];
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/bat/config
|
||||
assertFileContent home-files/.config/bat/config ${
|
||||
pkgs.writeText "bat.expected" ''
|
||||
--map-syntax='*.jenkinsfile:Groovy'
|
||||
--map-syntax='*.props:Java Properties'
|
||||
--pager='less -FR'
|
||||
--theme='TwoDark'
|
||||
''
|
||||
}
|
||||
|
||||
assertFileExists home-files/.config/bat/themes/testtheme.tmTheme
|
||||
assertFileContent home-files/.config/bat/themes/testtheme.tmTheme ${
|
||||
pkgs.writeText "bat.expected" ''
|
||||
This is a test theme.
|
||||
''
|
||||
}
|
||||
|
||||
assertFileExists home-files/.config/bat/syntaxes/testsyntax.sublime-syntax
|
||||
assertFileContent home-files/.config/bat/syntaxes/testsyntax.sublime-syntax ${
|
||||
pkgs.writeText "bat.expected" ''
|
||||
This is a test syntax.
|
||||
''
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue