## Here is an example for Gentoo ebuilds/eclasses
##
syntax "ebuild" "\.e(build|class)$"
## All the standard portage functions
color brightgreen "^src_(unpack|prepare|configure|compile|install|test)" "^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
## Highlight bash related syntax
color green "[[:<:]](case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while|continue|break)[[:>:]]"
color green "[[:<:]](declare|eval|exec|let)[[:>:]]"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-[edfgruwxL][[:>:]]"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)[[:>:]]"
## Highlight variables ... official portage ones in red, all others in bright red
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color red "[[:<:]](EAPI|ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|(P|R)?DEPEND|PROVIDE|PROPERTIES|RESTRICT|USERLAND)[[:>:]]"
color red "[[:<:]](S|D|T|PV|PF|P|PN|PR|PVR|A|CATEGORY|DISTDIR|FILESDIR|ROOT|WORKDIR)[[:>:]]" "[[:<:]](AS|C(PP|XX)?|LD)FLAGS[[:>:]]" "[[:<:]]C(HOST|TARGET|BUILD)[[:>:]]"
color red "[[:<:]]QA_((TEXTRELS|EXECSTACK|WX_LOAD)(_[a-zA-Z_0-9]+)?|DT_HASH|PRESTRIPPED)[[:>:]]" "[[:<:]]WANT_AUTO(CONF|MAKE)[[:>:]]" "[[:<:]]AT_M4DIR[[:>:]]"
## Highlight portage commands
color magenta "[[:<:]]use(_(with|enable))?[[:>:]] [!a-zA-Z0-9_+ -]*" "inherit.*"
color brightblue "[[:<:]]e(begin|end|conf|install|make|qmake[34]|ant|(qa)?warn|infon?|error|log|patch|new(group|user))[[:>:]]"
color brightblue "[[:<:]]e(pause|beep|mktemp|(cvs|svn)_clean|punt_cxx)[[:>:]]" "[[:<:]]e(aclocal|auto(reconf|header|conf|make))[[:>:]]"
color brightblue "[[:<:]]built_with_use[[:>:]]" "[[:<:]]make_desktop_entry[[:>:]]" "[[:<:]]unpack(_(makeself|pdv))?[[:>:]]"
color brightblue "[[:<:]]die[[:>:]]" "[[:<:]]use(_(with|enable))?[[:>:]]" "[[:<:]]inherit[[:>:]]" "[[:<:]]has[[:>:]]" "[[:<:]](has|best)_version[[:>:]]"
color brightblue "[[:<:]](do|new)(ins|(games)?s?bin|doc|lib(\.so|\.a)?|man|info|exe|initd|confd|envd|pam|menu|icon)[[:>:]]"
color brightblue "[[:<:]]do(python|sed|dir|hard|sym|html|jar|mo)[[:>:]]" "[[:<:]]keepdir[[:>:]]"
color brightblue "prepall(docs|info|man|strip)?" "prep(info|lib|lib\.(so|a)|man|strip|gamesdirs)"
color brightblue "[[:<:]](doc|ins|exe)?into[[:>:]]" "[[:<:]](f|games)(owners|perms)[[:>:]]" "[[:<:]](exe|ins|dir)opts[[:>:]]"
## Highlight common commands used in ebuilds
color blue "[[:<:]]make[[:>:]]" "[[:<:]](awk|cat|cd|chmod|chown|cp|echo|env|export|find|e?grep|ln|mkdir|mv|rm|sed|set|tar|touch|unset|xargs)[[:>:]]"
## Highlight comments (doesnt work that well)
color yellow "(^|[[:space:]])#.*$"
## Highlight strings (doesnt work that well)
color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
## Trailing space is bad!
color ,green "[[:space:]]+$"

## Here is an example for Portage control files
##
syntax "/etc/portage" "\.(keywords|mask|unmask|use)(/.+)?$"
## Base text:
color green "^.+$"
## Use flags:
color brightred "[[:space:]]+\+?[a-zA-Z0-9_-]+"
color brightblue "[[:space:]]+-[a-zA-Z0-9_-]+"
## Likely version and slot numbers:
color magenta "-[[:digit:]].*([[:space:]]|$)"
color magenta ":[^[:space:]]+([[:space:]]|$)"
## Accepted arches:
color white "[~-]?[[:<:]](alpha|amd64|arm|hppa|ia64|mips|ppc|ppc64|s390|sh|sparc(-fbsd)?|x86(-fbsd)?)[[:>:]]"
color white "[[:space:]][*~-]?\*"
## Categories:
color cyan "^[[:space:]]*.*/"
## Masking regulators:
color brightmagenta "^[[:space:]]*(=|~|<|<=|=<|>|>=|=>)"
## Comments:
color yellow "#.*$"
