From b6bc02376efa269df496d1a8ec320abcbbd175d9 Mon Sep 17 00:00:00 2001 From: Kyure_A <49436968+Kyure-A@users.noreply.github.com> Date: Tue, 30 Jul 2024 20:35:53 +0900 Subject: [PATCH] sheldon: add option to enable completion script --- modules/programs/sheldon.nix | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/modules/programs/sheldon.nix b/modules/programs/sheldon.nix index 1d4c3a5b..c414256b 100644 --- a/modules/programs/sheldon.nix +++ b/modules/programs/sheldon.nix @@ -25,6 +25,18 @@ in { description = ""; example = literalExpression ""; }; + + enableZshCompletions = mkEnableOption "Zsh completions" // { + default = false; + }; + + enableBashCompletions = mkEnableOption "Bash completions" // { + default = false; + }; + + enableFishCompletions = mkEnableOption "Fish completions" // { + default = false; + }; }; config = mkIf cfg.enable { @@ -36,10 +48,26 @@ in { programs.bash.initExtra = mkIf (cfg.settings != { }) '' eval "$(sheldon source)" + '' + mkIf cfg.enableBashCompletions '' + if [[ $TERM != "dumb" ]]; then + eval "$(${cmd} completions --shell=bash)" + fi ''; programs.zsh.initExtra = mkIf (cfg.settings != { }) '' 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 ''; }; }