mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-22 11:22:52 +08:00
Rename __fish_hg_prompt -> fish_hg_prompt
This commit is contained in:
parent
c29023b3e8
commit
9c82979459
|
@ -1,99 +1,3 @@
|
||||||
# Adapted from __terlar_git_prompt
|
function __fish_hg_prompt
|
||||||
|
fish_hg_prompt
|
||||||
set -g fish_color_hg_clean green
|
|
||||||
set -g fish_color_hg_modified yellow
|
|
||||||
set -g fish_color_hg_dirty red
|
|
||||||
|
|
||||||
set -g fish_color_hg_added green
|
|
||||||
set -g fish_color_hg_renamed magenta
|
|
||||||
set -g fish_color_hg_copied magenta
|
|
||||||
set -g fish_color_hg_deleted red
|
|
||||||
set -g fish_color_hg_untracked yellow
|
|
||||||
set -g fish_color_hg_unmerged red
|
|
||||||
|
|
||||||
set -g fish_prompt_hg_status_added '✚'
|
|
||||||
set -g fish_prompt_hg_status_modified '*'
|
|
||||||
set -g fish_prompt_hg_status_copied '⇒'
|
|
||||||
set -g fish_prompt_hg_status_deleted '✖'
|
|
||||||
set -g fish_prompt_hg_status_untracked '?'
|
|
||||||
set -g fish_prompt_hg_status_unmerged '!'
|
|
||||||
|
|
||||||
set -g fish_prompt_hg_status_order added modified copied deleted untracked unmerged
|
|
||||||
|
|
||||||
function __fish_hg_prompt --description 'Write out the hg prompt'
|
|
||||||
# If hg isn't installed, there's nothing we can do
|
|
||||||
# Return 1 so the calling prompt can deal with it
|
|
||||||
if not command -sq hg
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l root (fish_print_hg_root)
|
|
||||||
or return 0
|
|
||||||
|
|
||||||
# Read branch and bookmark
|
|
||||||
set -l branch (cat $root/branch 2>/dev/null; or echo default)
|
|
||||||
if set -l bookmark (cat $root/bookmarks.current 2>/dev/null)
|
|
||||||
set branch "$branch|$bookmark"
|
|
||||||
end
|
|
||||||
|
|
||||||
echo -n '|'
|
|
||||||
|
|
||||||
# For some reason, "-q" still prints the same output, but ~20% faster.
|
|
||||||
# Disabling color and pager is always a good idea.
|
|
||||||
set -l repo_status (hg status -q --color never --pager never | string sub -l 2 | sort -u)
|
|
||||||
|
|
||||||
# Show nice color for a clean repo
|
|
||||||
if test -z "$repo_status"
|
|
||||||
set_color $fish_color_hg_clean
|
|
||||||
echo -n "($branch)"'✓'
|
|
||||||
set_color normal
|
|
||||||
|
|
||||||
# Handle modified or dirty (unknown state)
|
|
||||||
else
|
|
||||||
set -l hg_statuses
|
|
||||||
|
|
||||||
# Take actions for the statuses of the files in the repo
|
|
||||||
for line in $repo_status
|
|
||||||
|
|
||||||
# Add a character for each file status if we have one
|
|
||||||
# HACK: To allow this to work both with and without '?' globs
|
|
||||||
set -l q '?'
|
|
||||||
switch $line
|
|
||||||
case 'A '
|
|
||||||
set -a hg_statuses added
|
|
||||||
case 'M ' ' M'
|
|
||||||
set -a hg_statuses modified
|
|
||||||
case 'C '
|
|
||||||
set -a hg_statuses copied
|
|
||||||
case 'D ' ' D'
|
|
||||||
set -a hg_statuses deleted
|
|
||||||
case "$dq "
|
|
||||||
set -a hg_statuses untracked
|
|
||||||
case 'U*' '*U' 'DD' 'AA'
|
|
||||||
set -a hg_statuses unmerged
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if string match -qr '^[AMCD]' $repo_status
|
|
||||||
set_color $fish_color_hg_modified
|
|
||||||
else
|
|
||||||
set_color $fish_color_hg_dirty
|
|
||||||
end
|
|
||||||
|
|
||||||
echo -n "($branch)"'⚡'
|
|
||||||
|
|
||||||
# Sort status symbols
|
|
||||||
for i in $fish_prompt_hg_status_order
|
|
||||||
if contains -- $i $hg_statuses
|
|
||||||
set -l color_name fish_color_hg_$i
|
|
||||||
set -l status_name fish_prompt_hg_status_$i
|
|
||||||
|
|
||||||
set_color $$color_name
|
|
||||||
echo -n $$status_name
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set_color normal
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
99
share/functions/fish_hg_prompt.fish
Normal file
99
share/functions/fish_hg_prompt.fish
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
# Adapted from __terlar_git_prompt
|
||||||
|
|
||||||
|
set -g fish_color_hg_clean green
|
||||||
|
set -g fish_color_hg_modified yellow
|
||||||
|
set -g fish_color_hg_dirty red
|
||||||
|
|
||||||
|
set -g fish_color_hg_added green
|
||||||
|
set -g fish_color_hg_renamed magenta
|
||||||
|
set -g fish_color_hg_copied magenta
|
||||||
|
set -g fish_color_hg_deleted red
|
||||||
|
set -g fish_color_hg_untracked yellow
|
||||||
|
set -g fish_color_hg_unmerged red
|
||||||
|
|
||||||
|
set -g fish_prompt_hg_status_added '✚'
|
||||||
|
set -g fish_prompt_hg_status_modified '*'
|
||||||
|
set -g fish_prompt_hg_status_copied '⇒'
|
||||||
|
set -g fish_prompt_hg_status_deleted '✖'
|
||||||
|
set -g fish_prompt_hg_status_untracked '?'
|
||||||
|
set -g fish_prompt_hg_status_unmerged '!'
|
||||||
|
|
||||||
|
set -g fish_prompt_hg_status_order added modified copied deleted untracked unmerged
|
||||||
|
|
||||||
|
function fish_hg_prompt --description 'Write out the hg prompt'
|
||||||
|
# If hg isn't installed, there's nothing we can do
|
||||||
|
# Return 1 so the calling prompt can deal with it
|
||||||
|
if not command -sq hg
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l root (fish_print_hg_root)
|
||||||
|
or return 0
|
||||||
|
|
||||||
|
# Read branch and bookmark
|
||||||
|
set -l branch (cat $root/branch 2>/dev/null; or echo default)
|
||||||
|
if set -l bookmark (cat $root/bookmarks.current 2>/dev/null)
|
||||||
|
set branch "$branch|$bookmark"
|
||||||
|
end
|
||||||
|
|
||||||
|
echo -n '|'
|
||||||
|
|
||||||
|
# For some reason, "-q" still prints the same output, but ~20% faster.
|
||||||
|
# Disabling color and pager is always a good idea.
|
||||||
|
set -l repo_status (hg status -q --color never --pager never | string sub -l 2 | sort -u)
|
||||||
|
|
||||||
|
# Show nice color for a clean repo
|
||||||
|
if test -z "$repo_status"
|
||||||
|
set_color $fish_color_hg_clean
|
||||||
|
echo -n "($branch)"'✓'
|
||||||
|
set_color normal
|
||||||
|
|
||||||
|
# Handle modified or dirty (unknown state)
|
||||||
|
else
|
||||||
|
set -l hg_statuses
|
||||||
|
|
||||||
|
# Take actions for the statuses of the files in the repo
|
||||||
|
for line in $repo_status
|
||||||
|
|
||||||
|
# Add a character for each file status if we have one
|
||||||
|
# HACK: To allow this to work both with and without '?' globs
|
||||||
|
set -l q '?'
|
||||||
|
switch $line
|
||||||
|
case 'A '
|
||||||
|
set -a hg_statuses added
|
||||||
|
case 'M ' ' M'
|
||||||
|
set -a hg_statuses modified
|
||||||
|
case 'C '
|
||||||
|
set -a hg_statuses copied
|
||||||
|
case 'D ' ' D'
|
||||||
|
set -a hg_statuses deleted
|
||||||
|
case "$dq "
|
||||||
|
set -a hg_statuses untracked
|
||||||
|
case 'U*' '*U' 'DD' 'AA'
|
||||||
|
set -a hg_statuses unmerged
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if string match -qr '^[AMCD]' $repo_status
|
||||||
|
set_color $fish_color_hg_modified
|
||||||
|
else
|
||||||
|
set_color $fish_color_hg_dirty
|
||||||
|
end
|
||||||
|
|
||||||
|
echo -n "($branch)"'⚡'
|
||||||
|
|
||||||
|
# Sort status symbols
|
||||||
|
for i in $fish_prompt_hg_status_order
|
||||||
|
if contains -- $i $hg_statuses
|
||||||
|
set -l color_name fish_color_hg_$i
|
||||||
|
set -l status_name fish_prompt_hg_status_$i
|
||||||
|
|
||||||
|
set_color $$color_name
|
||||||
|
echo -n $$status_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set_color normal
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -1,5 +1,5 @@
|
||||||
function fish_vcs_prompt --description "Print the prompts for all available vcsen"
|
function fish_vcs_prompt --description "Print the prompts for all available vcsen"
|
||||||
fish_git_prompt
|
fish_git_prompt
|
||||||
__fish_hg_prompt
|
fish_hg_prompt
|
||||||
fish_svn_prompt
|
fish_svn_prompt
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user