PageSourceSearch

https://fipu-educoder.netlify.app/assets/mode-json-Br7xisR1.js

js fipu-educoder.netlify.app collected 2026-10-03 10:44:21 UTC 10,484 bytes, 275 lines download raw bytes

vendor: 10,484 bytes, lines 1-275
1ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2var oop = require("../lib/oop");
3var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
4var JsonHighlightRules = function () {
5    this.$rules = {
6        "start": [
7            {
8                token: "variable", // single line
9                regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'
10            }, {
11                token: "string", // single line
12                regex: '"',
13                next: "string"
14            }, {
15                token: "constant.numeric", // hex
16                regex: "0[xX][0-9a-fA-F]+\\b"
17            }, {
18                token: "constant.numeric", // float
19                regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
20            }, {
21                token: "constant.language.boolean",
22                regex: "(?:true|false)\\b"
23            }, {
24                token: "text", // single quoted strings are not allowed
25                regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
26            }, {
27                token: "comment", // comments are not allowed, but who cares?
28                regex: "\\/\\/.*$"
29            }, {
30                token: "comment.start", // comments are not allowed, but who cares?
31                regex: "\\/\\*",
32                next: "comment"
33            }, {
34                token: "paren.lparen",
35                regex: "[[({]"
36            }, {
37                token: "paren.rparen",
38                regex: "[\\])}]"
39            }, {
40                token: "punctuation.operator",
41                regex: /[,]/
42            }, {
43                token: "text",
44                regex: "\\s+"
45            }
46        ],
47        "string": [
48            {
49                token: "constant.language.escape",
50                regex: /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/
51            }, {
52                token: "string",
53                regex: '"|$',
54                next: "start"
55            }, {
56                defaultToken: "string"
57            }
58        ],
59        "comment": [
60            {
61                token: "comment.end", // comments are not allowed, but who cares?
62                regex: "\\*\\/",
63                next: "start"
64            }, {
65                defaultToken: "comment"
66            }
67        ]
68    };
69};
70oop.inherits(JsonHighlightRules, TextHighlightRules);
71exports.JsonHighlightRules = JsonHighlightRules;
72
73});
74
75ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module){"use strict";
76var Range = require("../range").Range;
77var MatchingBraceOutdent = function () { };
78(function () {
79    this.checkOutdent = function (line, input) {
80        if (!/^\s+$/.test(line))
81            return false;
82        return /^\s*\}/.test(input);
83    };
84    this.autoOutdent = function (doc, row) {
85        var line = doc.getLine(row);
86        var match = line.match(/^(\s*\})/);
87        if (!match)
88            return 0;
89        var column = match[1].length;
90        var openBracePos = doc.findMatchingBracket({ row: row, column: column });
91        if (!openBracePos || openBracePos.row == row)
92            return 0;
93        var indent = this.$getIndent(doc.getLine(openBracePos.row));
94        doc.replace(new Range(row, 0, row, column - 1), indent);
95    };
96    this.$getIndent = function (line) {
97        return line.match(/^\s*/)[0];
98    };
99}).call(MatchingBraceOutdent.prototype);
100exports.MatchingBraceOutdent = MatchingBraceOutdent;
101
102});
103
104ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
105var oop = require("../../lib/oop");
106var Range = require("../../range").Range;
107var BaseFoldMode = require("./fold_mode").FoldMode;
108var FoldMode = exports.FoldMode = function (commentRegex) {
109    if (commentRegex) {
110        this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
111        this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
112    }
113};
114oop.inherits(FoldMode, BaseFoldMode);
115(function () {
116    this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
117    this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
118    this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
119    this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
120    this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
121    this._getFoldWidgetBase = this.getFoldWidget;
122    this.getFoldWidget = function (session, foldStyle, row) {
123        var line = session.getLine(row);
124        if (this.singleLineBlockCommentRe.test(line)) {
125            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
126                return "";
127        }
128        var fw = this._getFoldWidgetBase(session, foldStyle, row);
129        if (!fw && this.startRegionRe.test(line))
130            return "start"; // lineCommentRegionStart
131        return fw;
132    };
133    this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
134        var line = session.getLine(row);
135        if (this.startRegionRe.test(line))
136            return this.getCommentRegionBlock(session, line, row);
137        var match = line.match(this.foldingStartMarker);
138        if (match) {
139            var i = match.index;
140            if (match[1])
141                return this.openingBracketBlock(session, match[1], row, i);
142            var range = session.getCommentFoldRange(row, i + match[0].length, 1);
143            if (range && !range.isMultiLine()) {
144                if (forceMultiline) {
145                    range = this.getSectionRange(session, row);
146                }
147                else if (foldStyle != "all")
148                    range = null;
149            }
150            return range;
151        }
152        if (foldStyle === "markbegin")
153            return;
154        var match = line.match(this.foldingStopMarker);
155        if (match) {
156            var i = match.index + match[0].length;
157            if (match[1])
158                return this.closingBracketBlock(session, match[1], row, i);
159            return session.getCommentFoldRange(row, i, -1);
160        }
161    };
162    this.getSectionRange = function (session, row) {
163        var line = session.getLine(row);
164        var startIndent = line.search(/\S/);
165        var startRow = row;
166        var startColumn = line.length;
167        row = row + 1;
168        var endRow = row;
169        var maxRow = session.getLength();
170        while (++row < maxRow) {
171            line = session.getLine(row);
172            var indent = line.search(/\S/);
173            if (indent === -1)
174                continue;
175            if (startIndent > indent)
176                break;
177            var subRange = this.getFoldWidgetRange(session, "all", row);
178            if (subRange) {
179                if (subRange.start.row <= startRow) {
180                    break;
181                }
182                else if (subRange.isMultiLine()) {
183                    row = subRange.end.row;
184                }
185                else if (startIndent == indent) {
186                    break;
187                }
188            }
189            endRow = row;
190        }
191        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
192    };
193    this.getCommentRegionBlock = function (session, line, row) {
194        var startColumn = line.search(/\s*$/);
195        var maxRow = session.getLength();
196        var startRow = row;
197        var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
198        var depth = 1;
199        while (++row < maxRow) {
200            line = session.getLine(row);
201            var m = re.exec(line);
202            if (!m)
203                continue;
204            if (m[1])
205                depth--;
206            else
207                depth++;
208            if (!depth)
209                break;
210        }
211        var endRow = row;
212        if (endRow > startRow) {
213            return new Range(startRow, startColumn, endRow, line.length);
214        }
215    };
216}).call(FoldMode.prototype);
217
218});
219
220ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"], function(require, exports, module){"use strict";
221var oop = require("../lib/oop");
222var TextMode = require("./text").Mode;
223var HighlightRules = require("./json_highlight_rules").JsonHighlightRules;
224var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
225var CStyleFoldMode = require("./folding/cstyle").FoldMode;
226var WorkerClient = require("../worker/worker_client").WorkerClient;
227var Mode = function () {
228    this.HighlightRules = HighlightRules;
229    this.$outdent = new MatchingBraceOutdent();
230    this.$behaviour = this.$defaultBehaviour;
231    this.foldingRules = new CStyleFoldMode();
232};
233oop.inherits(Mode, TextMode);
234(function () {
235    this.lineCommentStart = "//";
236    this.blockComment = { start: "/*", end: "*/" };
237    this.getNextLineIndent = function (state, line, tab) {
238        var indent = this.$getIndent(line);
239        if (state == "start") {
240            var match = line.match(/^.*[\{\(\[]\s*$/);
241            if (match) {
242                indent += tab;
243            }
244        }
245        return indent;
246    };
247    this.checkOutdent = function (state, line, input) {
248        return this.$outdent.checkOutdent(line, input);
249    };
250    this.autoOutdent = function (state, doc, row) {
251        this.$outdent.autoOutdent(doc, row);
252    };
253    this.createWorker = function (session) {
254        var worker = new WorkerClient(["ace"], "ace/mode/json_worker", "JsonWorker");
255        worker.attachToDocument(session.getDocument());
256        worker.on("annotate", function (e) {
257            session.setAnnotations(e.data);
258        });
259        worker.on("terminate", function () {
260            session.clearAnnotations();
261        });
262        return worker;
263    };
264    this.$id = "ace/mode/json";
265}).call(Mode.prototype);
266exports.Mode = Mode;
267
268});                (function() {
269                    ace.require(["ace/mode/json"], function(m) {
270                        if (typeof module == "object" && typeof exports == "object" && module) {
271                            module.exports = m;
272                        }
273                    });
274                })();
275            

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.