]> git.lizzy.rs Git - micro.git/blob - runtime/syntax/gentoo-ebuild.yaml
Ignore tool files
[micro.git] / runtime / syntax / gentoo-ebuild.yaml
1 filetype: ebuild
2
3 detect:
4     filename: "\\.e(build|class)$"
5
6 rules:
7     # All the standard portage functions
8     - identifier: "^src_(unpack|compile|install|test)|^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
9       # Highlight bash related syntax
10     - statement: "\\b(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while|continue|break)\\b"
11     - statement: "(\\{|\\}|\\(|\\)|\\;|\\]|\\[|`|\\\\|\\$|<|>|!|=|&|\\|)"
12     - statement: "-(e|d|f|r|g|u|w|x|L)\\b"
13     - statement: "-(eq|ne|gt|lt|ge|le|s|n|z)\\b"
14       # Highlight variables ... official portage ones in red, all others in bright red
15     - preproc: "\\$\\{?[a-zA-Z_0-9]+\\}?"
16     - special: "\\b(ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|FILESDIR|WORKDIR|(P|R)?DEPEND|PROVIDE|DISTDIR|RESTRICT|USERLAND)\\b"
17     - special: "\\b(S|D|T|PV|PF|P|PN|A)\\b|\\bC(XX)?FLAGS\\b|\\bLDFLAGS\\b|\\bC(HOST|TARGET|BUILD)\\b"
18       # Highlight portage commands
19     - identifier: "\\buse(_(with|enable))?\\b [!a-zA-Z0-9_+ -]*|inherit.*"
20     - statement: "\\be(begin|end|conf|install|make|warn|infon?|error|log|patch|new(group|user))\\b"
21     - statement: "\\bdie\\b|\\buse(_(with|enable))?\\b|\\binherit\\b|\\bhas\\b|\\b(has|best)_version\\b|\\bunpack\\b"
22     - statement: "\\b(do|new)(ins|s?bin|doc|lib(\\.so|\\.a)|man|info|exe|initd|confd|envd|pam|menu|icon)\\b"
23     - statement: "\\bdo(python|sed|dir|hard|sym|html|jar|mo)\\b|\\bkeepdir\\b"
24     - statement: "prepall(docs|info|man|strip)|prep(info|lib|lib\\.(so|a)|man|strip)"
25     - statement: "\\b(doc|ins|exe)into\\b|\\bf(owners|perms)\\b|\\b(exe|ins|dir)opts\\b"
26       # Highlight common commands used in ebuilds
27     - type: "\\bmake\\b|\\b(cat|cd|chmod|chown|cp|echo|env|export|grep|let|ln|mkdir|mv|rm|sed|set|tar|touch|unset)\\b"
28
29     - constant.string:
30         start: "\""
31         end: "\""
32         skip: "\\\\."
33         rules:
34             - constant.specialChar: "\\\\."
35
36     - constant.string:
37         start: "'"
38         end: "'"
39         skip: "\\\\."
40         rules:
41             - constant.specialChar: "\\\\."
42
43     - comment:
44         start: "#"
45         end: "$"
46         rules:
47             - todo: "(TODO|XXX|FIXME):?"
48