Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / Syntax-highlighting.awk
diff options
context:
space:
mode:
Commiteff5393a6c45a02cd0c703c62fac52b6c7733307 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-04-28 23:24:59 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-04-28 23:24:59 +0300
Files892af9016d16058f906d1e7cf6c5d0095008c438 /awk-edits/Syntax-highlighting.awk
syndamia.com-eff5393a6c45a02cd0c703c62fac52b6c7733307.tar
syndamia.com-eff5393a6c45a02cd0c703c62fac52b6c7733307.tar.gz
syndamia.com-eff5393a6c45a02cd0c703c62fac52b6c7733307.zip
Parent973c5dcaaa0273a4050cff5e81b2ef14262bc39d (diff)
[Syntax-highlighting] Added UNFINISHED support for lookaround
1 files changed, 14 insertions, 12 deletions
-rw-r--r--awk-edits/Syntax-highlighting.awk26
diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk
index 0c96eef..1655e8e 100644
--- a/awk-edits/Syntax-highlighting.awk
+++ b/awk-edits/Syntax-highlighting.awk
@@ -23,6 +23,9 @@ function hi(pat, class) {
function hie(pat, epat, class) {
return gesub(pat, epat, "<span class=\"HI-" class "\">&</span>");
}
+function hil(lbpat, pat, lrpat, empt, class) {
+ return glsub(lbpat, pat, lrpat, "<span class=\"HI-" class "\">&</span>", empt);
+}
#
# -- Grammars --
@@ -65,10 +68,10 @@ syntaxhighlighting == 1 {
}
for (i = 1; i <= grammarNamesI; i++) {
- $0 = hie(grammarNames[i], "<span [^>]*>[^<]*</[^>]*>", "function");
+ $0 = hie(grammarNames[i], @/<span [^>]*>[^<]*<\/[^>]*>/, "function");
}
- hi("-&#62;", "statement");
- hi("\\|", "statement");
+ hi(@/-&#62;/, "statement");
+ hi(@/\|/, "statement");
}
#
@@ -83,8 +86,8 @@ syntaxhighlighting == 0 && /class="language-regex"/ {
syntaxhighlighting == 2 {
syntaxhighlighting = 2;
- hi("\\*", "repeat");
- hi("[\\(\\)\\|]", "statement");
+ hi(@/\*/, "repeat");
+ hi(@/[\(\)\|]/, "statement");
}
#
@@ -107,14 +110,13 @@ syntaxhighlighting == 3 {
hi(@/("[^"]*"|'[^']*')/, "string");
hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure");
hi(@/\$[^[:blank:]]+/, "structure");
- gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "<span class=\"SH-kwd2\">&</span>");
- hi(@/(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&#38;&#38;)($|[[:blank:]])/, "conditional");
+ # gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "<span class=\"SH-kwd2\">&</span>");
+ $0 = hil(@/[^[:alnum:]]/, @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&#38;&#38;)/, @/[^[:alnum:]]/, 3, "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>");
- gsub(/[[:blank:]]#.*$/, "<span class=\"SH-com\">&</span>");
- gsub(/(\|)/, "<span class=\"SH-none\">&</span>");
+ $0 = hil(@/[[:blank:]]*/, @/[[:alnum:]]+/, @/=/, 0, "identifier");
+ # $0 = hil("", @/[-_[:alnum:]]+[[:blank:]]*/, @/\([^\)]*\)/, 0, "function");
+ hi(@/[\{\}]/, "function");
+ # $0 = hil(@/[^\>]/, @/#.*$/, "", 0, "comment");
}
#