mode-xml-473a5b1c.js.map 31 KB

1
  1. {"version":3,"file":"mode-xml-473a5b1c.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-xml.js"],"sourcesContent":["ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n this.$rules = {\n start: [\n { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n {\n token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n },\n { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n {\n token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n },\n { include: \"tag\" },\n { token: \"text.end-tag-open.xml\", regex: \"</\" },\n { token: \"text.tag-open.xml\", regex: \"<\" },\n { include: \"reference\" },\n { defaultToken: \"text.xml\" }\n ],\n processing_instruction: [{\n token: \"entity.other.attribute-name.decl-attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.decl-attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"whitespace\"\n }, {\n include: \"string\"\n }, {\n token: \"punctuation.xml-decl.xml\",\n regex: \"\\\\?>\",\n next: \"start\"\n }],\n doctype: [\n { include: \"whitespace\" },\n { include: \"string\" },\n { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n ],\n int_subset: [{\n token: \"text.xml\",\n regex: \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex: \"(<\\\\!)(\" + tagRegex + \")\",\n push: [{\n token: \"text\",\n regex: \"\\\\s+\"\n },\n {\n token: \"punctuation.markup-decl.xml\",\n regex: \">\",\n next: \"pop\"\n },\n { include: \"string\" }]\n }],\n cdata: [\n { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n { token: \"text.xml\", regex: \"\\\\s+\" },\n { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n ],\n comment: [\n { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n { defaultToken: \"comment.xml\" }\n ],\n reference: [{\n token: \"constant.language.escape.reference.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n attr_reference: [{\n token: \"constant.language.escape.reference.attribute-value.xml\",\n regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n tag: [{\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex: \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\" }\n ]\n }],\n tag_whitespace: [\n { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n ],\n whitespace: [\n { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n ],\n string: [{\n token: \"string.xml\",\n regex: \"'\",\n push: [\n { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }, {\n token: \"string.xml\",\n regex: '\"',\n push: [\n { token: \"string.xml\", regex: '\"', next: \"pop\" },\n { defaultToken: \"string.xml\" }\n ]\n }],\n attributes: [{\n token: \"entity.other.attribute-name.xml\",\n regex: tagRegex\n }, {\n token: \"keyword.operator.attribute-equals.xml\",\n regex: \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n attribute_value: [{\n token: \"string.attribute-value.xml\",\n regex: \"'\",\n push: [\n { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }, {\n token: \"string.attribute-value.xml\",\n regex: '\"',\n push: [\n { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n { include: \"attr_reference\" },\n { defaultToken: \"string.attribute-value.xml\" }\n ]\n }]\n };\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n(function () {\n this.embedTagRules = function (HighlightRules, prefix, tag) {\n this.$rules.tag.unshift({\n token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n ]\n });\n this.$rules[tag + \"-end\"] = [\n { include: \"attributes\" },\n { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n onMatch: function (value, currentState, stack) {\n stack.splice(0);\n return this.token;\n } }\n ];\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex: \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex: \"\\\\]\\\\]>\"\n }]);\n };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n if (!token)\n token = iterator.stepBackward();\n if (!token)\n return;\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n if (position.column < tokenEndColumn)\n return;\n if (position.column == tokenEndColumn) {\n var nextToken = iterator.stepForward();\n if (nextToken && is(nextToken, \"attribute-value\"))\n return;\n iterator.stepBackward();\n }\n }\n if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n return;\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n return {\n text: \">\" + \"</\" + element + \">\",\n selection: [1, 1]\n };\n }\n });\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n if (!token) {\n return;\n }\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n if (nextToken && nextToken.value === \"</\") {\n return {\n text: \"\\n\" + indent + \"\\n\" + nextIndent,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n return {\n text: \"\\n\" + indent\n };\n }\n }\n }\n }\n });\n};\noop.inherits(XmlBehaviour, Behaviour);\nexports.XmlBehaviour = XmlBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (voidElements, optionalEndTags) {\n BaseFoldMode.call(this);\n this.voidElements = voidElements || {};\n this.optionalEndTags = oop.mixin({}, this.voidElements);\n if (optionalEndTags)\n oop.mixin(this.optionalEndTags, optionalEndTags);\n};\noop.inherits(FoldMode, BaseFoldMode);\nvar Tag = function () {\n this.tagName = \"\";\n this.closing = false;\n this.selfClosing = false;\n this.start = { row: 0, column: 0 };\n this.end = { row: 0, column: 0 };\n};\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n(function () {\n this.getFoldWidget = function (session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n return \"start\";\n };\n this.getCommentFoldWidget = function (session, row) {\n if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))\n return \"start\";\n return \"\";\n };\n this._getFirstTagInLine = function (session, row) {\n var tokens = session.getTokens(row);\n var tag = new Tag();\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (is(token, \"tag-open\")) {\n tag.end.column = tag.start.column + token.value.length;\n tag.closing = is(token, \"end-tag-open\");\n token = tokens[++i];\n if (!token)\n return null;\n tag.tagName = token.value;\n tag.end.column += token.value.length;\n for (i++; i < tokens.length; i++) {\n token = tokens[i];\n tag.end.column += token.value.length;\n if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n break;\n }\n }\n return tag;\n }\n else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n return null;\n };\n this._findEndTagInLine = function (session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var tags = session.getMatchingTags({ row: row, column: 0 });\n if (tags) {\n return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n }\n else {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.voidElements = lang.arrayToMap([]);\n this.blockComment = { start: \"<!--\", end: \"-->\" };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"error\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/xml\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","oop","TextHighlightRules","XmlHighlightRules","normalize","tagRegex","HighlightRules","prefix","tag","value","currentState","stack","Behaviour","TokenIterator","is","token","type","XmlBehaviour","state","action","editor","session","text","quote","selected","cursor","line","rightChar","iterator","rightSpace","range","position","tokenEndColumn","nextToken","tokenRow","tokenColumn","element","row","nextIndent","indent","Range","BaseFoldMode","FoldMode","voidElements","optionalEndTags","Tag","foldStyle","tokens","i","tagName","startColumn","column","tags","lang","TextMode","XmlFoldMode","WorkerClient","Mode","worker","e","m"],"mappings":"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","x_google_ignoreList":[0]}