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