filetype: coffeescript
-detect:
+detect:
filename: "\\.coffee$"
- header: "^#!.*/(env +)?coffee"
rules:
- - symbol.operator: "[!&|=/*+\\-<>]|\\b(and|or|is|isnt|not)\\b"
- - identifier.class: "[A-Za-z_][A-Za-z0-9_]*:[[:space:]]*(->|\\()|->"
+ - symbol.operator: "[!&|=/*+-<>]|\\b(and|or|is|isnt|not)\\b"
+ - identifier.class: "([A-Za-z_][A-Za-z0-9_]*:[[:space:]]*(->|\\()|->)"
- symbol.brackets: "[()]"
- - statement: "\\b(for|of|continue|break|isnt|null|unless|this|else|if|return)\\b"
- - statement: "\\b(try|catch|finally|throw|new|delete|typeof|in|instanceof)\\b"
- - statement: "\\b(debugger|switch|while|do|class|extends|super)\\b"
- - statement: "\\b(undefined|then|unless|until|loop|of|by|when)\\b"
- - constant.bool: "\\b(true|false|yes|no|on|off)\\b"
+ - statement: "\\b(for|of|continue|break|isnt|null|unless|this|else|if|return)\\b"
+ - statement: "\\b(try|catch|finally|throw|new|delete|typeof|in|instanceof)\\b"
+ - statement: "\\b(debugger|switch|while|do|class|extends|super)\\b"
+ - statement: "\\b(undefined|then|unless|until|loop|of|by|when)\\b"
+ - constant.bool: "\\b(true|false|yes|no|on|off)\\b"
- identifier: "@[A-Za-z0-9_]*"
- - constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- - comment: "(^|[[:space:]])#([^{].*)?$"
- - indent-char.whitespace: "[[:space:]]+$"
- - indent-char: " + +| + +"
- - preproc.shebang: "#!.+$"
+
+ - constant.string:
+ start: "\""
+ end: "(?<!\\\\)\""
+ rules:
+ - constant.specialChar: "\\\\."
+
+ - comment:
+ start: "#"
+ end: "$"
+ rules:
+ - todo: "(TODO|XXX|FIXME):?"
+