### # Helper functions ### function _test_dir set -l path $argv[1] set -l paths $argv[2] return (test -d $path; and not contains $path $paths) end function _fish_add_plugin set -l plugin $argv[1] set -l plugin_path "plugins/$plugin" if _test_dir $fish_path/$plugin_path $fish_function_path set fish_function_path $fish_path/$plugin_path $fish_function_path end if _test_dir $fish_custom/$plugin_path $fish_function_path set fish_function_path $fish_custom/$plugin_path $fish_function_path end end function _fish_add_completion set -l plugin $argv[1] set -l completion_path "plugins/$plugin/completions" if test -d $fish_path/$completion_path set fish_complete_path $fish_path/$completion_path $fish_complete_path end if test -d $fish_custom/$completion_path set fish_complete_path $fish_custom/$completion_path $fish_complete_path end end function _fish_source_plugin_load_file set -l plugin $argv[1] set -l load_file_path "plugins/$plugin/$plugin.load" if test -e $fish_path/$load_file_path . $fish_path/$load_file_path end if test -e $fish_custom/$load_file_path . $fish_custom/$load_file_path end end function _fish_load_theme if _test_dir $fish_path/themes/$fish_theme $fish_function_path set fish_function_path $fish_path/themes/$fish_theme $fish_function_path end if _test_dir $fish_custom/themes/$fish_theme $fish_function_path set fish_function_path $fish_custom/themes/$fish_theme $fish_function_path end end ### # Configuration ### # Set fish_custom to the path where your custom config files # and plugins exists, or else we will use the default custom. if not set -q fish_custom set -g fish_custom $fish_path/custom end # Extracting user's functions – will be added later. set user_function_path $fish_function_path[1] set -e fish_function_path[1] # Add all functions if not contains $fish_path/functions/ $fish_function_path set fish_function_path $fish_path/functions/ $fish_function_path end # Add all defined plugins for plugin in $fish_plugins _fish_add_plugin $plugin _fish_add_completion $plugin _fish_source_plugin_load_file $plugin end # Load user defined theme _fish_load_theme $fish_theme # Source all files inside custom folder for config_file in $fish_custom/*.load . $config_file end # Re-adding user's functions so they have the highest priority set fish_function_path $user_function_path $fish_function_path