aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/tools/web_config/sample_prompts/classic_git.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/tools/web_config/sample_prompts/classic_git.fish')
-rw-r--r--share/tools/web_config/sample_prompts/classic_git.fish96
1 files changed, 50 insertions, 46 deletions
diff --git a/share/tools/web_config/sample_prompts/classic_git.fish b/share/tools/web_config/sample_prompts/classic_git.fish
index 0d91f5fe..aa4527f7 100644
--- a/share/tools/web_config/sample_prompts/classic_git.fish
+++ b/share/tools/web_config/sample_prompts/classic_git.fish
@@ -1,91 +1,95 @@
# name: Classic + Git
# author: Kevin Ballard
+# vim: set noet:
function fish_prompt --description 'Write out the prompt'
-
set -l last_status $status
- # Just calculate these once, to save a few cycles when displaying the prompt
+ # Just calculate this 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 normal (set_color normal)
+
+ # Hack; fish_config only copies the fish_prompt function (see #736)
if not set -q -g __fish_classic_git_functions_defined
set -g __fish_classic_git_functions_defined
function __fish_repaint_user --on-variable fish_color_user --description "Event handler, repaint when fish_color_user changes"
if status --is-interactive
- set -e __fish_prompt_user
commandline -f repaint ^/dev/null
end
end
function __fish_repaint_host --on-variable fish_color_host --description "Event handler, repaint when fish_color_host changes"
if status --is-interactive
- set -e __fish_prompt_host
commandline -f repaint ^/dev/null
end
end
function __fish_repaint_status --on-variable fish_color_status --description "Event handler; repaint when fish_color_status changes"
if status --is-interactive
- set -e __fish_prompt_status
commandline -f repaint ^/dev/null
end
end
- end
-
- set -l delim '>'
- switch $USER
-
- case root
-
- if not set -q __fish_prompt_cwd
- if set -q fish_color_cwd_root
- set -g __fish_prompt_cwd (set_color $fish_color_cwd_root)
- else
- set -g __fish_prompt_cwd (set_color $fish_color_cwd)
+ function __fish_repaint_bind_mode --on-variable fish_key_bindings --description "Event handler; repaint when fish_key_bindings changes"
+ if status --is-interactive
+ commandline -f repaint ^/dev/null
end
end
- case '*'
-
- if not set -q __fish_prompt_cwd
- set -g __fish_prompt_cwd (set_color $fish_color_cwd)
+ # initialize our new variables
+ if not set -q __fish_classic_git_prompt_initialized
+ set -qU fish_color_user; or set -U fish_color_user -o green
+ set -qU fish_color_host; or set -U fish_color_host -o cyan
+ set -qU fish_color_status; or set -U fish_color_status red
+ set -U __fish_classic_git_prompt_initialized
end
+ end
+ set -l color_cwd
+ set -l prefix
+ switch $USER
+ case root toor
+ if set -q fish_color_cwd_root
+ set color_cwd $fish_color_cwd_root
+ else
+ set color_cwd $fish_color_cwd
+ end
+ set suffix '#'
+ case '*'
+ set color_cwd $fish_color_cwd
+ set suffix '>'
end
set -l prompt_status
if test $last_status -ne 0
- if not set -q __fish_prompt_status
- set -g __fish_prompt_status (set_color $fish_color_status)
- end
- set prompt_status "$__fish_prompt_status [$last_status]$__fish_prompt_normal"
+ set prompt_status ' ' (set_color $fish_color_status) "[$last_status]" "$normal"
end
- if not set -q __fish_prompt_user
- set -g __fish_prompt_user (set_color $fish_color_user)
- end
- if not set -q __fish_prompt_host
- set -g __fish_prompt_host (set_color $fish_color_host)
+ set -l mode_str
+ switch "$fish_key_bindings"
+ case '*_vi_*' '*_vi'
+ # possibly fish_vi_key_bindings, or custom key bindings
+ # that includes the name "vi"
+ set mode_str (
+ echo -n " "
+ switch $fish_bind_mode
+ case default
+ set_color --bold --background red white
+ echo -n "[N]"
+ case insert
+ set_color --bold green
+ echo -n "[I]"
+ case visual
+ set_color --bold magenta
+ echo -n "[V]"
+ end
+ set_color normal
+ )
end
- echo -n -s "$__fish_prompt_user" "$USER" "$__fish_prompt_normal" @ "$__fish_prompt_host" "$__fish_prompt_hostname" "$__fish_prompt_normal" ' ' "$__fish_prompt_cwd" (prompt_pwd) (__fish_git_prompt) "$__fish_prompt_normal" "$prompt_status" "$delim" ' '
-end
-
-
-# initialize our new variables
-# in theory this would be in a fish_prompt event, but this file isn't sourced
-# until the fish_prompt function is called anyway.
-if not set -q __prompt_initialized_2
- set -U fish_color_user -o green
- set -U fish_color_host -o cyan
- set -U fish_color_status red
- set -U __prompt_initialized_2
+ echo -n -s (set_color $fish_color_user) "$USER" $normal @ (set_color $fish_color_host) "$__fish_prompt_hostname" $normal ' ' (set_color $color_cwd) (prompt_pwd) (__fish_git_prompt) $normal $prompt_status "$mode_str" "> "
end