filetype: awk
-detect:
+detect:
filename: "\\.awk$"
header: "^#!.*bin/(env +)?awk( |$)"
- preproc: "\\b(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\\b"
- identifier.class: "\\b(function|extension|BEGIN|END)\\b"
- symbol.operator: "[\\-+*/%^|!=&<>?;:]|\\\\|\\[|\\]"
- - statement: "\\b(for|if|while|do|else|in|delete|exit)\\b"
- - special: "\\b(break|continue|return)\\b"
+ - statement: "\\b(for|if|while|do|else|in|delete|exit)\\b"
+ - special: "\\b(break|continue|return)\\b"
- statement: "\\b(close|getline|next|nextfile|print|printf|system|fflush)\\b"
- statement: "\\b(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\\b"
- statement: "\\b(asort|asorti|gensub|gsub|index|length|match)\\b"
- statement: "\\b(mktime|strftime|systime)\\b"
- statement: "\\b(and|compl|lshift|or|rshift|xor)\\b"
- statement: "\\b(bindtextdomain|dcgettext|dcngettext)\\b"
- - special: "/.*[^\\\\]/"
- - constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- - constant.specialChar: "\\\\."
- - comment: "(^|[[:space:]])#([^{].*)?$"
- - todo: "TODO:?"
- - indent-char.: "[[:space:]]+$"
- - indent-char: " + +| + +"
+ - special: "/.*[^\\\\]/"
+
+ - constant.string:
+ start: "\""
+ end: "\""
+ skip: "\\\\."
+ rules:
+ - constant.specialChar: "\\\\."
+
+ - constant.string:
+ start: "'"
+ end: "'"
+ skip: "\\\\."
+ rules:
+ - constant.specialChar: "\\\\."
+
+ - comment:
+ start: "#"
+ end: "$"
+ rules:
+ - todo: "(TODO|XXX|FIXME):?"
+