corrade-nucleus-nucleons – Blame information for rev 20

Subversion Repositories:
Rev:
Rev Author Line No. Line
20 office 1 define("ace/mode/mipsassembler_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  
7 var mipsassemblerHighlightRules = function() {
8  
9 this.$rules = {
10 start: [{
11 token: "string.start",
12 regex: '"',
13 next: "qstring"
14 }],
15 qstring: [{
16 token: "escape",
17 regex: /\\./,
18 }, {
19 token: "string.end",
20 regex: '"',
21 next: "start"
22 }],
23 }
24  
25 this.normalizeRules();
26 };
27  
28 mipsassemblerHighlightRules.metaData =
29  
30  
31 oop.inherits(mipsassemblerHighlightRules, TextHighlightRules);
32  
33 exports.mipsassemblerHighlightRules = mipsassemblerHighlightRules;
34 });
35  
36 define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
37 "use strict";
38  
39 var oop = require("../../lib/oop");
40 var Range = require("../../range").Range;
41 var BaseFoldMode = require("./fold_mode").FoldMode;
42  
43 var FoldMode = exports.FoldMode = function(commentRegex) {
44 if (commentRegex) {
45 this.foldingStartMarker = new RegExp(
46 this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
47 );
48 this.foldingStopMarker = new RegExp(
49 this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
50 );
51 }
52 };
53 oop.inherits(FoldMode, BaseFoldMode);
54  
55 (function() {
56  
57 this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
58 this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
59 this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
60 this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
61 this.startRegionRe = /^\s*(\/\*|\/\/)#region\b/;
62 this._getFoldWidgetBase = this.getFoldWidget;
63 this.getFoldWidget = function(session, foldStyle, row) {
64 var line = session.getLine(row);
65  
66 if (this.singleLineBlockCommentRe.test(line)) {
67 if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
68 return "";
69 }
70  
71 var fw = this._getFoldWidgetBase(session, foldStyle, row);
72  
73 if (!fw && this.startRegionRe.test(line))
74 return "start"; // lineCommentRegionStart
75  
76 return fw;
77 };
78  
79 this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
80 var line = session.getLine(row);
81  
82 if (this.startRegionRe.test(line))
83 return this.getCommentRegionBlock(session, line, row);
84  
85 var match = line.match(this.foldingStartMarker);
86 if (match) {
87 var i = match.index;
88  
89 if (match[1])
90 return this.openingBracketBlock(session, match[1], row, i);
91  
92 var range = session.getCommentFoldRange(row, i + match[0].length, 1);
93  
94 if (range && !range.isMultiLine()) {
95 if (forceMultiline) {
96 range = this.getSectionRange(session, row);
97 } else if (foldStyle != "all")
98 range = null;
99 }
100  
101 return range;
102 }
103  
104 if (foldStyle === "markbegin")
105 return;
106  
107 var match = line.match(this.foldingStopMarker);
108 if (match) {
109 var i = match.index + match[0].length;
110  
111 if (match[1])
112 return this.closingBracketBlock(session, match[1], row, i);
113  
114 return session.getCommentFoldRange(row, i, -1);
115 }
116 };
117  
118 this.getSectionRange = function(session, row) {
119 var line = session.getLine(row);
120 var startIndent = line.search(/\S/);
121 var startRow = row;
122 var startColumn = line.length;
123 row = row + 1;
124 var endRow = row;
125 var maxRow = session.getLength();
126 while (++row < maxRow) {
127 line = session.getLine(row);
128 var indent = line.search(/\S/);
129 if (indent === -1)
130 continue;
131 if (startIndent > indent)
132 break;
133 var subRange = this.getFoldWidgetRange(session, "all", row);
134  
135 if (subRange) {
136 if (subRange.start.row <= startRow) {
137 break;
138 } else if (subRange.isMultiLine()) {
139 row = subRange.end.row;
140 } else if (startIndent == indent) {
141 break;
142 }
143 }
144 endRow = row;
145 }
146  
147 return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
148 };
149  
150 this.getCommentRegionBlock = function(session, line, row) {
151 var startColumn = line.search(/\s*$/);
152 var maxRow = session.getLength();
153 var startRow = row;
154  
155 var re = /^\s*(?:\/\*|\/\/)#(end)?region\b/;
156 var depth = 1;
157 while (++row < maxRow) {
158 line = session.getLine(row);
159 var m = re.exec(line);
160 if (!m) continue;
161 if (m[1]) depth--;
162 else depth++;
163  
164 if (!depth) break;
165 }
166  
167 var endRow = row;
168 if (endRow > startRow) {
169 return new Range(startRow, startColumn, endRow, line.length);
170 }
171 };
172  
173 }).call(FoldMode.prototype);
174  
175 });
176  
177 define("ace/mode/mipsassembler",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mipsassembler_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
178 "use strict";
179  
180 var oop = require("../lib/oop");
181 var TextMode = require("./text").Mode;
182 var HighlightRules = require("./mipsassembler_highlight_rules").HighlightRules;
183 var FoldMode = require("./folding/cstyle").FoldMode;
184  
185 var Mode = function() {
186 this.HighlightRules = HighlightRules;
187 this.foldingRules = new FoldMode();
188 };
189 oop.inherits(Mode, TextMode);
190  
191 (function() {
192 this.$id = "ace/mode/mipsassembler"
193 }).call(Mode.prototype);
194  
195 exports.Mode = Mode;
196 });