From 0a7035170ac4927c90a614fa7287f7697b86be96 Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Tue, 20 Oct 2015 03:07:04 +0000 Subject: [PATCH] versioning: Expose .revision-hash as $ZSH_HIGHLIGHT_REVISION. Currently, this only works in installed trees and exported tarballs; the parameter is left unset when running directly from a git worktree. --- zsh-syntax-highlighting.zsh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/zsh-syntax-highlighting.zsh b/zsh-syntax-highlighting.zsh index 54d52a1..bed6e64 100644 --- a/zsh-syntax-highlighting.zsh +++ b/zsh-syntax-highlighting.zsh @@ -32,6 +32,13 @@ if [[ -o function_argzero ]]; then # $0 is reliable ZSH_HIGHLIGHT_VERSION=$(<"$0:h"/.version) + ZSH_HIGHLIGHT_REVISION=$(<"$0:h"/.revision-hash) + if [[ $ZSH_HIGHLIGHT_REVISION == \$Format:* ]]; then + # When running from a source tree without 'make install', $ZSH_HIGHLIGHT_REVISION + # would be set to '$Format:%H$' literally. That's an invalid value, and obtaining + # the valid value (via `git rev-parse HEAD`, as Makefile does) might be costly, so: + unset ZSH_HIGHLIGHT_REVISION + fi else # $0 is unreliable, so the call to _zsh_highlight_load_highlighters will fail. # TODO: If 'zmodload zsh/parameter' is available, ${funcsourcetrace[1]%:*} might serve as a substitute?