oh-my-fish/oh-my-fish.fish

82 lines
2.0 KiB
Fish
Raw Normal View History

2012-07-29 03:36:36 +00:00
###
# Helper functions
###
function _test_dir
2013-11-20 08:06:31 +00:00
set -l path $argv[1]
set -l paths $argv[2]
2013-11-20 08:06:31 +00:00
return (test -d $path; and not contains $path $paths)
end
2012-07-29 03:36:36 +00:00
function _fish_add_plugin
set -l plugin $argv[1]
set -l plugin_path "plugins/$plugin"
2013-11-03 18:47:32 +00:00
_append_path $fish_path/$plugin_path fish_function_path
_append_path $fish_custom/$plugin_path fish_function_path
2012-07-29 03:36:36 +00:00
end
function _fish_add_completion
set -l plugin $argv[1]
set -l completion_path "plugins/$plugin/completions"
2013-11-03 18:47:32 +00:00
_append_path $fish_path/$completion_path fish_complete_path
_append_path $fish_custom/$completion_path fish_complete_path
2012-07-29 03:36:36 +00:00
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
2013-11-03 18:47:32 +00:00
_append_path $fish_path/themes/$fish_theme fish_function_path
_append_path $fish_custom/themes/$fish_theme fish_function_path
end
2012-07-29 03:36:36 +00:00
###
# 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]
2012-07-27 02:13:48 +00:00
# Add all functions
if not contains $fish_path/functions/ $fish_function_path
2013-11-20 08:06:31 +00:00
set fish_function_path $fish_path/functions/ $fish_function_path
end
2012-07-24 03:59:50 +00:00
2012-07-27 02:13:48 +00:00
# Add all defined plugins
for plugin in $fish_plugins
2012-07-29 03:36:36 +00:00
_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