44635279a0
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.
54 lines
1.3 KiB
Nix
54 lines
1.3 KiB
Nix
{ 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.src = pkgs.writeText "testtheme.tmTheme" ''
|
|
This is a test theme.
|
|
'';
|
|
|
|
syntaxes.testsyntax.src = pkgs.writeText "testsyntax.sublime-syntax" ''
|
|
This is a test syntax.
|
|
'';
|
|
};
|
|
|
|
test.stubs.bat = { };
|
|
|
|
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.
|
|
''
|
|
}
|
|
'';
|
|
};
|
|
}
|