diff options
[Syntax-highlighting] Ported grammars and regexes to new colors
1 files changed, 18 insertions, 10 deletions
| -rw-r--r-- | awk-edits/Syntax-highlighting.awk | 28 |
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:]]*[^-\\]->/, "<span class=\"SH-kwd\">&</span>"); - gsub(/\|/, "<span class=\"SH-kwd2\">&</span>"); + hi("->", "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|;|\|\||&&)($|[[:blank:]])/, "<span class=\"SH-kwd\">&</span>"); + 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:]]+=/, "<span class=\"SH-cls\">&</span>"); gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "<span class=\"SH-fnc\">&</span>"); gsub(/[\{\}]/, "<span class=\"SH-fnc\">&</span>"); |