## 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\>" "\" color red "\" "\" "\" ## Highlight portage commands color magenta "\ [!a-zA-Z0-9_+ -]*" "inherit.*" color brightblue "\" color brightblue "\" "\" color brightblue "\" "\" "\" color brightblue "\" "\" "\" "\" "\<(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 "\" "\" 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 "\" "\<(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 "#.*$"