| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /* global define */
- define(function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
- function pop2(currentState, stack) {
- stack.splice(0, 3);
- return stack.shift() || "start";
- }
- var HandlebarsHighlightRules = function() {
- HtmlHighlightRules.call(this);
- var hbs = {
- regex : "(?={{)",
- push : "handlebars"
- };
- for (var key in this.$rules) {
- this.$rules[key].unshift(hbs);
- }
- this.$rules.handlebars = [{
- token : "comment.start",
- regex : "{{!--",
- push : [{
- token : "comment.end",
- regex : "--}}",
- next : pop2
- }, {
- defaultToken : "comment"
- }]
- }, {
- token : "comment.start",
- regex : "{{!",
- push : [{
- token : "comment.end",
- regex : "}}",
- next : pop2
- }, {
- defaultToken : "comment"
- }]
- }, {
- token : "support.function", // unescaped variable
- regex : "{{{",
- push : [{
- token : "support.function",
- regex : "}}}",
- next : pop2
- }, {
- token : "variable.parameter",
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*"
- }]
- }, {
- token : "storage.type.start", // begin section
- regex : "{{[#\\^/&]?",
- push : [{
- token : "storage.type.end",
- regex : "}}",
- next : pop2
- }, {
- token : "variable.parameter",
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*"
- }]
- }];
- this.normalizeRules();
- };
- oop.inherits(HandlebarsHighlightRules, HtmlHighlightRules);
- exports.HandlebarsHighlightRules = HandlebarsHighlightRules;
- });
|