2023-02-05 22:13:01 +02:00
|
|
|
function prompt.git
|
2023-03-17 12:49:42 +02:00
|
|
|
set -l is_git_tree (git rev-parse --is-inside-work-tree 2>/dev/null)
|
|
|
|
string match -qe 'true' "$is_git_tree" || return
|
2023-02-05 22:13:01 +02:00
|
|
|
git status --porcelain -bu | while read line
|
2023-03-17 12:49:42 +02:00
|
|
|
if string match -qr '^##' "$line"
|
2023-02-06 13:38:34 +02:00
|
|
|
set git_branch (string match -r '[^# .]+' "$line")
|
2023-02-05 22:13:01 +02:00
|
|
|
string match -qr '\[behind' $line && set git_branch "$git_branch?"
|
|
|
|
string match -qr '\[ahead' $line && set git_branch "$git_branch!"
|
2023-08-21 20:58:02 +03:00
|
|
|
prompt.add "$git_sign $git_branch" "$color_git_branch"
|
2023-02-05 22:13:01 +02:00
|
|
|
else
|
|
|
|
string match -qr "^.[MD]" "$line" && set git_count[1] (math $git_count[1] + 1)
|
|
|
|
string match -qr "^[MDARC]." "$line" && set git_count[2] (math $git_count[2] + 1)
|
|
|
|
string match -qr "^\?\?" "$line" && set git_count[3] (math $git_count[3] + 1)
|
|
|
|
string match -qr "^[ADU]{2}" "$line" && set git_count[4] (math $git_count[4] + 1)
|
|
|
|
end
|
|
|
|
end
|
2023-08-21 20:58:02 +03:00
|
|
|
test -n "$git_count[1]" && prompt.add "$git_count[1]$symbol_git[1]" "$color_git[1]"
|
|
|
|
test -n "$git_count[2]" && prompt.add "$git_count[2]$symbol_git[2]" "$color_git[2]"
|
|
|
|
test -n "$git_count[3]" && prompt.add "$git_count[3]$symbol_git[3]" "$color_git[3]"
|
|
|
|
test -n "$git_count[4]" && prompt.add "$git_count[4]$symbol_git[4]" "$color_git[4]"
|
2023-02-05 22:13:01 +02:00
|
|
|
end
|