Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / Syntax-highlighting.awk
diff options
context:
space:
mode:
1 files changed, 18 insertions, 10 deletions
-rw-r--r--awk-edits/Syntax-highlighting.awk28
diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk
index e3a9be2..0a0a0d4 100644
--- a/awk-edits/Syntax-highlighting.awk
+++ b/awk-edits/Syntax-highlighting.awk
@@ -17,6 +17,13 @@ BEGIN {
syntaxhighlighting=0;
}
+function hi(pat, class) {
+ gsub(pat, "<span class=\"HI-" class "\">&</span>");
+}
+function hie(pat, epat, class) {
+ return gesub(pat, epat, "<span class=\"HI-" class "\">&</span>");
+}
+
#
# -- Grammars --
#
@@ -58,10 +65,10 @@ syntaxhighlighting == 1 {
}
for (i = 1; i <= grammarNamesI; i++) {
- $0 = gesub(grammarNames[i], "<span [^>]*>[^<]*</[^>]*>", "<span class=\"SH-fnc\">&</span>");
+ $0 = hie(grammarNames[i], "<span [^>]*>[^<]*</[^>]*>", "function");
}
- gsub(/[[:blank:]]*[^-\\]-&#62;/, "<span class=\"SH-kwd\">&</span>");
- gsub(/\|/, "<span class=\"SH-kwd2\">&</span>");
+ hi("-&#62;", "statement");
+ hi("\\|", "statement");
}
#
@@ -76,11 +83,11 @@ syntaxhighlighting == 0 && /class="language-regex"/ {
syntaxhighlighting == 2 {
syntaxhighlighting = 2;
- gsub(/[\*]/, "<span class=\"SH-kwd\">&</span>");
- gsub(/[\(\)\|]/, "<span class=\"SH-kwd2\">&</span>");
+ hi("\\*", "repeat");
+ hi("[\\(\\)\\|]", "statement");
}
-#
+#
# -- Bash
#
# Supports "bash"
@@ -97,11 +104,12 @@ syntaxhighlighting == 2 {
}
syntaxhighlighting == 3 {
- gsub(/("[^"]*"|'[^']*')/, "<span class=\"SH-str\">&</span>");
- gsub(/\$(\(|\(\(|{).+(\)|\)\)|})/, "<span class=\"SH-kwd3\">&</span>");
- gsub(/\$[^[:blank:]]+/, "<span class=\"SH-kwd3\">&</span>");
+ hi("(\"[^\"]*\"|'[^']*')", "string");
+ hi("\\$(\\(|\\(\\(|{).+(\\)|\\)\\)|})", "structure");
+ hi("\\$[^[:blank:]]+", "structure");
gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "<span class=\"SH-kwd2\">&</span>");
- gsub(/(^|[[:blank:]]+)(function|if|fi|then|case|esac|in|disown|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&#38;&#38;)($|[[:blank:]])/, "<span class=\"SH-kwd\">&</span>");
+ hi("(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\\|\\||&#38;&#38;)($|[[:blank:]])", "conditional");
+ hi("(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])", "repeat");
gsub(/^[[:blank:]]*[[:alnum:]]+=/, "<span class=\"SH-cls\">&</span>");
gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "<span class=\"SH-fnc\">&</span>");
gsub(/[\{\}]/, "<span class=\"SH-fnc\">&</span>");