diff options
[Syntax-highlighting] Added UNFINISHED support for lookaround
1 files changed, 14 insertions, 12 deletions
| -rw-r--r-- | awk-edits/Syntax-highlighting.awk | 26 |
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("->", "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:]]+/, "<span class=\"SH-kwd2\">&</span>"); - hi(@/(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&&)($|[[:blank:]])/, "conditional"); + # gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "<span class=\"SH-kwd2\">&</span>"); + $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:]]+=/, "<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"); } # |