Projekt

Obecné

Profil

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

    
4
var oop = require("../lib/oop");
5
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6
var CirruHighlightRules = function() {
7
    this.$rules = {
8
        start: [{
9
            token: 'constant.numeric',
10
            regex: /[\d\.]+/
11
        }, {
12
            token: 'comment.line.double-dash',
13
            regex: /--/,
14
            next: 'comment'
15
        }, {
16
            token: 'storage.modifier',
17
            regex: /\(/
18
        }, {
19
            token: 'storage.modifier',
20
            regex: /,/,
21
            next: 'line'
22
        }, {
23
            token: 'support.function',
24
            regex: /[^\(\)"\s{}\[\]]+/,
25
            next: 'line'
26
        }, {
27
            token: 'string.quoted.double',
28
            regex: /"/,
29
            next: 'string'
30
        }, {
31
            token: 'storage.modifier',
32
            regex: /\)/
33
        }],
34
        comment: [{
35
            token: 'comment.line.double-dash',
36
            regex: / +[^\n]+/,
37
            next: 'start'
38
        }],
39
        string: [{
40
            token: 'string.quoted.double',
41
            regex: /"/,
42
            next: 'line'
43
        }, {
44
            token: 'constant.character.escape',
45
            regex: /\\/,
46
            next: 'escape'
47
        }, {
48
            token: 'string.quoted.double',
49
            regex: /[^\\"]+/
50
        }],
51
        escape: [{
52
            token: 'constant.character.escape',
53
            regex: /./,
54
            next: 'string'
55
        }],
56
        line: [{
57
            token: 'constant.numeric',
58
            regex: /[\d\.]+/
59
        }, {
60
            token: 'markup.raw',
61
            regex: /^\s*/,
62
            next: 'start'
63
        }, {
64
            token: 'storage.modifier',
65
            regex: /\$/,
66
            next: 'start'
67
        }, {
68
            token: 'variable.parameter',
69
            regex: /[^\(\)"\s{}\[\]]+/
70
        }, {
71
            token: 'storage.modifier',
72
            regex: /\(/,
73
            next: 'start'
74
        }, {
75
            token: 'storage.modifier',
76
            regex: /\)/
77
        }, {
78
            token: 'markup.raw',
79
            regex: /^ */,
80
            next: 'start'
81
        }, {
82
            token: 'string.quoted.double',
83
            regex: /"/,
84
            next: 'string'
85
        }]
86
    };
87

    
88
};
89

    
90
oop.inherits(CirruHighlightRules, TextHighlightRules);
91

    
92
exports.CirruHighlightRules = CirruHighlightRules;
93
});
94

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

    
98
var oop = require("../../lib/oop");
99
var BaseFoldMode = require("./fold_mode").FoldMode;
100
var Range = require("../../range").Range;
101

    
102
var FoldMode = exports.FoldMode = function() {};
103
oop.inherits(FoldMode, BaseFoldMode);
104

    
105
(function() {
106

    
107
    this.getFoldWidgetRange = function(session, foldStyle, row) {
108
        var range = this.indentationBlock(session, row);
109
        if (range)
110
            return range;
111

    
112
        var re = /\S/;
113
        var line = session.getLine(row);
114
        var startLevel = line.search(re);
115
        if (startLevel == -1 || line[startLevel] != "#")
116
            return;
117

    
118
        var startColumn = line.length;
119
        var maxRow = session.getLength();
120
        var startRow = row;
121
        var endRow = row;
122

    
123
        while (++row < maxRow) {
124
            line = session.getLine(row);
125
            var level = line.search(re);
126

    
127
            if (level == -1)
128
                continue;
129

    
130
            if (line[level] != "#")
131
                break;
132

    
133
            endRow = row;
134
        }
135

    
136
        if (endRow > startRow) {
137
            var endColumn = session.getLine(endRow).length;
138
            return new Range(startRow, startColumn, endRow, endColumn);
139
        }
140
    };
141
    this.getFoldWidget = function(session, foldStyle, row) {
142
        var line = session.getLine(row);
143
        var indent = line.search(/\S/);
144
        var next = session.getLine(row + 1);
145
        var prev = session.getLine(row - 1);
146
        var prevIndent = prev.search(/\S/);
147
        var nextIndent = next.search(/\S/);
148

    
149
        if (indent == -1) {
150
            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : "";
151
            return "";
152
        }
153
        if (prevIndent == -1) {
154
            if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
155
                session.foldWidgets[row - 1] = "";
156
                session.foldWidgets[row + 1] = "";
157
                return "start";
158
            }
159
        } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
160
            if (session.getLine(row - 2).search(/\S/) == -1) {
161
                session.foldWidgets[row - 1] = "start";
162
                session.foldWidgets[row + 1] = "";
163
                return "";
164
            }
165
        }
166

    
167
        if (prevIndent!= -1 && prevIndent < indent)
168
            session.foldWidgets[row - 1] = "start";
169
        else
170
            session.foldWidgets[row - 1] = "";
171

    
172
        if (indent < nextIndent)
173
            return "start";
174
        else
175
            return "";
176
    };
177

    
178
}).call(FoldMode.prototype);
179

    
180
});
181

    
182
ace.define("ace/mode/cirru",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cirru_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) {
183
"use strict";
184

    
185
var oop = require("../lib/oop");
186
var TextMode = require("./text").Mode;
187
var CirruHighlightRules = require("./cirru_highlight_rules").CirruHighlightRules;
188
var CoffeeFoldMode = require("./folding/coffee").FoldMode;
189

    
190
var Mode = function() {
191
    this.HighlightRules = CirruHighlightRules;
192
    this.foldingRules = new CoffeeFoldMode();
193
    this.$behaviour = this.$defaultBehaviour;
194
};
195
oop.inherits(Mode, TextMode);
196

    
197
(function() {
198
    this.lineCommentStart = "--";
199
    this.$id = "ace/mode/cirru";
200
}).call(Mode.prototype);
201

    
202
exports.Mode = Mode;
203
});                (function() {
204
                    ace.require(["ace/mode/cirru"], function(m) {
205
                        if (typeof module == "object" && typeof exports == "object" && module) {
206
                            module.exports = m;
207
                        }
208
                    });
209
                })();
210
            
(43-43/244)