mirror of
https://github.com/zyedidia/micro.git
synced 2024-10-27 04:31:18 +03:00
0859f4aa36
* highlighter: Fix region & pattern detection * syntax/sh: Highlight upper case options too * syntax/c(pp): Try to synchronize the rules to lower the maintenance effort * syntax/ruby: Fix explicit filename detection in directories * highlighter: Respect skip rules in regions * syntax/sh: Fix parameter expansion, cond. flags and generalize filename via "" * syntax/php|vi: Correct strings in comments to comments only Additionally improve vimscript comment handling. * highlighter: Remove problematic start|end check in find(all)Index() ...and additionally remove recursive region end detection
61 lines
3.0 KiB
YAML
61 lines
3.0 KiB
YAML
filetype: php
|
|
|
|
detect:
|
|
filename: "\\.php[2345s~]?$"
|
|
|
|
rules:
|
|
- symbol.operator: "<|>"
|
|
- error: "<[^!].*?>"
|
|
- symbol.tag: "(?i)<[/]?(a(bbr|cronym|ddress|pplet|rea|rticle|side|udio)?|b(ase(font)?|d(i|o)|ig|lockquote|r)?|ca(nvas|ption)|center|cite|co(de|l|lgroup)|d(ata(list)?|d|el|etails|fn|ialog|ir|l|t)|em(bed)?|fieldset|fig(caption|ure)|font|form|(i)?frame|frameset|h[1-6]|hr|i|img|in(put|s)|kbd|keygen|label|legend|li(nk)?|ma(in|p|rk)|menu(item)?|met(a|er)|nav|no(frames|script)|o(l|pt(group|ion)|utput)|p(aram|icture|re|rogress)?|q|r(p|t|uby)|s(trike)?|samp|se(ction|lect)|small|source|span|strong|su(b|p|mmary)|textarea|time|track|u(l)?|var|video|wbr)( .*|>)*?>"
|
|
- symbol.tag.extended: "(?i)<[/]?(body|div|html|head(er)?|footer|title|table|t(body|d|h(ead)?|r|foot))( .*|>)*?>"
|
|
- preproc: "(?i)<[/]?(script|style)( .*|>)*?>"
|
|
- preproc: "<\\?(php|=)?"
|
|
- preproc: "\\?>"
|
|
- preproc: "<!DOCTYPE.+?>"
|
|
- special: "&[^;[[:space:]]]*;"
|
|
- symbol: "[:=]"
|
|
- identifier: "(alt|bgcolor|height|href|label|longdesc|name|onclick|onfocus|onload|onmouseover|size|span|src|style|target|type|value|width)="
|
|
- constant.number: "(?i)#[0-9a-fA-F]{6,6}"
|
|
- constant.string.url: "(ftp(s)?|http(s)?|git|chrome)://[^ ]+"
|
|
- comment: "<!--.+?-->"
|
|
- default: "<\\?(php|=)\" end=\"\\?>"
|
|
- identifier.class: "([a-zA-Z0-9_-]+)\\("
|
|
- type: "\\b(array|bool|callable|float|int|iterable|object|mixed|string|void)\\b"
|
|
- identifier.class: "[a-zA-Z\\\\]+::"
|
|
- identifier: "\\b([A-Z][a-zA-Z0-9_]+)\\b"
|
|
- identifier: "([A-Z0-9_]+)[;|\\s|\\)|,]"
|
|
- type.keyword: "\\b(global|final|public|private|protected|static|const|var)\\b"
|
|
- statement: "\\b(abstract|catch|class|declare|do|else(if)?|end(declare|for(each)?|if|switch|while)|enum|finally|for(each)|function|if|interface|namespace|switch|trait|try|while)\\b"
|
|
- identifier: "\\bnew\\s+([a-zA-Z0-9\\\\]+)"
|
|
- special: "\\b(as|and|break|case|clone|continue|default|die|fn|echo|empty|eval|exit|extends|goto|or|include(_once)?|implements|instanceof|insteadof|isset|list|match|new|print|return|require(_once)?|unset|use|throw|xor|yield(\\s+from))\\b"
|
|
- constant.bool: "\\b(true|false|null|TRUE|FALSE|NULL)\\b"
|
|
- constant: "[\\s|=|\\s|\\(|/|+|-|\\*|\\[]"
|
|
- constant.number: "[0-9]"
|
|
- identifier: "(\\$this|parent|self|\\$this->)"
|
|
- symbol.operator: "(=>|===|!==|==|!=|&&|\\|\\||::|=|->|\\!)"
|
|
- identifier.var: "(\\$[a-zA-Z0-9\\-_]+)"
|
|
- symbol.operator: "[\\(|\\)|/|+|\\-|\\*|\\[|.|,|;]"
|
|
- symbol.brackets: "(\\[|\\]|\\{|\\}|[()])"
|
|
|
|
- comment:
|
|
start: "(^|[[:space:]])*(//|#)"
|
|
end: "$"
|
|
rules: []
|
|
- comment:
|
|
start: "/\\*"
|
|
end: "\\*/"
|
|
rules: []
|
|
|
|
- constant.string:
|
|
start: "\""
|
|
end: "\""
|
|
skip: "\\\\."
|
|
rules:
|
|
- constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
|
|
- constant.string:
|
|
start: "\'"
|
|
end: "\'"
|
|
skip: "\\\\."
|
|
rules:
|
|
- constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
|