| ace.define( |
| 'ace/mode/json_highlight_rules', |
| ['require', 'exports', 'module', 'ace/lib/oop', 'ace/mode/text_highlight_rules'], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../lib/oop'), |
| i = e('./text_highlight_rules').TextHighlightRules, |
| s = function () { |
| this.$rules = { |
| start: [ |
| { token: 'variable', regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)' }, |
| { token: 'string', regex: '"', next: 'string' }, |
| { token: 'constant.numeric', regex: '0[xX][0-9a-fA-F]+\\b' }, |
| { token: 'constant.numeric', regex: '[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b' }, |
| { token: 'constant.language.boolean', regex: '(?:true|false)\\b' }, |
| { token: 'text', regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" }, |
| { token: 'comment', regex: '\\/\\/.*$' }, |
| { token: 'comment.start', regex: '\\/\\*', next: 'comment' }, |
| { token: 'paren.lparen', regex: '[[({]' }, |
| { token: 'paren.rparen', regex: '[\\])}]' }, |
| { token: 'text', regex: '\\s+' }, |
| ], |
| string: [ |
| { |
| token: 'constant.language.escape', |
| regex: /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/, |
| }, |
| { token: 'string', regex: '"|$', next: 'start' }, |
| { defaultToken: 'string' }, |
| ], |
| comment: [ |
| { token: 'comment.end', regex: '\\*\\/', next: 'start' }, |
| { defaultToken: 'comment' }, |
| ], |
| } |
| } |
| r.inherits(s, i), (t.JsonHighlightRules = s) |
| } |
| ), |
| ace.define( |
| 'ace/mode/matching_brace_outdent', |
| ['require', 'exports', 'module', 'ace/range'], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../range').Range, |
| i = function () {} |
| ;(function () { |
| ;(this.checkOutdent = function (e, t) { |
| return /^\s+$/.test(e) ? /^\s*\}/.test(t) : !1 |
| }), |
| (this.autoOutdent = function (e, t) { |
| var n = e.getLine(t), |
| i = n.match(/^(\s*\})/) |
| if (!i) return 0 |
| var s = i[1].length, |
| o = e.findMatchingBracket({ row: t, column: s }) |
| if (!o || o.row == t) return 0 |
| var u = this.$getIndent(e.getLine(o.row)) |
| e.replace(new r(t, 0, t, s - 1), u) |
| }), |
| (this.$getIndent = function (e) { |
| return e.match(/^\s*/)[0] |
| }) |
| }).call(i.prototype), |
| (t.MatchingBraceOutdent = i) |
| } |
| ), |
| ace.define( |
| 'ace/mode/folding/cstyle', |
| ['require', 'exports', 'module', 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../../lib/oop'), |
| i = e('../../range').Range, |
| s = e('./fold_mode').FoldMode, |
| o = (t.FoldMode = function (e) { |
| e && |
| ((this.foldingStartMarker = new RegExp( |
| this.foldingStartMarker.source.replace(/\|[^|]*?$/, '|' + e.start) |
| )), |
| (this.foldingStopMarker = new RegExp( |
| this.foldingStopMarker.source.replace(/\|[^|]*?$/, '|' + e.end) |
| ))) |
| }) |
| r.inherits(o, s), |
| function () { |
| ;(this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/), |
| (this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/), |
| (this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/), |
| (this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/), |
| (this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/), |
| (this._getFoldWidgetBase = this.getFoldWidget), |
| (this.getFoldWidget = function (e, t, n) { |
| var r = e.getLine(n) |
| if ( |
| this.singleLineBlockCommentRe.test(r) && |
| !this.startRegionRe.test(r) && |
| !this.tripleStarBlockCommentRe.test(r) |
| ) |
| return '' |
| var i = this._getFoldWidgetBase(e, t, n) |
| return !i && this.startRegionRe.test(r) ? 'start' : i |
| }), |
| (this.getFoldWidgetRange = function (e, t, n, r) { |
| var i = e.getLine(n) |
| if (this.startRegionRe.test(i)) return this.getCommentRegionBlock(e, i, n) |
| var s = i.match(this.foldingStartMarker) |
| if (s) { |
| var o = s.index |
| if (s[1]) return this.openingBracketBlock(e, s[1], n, o) |
| var u = e.getCommentFoldRange(n, o + s[0].length, 1) |
| return ( |
| u && |
| !u.isMultiLine() && |
| (r ? (u = this.getSectionRange(e, n)) : t != 'all' && (u = null)), |
| u |
| ) |
| } |
| if (t === 'markbegin') return |
| var s = i.match(this.foldingStopMarker) |
| if (s) { |
| var o = s.index + s[0].length |
| return s[1] |
| ? this.closingBracketBlock(e, s[1], n, o) |
| : e.getCommentFoldRange(n, o, -1) |
| } |
| }), |
| (this.getSectionRange = function (e, t) { |
| var n = e.getLine(t), |
| r = n.search(/\S/), |
| s = t, |
| o = n.length |
| t += 1 |
| var u = t, |
| a = e.getLength() |
| while (++t < a) { |
| n = e.getLine(t) |
| var f = n.search(/\S/) |
| if (f === -1) continue |
| if (r > f) break |
| var l = this.getFoldWidgetRange(e, 'all', t) |
| if (l) { |
| if (l.start.row <= s) break |
| if (l.isMultiLine()) t = l.end.row |
| else if (r == f) break |
| } |
| u = t |
| } |
| return new i(s, o, u, e.getLine(u).length) |
| }), |
| (this.getCommentRegionBlock = function (e, t, n) { |
| var r = t.search(/\s*$/), |
| s = e.getLength(), |
| o = n, |
| u = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/, |
| a = 1 |
| while (++n < s) { |
| t = e.getLine(n) |
| var f = u.exec(t) |
| if (!f) continue |
| f[1] ? a-- : a++ |
| if (!a) break |
| } |
| var l = n |
| if (l > o) return new i(o, r, l, t.length) |
| }) |
| }.call(o.prototype) |
| } |
| ), |
| ace.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/behaviour/cstyle', |
| 'ace/mode/folding/cstyle', |
| 'ace/worker/worker_client', |
| ], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../lib/oop'), |
| i = e('./text').Mode, |
| s = e('./json_highlight_rules').JsonHighlightRules, |
| o = e('./matching_brace_outdent').MatchingBraceOutdent, |
| u = e('./behaviour/cstyle').CstyleBehaviour, |
| a = e('./folding/cstyle').FoldMode, |
| f = e('../worker/worker_client').WorkerClient, |
| l = function () { |
| ;(this.HighlightRules = s), |
| (this.$outdent = new o()), |
| (this.$behaviour = new u()), |
| (this.foldingRules = new a()) |
| } |
| r.inherits(l, i), |
| function () { |
| ;(this.lineCommentStart = '//'), |
| (this.blockComment = { start: '/*', end: '*/' }), |
| (this.getNextLineIndent = function (e, t, n) { |
| var r = this.$getIndent(t) |
| if (e == 'start') { |
| var i = t.match(/^.*[\{\(\[]\s*$/) |
| i && (r += n) |
| } |
| return r |
| }), |
| (this.checkOutdent = function (e, t, n) { |
| return this.$outdent.checkOutdent(t, n) |
| }), |
| (this.autoOutdent = function (e, t, n) { |
| this.$outdent.autoOutdent(t, n) |
| }), |
| (this.createWorker = function (e) { |
| var t = new f(['ace'], 'ace/mode/json_worker', 'JsonWorker') |
| return ( |
| t.attachToDocument(e.getDocument()), |
| t.on('annotate', function (t) { |
| e.setAnnotations(t.data) |
| }), |
| t.on('terminate', function () { |
| e.clearAnnotations() |
| }), |
| t |
| ) |
| }), |
| (this.$id = 'ace/mode/json') |
| }.call(l.prototype), |
| (t.Mode = l) |
| } |
| ) |
| ;(function () { |
| ace.require(['ace/mode/json'], function (m) { |
| if (typeof module == 'object' && typeof exports == 'object' && module) { |
| module.exports = m |
| } |
| }) |
| })() |
|
|