Преглед на файлове

widget binding: Remove an unnecessary layer of indirection.

The 'eval' was never needed, and the lack of proper quoting of the interpolated
variables caused issues, such as #278.

Fixes zsh-users/zsh-syntax-highlighting#278.
pull/283/head
Daniel Shahaf преди 8 години
родител
ревизия
7e7e291b20
променени са 1 файла, в които са добавени 8 реда и са изтрити 8 реда
  1. +8
    -8
      zsh-syntax-highlighting.zsh

+ 8
- 8
zsh-syntax-highlighting.zsh Целия файл

@ -223,18 +223,18 @@ _zsh_highlight_bind_widgets()
user:_zsh_highlight_widget_*);;
# User defined widget: override and rebind old one with prefix "orig-".
user:*) eval "zle -N orig-</span><span class="nv">$cur_widget class="s2"> ${widgets[$cur_widget]#*:}; \
_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget orig-$cur_widget -- \"\$@\" }; \
zle -N $cur_widget _zsh_highlight_widget_$cur_widget";;
user:*) zle -N orig-$cur_widget ${widgets[$cur_widget]#*:}
_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget orig-$cur_widget -- "$@" };
zle -N $cur_widget _zsh_highlight_widget_$cur_widget;;
# Completion widget: override and rebind old one with prefix "orig-".
completion:*) eval "zle -C orig-</span><span class="nv">$cur_widget class="s2"> ${${widgets[$cur_widget]#*:}/:/ }; \
_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget orig-$cur_widget -- \"\$@\" }; \
zle -N $cur_widget _zsh_highlight_widget_$cur_widget";;
completion:*) zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ }; \
_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget orig-$cur_widget -- "$@" }; \
zle -N $cur_widget _zsh_highlight_widget_$cur_widget;;
# Builtin widget: override and make it call the builtin ".widget".
builtin) eval "_zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget .$cur_widget -- \"\$@\" }; \
zle -N $cur_widget _zsh_highlight_widget_$cur_widget";;
builtin) _zsh_highlight_widget_$cur_widget() { _zsh_highlight_call_widget .$cur_widget -- "$@" }; \
zle -N $cur_widget _zsh_highlight_widget_$cur_widget;;
# Default: unhandled case.
*) echo "zsh-syntax-highlighting: unhandled ZLE widget '$cur_widget'" >&2 ;;

Зареждане…
Отказ
Запис