-
Notifications
You must be signed in to change notification settings - Fork 94
/
geometry.zsh
63 lines (52 loc) · 1.91 KB
/
geometry.zsh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Geometry
# Based on Avit and Pure
# avit: https://github.com/robbyrussell/oh-my-zsh/blob/master/themes/avit.zsh-theme
# pure: https://github.com/sindresorhus/pure
GEOMETRY_ROOT=${0:A:h}
source "$GEOMETRY_ROOT/lib/async.zsh"
source "$GEOMETRY_ROOT/lib/color.zsh"
source "$GEOMETRY_ROOT/lib/grep.zsh"
source "$GEOMETRY_ROOT/lib/plugin.zsh"
source "$GEOMETRY_ROOT/lib/time.zsh"
source "$GEOMETRY_ROOT/lib/title.zsh"
# Flags
PROMPT_GEOMETRY_SHOW_RPROMPT=${PROMPT_GEOMETRY_SHOW_RPROMPT:-true}
PROMPT_GEOMETRY_RPROMPT_ASYNC=${PROMPT_GEOMETRY_RPROMPT_ASYNC:-true}
PROMPT_GEOMETRY_ENABLE_PLUGINS=${PROMPT_GEOMETRY_ENABLE_PLUGINS:-true}
PROMPT_GEOMETRY_PRIMARY_SUFFIX=${PROMPT_GEOMETRY_PRIMARY_SUFFIX:-" "}
prompt_geometry_render() {
PROMPT="$(geometry_plugin_render primary)$PROMPT_GEOMETRY_PRIMARY_SUFFIX"
PROMPT2=" $GEOMETRY_SYMBOL_RPROMPT "
if $PROMPT_GEOMETRY_SHOW_RPROMPT; then
if $PROMPT_GEOMETRY_RPROMPT_ASYNC; then
# On render we reset rprompt until async process
# comes with newer git info
RPROMPT=""
else
setopt localoptions no_prompt_subst
RPROMPT="$(geometry_plugin_render secondary)"
fi
fi
}
prompt_geometry_setup() {
zmodload zsh/datetime
autoload -U add-zsh-hook
if $PROMPT_GEOMETRY_ENABLE_PLUGINS; then
geometry_plugin_setup
fi
# Helper functions from lib/title.zsh
add-zsh-hook preexec prompt_geometry_set_cmd_title
add-zsh-hook precmd prompt_geometry_set_title
add-zsh-hook precmd prompt_geometry_render
if $PROMPT_GEOMETRY_SHOW_RPROMPT && $PROMPT_GEOMETRY_RPROMPT_ASYNC; then
geometry_async_setup
fi
}
# Setup and initialize geometry
prompt_geometry_setup
if [[ $(print $HOME/.geometry_upgrade(.Nmd1)) ]]; then
echo >&2 'WARNING: geometry v2 has been released. Please see [the migration guide](migration-guide.md) to upgrade'
touch $HOME/.geometry_upgrade
elif [[ ! -f $HOME/.geometry_upgrade ]]; then
touch $HOME/.geometry_upgrade
fi