mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2024-11-22 04:15:23 +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
|
||||
emit perf:timer:start "Oh My Fish initialisation"
|
||||
# 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
|
||||
set -l core_function_path $OMF_PATH/lib{,/git}
|
||||
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
|
||||
# Override key bindings, calling original if existent
|
||||
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
|
||||
set -l key_bindings $OMF_CONFIG/key_binding?.fish \
|
||||
{$OMF_CONFIG,$OMF_PATH}/pkg/*/key_bindings.fish \
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
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 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
|
||||
end
|
||||
|
||||
read -l current_theme < $OMF_CONFIG/theme
|
||||
test "$target_theme" = "$current_theme"; and return 0
|
||||
if test -f $OMF_CONFIG/theme
|
||||
read current_theme < $OMF_CONFIG/theme
|
||||
test "$target_theme" = "$current_theme"; and return 0
|
||||
end
|
||||
|
||||
set -l prompt_filename "fish_prompt.fish"
|
||||
set -l user_functions_path (omf.xdg.config_home)/fish/functions
|
||||
|
@ -20,7 +22,8 @@ function omf.theme.set -a target_theme
|
|||
end
|
||||
|
||||
# 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}
|
||||
autoload $theme_path
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user