mirror of
https://github.com/zyedidia/micro.git
synced 2025-06-18 23:05:40 -04:00

Turning `header` patterns into `signature` patterns in all syntax files was a mistake. The two are different things. In almost all syntax files those patterns are things like shebangs or <?xml ... ?> or <!DOCTYPE html5> i.e. things that: 1. can be (and should be) used for detecting the filetype when there is no `filename` match (and that is actually the purpose of those patterns, so it's a regression that it doesn't work anymore). 2. should only occur in the first line of the file, not in the first 100 lines or so. In other words, the old `header` semantics was exactly what was needed for those filetypes, while the new `signature` semantics makes little sense for them. So replace `signature` back with `header` in most syntax files. Keep `signature` only in C++ and Objective-C syntax files, for which it was actually introduced.
45 lines
1.5 KiB
YAML
45 lines
1.5 KiB
YAML
filetype: awk
|
|
|
|
detect:
|
|
filename: "\\.awk$"
|
|
header: "^#!.*bin/(env +)?awk( |$)"
|
|
|
|
rules:
|
|
- preproc: "\\$[A-Za-z0-9_!@#$*?\\-]+"
|
|
- preproc: "\\b(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\\b"
|
|
- preproc: "\\b(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\\b"
|
|
- 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(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(split|sprintf|strtonum|sub|substr|tolower|toupper)\\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:
|
|
start: "\""
|
|
end: "\""
|
|
skip: "\\\\."
|
|
rules:
|
|
- constant.specialChar: "\\\\."
|
|
|
|
- constant.string:
|
|
start: "'"
|
|
end: "'"
|
|
skip: "\\\\."
|
|
rules:
|
|
- constant.specialChar: "\\\\."
|
|
|
|
- comment:
|
|
start: "#"
|
|
end: "$"
|
|
rules:
|
|
- todo: "(TODO|XXX|FIXME):?"
|
|
|