| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- define(function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
- var RubyExports = require("./ruby_highlight_rules");
- var RubyHighlightRules = RubyExports.RubyHighlightRules;
- var HamlHighlightRules = function() {
- // regexp must not have capturing parentheses. Use (?:) instead.
- // regexps are ordered -> the first match is used
- this.$rules =
- {
- "start": [
- {
- token : "punctuation.section.comment",
- regex : /^\s*\/.*/
- },
- {
- token : "punctuation.section.comment",
- regex : /^\s*#.*/
- },
- {
- token: "string.quoted.double",
- regex: "==.+?=="
- },
- {
- token: "keyword.other.doctype",
- regex: "^!!!\\s*(?:[a-zA-Z0-9-_]+)?"
- },
- RubyExports.qString,
- RubyExports.qqString,
- RubyExports.tString,
- {
- token: ["entity.name.tag.haml"],
- regex: /^\s*%[\w:]+/,
- next: "tag_single"
- },
- {
- token: [ "meta.escape.haml" ],
- regex: "^\\s*\\\\."
- },
- RubyExports.constantNumericHex,
- RubyExports.constantNumericFloat,
-
- RubyExports.constantOtherSymbol,
- {
- token: "text",
- regex: "=|-|~",
- next: "embedded_ruby"
- }
- ],
- "tag_single": [
- {
- token: "entity.other.attribute-name.class.haml",
- regex: "\\.[\\w-]+"
- },
- {
- token: "entity.other.attribute-name.id.haml",
- regex: "#[\\w-]+"
- },
- {
- token: "punctuation.section",
- regex: "\\{",
- next: "section"
- },
-
- RubyExports.constantOtherSymbol,
-
- {
- token: "text",
- regex: /\s/,
- next: "start"
- },
- {
- token: "empty",
- regex: "$|(?!\\.|#|\\{|\\[|=|-|~|\\/)",
- next: "start"
- }
- ],
- "section": [
- RubyExports.constantOtherSymbol,
-
- RubyExports.qString,
- RubyExports.qqString,
- RubyExports.tString,
-
- RubyExports.constantNumericHex,
- RubyExports.constantNumericFloat,
- {
- token: "punctuation.section",
- regex: "\\}",
- next: "start"
- }
- ],
- "embedded_ruby": [
- RubyExports.constantNumericHex,
- RubyExports.constantNumericFloat,
- {
- token : "support.class", // class name
- regex : "[A-Z][a-zA-Z_\\d]+"
- },
- {
- token : new RubyHighlightRules().getKeywords(),
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
- },
- {
- token : ["keyword", "text", "text"],
- regex : "(?:do|\\{)(?: \\|[^|]+\\|)?$",
- next : "start"
- },
- {
- token : ["text"],
- regex : "^$",
- next : "start"
- },
- {
- token : ["text"],
- regex : "^(?!.*\\|\\s*$)",
- next : "start"
- }
- ]
- }
- };
- oop.inherits(HamlHighlightRules, TextHighlightRules);
- exports.HamlHighlightRules = HamlHighlightRules;
- });
|