Skip to content

Commit

Permalink
'main': use zsh/parameter to resolve alias
Browse files Browse the repository at this point in the history
If possible, use zsh/parameter to avoid forks.

Fixes #263.
  • Loading branch information
m0vie authored and danielshahaf committed May 13, 2016
1 parent 3ce0107 commit 2f18ba6
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions highlighters/main/main-highlighter.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,19 @@ _zsh_highlight_main__type() {
LC_ALL=C builtin type -w -- $1 2>/dev/null
}

# Resolve alias.
#
# Takes a single argument.
#
# The result will be stored in REPLY.
_zsh_highlight_main__resolve_alias() {
if zmodload -e zsh/parameter; then
REPLY=${aliases[$arg]}
else
REPLY="${"$(alias -- $arg)"#*=}"
fi
}

# Main syntax highlighting function.
_zsh_highlight_main_highlighter()
{
Expand Down Expand Up @@ -344,8 +357,9 @@ _zsh_highlight_main_highlighter()
style=unknown-token
else
style=alias
local aliased_command="${"$(alias -- $arg)"#*=}"
[[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$aliased_command"} && -z ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]] && ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS+=($arg)
_zsh_highlight_main__resolve_alias $arg
local alias_target="$REPLY"
[[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$alias_target"} && -z ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]] && ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS+=($arg)
fi
}
;;
Expand Down

0 comments on commit 2f18ba6

Please sign in to comment.