Commit 168bd96a authored by Stephen M. Coakley's avatar Stephen M. Coakley Committed by GitHub

Merge pull request #495 from oh-my-fish/path-error-handling

Handle missing theme setting more gracefully
parents 6c5f3ba1 8aef0b2d
...@@ -8,7 +8,9 @@ test -f $OMF_CONFIG/before.init.fish ...@@ -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 ...@@ -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 \
......
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 ...@@ -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 ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment