Move the event handler for fish_color_cwd to init file, so it is not autounloaded. Also cache output of call to set_color command to improve performance a bit.

darcs-hash:20061118212147-ac50b-b0f44cca2acf7465dd9ff071aa35a3ac81f0615f.gz
This commit is contained in:
axel 2006-11-19 07:21:47 +10:00
parent 5d864e3f69
commit eb3c99c54e
2 changed files with 17 additions and 9 deletions

View File

@ -161,6 +161,17 @@ set_default CDPATH . ~
functions -e set_default
#
# This event handler makes sure the prompt is repainted when
# fish_color_cwd changes value. Like all event handlers, it can't be
# autoloaded.
#
function __fish_repaint --on-variable fish_color_cwd -d (N_ "Event handler, repaints the prompt when fish_color_cwd changes")
set -e __fish_prompt_cwd
commandline -f null
end
#
# A few minor convenience functions
#

View File

@ -2,24 +2,21 @@
# string has a newline before and after, so that fish will know how
# long it is.
# This event handler makes sure the prompt is repainted when fish_color_cwd changes value
function __fish_repaint --on-variable fish_color_cwd -d (N_ "Event handler, repaints the prompt when fish_color_cwd changes")
commandline -f null
end
function fish_prompt -d (N_ "Write out the prompt")
# Just calculate these once, to save a few cycles when displaying the prompt
if not set -q __fish_prompt_hostname
set -g __fish_prompt_hostname (hostname|cut -d . -f 1)
end
if not set -q __fish_prompt_normal
set -g __fish_prompt_normal (set_color normal)
end
set -l prompt_color (set_color $fish_color_cwd)
printf '%s@%s %s%s%s> \n' $USER $__fish_prompt_hostname "$prompt_color" (prompt_pwd) "$__fish_prompt_normal"
if not set -q __fish_prompt_cwd
set -g __fish_prompt_cwd (set_color $fish_color_cwd)
end
printf '%s@%s %s%s%s> \n' $USER $__fish_prompt_hostname "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal"
end