main-highlighter can be run as command, with profiling equipped
This commit is contained in:
parent
a053768627
commit
eed6b95a5c
62
highlighters/main/mh-parse.zsh
Executable file
62
highlighters/main/mh-parse.zsh
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# This file runs main highlighter on a specified file
|
||||||
|
# i.e. parses the file with the highlighter. Outputs
|
||||||
|
# running time (stderr) and resulting region_highlight
|
||||||
|
# (stdout).
|
||||||
|
#
|
||||||
|
|
||||||
|
# Strive for -f
|
||||||
|
# .. occuring problems (no q flag), but at least try to quote $0 and $@
|
||||||
|
[[ -z "$ZSH_VERSION" ]] && exec /usr/bin/env zsh -f -c "source \"$0\" \"$1\" \"$2\" \"$3\""
|
||||||
|
|
||||||
|
ZERO="${(%):-%N}"
|
||||||
|
ZERO_RESOLVED="${ZERO:A:h}"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load Z-SY-H
|
||||||
|
#
|
||||||
|
|
||||||
|
if [[ -e "${ZERO_RESOLVED}/main-highlighter.zsh" ]]; then
|
||||||
|
source "${ZERO_RESOLVED}/../../zsh-syntax-highlighting.zsh"
|
||||||
|
elif [[ -e "${0:A:h}/main-highlighter.zsh" ]]; then
|
||||||
|
source "${0:A:h}/../../zsh-syntax-highlighting.zsh"
|
||||||
|
elif [[ -e "../../main-highlighter.zsh" ]]; then
|
||||||
|
source "../../zsh-syntax-highlighting.zsh"
|
||||||
|
else
|
||||||
|
print "Could not find zsh-syntax-highlighting.zsh, aborting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Call _zsh_highlight_highlighter_main_paint
|
||||||
|
#
|
||||||
|
|
||||||
|
if [[ -r "$1" ]]; then
|
||||||
|
# Load from given file
|
||||||
|
PREBUFFER=""
|
||||||
|
BUFFER="$(<$1)"
|
||||||
|
|
||||||
|
typeset -F SECONDS
|
||||||
|
SECONDS=0
|
||||||
|
|
||||||
|
_zsh_highlight_highlighter_main_paint
|
||||||
|
|
||||||
|
print -u2 "Main highlighter's running time: $SECONDS"
|
||||||
|
|
||||||
|
# This output can be diffed to detect changes in operation
|
||||||
|
print -rl -- "${region_highlight[@]}"
|
||||||
|
else
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
print -u2 "Usage: ./mh-parse.zsh {to-parse file}"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
print -u2 "Unreadable to-parse file \`$1', aborting"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# vim:ft=zsh
|
Loading…
Reference in New Issue
Block a user