Skip to content

Commit 7b863fb

Browse files
committed
Merge remote-tracking branch 'origin/master' into feature/redrawhook
* origin/master: driver: Move the initialization of $zsh_highlight__memo_feature out of the entry point function.
2 parents daf0d94 + 8a1bd7c commit 7b863fb

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

zsh-syntax-highlighting.zsh

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -108,28 +108,12 @@ else
108108
typeset -g zsh_highlight__pat_static_bug=true
109109
fi
110110

111-
# Array declaring active highlighters names.
112-
typeset -ga ZSH_HIGHLIGHT_HIGHLIGHTERS
111+
# Probe the memo= feature, once. When this anonymous function returns,
112+
# $zsh_highlight__memo_feature will be set (either to 0 or to 1).
113+
() {
114+
# Provide a mock $region_highlight. (The test suite's mock might not have been set up yet.)
115+
(( ${+region_highlight} )) || typeset -a region_highlight
113116

114-
# Update ZLE buffer syntax highlighting.
115-
#
116-
# Invokes each highlighter that needs updating.
117-
# This function is supposed to be called whenever the ZLE state changes.
118-
_zsh_highlight()
119-
{
120-
# Store the previous command return code to restore it whatever happens.
121-
local ret=$?
122-
# Make it read-only. Can't combine this with the previous line when POSIX_BUILTINS may be set.
123-
typeset -r ret
124-
125-
# $region_highlight should be predefined, either by zle or by the test suite's mock (non-special) array.
126-
(( ${+region_highlight} )) || {
127-
echo >&2 'zsh-syntax-highlighting: error: $region_highlight is not defined'
128-
echo >&2 'zsh-syntax-highlighting: (Check whether zsh-syntax-highlighting was installed according to the instructions.)'
129-
return $ret
130-
}
131-
132-
# Probe the memo= feature, once.
133117
(( ${+zsh_highlight__memo_feature} )) || {
134118
region_highlight+=( " 0 0 fg=red, memo=zsh-syntax-highlighting" )
135119
case ${region_highlight[-1]} in
@@ -172,6 +156,28 @@ _zsh_highlight()
172156
esac
173157
region_highlight[-1]=()
174158
}
159+
}
160+
161+
# Array declaring active highlighters names.
162+
typeset -ga ZSH_HIGHLIGHT_HIGHLIGHTERS
163+
164+
# Update ZLE buffer syntax highlighting.
165+
#
166+
# Invokes each highlighter that needs updating.
167+
# This function is supposed to be called whenever the ZLE state changes.
168+
_zsh_highlight()
169+
{
170+
# Store the previous command return code to restore it whatever happens.
171+
local ret=$?
172+
# Make it read-only. Can't combine this with the previous line when POSIX_BUILTINS may be set.
173+
typeset -r ret
174+
175+
# $region_highlight should be predefined, either by zle or by the test suite's mock (non-special) array.
176+
(( ${+region_highlight} )) || {
177+
echo >&2 'zsh-syntax-highlighting: error: $region_highlight is not defined'
178+
echo >&2 'zsh-syntax-highlighting: (Check whether zsh-syntax-highlighting was installed according to the instructions.)'
179+
return $ret
180+
}
175181

176182
# Reset region_highlight to build it from scratch
177183
if (( zsh_highlight__memo_feature )); then

0 commit comments

Comments
 (0)