4
4
# ---------------------------------------------------------------------------------------------
5
5
6
6
VSCODE_SHELL_INTEGRATION=1
7
+ __vsc_initialized=0
7
8
8
9
if [ -z " $VSCODE_SHELL_LOGIN " ]; then
9
10
. ~ /.bashrc
@@ -72,6 +73,7 @@ __vsc_command_complete() {
72
73
}
73
74
74
75
__vsc_update_prompt () {
76
+ __vsc_initialized=1
75
77
__vsc_prior_prompt=" $PS1 "
76
78
__vsc_in_command_execution=" "
77
79
PS1=" \[$( __vsc_prompt_start) \]$PREFIX$PS1 \[$( __vsc_prompt_end) \]"
@@ -89,25 +91,28 @@ __vsc_precmd() {
89
91
}
90
92
91
93
__vsc_preexec () {
92
- PS1=" $__vsc_prior_prompt "
94
+ if [ -z " ${__vsc_initialized-} " ]; then
95
+ PS1=" $__vsc_prior_prompt "
96
+ fi
93
97
if [ -z " ${__vsc_in_command_execution-} " ]; then
94
98
__vsc_in_command_execution=" 1"
95
99
__vsc_command_output_start
96
100
fi
97
101
}
98
102
99
103
# Debug trapping/preexec inspired by starship (ISC)
100
- dbg_trap =" $( trap -p DEBUG | cut -d' ' -f3 | tr -d \' ) "
101
- if [[ -z " $dbg_trap " ]]; then
104
+ __vsc_dbg_trap =" $( trap -p DEBUG | cut -d' ' -f3 | tr -d \' ) "
105
+ if [[ -z " $__vsc_dbg_trap " ]]; then
102
106
__vsc_preexec_only () {
103
107
__vsc_status=" $? "
104
108
__vsc_preexec
105
109
}
106
110
trap ' __vsc_preexec_only "$_"' DEBUG
107
- elif [[ " $dbg_trap " != ' __vsc_preexec "$_"' && " $dbg_trap " != ' __vsc_preexec_all "$_"' ]]; then
111
+ elif [[ " $__vsc_dbg_trap " != ' __vsc_preexec "$_"' && " $__vsc_dbg_trap " != ' __vsc_preexec_all "$_"' ]]; then
108
112
__vsc_preexec_all () {
109
113
__vsc_status=" $? "
110
- local PREV_LAST_ARG=$1 ; $dbg_trap ; __vsc_preexec; : " $PREV_LAST_ARG " ;
114
+ builtin eval ${__vsc_dbg_trap}
115
+ __vsc_preexec
111
116
}
112
117
trap ' __vsc_preexec_all "$_"' DEBUG
113
118
fi
0 commit comments