mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-16 23:42:44 +08:00
Handle missing theme setting more gracefully
This commit is contained in:
parent
6c5f3ba17a
commit
8aef0b2d33
|
@ -8,7 +8,9 @@ test -f $OMF_CONFIG/before.init.fish
|
||||||
and source $OMF_CONFIG/before.init.fish ^/dev/null
|
and source $OMF_CONFIG/before.init.fish ^/dev/null
|
||||||
emit perf:timer:start "Oh My Fish initialisation"
|
emit perf:timer:start "Oh My Fish initialisation"
|
||||||
# Read current theme
|
# Read current theme
|
||||||
read -l theme < $OMF_CONFIG/theme
|
test -f $OMF_CONFIG/theme
|
||||||
|
and read -l theme < $OMF_CONFIG/theme
|
||||||
|
or set -l theme default
|
||||||
# Prepare Oh My Fish paths
|
# Prepare Oh My Fish paths
|
||||||
set -l core_function_path $OMF_PATH/lib{,/git}
|
set -l core_function_path $OMF_PATH/lib{,/git}
|
||||||
set -l theme_function_path {$OMF_CONFIG,$OMF_PATH}/themes*/$theme{,/functions}
|
set -l theme_function_path {$OMF_CONFIG,$OMF_PATH}/themes*/$theme{,/functions}
|
||||||
|
@ -27,7 +29,9 @@ functions -q fish_user_key_bindings
|
||||||
and functions -c fish_user_key_bindings __original_fish_user_key_bindings
|
and functions -c fish_user_key_bindings __original_fish_user_key_bindings
|
||||||
# Override key bindings, calling original if existent
|
# Override key bindings, calling original if existent
|
||||||
function fish_user_key_bindings
|
function fish_user_key_bindings
|
||||||
read -l theme < $OMF_CONFIG/theme
|
test -f $OMF_CONFIG/theme
|
||||||
|
and read -l theme < $OMF_CONFIG/theme
|
||||||
|
or set -l theme default
|
||||||
# Prepare packages key bindings paths
|
# Prepare packages key bindings paths
|
||||||
set -l key_bindings $OMF_CONFIG/key_binding?.fish \
|
set -l key_bindings $OMF_CONFIG/key_binding?.fish \
|
||||||
{$OMF_CONFIG,$OMF_PATH}/pkg/*/key_bindings.fish \
|
{$OMF_CONFIG,$OMF_PATH}/pkg/*/key_bindings.fish \
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
function omf.cli.themes.list
|
function omf.cli.themes.list
|
||||||
set -l theme (cat $OMF_CONFIG/theme)
|
test -f $OMF_CONFIG/theme
|
||||||
|
and read -l theme < $OMF_CONFIG/theme
|
||||||
|
or set -l theme default
|
||||||
|
|
||||||
set -l regex_current "(^|[[:space:]])($theme)([[:space:]]|\$)"
|
set -l regex_current "(^|[[:space:]])($theme)([[:space:]]|\$)"
|
||||||
set -l highlight_current s/"$regex_current"/"\1"(omf::em)"\2"(omf::off)"\3"/g
|
set -l highlight_current s/"$regex_current"/"\1"(omf::em)"\2"(omf::off)"\3"/g
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,10 @@ function omf.theme.set -a target_theme
|
||||||
return $OMF_INVALID_ARG
|
return $OMF_INVALID_ARG
|
||||||
end
|
end
|
||||||
|
|
||||||
read -l current_theme < $OMF_CONFIG/theme
|
if test -f $OMF_CONFIG/theme
|
||||||
test "$target_theme" = "$current_theme"; and return 0
|
read current_theme < $OMF_CONFIG/theme
|
||||||
|
test "$target_theme" = "$current_theme"; and return 0
|
||||||
|
end
|
||||||
|
|
||||||
set -l prompt_filename "fish_prompt.fish"
|
set -l prompt_filename "fish_prompt.fish"
|
||||||
set -l user_functions_path (omf.xdg.config_home)/fish/functions
|
set -l user_functions_path (omf.xdg.config_home)/fish/functions
|
||||||
|
@ -20,7 +22,8 @@ function omf.theme.set -a target_theme
|
||||||
end
|
end
|
||||||
|
|
||||||
# Replace autoload paths of current theme with the target one
|
# Replace autoload paths of current theme with the target one
|
||||||
autoload -e {$OMF_CONFIG,$OMF_PATH}/themes/$current_theme{,/functions}
|
set -q current_theme
|
||||||
|
and autoload -e {$OMF_CONFIG,$OMF_PATH}/themes/$current_theme{,/functions}
|
||||||
set -l theme_path {$OMF_CONFIG,$OMF_PATH}/themes*/$target_theme{,/functions}
|
set -l theme_path {$OMF_CONFIG,$OMF_PATH}/themes*/$target_theme{,/functions}
|
||||||
autoload $theme_path
|
autoload $theme_path
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user