Improve highlighting of shell builtins, common commands, and variables.

Patch by Mike Frysinger.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4615 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Benno Schulenberg 2014-02-26 21:33:47 +00:00
parent c05a2ee3d7
commit 5d5e930aa9
2 changed files with 14 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2014-02-26 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/sh.nanorc - Highlight more shell builtins and
common commands, and rewrite the variable highlighting to be
more exact and handle cases where string operations are used.
2014-02-26 Benno Schulenberg <bensberg@justemail.net> 2014-02-26 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init) - Put PageUp and PageDown * src/global.c (shortcut_init) - Put PageUp and PageDown
and also WhereIs and WhereIsNext together in the help lines and also WhereIs and WhereIsNext together in the help lines

View File

@ -4,13 +4,16 @@ syntax "sh" "\.sh$"
magic "(POSIX|Bourne.*) shell script text" magic "(POSIX|Bourne.*) shell script text"
header "^#!.*/(ba|k|pdk)?sh[-0-9_]*" header "^#!.*/(ba|k|pdk)?sh[-0-9_]*"
icolor brightgreen "^[0-9A-Z_]+\(\)" icolor brightgreen "^[0-9A-Z_]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>" color green "\<(break|case|continue|do|done|elif|else|esac|exit|fi|for|function|if|in|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)" color green "\<(declare|eval|exec|export|let|local)\>"
color green "[{}():;|`$<>!=&\\]" "(\]|\[)"
color green "-[Ldefgruwx]\>" color green "-[Ldefgruwx]\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>" color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightblue "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>" color brightblue "\<(awk|cat|cd|ch(grp|mod|own)|cp|echo|env|grep|install|ln|make|mkdir|mv|popd|printf|pushd|rm|rmdir|sed|set|tar|touch|umask|unset)\>"
color brightyellow ""(\\.|[^"])*"" # Basic variable names (no braces).
icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?" color brightred "\$[-0-9@*#?$!]" "\$[[:alpha:]_][[:alnum:]_]*"
color brightyellow "'(\\.|[^'])*'" # More complicated variable names; handles braces and replacements and arrays.
color brightred "\$\{[#!]?([-@*#?$!]|[0-9]+|[[:alpha:]_][[:alnum:]_]*)(\[([[:space:]]*[[:alnum:]_]+[[:space:]]*|@)\])?(([#%/]|:?[-=?+])[^}]*\}|\[|\})"
color cyan "(^|[[:space:]])#.*$" color cyan "(^|[[:space:]])#.*$"
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
color ,green "[[:space:]]+$" color ,green "[[:space:]]+$"