Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / Syntax-highlighting.awk
diff options
context:
space:
mode:
Commit0dc8cafa2f8c32d2ad9dd0da4edd5b23b9114dbf (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-04-28 10:20:34 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-04-28 10:20:34 +0300
Files65bc88b2c7b32200a705d92c71b122cc8a154ebe /awk-edits/Syntax-highlighting.awk
syndamia.com-0dc8cafa2f8c32d2ad9dd0da4edd5b23b9114dbf.tar
syndamia.com-0dc8cafa2f8c32d2ad9dd0da4edd5b23b9114dbf.tar.gz
syndamia.com-0dc8cafa2f8c32d2ad9dd0da4edd5b23b9114dbf.zip
Parent1fe56d26aebf6213e9a0a6f964b6068397a9bcb5 (diff)
[Syntax-highlighting] Ported grammars and regexes to new colors
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>");