diff --git a/share/functions/fish_config.fish b/share/functions/fish_config.fish index 434105c9f..745017baf 100644 --- a/share/functions/fish_config.fish +++ b/share/functions/fish_config.fish @@ -91,7 +91,7 @@ function fish_config --description "Launch fish's web based configuration" switch $cmd case show set -l fish (status fish-path) - set -l prompts (__fish_config_matching tools/web_config/sample_prompts .fish $argv) + set -l prompts (dirs=$prompt_dir __fish_config_matching tools/web_config/sample_prompts .fish $argv) for p in $prompts set -l promptname (string replace -r '.*/([^/]*).fish$' '$1' $p) echo -s (set_color --underline) $promptname (set_color normal) @@ -240,8 +240,7 @@ function fish_config --description "Launch fish's web based configuration" case show set -l fish (status fish-path) set -l themes \ - (path filter $dirs/$argv.theme) \ - (__fish_config_matching tools/web_config/themes .theme $argv) + (dirs=$dirs __fish_config_matching tools/web_config/themes .theme $argv) set -l used_themes echo -s (set_color normal; set_color --underline) Current (set_color normal) @@ -384,17 +383,16 @@ function __fish_config_matching set -l suffix $argv[2] set -e argv[1..2] set -l paths - if set -q __fish_data_dir[1] - if not set -q argv[1] - set paths $__fish_data_dir/$prefix/*$suffix - else - set paths (path filter $__fish_data_dir/$prefix/$argv$suffix) - end + if not set -q argv[1] + set paths $dirs/*$suffix else + set paths (path filter $dirs/$argv$suffix) + end + if not set -q __fish_data_dir[1] if not set -q argv[1] - set paths (status list-files $prefix) + set -a paths (status list-files $prefix) else - set paths (status list-files $prefix | grep -Fx -e"$prefix/"$argv$suffix) + set -a paths (status list-files $prefix | grep -Fx -e"$prefix/"$argv$suffix) end end string join \n $paths diff --git a/tests/checks/fish_config.fish b/tests/checks/fish_config.fish index 16b28a88c..9e3155942 100644 --- a/tests/checks/fish_config.fish +++ b/tests/checks/fish_config.fish @@ -23,6 +23,19 @@ fish_config theme show "fish default" # CHECK: {{\x1b\[m}}{{\x1b\[m}}echo{{\x1b\[m}} {{\x1b\[91m}}'{{\x1b\[33m}}Errors are the portal to discovery # CHECK: {{\x1b\[m}}{{\x1b\[m}}Th{{\x1b\[m}}{{\x1b\[90m}}is an autosuggestion -fish_config theme show | grep -E 'fish default|Default Dark' +mkdir $__fish_config_dir/themes +touch $__fish_config_dir/themes/custom-from-userconf.theme +fish_config theme show | grep -E 'fish default|Default Dark|custom-from-userconf' +# CHECK: {{\x1b\[m}}{{\x1b\[4m}}custom-from-userconf{{\x1b\[m}} # CHECK: {{\x1b\[m}}{{\x1b\[4m}}Base16 Default Dark{{\x1b\[m}} # CHECK: {{\x1b\[m}}{{\x1b\[4m}}fish default{{\x1b\[m}} + +# Override a default theme with different colors. +status get-file tools/web_config/themes/None.theme \ + >$__fish_config_dir/themes/"fish default.theme" +fish_config theme show | grep -E 'fish default|Base16 Default Dark' -A1 +# CHECK: {{\x1b\[m}}{{\x1b\[4m}}fish default{{\x1b\[m}} +# CHECK: {{\x1b\[m}}/bright/vixens{{\x1b\[m}} {{\x1b\[m}}jump{{\x1b\[m}}{{.*}} +# CHECK: -- +# CHECK: {{\x1b\[m}}{{\x1b\[4m}}Base16 Default Dark{{\x1b\[m}} +# CHECK: {{.*}}/bright/vixens{{.*}}