sheldon: add option to enable completion script

This commit is contained in:
Kyure_A 2024-07-30 20:35:53 +09:00
parent 718f450b97
commit b6bc02376e

View file

@ -25,6 +25,18 @@ in {
description = ""; description = "";
example = literalExpression ""; example = literalExpression "";
}; };
enableZshCompletions = mkEnableOption "Zsh completions" // {
default = false;
};
enableBashCompletions = mkEnableOption "Bash completions" // {
default = false;
};
enableFishCompletions = mkEnableOption "Fish completions" // {
default = false;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -36,10 +48,26 @@ in {
programs.bash.initExtra = mkIf (cfg.settings != { }) '' programs.bash.initExtra = mkIf (cfg.settings != { }) ''
eval "$(sheldon source)" eval "$(sheldon source)"
'' + mkIf cfg.enableBashCompletions ''
if [[ $TERM != "dumb" ]]; then
eval "$(${cmd} completions --shell=bash)"
fi
''; '';
programs.zsh.initExtra = mkIf (cfg.settings != { }) '' programs.zsh.initExtra = mkIf (cfg.settings != { }) ''
eval "$(sheldon source)" eval "$(sheldon source)"
'' + mkIf cfg.enableZshCompletions ''
if [[ $TERM != "dumb" ]]; then
eval "$(${cmd} completions --shell=zsh)"
fi
'';
programs.fish.interactiveShellInit = mkIf (cfg.settings != { }) ''
eval "$(sheldon source)"
'' + mkIf cfg.enableFishCompletions ''
if test "$TERM" != "dumb"
eval "$(${cmd} completions --shell=fish)"
end
''; '';
}; };
} }