1 |
- {"version":3,"file":"ext-beautify-d2f2604a.js","sources":["../../node_modules/ace-builds/src-noconflict/ext-beautify.js"],"sourcesContent":["ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n var iterator = new TokenIterator(session, 0, 0);\n var token = iterator.getCurrentToken();\n var tabString = session.getTabString();\n var singletonTags = exports.singletonTags;\n var blockTags = exports.blockTags;\n var formatOptions = exports.formatOptions || {};\n var nextToken;\n var breakBefore = false;\n var spaceBefore = false;\n var spaceAfter = false;\n var code = \"\";\n var value = \"\";\n var tagName = \"\";\n var depth = 0;\n var lastDepth = 0;\n var lastIndent = 0;\n var indent = 0;\n var unindent = 0;\n var roundDepth = 0;\n var curlyDepth = 0;\n var row;\n var curRow = 0;\n var rowsToAdd = 0;\n var rowTokens = [];\n var abort = false;\n var i;\n var indentNextLine = false;\n var inTag = false;\n var inCSS = false;\n var inBlock = false;\n var levels = { 0: 0 };\n var parents = [];\n var caseBody = false;\n var trimNext = function () {\n if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n };\n var trimLine = function () {\n var end = code.length - 1;\n while (true) {\n if (end == 0)\n break;\n if (code[end] !== \" \")\n break;\n end = end - 1;\n }\n code = code.slice(0, end + 1);\n };\n var trimCode = function () {\n code = code.trimRight();\n breakBefore = false;\n };\n while (token !== null) {\n curRow = iterator.getCurrentTokenRow();\n rowTokens = iterator.$rowTokens;\n nextToken = iterator.stepForward();\n if (typeof token !== \"undefined\") {\n value = token.value;\n unindent = 0;\n inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n if (is(token, \"tag-open\")) {\n inTag = true;\n if (nextToken)\n inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n if (value === \"</\") {\n if (inBlock && !breakBefore && rowsToAdd < 1)\n rowsToAdd++;\n if (inCSS)\n rowsToAdd = 1;\n unindent = 1;\n inBlock = false;\n }\n }\n else if (is(token, \"tag-close\")) {\n inTag = false;\n }\n else if (is(token, \"comment.start\")) {\n inBlock = true;\n }\n else if (is(token, \"comment.end\")) {\n inBlock = false;\n }\n if (!inTag && !rowsToAdd && token.type === \"paren.rparen\" && token.value.substr(0, 1) === \"}\") {\n rowsToAdd++;\n }\n if (curRow !== row) {\n rowsToAdd = curRow;\n if (row)\n rowsToAdd -= row;\n }\n if (rowsToAdd) {\n trimCode();\n for (; rowsToAdd > 0; rowsToAdd--)\n code += \"\\n\";\n breakBefore = true;\n if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n value = value.trimLeft();\n }\n if (value) {\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n parents[depth] = value;\n trimNext();\n spaceAfter = true;\n if (value.match(/^(else|elseif)$/)) {\n if (code.match(/\\}[\\s]*$/)) {\n trimCode();\n spaceBefore = true;\n }\n }\n }\n else if (token.type === \"paren.lparen\") {\n trimNext();\n if (value.substr(-1) === \"{\") {\n spaceAfter = true;\n indentNextLine = false;\n if (!inTag)\n rowsToAdd = 1;\n }\n if (value.substr(0, 1) === \"{\") {\n spaceBefore = true;\n if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n trimCode();\n spaceBefore = false;\n }\n else if (code.trimRight().substr(-1) === ')') {\n trimCode();\n }\n else {\n trimLine();\n }\n }\n }\n else if (token.type === \"paren.rparen\") {\n unindent = 1;\n if (value.substr(0, 1) === \"}\") {\n if (parents[depth - 1] === 'case')\n unindent++;\n if (code.trimRight().substr(-1) === '{') {\n trimCode();\n }\n else {\n spaceBefore = true;\n if (inCSS)\n rowsToAdd += 2;\n }\n }\n if (value.substr(0, 1) === \"]\") {\n if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n if (value.substr(0, 1) === \")\") {\n if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n spaceBefore = false;\n indent++;\n trimCode();\n }\n }\n trimLine();\n }\n else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n trimCode();\n trimNext();\n spaceBefore = true;\n spaceAfter = true;\n }\n else if (token.type === \"punctuation.operator\" && value === ';') {\n trimCode();\n trimNext();\n spaceAfter = true;\n if (inCSS)\n rowsToAdd++;\n }\n else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n trimCode();\n trimNext();\n if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n rowsToAdd++;\n }\n else {\n spaceAfter = true;\n breakBefore = false;\n }\n }\n else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n trimCode();\n spaceBefore = true;\n }\n else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n spaceBefore = true;\n }\n else if (is(token, \"attribute-equals\")) {\n trimLine();\n trimNext();\n }\n else if (is(token, \"tag-close\")) {\n trimLine();\n if (value === \"/>\")\n spaceBefore = true;\n }\n else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody)\n unindent = 1;\n }\n if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n indent = lastIndent;\n if (depth > lastDepth) {\n indent++;\n for (i = depth; i > lastDepth; i--)\n levels[i] = indent;\n }\n else if (depth < lastDepth)\n indent = levels[depth];\n lastDepth = depth;\n lastIndent = indent;\n if (unindent)\n indent -= unindent;\n if (indentNextLine && !roundDepth) {\n indent++;\n indentNextLine = false;\n }\n for (i = 0; i < indent; i++)\n code += tabString;\n }\n if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n if (caseBody === false) {\n parents[depth] = value;\n depth++;\n caseBody = true;\n }\n }\n else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n depth--;\n caseBody = false;\n }\n }\n if (token.type === \"paren.lparen\") {\n roundDepth += (value.match(/\\(/g) || []).length;\n curlyDepth += (value.match(/\\{/g) || []).length;\n depth += value.length;\n }\n if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n indentNextLine = true;\n roundDepth = 0;\n }\n else if (!roundDepth && value.trim() && token.type !== \"comment\")\n indentNextLine = false;\n if (token.type === \"paren.rparen\") {\n roundDepth -= (value.match(/\\)/g) || []).length;\n curlyDepth -= (value.match(/\\}/g) || []).length;\n for (i = 0; i < value.length; i++) {\n depth--;\n if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n depth--;\n }\n }\n }\n if (token.type == \"text\")\n value = value.replace(/\\s+$/, \" \");\n if (spaceBefore && !breakBefore) {\n trimLine();\n if (code.substr(-1) !== \"\\n\")\n code += \" \";\n }\n code += value;\n if (spaceAfter)\n code += \" \";\n breakBefore = false;\n spaceBefore = false;\n spaceAfter = false;\n if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n if (inBlock && nextToken && nextToken.value === \"</\")\n rowsToAdd = -1;\n else\n rowsToAdd = 1;\n }\n if (nextToken && singletonTags.indexOf(nextToken.value) === -1) {\n if (is(token, \"tag-open\") && value === \"</\") {\n depth--;\n }\n else if (is(token, \"tag-open\") && value === \"<\") {\n depth++;\n }\n else if (is(token, \"tag-close\") && value === \"/>\") {\n depth--;\n }\n }\n if (is(token, \"tag-name\")) {\n tagName = value;\n }\n row = curRow;\n }\n }\n token = nextToken;\n }\n code = code.trim();\n session.doc.setValue(code);\n};\nexports.commands = [{\n name: \"beautify\",\n description: \"Format selection (Beautify)\",\n exec: function (editor) {\n exports.beautify(editor.session);\n },\n bindKey: \"Ctrl-Shift-B\"\n }];\n\n}); (function() {\n ace.require([\"ace/ext/beautify\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","TokenIterator","is","token","type","session","iterator","tabString","singletonTags","blockTags","formatOptions","nextToken","breakBefore","spaceBefore","spaceAfter","code","value","tagName","depth","lastDepth","lastIndent","indent","unindent","roundDepth","curlyDepth","row","curRow","rowsToAdd","i","indentNextLine","inTag","inCSS","inBlock","levels","parents","caseBody","trimNext","trimLine","end","trimCode","editor","m"],"mappings":"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","x_google_ignoreList":[0]}
|