Projekt

Obecné

Profil

Stáhnout (23.8 KB) Statistiky
| Větev: | Tag: | Revize:
1
ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
"use strict";
3

    
4
var oop = require("../lib/oop");
5
var lang = require("../lib/lang");
6
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
7
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
8
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
9
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom";
10
var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
11
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
12

    
13
var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
14
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
15
var pseudoClasses  = exports.pseudoClasses =  "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
16

    
17
var CssHighlightRules = function() {
18

    
19
    var keywordMapper = this.createKeywordMapper({
20
        "support.function": supportFunction,
21
        "support.constant": supportConstant,
22
        "support.type": supportType,
23
        "support.constant.color": supportConstantColor,
24
        "support.constant.fonts": supportConstantFonts
25
    }, "text", true);
26

    
27
    this.$rules = {
28
        "start" : [{
29
            include : ["strings", "url", "comments"]
30
        }, {
31
            token: "paren.lparen",
32
            regex: "\\{",
33
            next:  "ruleset"
34
        }, {
35
            token: "paren.rparen",
36
            regex: "\\}"
37
        }, {
38
            token: "string",
39
            regex: "@(?!viewport)",
40
            next:  "media"
41
        }, {
42
            token: "keyword",
43
            regex: "#[a-z0-9-_]+"
44
        }, {
45
            token: "keyword",
46
            regex: "%"
47
        }, {
48
            token: "variable",
49
            regex: "\\.[a-z0-9-_]+"
50
        }, {
51
            token: "string",
52
            regex: ":[a-z0-9-_]+"
53
        }, {
54
            token : "constant.numeric",
55
            regex : numRe
56
        }, {
57
            token: "constant",
58
            regex: "[a-z0-9-_]+"
59
        }, {
60
            caseInsensitive: true
61
        }],
62

    
63
        "media": [{
64
            include : ["strings", "url", "comments"]
65
        }, {
66
            token: "paren.lparen",
67
            regex: "\\{",
68
            next:  "start"
69
        }, {
70
            token: "paren.rparen",
71
            regex: "\\}",
72
            next:  "start"
73
        }, {
74
            token: "string",
75
            regex: ";",
76
            next:  "start"
77
        }, {
78
            token: "keyword",
79
            regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
80
                + "|page|font|keyframes|viewport|counter-style|font-feature-values"
81
                + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
82
        }],
83

    
84
        "comments" : [{
85
            token: "comment", // multi line comment
86
            regex: "\\/\\*",
87
            push: [{
88
                token : "comment",
89
                regex : "\\*\\/",
90
                next : "pop"
91
            }, {
92
                defaultToken : "comment"
93
            }]
94
        }],
95

    
96
        "ruleset" : [{
97
            regex : "-(webkit|ms|moz|o)-",
98
            token : "text"
99
        }, {
100
            token : "punctuation.operator",
101
            regex : "[:;]"
102
        }, {
103
            token : "paren.rparen",
104
            regex : "\\}",
105
            next : "start"
106
        }, {
107
            include : ["strings", "url", "comments"]
108
        }, {
109
            token : ["constant.numeric", "keyword"],
110
            regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
111
        }, {
112
            token : "constant.numeric",
113
            regex : numRe
114
        }, {
115
            token : "constant.numeric",  // hex6 color
116
            regex : "#[a-f0-9]{6}"
117
        }, {
118
            token : "constant.numeric", // hex3 color
119
            regex : "#[a-f0-9]{3}"
120
        }, {
121
            token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
122
            regex : pseudoElements
123
        }, {
124
            token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
125
            regex : pseudoClasses
126
        }, {
127
            include: "url"
128
        }, {
129
            token : keywordMapper,
130
            regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
131
        }, {
132
            caseInsensitive: true
133
        }],
134

    
135
        url: [{
136
            token : "support.function",
137
            regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
138
            push: [{
139
                token : "support.function",
140
                regex : "\\)",
141
                next : "pop"
142
            }, {
143
                defaultToken: "string"
144
            }]
145
        }],
146

    
147
        strings: [{
148
            token : "string.start",
149
            regex : "'",
150
            push : [{
151
                token : "string.end",
152
                regex : "'|$",
153
                next: "pop"
154
            }, {
155
                include : "escapes"
156
            }, {
157
                token : "constant.language.escape",
158
                regex : /\\$/,
159
                consumeLineEnd: true
160
            }, {
161
                defaultToken: "string"
162
            }]
163
        }, {
164
            token : "string.start",
165
            regex : '"',
166
            push : [{
167
                token : "string.end",
168
                regex : '"|$',
169
                next: "pop"
170
            }, {
171
                include : "escapes"
172
            }, {
173
                token : "constant.language.escape",
174
                regex : /\\$/,
175
                consumeLineEnd: true
176
            }, {
177
                defaultToken: "string"
178
            }]
179
        }],
180
        escapes: [{
181
            token : "constant.language.escape",
182
            regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
183
        }]
184

    
185
    };
186

    
187
    this.normalizeRules();
188
};
189

    
190
oop.inherits(CssHighlightRules, TextHighlightRules);
191

    
192
exports.CssHighlightRules = CssHighlightRules;
193

    
194
});
195

    
196
ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) {
197
"use strict";
198

    
199
var oop = require("../lib/oop");
200
var lang = require("../lib/lang");
201
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
202
var CssHighlightRules = require("./css_highlight_rules");
203

    
204
var ScssHighlightRules = function() {
205
    
206
    var properties = lang.arrayToMap(CssHighlightRules.supportType.split("|"));
207

    
208
    var functions = lang.arrayToMap(
209
        ("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|" +
210
         "alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|" + 
211
         "floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|" + 
212
         "nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|" +
213
         "scale_color|transparentize|type_of|unit|unitless|unquote").split("|")
214
    );
215

    
216
    var constants = lang.arrayToMap(CssHighlightRules.supportConstant.split("|"));
217

    
218
    var colors = lang.arrayToMap(CssHighlightRules.supportConstantColor.split("|"));
219
    
220
    var keywords = lang.arrayToMap(
221
        ("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare").split("|")
222
    );
223
    
224
    var tags = lang.arrayToMap(
225
        ("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|" + 
226
         "big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|" + 
227
         "command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|" + 
228
         "figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|" + 
229
         "header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|" + 
230
         "link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|" + 
231
         "option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|" + 
232
         "small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|" + 
233
         "textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp").split("|")
234
    );
235

    
236
    var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
237

    
238
    this.$rules = {
239
        "start" : [
240
            {
241
                token : "comment",
242
                regex : "\\/\\/.*$"
243
            },
244
            {
245
                token : "comment", // multi line comment
246
                regex : "\\/\\*",
247
                next : "comment"
248
            }, {
249
                token : "string", // single line
250
                regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
251
            }, {
252
                token : "string", // multi line string start
253
                regex : '["].*\\\\$',
254
                next : "qqstring"
255
            }, {
256
                token : "string", // single line
257
                regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
258
            }, {
259
                token : "string", // multi line string start
260
                regex : "['].*\\\\$",
261
                next : "qstring"
262
            }, {
263
                token : "constant.numeric",
264
                regex : numRe + "(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
265
            }, {
266
                token : "constant.numeric", // hex6 color
267
                regex : "#[a-f0-9]{6}"
268
            }, {
269
                token : "constant.numeric", // hex3 color
270
                regex : "#[a-f0-9]{3}"
271
            }, {
272
                token : "constant.numeric",
273
                regex : numRe
274
            }, {
275
                token : ["support.function", "string", "support.function"],
276
                regex : "(url\\()(.*)(\\))"
277
            }, {
278
                token : function(value) {
279
                    if (properties.hasOwnProperty(value.toLowerCase()))
280
                        return "support.type";
281
                    if (keywords.hasOwnProperty(value))
282
                        return "keyword";
283
                    else if (constants.hasOwnProperty(value))
284
                        return "constant.language";
285
                    else if (functions.hasOwnProperty(value))
286
                        return "support.function";
287
                    else if (colors.hasOwnProperty(value.toLowerCase()))
288
                        return "support.constant.color";
289
                    else if (tags.hasOwnProperty(value.toLowerCase()))
290
                        return "variable.language";
291
                    else
292
                        return "text";
293
                },
294
                regex : "\\-?[@a-z_][@a-z0-9_\\-]*"
295
            }, {
296
                token : "variable",
297
                regex : "[a-z_\\-$][a-z0-9_\\-$]*\\b"
298
            }, {
299
                token: "variable.language",
300
                regex: "#[a-z0-9-_]+"
301
            }, {
302
                token: "variable.language",
303
                regex: "\\.[a-z0-9-_]+"
304
            }, {
305
                token: "variable.language",
306
                regex: ":[a-z0-9-_]+"
307
            }, {
308
                token: "constant",
309
                regex: "[a-z0-9-_]+"
310
            }, {
311
                token : "keyword.operator",
312
                regex : "<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"
313
            }, {
314
                token : "paren.lparen",
315
                regex : "[[({]"
316
            }, {
317
                token : "paren.rparen",
318
                regex : "[\\])}]"
319
            }, {
320
                token : "text",
321
                regex : "\\s+"
322
            }, {
323
                caseInsensitive: true
324
            }
325
        ],
326
        "comment" : [
327
            {
328
                token : "comment", // closing comment
329
                regex : "\\*\\/",
330
                next : "start"
331
            }, {
332
                defaultToken : "comment"
333
            }
334
        ],
335
        "qqstring" : [
336
            {
337
                token : "string",
338
                regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
339
                next : "start"
340
            }, {
341
                token : "string",
342
                regex : '.+'
343
            }
344
        ],
345
        "qstring" : [
346
            {
347
                token : "string",
348
                regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",
349
                next : "start"
350
            }, {
351
                token : "string",
352
                regex : '.+'
353
            }
354
        ]
355
    };
356
};
357

    
358
oop.inherits(ScssHighlightRules, TextHighlightRules);
359

    
360
exports.ScssHighlightRules = ScssHighlightRules;
361

    
362
});
363

    
364
ace.define("ace/mode/sass_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/scss_highlight_rules"], function(require, exports, module) {
365
"use strict";
366

    
367
var oop = require("../lib/oop");
368
var lang = require("../lib/lang");
369
var ScssHighlightRules = require("./scss_highlight_rules").ScssHighlightRules;
370

    
371
var SassHighlightRules = function() {
372
    ScssHighlightRules.call(this);
373
    var start = this.$rules.start;
374
    if (start[1].token == "comment") {
375
        start.splice(1, 1, {
376
            onMatch: function(value, currentState, stack) {
377
                stack.unshift(this.next, -1, value.length - 2, currentState);
378
                return "comment";
379
            },
380
            regex: /^\s*\/\*/,
381
            next: "comment"
382
        }, {
383
            token: "error.invalid",
384
            regex: "/\\*|[{;}]"
385
        }, {
386
            token: "support.type",
387
            regex: /^\s*:[\w\-]+\s/
388
        });
389
        
390
        this.$rules.comment = [
391
            {regex: /^\s*/, onMatch: function(value, currentState, stack) {
392
                if (stack[1] === -1)
393
                    stack[1] = Math.max(stack[2], value.length - 1);
394
                if (value.length <= stack[1]) {stack.shift();stack.shift();stack.shift();
395
                    this.next = stack.shift();
396
                    return "text";
397
                } else {
398
                    this.next = "";
399
                    return "comment";
400
                }
401
            }, next: "start"},
402
            {defaultToken: "comment"}
403
        ];
404
    }
405
};
406

    
407
oop.inherits(SassHighlightRules, ScssHighlightRules);
408

    
409
exports.SassHighlightRules = SassHighlightRules;
410

    
411
});
412

    
413
ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) {
414
"use strict";
415

    
416
var oop = require("../../lib/oop");
417
var BaseFoldMode = require("./fold_mode").FoldMode;
418
var Range = require("../../range").Range;
419

    
420
var FoldMode = exports.FoldMode = function() {};
421
oop.inherits(FoldMode, BaseFoldMode);
422

    
423
(function() {
424

    
425
    this.getFoldWidgetRange = function(session, foldStyle, row) {
426
        var range = this.indentationBlock(session, row);
427
        if (range)
428
            return range;
429

    
430
        var re = /\S/;
431
        var line = session.getLine(row);
432
        var startLevel = line.search(re);
433
        if (startLevel == -1 || line[startLevel] != "#")
434
            return;
435

    
436
        var startColumn = line.length;
437
        var maxRow = session.getLength();
438
        var startRow = row;
439
        var endRow = row;
440

    
441
        while (++row < maxRow) {
442
            line = session.getLine(row);
443
            var level = line.search(re);
444

    
445
            if (level == -1)
446
                continue;
447

    
448
            if (line[level] != "#")
449
                break;
450

    
451
            endRow = row;
452
        }
453

    
454
        if (endRow > startRow) {
455
            var endColumn = session.getLine(endRow).length;
456
            return new Range(startRow, startColumn, endRow, endColumn);
457
        }
458
    };
459
    this.getFoldWidget = function(session, foldStyle, row) {
460
        var line = session.getLine(row);
461
        var indent = line.search(/\S/);
462
        var next = session.getLine(row + 1);
463
        var prev = session.getLine(row - 1);
464
        var prevIndent = prev.search(/\S/);
465
        var nextIndent = next.search(/\S/);
466

    
467
        if (indent == -1) {
468
            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : "";
469
            return "";
470
        }
471
        if (prevIndent == -1) {
472
            if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
473
                session.foldWidgets[row - 1] = "";
474
                session.foldWidgets[row + 1] = "";
475
                return "start";
476
            }
477
        } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
478
            if (session.getLine(row - 2).search(/\S/) == -1) {
479
                session.foldWidgets[row - 1] = "start";
480
                session.foldWidgets[row + 1] = "";
481
                return "";
482
            }
483
        }
484

    
485
        if (prevIndent!= -1 && prevIndent < indent)
486
            session.foldWidgets[row - 1] = "start";
487
        else
488
            session.foldWidgets[row - 1] = "";
489

    
490
        if (indent < nextIndent)
491
            return "start";
492
        else
493
            return "";
494
    };
495

    
496
}).call(FoldMode.prototype);
497

    
498
});
499

    
500
ace.define("ace/mode/sass",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sass_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) {
501
"use strict";
502

    
503
var oop = require("../lib/oop");
504
var TextMode = require("./text").Mode;
505
var SassHighlightRules = require("./sass_highlight_rules").SassHighlightRules;
506
var FoldMode = require("./folding/coffee").FoldMode;
507

    
508
var Mode = function() {
509
    this.HighlightRules = SassHighlightRules;
510
    this.foldingRules = new FoldMode();
511
    this.$behaviour = this.$defaultBehaviour;
512
};
513
oop.inherits(Mode, TextMode);
514

    
515
(function() {   
516
    this.lineCommentStart = "//";
517
    this.$id = "ace/mode/sass";
518
}).call(Mode.prototype);
519

    
520
exports.Mode = Mode;
521

    
522
});                (function() {
523
                    ace.require(["ace/mode/sass"], function(m) {
524
                        if (typeof module == "object" && typeof exports == "object" && module) {
525
                            module.exports = m;
526
                        }
527
                    });
528
                })();
529
            
(159-159/244)