From eff5393a6c45a02cd0c703c62fac52b6c7733307 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 28 Apr 2023 23:24:59 +0300 Subject: [Syntax-highlighting] Added UNFINISHED support for lookaround --- awk-edits/Syntax-highlighting.awk | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') 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, "&"); } +function hil(lbpat, pat, lrpat, empt, class) { + return glsub(lbpat, pat, lrpat, "&", empt); +} # # -- Grammars -- @@ -65,10 +68,10 @@ syntaxhighlighting == 1 { } for (i = 1; i <= grammarNamesI; i++) { - $0 = hie(grammarNames[i], "]*>[^<]*]*>", "function"); + $0 = hie(grammarNames[i], @/]*>[^<]*<\/[^>]*>/, "function"); } - hi("->", "statement"); - hi("\\|", "statement"); + hi(@/->/, "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:]]+/, "&"); - hi(@/(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&&)($|[[:blank:]])/, "conditional"); + # gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); + $0 = hil(@/[^[:alnum:]]/, @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&&)/, @/[^[:alnum:]]/, 3, "conditional"); hi(@/(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])/, "repeat"); - gsub(/^[[:blank:]]*[[:alnum:]]+=/, "&"); - gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "&"); - gsub(/[\{\}]/, "&"); - gsub(/[[:blank:]]#.*$/, "&"); - gsub(/(\|)/, "&"); + $0 = hil(@/[[:blank:]]*/, @/[[:alnum:]]+/, @/=/, 0, "identifier"); + # $0 = hil("", @/[-_[:alnum:]]+[[:blank:]]*/, @/\([^\)]*\)/, 0, "function"); + hi(@/[\{\}]/, "function"); + # $0 = hil(@/[^\>]/, @/#.*$/, "", 0, "comment"); } # -- cgit v1.3.1-26-gb76a