From 0dc8cafa2f8c32d2ad9dd0da4edd5b23b9114dbf Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 28 Apr 2023 10:20:34 +0300 Subject: [Syntax-highlighting] Ported grammars and regexes to new colors --- awk-edits/Syntax-highlighting.awk | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') 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, "&"); +} +function hie(pat, epat, class) { + return gesub(pat, epat, "&"); +} + # # -- Grammars -- # @@ -58,10 +65,10 @@ syntaxhighlighting == 1 { } for (i = 1; i <= grammarNamesI; i++) { - $0 = gesub(grammarNames[i], "]*>[^<]*]*>", "&"); + $0 = hie(grammarNames[i], "]*>[^<]*]*>", "function"); } - gsub(/[[:blank:]]*[^-\\]->/, "&"); - gsub(/\|/, "&"); + hi("->", "statement"); + hi("\\|", "statement"); } # @@ -76,11 +83,11 @@ syntaxhighlighting == 0 && /class="language-regex"/ { syntaxhighlighting == 2 { syntaxhighlighting = 2; - gsub(/[\*]/, "&"); - gsub(/[\(\)\|]/, "&"); + hi("\\*", "repeat"); + hi("[\\(\\)\\|]", "statement"); } -# +# # -- Bash # # Supports "bash" @@ -97,11 +104,12 @@ syntaxhighlighting == 2 { } syntaxhighlighting == 3 { - gsub(/("[^"]*"|'[^']*')/, "&"); - gsub(/\$(\(|\(\(|{).+(\)|\)\)|})/, "&"); - gsub(/\$[^[:blank:]]+/, "&"); + hi("(\"[^\"]*\"|'[^']*')", "string"); + hi("\\$(\\(|\\(\\(|{).+(\\)|\\)\\)|})", "structure"); + hi("\\$[^[:blank:]]+", "structure"); gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); - gsub(/(^|[[:blank:]]+)(function|if|fi|then|case|esac|in|disown|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&&)($|[[:blank:]])/, "&"); + hi("(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\\|\\||&&)($|[[:blank:]])", "conditional"); + hi("(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])", "repeat"); gsub(/^[[:blank:]]*[[:alnum:]]+=/, "&"); gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "&"); gsub(/[\{\}]/, "&"); -- cgit v1.3.1-23-gd82d