2020-04-18 20:22:09 +02:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
let
|
|
|
|
pvScript = builtins.toFile "pv.sh" "cat $1";
|
|
|
|
expected = builtins.toFile "settings-expected" ''
|
|
|
|
set icons
|
|
|
|
set noignorecase
|
|
|
|
set ratios "2:2:3"
|
|
|
|
set tabstop 4
|
|
|
|
|
|
|
|
cmd added :echo "foo"
|
|
|
|
cmd multiline :{{
|
|
|
|
push gg
|
|
|
|
echo "bar"
|
|
|
|
push i
|
|
|
|
}}
|
|
|
|
cmd removed
|
|
|
|
|
|
|
|
map aa should-be-added
|
|
|
|
map ab
|
|
|
|
|
|
|
|
cmap <c-a> should-be-added
|
|
|
|
cmap <c-b>
|
|
|
|
|
|
|
|
set previewer ${pvScript}
|
|
|
|
map i ${"$"}${pvScript} "$f" | less -R
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# More config...
|
|
|
|
|
|
|
|
'';
|
|
|
|
in {
|
|
|
|
config = {
|
|
|
|
programs.lf = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
cmdKeybindings = {
|
|
|
|
"<c-a>" = "should-be-added";
|
|
|
|
"<c-b>" = null;
|
|
|
|
};
|
|
|
|
|
|
|
|
commands = {
|
|
|
|
added = '':echo "foo"'';
|
|
|
|
removed = null;
|
|
|
|
multiline = ''
|
|
|
|
:{{
|
|
|
|
push gg
|
|
|
|
echo "bar"
|
|
|
|
push i
|
|
|
|
}}'';
|
|
|
|
};
|
|
|
|
|
|
|
|
extraConfig = ''
|
|
|
|
# More config...
|
|
|
|
'';
|
|
|
|
|
|
|
|
keybindings = {
|
|
|
|
aa = "should-be-added";
|
|
|
|
ab = null;
|
|
|
|
};
|
|
|
|
|
|
|
|
previewer = {
|
|
|
|
keybinding = "i";
|
|
|
|
source = pvScript;
|
|
|
|
};
|
|
|
|
|
|
|
|
settings = {
|
|
|
|
ignorecase = false;
|
|
|
|
icons = true;
|
|
|
|
tabstop = 4;
|
|
|
|
ratios = "2:2:3";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-09-26 11:08:45 +02:00
|
|
|
test.stubs.lf = { };
|
2020-04-18 20:22:09 +02:00
|
|
|
|
|
|
|
nmt.script = ''
|
|
|
|
assertFileExists home-files/.config/lf/lfrc
|
|
|
|
assertFileContent home-files/.config/lf/lfrc ${expected}
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
}
|