web-editor 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/web-editor.rb +2 -0
- data/lib/web-editor/engine.rb +7 -0
- data/lib/web-editor/version.rb +3 -0
- data/public/editor.html +59 -0
- data/public/js/beautify-css.js +58 -0
- data/public/js/beautify-html.js +112 -0
- data/public/js/beautify.js +247 -0
- data/public/js/jquery.min.js +4 -0
- data/public/js/script.js +59 -0
- data/public/src/ace.js +11 -0
- data/public/src/ext-elastic_tabstops_lite.js +5 -0
- data/public/src/ext-error_marker.js +5 -0
- data/public/src/ext-keybinding_menu.js +5 -0
- data/public/src/ext-language_tools.js +5 -0
- data/public/src/ext-searchbox.js +5 -0
- data/public/src/ext-statusbar.js +5 -0
- data/public/src/ext-whitespace.js +5 -0
- data/public/src/keybinding-emacs.js +1 -0
- data/public/src/keybinding-vim.js +1 -0
- data/public/src/mode-actionscript.js +1 -0
- data/public/src/mode-coffee.js +1 -0
- data/public/src/mode-css.js +1 -0
- data/public/src/mode-haml.js +1 -0
- data/public/src/mode-html.js +1 -0
- data/public/src/mode-html_ruby.js +1 -0
- data/public/src/mode-javascript.js +1 -0
- data/public/src/mode-json.js +1 -0
- data/public/src/mode-less.js +1 -0
- data/public/src/mode-ruby.js +1 -0
- data/public/src/mode-sass.js +1 -0
- data/public/src/mode-scss.js +1 -0
- data/public/src/mode-typescript.js +1 -0
- data/public/src/mode-xml.js +1 -0
- data/public/src/snippets/actionscript.js +1 -0
- data/public/src/snippets/coffee.js +1 -0
- data/public/src/snippets/css.js +1 -0
- data/public/src/snippets/haml.js +1 -0
- data/public/src/snippets/html.js +1 -0
- data/public/src/snippets/html_ruby.js +1 -0
- data/public/src/snippets/javascript.js +1 -0
- data/public/src/snippets/json.js +1 -0
- data/public/src/snippets/less.js +1 -0
- data/public/src/snippets/ruby.js +1 -0
- data/public/src/snippets/sass.js +1 -0
- data/public/src/snippets/scss.js +1 -0
- data/public/src/snippets/text.js +1 -0
- data/public/src/snippets/typescript.js +1 -0
- data/public/src/snippets/xml.js +1 -0
- data/public/src/theme-twilight.js +1 -0
- data/public/src/worker-coffee.js +1 -0
- data/public/src/worker-css.js +1 -0
- data/public/src/worker-html.js +1 -0
- data/public/src/worker-javascript.js +1 -0
- data/public/src/worker-json.js +1 -0
- data/public/src/worker-xml.js +1 -0
- metadata +99 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: febbfc5c3ec8a2bcc06de4e0909fab67b5f56899
|
4
|
+
data.tar.gz: 9679c5c3e8843cc4a2fffeb22db0c507162f1242
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c9a19697605ab46dea6c691e8d6266f3b785c17ae26c852db16aee3020ed56186f3fa034a015c2bb28af9744c0bf01d140faba3c38686ed667beb0de74c117d8
|
7
|
+
data.tar.gz: e831be3ddbaa71e0bd33bcf8f31f414213edfbf0599475f738aa98cf548fab904e11a8ae7f2da5f804d15a97c80657ea01dd26b7438ca66c5db702ef2a798512
|
data/lib/web-editor.rb
ADDED
data/public/editor.html
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<script type="text/javascript" src="./js/jquery.min.js"></script>
|
5
|
+
<script type="text/javascript" src="./src/ace.js"></script>
|
6
|
+
<script type="text/javascript" src="./src/ext-language_tools.js"></script>
|
7
|
+
<script type="text/javascript" src="./src/ext-statusbar.js"></script>
|
8
|
+
<script type="text/javascript" src="./js/beautify.js"></script>
|
9
|
+
<script type="text/javascript" src="./js/beautify-html.js"></script>
|
10
|
+
<script type="text/javascript" src="./js/beautify-css.js"></script>
|
11
|
+
<script type="text/javascript" src="./js/script.js"></script>
|
12
|
+
<style type="text/css">
|
13
|
+
#editor {
|
14
|
+
position: absolute;
|
15
|
+
font-size: 14px;
|
16
|
+
font-weight: bold;
|
17
|
+
margin: 0;
|
18
|
+
top: 0;
|
19
|
+
bottom: 20px;
|
20
|
+
left: 0;
|
21
|
+
right: 0;
|
22
|
+
}
|
23
|
+
#statusBar {
|
24
|
+
position: absolute;
|
25
|
+
font-weight: bold;
|
26
|
+
left: 0;
|
27
|
+
right: 0;
|
28
|
+
bottom: 0;
|
29
|
+
height: 20px;
|
30
|
+
background-color: rgb(245, 245, 245);
|
31
|
+
padding-left: 8px;
|
32
|
+
color: gray;
|
33
|
+
border-top: 2px solid black;
|
34
|
+
border-bottom: 2px solid black;
|
35
|
+
box-shadow: 0 1px 10px black;
|
36
|
+
z-index: 99999;
|
37
|
+
}
|
38
|
+
.ace_status-indicator {
|
39
|
+
position: absolute;
|
40
|
+
border-left: 2px solid black;
|
41
|
+
border-right: 2px solid black;
|
42
|
+
padding: 0 8px;
|
43
|
+
color: black;
|
44
|
+
right: 44%;
|
45
|
+
}
|
46
|
+
.html-content {
|
47
|
+
position: absolute;
|
48
|
+
bottom: 20px;
|
49
|
+
left: 100px;
|
50
|
+
display: none;
|
51
|
+
}
|
52
|
+
</style>
|
53
|
+
</head>
|
54
|
+
<body>
|
55
|
+
<pre id="editor"></pre>
|
56
|
+
<div id="statusBar">Web Editor</div>
|
57
|
+
<button class="html-content">Load</button>
|
58
|
+
</body>
|
59
|
+
</html>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
/*
|
2
|
+
The MIT License (MIT)
|
3
|
+
|
4
|
+
Copyright (c) 2007-2013 Einar Lielmanis and contributors.
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person
|
7
|
+
obtaining a copy of this software and associated documentation files
|
8
|
+
(the "Software"), to deal in the Software without restriction,
|
9
|
+
including without limitation the rights to use, copy, modify, merge,
|
10
|
+
publish, distribute, sublicense, and/or sell copies of the Software,
|
11
|
+
and to permit persons to whom the Software is furnished to do so,
|
12
|
+
subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
21
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
22
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
23
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
24
|
+
SOFTWARE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
(function(){function css_beautify(source_text,options){options=options||{};source_text=source_text||'';source_text=source_text.replace(/\r\n|[\r\u2028\u2029]/g,'\n');var indentSize=options.indent_size||4;var indentCharacter=options.indent_char||' ';var selectorSeparatorNewline=(options.selector_separator_newline===undefined)?!0:options.selector_separator_newline;var end_with_newline=(options.end_with_newline===undefined)?!1:options.end_with_newline;var newline_between_rules=(options.newline_between_rules===undefined)?!0:options.newline_between_rules;var eol=options.eol?options.eol:'\n';if(typeof indentSize==="string"){indentSize=parseInt(indentSize,10)}
|
28
|
+
if(options.indent_with_tabs){indentCharacter='\t';indentSize=1}
|
29
|
+
eol=eol.replace(/\\r/,'\r').replace(/\\n/,'\n');var whiteRe=/^\s+$/;var pos=-1,ch;var parenLevel=0;function next(){ch=source_text.charAt(++pos);return ch||''}
|
30
|
+
function peek(skipWhitespace){var result='';var prev_pos=pos;if(skipWhitespace){eatWhitespace()}
|
31
|
+
result=source_text.charAt(pos+1)||'';pos=prev_pos-1;next();return result}
|
32
|
+
function eatString(endChars){var start=pos;while(next()){if(ch==="\\"){next()}else if(endChars.indexOf(ch)!==-1){break}else if(ch==="\n"){break}}
|
33
|
+
return source_text.substring(start,pos+1)}
|
34
|
+
function peekString(endChar){var prev_pos=pos;var str=eatString(endChar);pos=prev_pos-1;next();return str}
|
35
|
+
function eatWhitespace(){var result='';while(whiteRe.test(peek())){next();result+=ch}
|
36
|
+
return result}
|
37
|
+
function skipWhitespace(){var result='';if(ch&&whiteRe.test(ch)){result=ch}
|
38
|
+
while(whiteRe.test(next())){result+=ch}
|
39
|
+
return result}
|
40
|
+
function eatComment(singleLine){var start=pos;singleLine=peek()==="/";next();while(next()){if(!singleLine&&ch==="*"&&peek()==="/"){next();break}else if(singleLine&&ch==="\n"){return source_text.substring(start,pos)}}
|
41
|
+
return source_text.substring(start,pos)+ch}
|
42
|
+
function lookBack(str){return source_text.substring(pos-str.length,pos).toLowerCase()===str}
|
43
|
+
function foundNestedPseudoClass(){var openParen=0;for(var i=pos+1;i<source_text.length;i++){var ch=source_text.charAt(i);if(ch==="{"){return !0}else if(ch==='('){openParen+=1}else if(ch===')'){if(openParen===0){return !1}
|
44
|
+
openParen-=1}else if(ch===";"||ch==="}"){return !1}}
|
45
|
+
return !1}
|
46
|
+
var basebaseIndentString=source_text.match(/^[\t ]*/)[0];var singleIndent=new Array(indentSize+1).join(indentCharacter);var indentLevel=0;var nestedLevel=0;function indent(){indentLevel++;basebaseIndentString+=singleIndent}
|
47
|
+
function outdent(){indentLevel--;basebaseIndentString=basebaseIndentString.slice(0,-indentSize)}
|
48
|
+
var print={};print["{"]=function(ch){print.singleSpace();output.push(ch);print.newLine()};print["}"]=function(ch){print.newLine();output.push(ch);print.newLine()};print._lastCharWhitespace=function(){return whiteRe.test(output[output.length-1])};print.newLine=function(keepWhitespace){if(output.length){if(!keepWhitespace&&output[output.length-1]!=='\n'){print.trim()}
|
49
|
+
output.push('\n');if(basebaseIndentString){output.push(basebaseIndentString)}}};print.singleSpace=function(){if(output.length&&!print._lastCharWhitespace()){output.push(' ')}};print.preserveSingleSpace=function(){if(isAfterSpace){print.singleSpace()}};print.trim=function(){while(print._lastCharWhitespace()){output.pop()}};var output=[];var insideRule=!1;var insidePropertyValue=!1;var enteringConditionalGroup=!1;var top_ch='';var last_top_ch='';for(;;){var whitespace=skipWhitespace();var isAfterSpace=whitespace!=='';var isAfterNewline=whitespace.indexOf('\n')!==-1;last_top_ch=top_ch;top_ch=ch;if(!ch){break}else if(ch==='/'&&peek()==='*'){var header=indentLevel===0;if(isAfterNewline||header){print.newLine()}
|
50
|
+
output.push(eatComment());print.newLine();if(header){print.newLine(!0)}}else if(ch==='/'&&peek()==='/'){if(!isAfterNewline&&last_top_ch!=='{'){print.trim()}
|
51
|
+
print.singleSpace();output.push(eatComment());print.newLine()}else if(ch==='@'){print.preserveSingleSpace();if(peek()==='{'){output.push(eatString('}'))}else{output.push(ch);var variableOrRule=peekString(": ,;{}()[]/='\"");if(variableOrRule.match(/[ :]$/)){next();variableOrRule=eatString(": ").replace(/\s$/,'');output.push(variableOrRule);print.singleSpace()}
|
52
|
+
variableOrRule=variableOrRule.replace(/\s$/,'');if(variableOrRule in css_beautify.NESTED_AT_RULE){nestedLevel+=1;if(variableOrRule in css_beautify.CONDITIONAL_GROUP_RULE){enteringConditionalGroup=!0}}}}else if(ch==='#'&&peek()==='{'){print.preserveSingleSpace();output.push(eatString('}'))}else if(ch==='{'){if(peek(!0)==='}'){eatWhitespace();next();print.singleSpace();output.push("{}");print.newLine();if(newline_between_rules&&indentLevel===0){print.newLine(!0)}}else{indent();print["{"](ch);if(enteringConditionalGroup){enteringConditionalGroup=!1;insideRule=(indentLevel>nestedLevel)}else{insideRule=(indentLevel>=nestedLevel)}}}else if(ch==='}'){outdent();print["}"](ch);insideRule=!1;insidePropertyValue=!1;if(nestedLevel){nestedLevel--}
|
53
|
+
if(newline_between_rules&&indentLevel===0){print.newLine(!0)}}else if(ch===":"){eatWhitespace();if((insideRule||enteringConditionalGroup)&&!(lookBack("&")||foundNestedPseudoClass())){insidePropertyValue=!0;output.push(':');print.singleSpace()}else{if(peek()===":"){next();output.push("::")}else{output.push(':')}}}else if(ch==='"'||ch==='\''){print.preserveSingleSpace();output.push(eatString(ch))}else if(ch===';'){insidePropertyValue=!1;output.push(ch);print.newLine()}else if(ch==='('){if(lookBack("url")){output.push(ch);eatWhitespace();if(next()){if(ch!==')'&&ch!=='"'&&ch!=='\''){output.push(eatString(')'))}else{pos--}}}else{parenLevel++;print.preserveSingleSpace();output.push(ch);eatWhitespace()}}else if(ch===')'){output.push(ch);parenLevel--}else if(ch===','){output.push(ch);eatWhitespace();if(selectorSeparatorNewline&&!insidePropertyValue&&parenLevel<1){print.newLine()}else{print.singleSpace()}}else if(ch===']'){output.push(ch)}else if(ch==='['){print.preserveSingleSpace();output.push(ch)}else if(ch==='='){eatWhitespace();ch='=';output.push(ch)}else{print.preserveSingleSpace();output.push(ch)}}
|
54
|
+
var sweetCode='';if(basebaseIndentString){sweetCode+=basebaseIndentString}
|
55
|
+
sweetCode+=output.join('').replace(/[\r\n\t ]+$/,'');if(end_with_newline){sweetCode+='\n'}
|
56
|
+
if(eol!=='\n'){sweetCode=sweetCode.replace(/[\n]/g,eol)}
|
57
|
+
return sweetCode}
|
58
|
+
css_beautify.NESTED_AT_RULE={"@page":!0,"@font-face":!0,"@keyframes":!0,"@media":!0,"@supports":!0,"@document":!0};css_beautify.CONDITIONAL_GROUP_RULE={"@media":!0,"@supports":!0,"@document":!0};if(typeof define==="function"&&define.amd){define([],function(){return{css_beautify:css_beautify}})}else if(typeof exports!=="undefined"){exports.css_beautify=css_beautify}else if(typeof window!=="undefined"){window.css_beautify=css_beautify}else if(typeof global!=="undefined"){global.css_beautify=css_beautify}}())
|
@@ -0,0 +1,112 @@
|
|
1
|
+
/*
|
2
|
+
The MIT License (MIT)
|
3
|
+
|
4
|
+
Copyright (c) 2007-2013 Einar Lielmanis and contributors.
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person
|
7
|
+
obtaining a copy of this software and associated documentation files
|
8
|
+
(the "Software"), to deal in the Software without restriction,
|
9
|
+
including without limitation the rights to use, copy, modify, merge,
|
10
|
+
publish, distribute, sublicense, and/or sell copies of the Software,
|
11
|
+
and to permit persons to whom the Software is furnished to do so,
|
12
|
+
subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
21
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
22
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
23
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
24
|
+
SOFTWARE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
(function(){function ltrim(s){return s.replace(/^\s+/g,'')}
|
28
|
+
function rtrim(s){return s.replace(/\s+$/g,'')}
|
29
|
+
function style_html(html_source,options,js_beautify,css_beautify){var multi_parser,indent_inner_html,indent_size,indent_character,wrap_line_length,brace_style,unformatted,preserve_newlines,max_preserve_newlines,indent_handlebars,wrap_attributes,wrap_attributes_indent_size,end_with_newline,extra_liners,eol;options=options||{};if((options.wrap_line_length===undefined||parseInt(options.wrap_line_length,10)===0)&&(options.max_char!==undefined&&parseInt(options.max_char,10)!==0)){options.wrap_line_length=options.max_char}
|
30
|
+
indent_inner_html=(options.indent_inner_html===undefined)?!1:options.indent_inner_html;indent_size=(options.indent_size===undefined)?4:parseInt(options.indent_size,10);indent_character=(options.indent_char===undefined)?' ':options.indent_char;brace_style=(options.brace_style===undefined)?'collapse':options.brace_style;wrap_line_length=parseInt(options.wrap_line_length,10)===0?32786:parseInt(options.wrap_line_length||250,10);unformatted=options.unformatted||['a','abbr','area','audio','b','bdi','bdo','br','button','canvas','cite','code','data','datalist','del','dfn','em','embed','i','iframe','img','input','ins','kbd','keygen','label','map','mark','math','meter','noscript','object','output','progress','q','ruby','s','samp','select','small','span','strong','sub','sup','svg','template','textarea','time','u','var','video','wbr','text','acronym','address','big','dt','ins','small','strike','tt','pre','h1','h2','h3','h4','h5','h6'];preserve_newlines=(options.preserve_newlines===undefined)?!0:options.preserve_newlines;max_preserve_newlines=preserve_newlines?(isNaN(parseInt(options.max_preserve_newlines,10))?32786:parseInt(options.max_preserve_newlines,10)):0;indent_handlebars=(options.indent_handlebars===undefined)?!1:options.indent_handlebars;wrap_attributes=(options.wrap_attributes===undefined)?'auto':options.wrap_attributes;wrap_attributes_indent_size=(isNaN(parseInt(options.wrap_attributes_indent_size,10)))?indent_size:parseInt(options.wrap_attributes_indent_size,10);end_with_newline=(options.end_with_newline===undefined)?!1:options.end_with_newline;extra_liners=(typeof options.extra_liners==='object')&&options.extra_liners?options.extra_liners.concat():(typeof options.extra_liners==='string')?options.extra_liners.split(','):'head,body,/html'.split(',');eol=options.eol?options.eol:'\n';if(options.indent_with_tabs){indent_character='\t';indent_size=1}
|
31
|
+
eol=eol.replace(/\\r/,'\r').replace(/\\n/,'\n');function Parser(){this.pos=0;this.token='';this.current_mode='CONTENT';this.tags={parent:'parent1',parentcount:1,parent1:''};this.tag_type='';this.token_text=this.last_token=this.last_text=this.token_type='';this.newlines=0;this.indent_content=indent_inner_html;this.Utils={whitespace:"\n\r\t ".split(''),single_token:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr','!doctype','?xml','?php','basefont','isindex'],extra_liners:extra_liners,in_array:function(what,arr){for(var i=0;i<arr.length;i++){if(what===arr[i]){return !0}}
|
32
|
+
return !1}};this.is_whitespace=function(text){for(var n=0;n<text.length;n++){if(!this.Utils.in_array(text.charAt(n),this.Utils.whitespace)){return !1}}
|
33
|
+
return !0};this.traverse_whitespace=function(){var input_char='';input_char=this.input.charAt(this.pos);if(this.Utils.in_array(input_char,this.Utils.whitespace)){this.newlines=0;while(this.Utils.in_array(input_char,this.Utils.whitespace)){if(preserve_newlines&&input_char==='\n'&&this.newlines<=max_preserve_newlines){this.newlines+=1}
|
34
|
+
this.pos++;input_char=this.input.charAt(this.pos)}
|
35
|
+
return !0}
|
36
|
+
return !1};this.space_or_wrap=function(content){if(this.line_char_count>=this.wrap_line_length){this.print_newline(!1,content);this.print_indentation(content);return !0}else{this.line_char_count++;content.push(' ');return !1}};this.get_content=function(){var input_char='',content=[];while(this.input.charAt(this.pos)!=='<'){if(this.pos>=this.input.length){return content.length?content.join(''):['','TK_EOF']}
|
37
|
+
if(this.traverse_whitespace()){this.space_or_wrap(content);continue}
|
38
|
+
if(indent_handlebars){var peek3=this.input.substr(this.pos,3);if(peek3==='{{#'||peek3==='{{/'){break}else if(peek3==='{{!'){return[this.get_tag(),'TK_TAG_HANDLEBARS_COMMENT']}else if(this.input.substr(this.pos,2)==='{{'){if(this.get_tag(!0)==='{{else}}'){break}}}
|
39
|
+
input_char=this.input.charAt(this.pos);this.pos++;this.line_char_count++;content.push(input_char)}
|
40
|
+
return content.length?content.join(''):''};this.get_contents_to=function(name){if(this.pos===this.input.length){return['','TK_EOF']}
|
41
|
+
var content='';var reg_match=new RegExp('</'+name+'\\s*>','igm');reg_match.lastIndex=this.pos;var reg_array=reg_match.exec(this.input);var end_script=reg_array?reg_array.index:this.input.length;if(this.pos<end_script){content=this.input.substring(this.pos,end_script);this.pos=end_script}
|
42
|
+
return content};this.record_tag=function(tag){if(this.tags[tag+'count']){this.tags[tag+'count']++;this.tags[tag+this.tags[tag+'count']]=this.indent_level}else{this.tags[tag+'count']=1;this.tags[tag+this.tags[tag+'count']]=this.indent_level}
|
43
|
+
this.tags[tag+this.tags[tag+'count']+'parent']=this.tags.parent;this.tags.parent=tag+this.tags[tag+'count']};this.retrieve_tag=function(tag){if(this.tags[tag+'count']){var temp_parent=this.tags.parent;while(temp_parent){if(tag+this.tags[tag+'count']===temp_parent){break}
|
44
|
+
temp_parent=this.tags[temp_parent+'parent']}
|
45
|
+
if(temp_parent){this.indent_level=this.tags[tag+this.tags[tag+'count']];this.tags.parent=this.tags[temp_parent+'parent']}
|
46
|
+
delete this.tags[tag+this.tags[tag+'count']+'parent'];delete this.tags[tag+this.tags[tag+'count']];if(this.tags[tag+'count']===1){delete this.tags[tag+'count']}else{this.tags[tag+'count']--}}};this.indent_to_tag=function(tag){if(!this.tags[tag+'count']){return}
|
47
|
+
var temp_parent=this.tags.parent;while(temp_parent){if(tag+this.tags[tag+'count']===temp_parent){break}
|
48
|
+
temp_parent=this.tags[temp_parent+'parent']}
|
49
|
+
if(temp_parent){this.indent_level=this.tags[tag+this.tags[tag+'count']]}};this.get_tag=function(peek){var input_char='',content=[],comment='',space=!1,first_attr=!0,tag_start,tag_end,tag_start_char,orig_pos=this.pos,orig_line_char_count=this.line_char_count;peek=peek!==undefined?peek:!1;do{if(this.pos>=this.input.length){if(peek){this.pos=orig_pos;this.line_char_count=orig_line_char_count}
|
50
|
+
return content.length?content.join(''):['','TK_EOF']}
|
51
|
+
input_char=this.input.charAt(this.pos);this.pos++;if(this.Utils.in_array(input_char,this.Utils.whitespace)){space=!0;continue}
|
52
|
+
if(input_char==="'"||input_char==='"'){input_char+=this.get_unformatted(input_char);space=!0}
|
53
|
+
if(input_char==='='){space=!1}
|
54
|
+
if(content.length&&content[content.length-1]!=='='&&input_char!=='>'&&space){var wrapped=this.space_or_wrap(content);var indentAttrs=wrapped&&input_char!=='/'&&wrap_attributes!=='force';space=!1;if(!first_attr&&wrap_attributes==='force'&&input_char!=='/'){this.print_newline(!1,content);this.print_indentation(content);indentAttrs=!0}
|
55
|
+
if(indentAttrs){for(var count=0;count<wrap_attributes_indent_size;count++){content.push(indent_character)}}
|
56
|
+
for(var i=0;i<content.length;i++){if(content[i]===' '){first_attr=!1;break}}}
|
57
|
+
if(indent_handlebars&&tag_start_char==='<'){if((input_char+this.input.charAt(this.pos))==='{{'){input_char+=this.get_unformatted('}}');if(content.length&&content[content.length-1]!==' '&&content[content.length-1]!=='<'){input_char=' '+input_char}
|
58
|
+
space=!0}}
|
59
|
+
if(input_char==='<'&&!tag_start_char){tag_start=this.pos-1;tag_start_char='<'}
|
60
|
+
if(indent_handlebars&&!tag_start_char){if(content.length>=2&&content[content.length-1]==='{'&&content[content.length-2]==='{'){if(input_char==='#'||input_char==='/'||input_char==='!'){tag_start=this.pos-3}else{tag_start=this.pos-2}
|
61
|
+
tag_start_char='{'}}
|
62
|
+
this.line_char_count++;content.push(input_char);if(content[1]&&(content[1]==='!'||content[1]==='?'||content[1]==='%')){content=[this.get_comment(tag_start)];break}
|
63
|
+
if(indent_handlebars&&content[1]&&content[1]==='{'&&content[2]&&content[2]==='!'){content=[this.get_comment(tag_start)];break}
|
64
|
+
if(indent_handlebars&&tag_start_char==='{'&&content.length>2&&content[content.length-2]==='}'&&content[content.length-1]==='}'){break}}while(input_char!=='>');var tag_complete=content.join('');var tag_index;var tag_offset;if(tag_complete.indexOf(' ')!==-1){tag_index=tag_complete.indexOf(' ')}else if(tag_complete.charAt(0)==='{'){tag_index=tag_complete.indexOf('}')}else{tag_index=tag_complete.indexOf('>')}
|
65
|
+
if(tag_complete.charAt(0)==='<'||!indent_handlebars){tag_offset=1}else{tag_offset=tag_complete.charAt(2)==='#'?3:2}
|
66
|
+
var tag_check=tag_complete.substring(tag_offset,tag_index).toLowerCase();if(tag_complete.charAt(tag_complete.length-2)==='/'||this.Utils.in_array(tag_check,this.Utils.single_token)){if(!peek){this.tag_type='SINGLE'}}else if(indent_handlebars&&tag_complete.charAt(0)==='{'&&tag_check==='else'){if(!peek){this.indent_to_tag('if');this.tag_type='HANDLEBARS_ELSE';this.indent_content=!0;this.traverse_whitespace()}}else if(this.is_unformatted(tag_check,unformatted)){comment=this.get_unformatted('</'+tag_check+'>',tag_complete);content.push(comment);tag_end=this.pos-1;this.tag_type='SINGLE'}else if(tag_check==='script'&&(tag_complete.search('type')===-1||(tag_complete.search('type')>-1&&tag_complete.search(/\b(text|application)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json)/)>-1))){if(!peek){this.record_tag(tag_check);this.tag_type='SCRIPT'}}else if(tag_check==='style'&&(tag_complete.search('type')===-1||(tag_complete.search('type')>-1&&tag_complete.search('text/css')>-1))){if(!peek){this.record_tag(tag_check);this.tag_type='STYLE'}}else if(tag_check.charAt(0)==='!'){if(!peek){this.tag_type='SINGLE';this.traverse_whitespace()}}else if(!peek){if(tag_check.charAt(0)==='/'){this.retrieve_tag(tag_check.substring(1));this.tag_type='END'}else{this.record_tag(tag_check);if(tag_check.toLowerCase()!=='html'){this.indent_content=!0}
|
67
|
+
this.tag_type='START'}
|
68
|
+
if(this.traverse_whitespace()){this.space_or_wrap(content)}
|
69
|
+
if(this.Utils.in_array(tag_check,this.Utils.extra_liners)){this.print_newline(!1,this.output);if(this.output.length&&this.output[this.output.length-2]!=='\n'){this.print_newline(!0,this.output)}}}
|
70
|
+
if(peek){this.pos=orig_pos;this.line_char_count=orig_line_char_count}
|
71
|
+
return content.join('')};this.get_comment=function(start_pos){var comment='',delimiter='>',matched=!1;this.pos=start_pos;var input_char=this.input.charAt(this.pos);this.pos++;while(this.pos<=this.input.length){comment+=input_char;if(comment.charAt(comment.length-1)===delimiter.charAt(delimiter.length-1)&&comment.indexOf(delimiter)!==-1){break}
|
72
|
+
if(!matched&&comment.length<10){if(comment.indexOf('<![if')===0){delimiter='<![endif]>';matched=!0}else if(comment.indexOf('<![cdata[')===0){delimiter=']]>';matched=!0}else if(comment.indexOf('<![')===0){delimiter=']>';matched=!0}else if(comment.indexOf('<!--')===0){delimiter='-->';matched=!0}else if(comment.indexOf('{{!')===0){delimiter='}}';matched=!0}else if(comment.indexOf('<?')===0){delimiter='?>';matched=!0}else if(comment.indexOf('<%')===0){delimiter='%>';matched=!0}}
|
73
|
+
input_char=this.input.charAt(this.pos);this.pos++}
|
74
|
+
return comment};function tokenMatcher(delimiter){var token='';var add=function(str){var newToken=token+str.toLowerCase();token=newToken.length<=delimiter.length?newToken:newToken.substr(newToken.length-delimiter.length,delimiter.length)};var doesNotMatch=function(){return token.indexOf(delimiter)===-1};return{add:add,doesNotMatch:doesNotMatch}}
|
75
|
+
this.get_unformatted=function(delimiter,orig_tag){if(orig_tag&&orig_tag.toLowerCase().indexOf(delimiter)!==-1){return ''}
|
76
|
+
var input_char='';var content='';var space=!0;var delimiterMatcher=tokenMatcher(delimiter);do{if(this.pos>=this.input.length){return content}
|
77
|
+
input_char=this.input.charAt(this.pos);this.pos++;if(this.Utils.in_array(input_char,this.Utils.whitespace)){if(!space){this.line_char_count--;continue}
|
78
|
+
if(input_char==='\n'||input_char==='\r'){content+='\n';this.line_char_count=0;continue}}
|
79
|
+
content+=input_char;delimiterMatcher.add(input_char);this.line_char_count++;space=!0;if(indent_handlebars&&input_char==='{'&&content.length&&content.charAt(content.length-2)==='{'){content+=this.get_unformatted('}}')}}while(delimiterMatcher.doesNotMatch());return content};this.get_token=function(){var token;if(this.last_token==='TK_TAG_SCRIPT'||this.last_token==='TK_TAG_STYLE'){var type=this.last_token.substr(7);token=this.get_contents_to(type);if(typeof token!=='string'){return token}
|
80
|
+
return[token,'TK_'+type]}
|
81
|
+
if(this.current_mode==='CONTENT'){token=this.get_content();if(typeof token!=='string'){return token}else{return[token,'TK_CONTENT']}}
|
82
|
+
if(this.current_mode==='TAG'){token=this.get_tag();if(typeof token!=='string'){return token}else{var tag_name_type='TK_TAG_'+this.tag_type;return[token,tag_name_type]}}};this.get_full_indent=function(level){level=this.indent_level+level||0;if(level<1){return ''}
|
83
|
+
return Array(level+1).join(this.indent_string)};this.is_unformatted=function(tag_check,unformatted){if(!this.Utils.in_array(tag_check,unformatted)){return !1}
|
84
|
+
if(tag_check.toLowerCase()!=='a'||!this.Utils.in_array('a',unformatted)){return !0}
|
85
|
+
var next_tag=this.get_tag(!0);var tag=(next_tag||"").match(/^\s*<\s*\/?([a-z]*)\s*[^>]*>\s*$/);if(!tag||this.Utils.in_array(tag,unformatted)){return !0}else{return !1}};this.printer=function(js_source,indent_character,indent_size,wrap_line_length,brace_style){this.input=js_source||'';this.input=this.input.replace(/\r\n|[\r\u2028\u2029]/g,'\n');this.output=[];this.indent_character=indent_character;this.indent_string='';this.indent_size=indent_size;this.brace_style=brace_style;this.indent_level=0;this.wrap_line_length=wrap_line_length;this.line_char_count=0;for(var i=0;i<this.indent_size;i++){this.indent_string+=this.indent_character}
|
86
|
+
this.print_newline=function(force,arr){this.line_char_count=0;if(!arr||!arr.length){return}
|
87
|
+
if(force||(arr[arr.length-1]!=='\n')){if((arr[arr.length-1]!=='\n')){arr[arr.length-1]=rtrim(arr[arr.length-1])}
|
88
|
+
arr.push('\n')}};this.print_indentation=function(arr){for(var i=0;i<this.indent_level;i++){arr.push(this.indent_string);this.line_char_count+=this.indent_string.length}};this.print_token=function(text){if(this.is_whitespace(text)&&!this.output.length){return}
|
89
|
+
if(text||text!==''){if(this.output.length&&this.output[this.output.length-1]==='\n'){this.print_indentation(this.output);text=ltrim(text)}}
|
90
|
+
this.print_token_raw(text)};this.print_token_raw=function(text){if(this.newlines>0){text=rtrim(text)}
|
91
|
+
if(text&&text!==''){if(text.length>1&&text.charAt(text.length-1)==='\n'){this.output.push(text.slice(0,-1));this.print_newline(!1,this.output)}else{this.output.push(text)}}
|
92
|
+
for(var n=0;n<this.newlines;n++){this.print_newline(n>0,this.output)}
|
93
|
+
this.newlines=0};this.indent=function(){this.indent_level++};this.unindent=function(){if(this.indent_level>0){this.indent_level--}}};return this}
|
94
|
+
multi_parser=new Parser();multi_parser.printer(html_source,indent_character,indent_size,wrap_line_length,brace_style);for(;;){var t=multi_parser.get_token();multi_parser.token_text=t[0];multi_parser.token_type=t[1];if(multi_parser.token_type==='TK_EOF'){break}
|
95
|
+
switch(multi_parser.token_type){case 'TK_TAG_START':multi_parser.print_newline(!1,multi_parser.output);multi_parser.print_token(multi_parser.token_text);if(multi_parser.indent_content){multi_parser.indent();multi_parser.indent_content=!1}
|
96
|
+
multi_parser.current_mode='CONTENT';break;case 'TK_TAG_STYLE':case 'TK_TAG_SCRIPT':multi_parser.print_newline(!1,multi_parser.output);multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='CONTENT';break;case 'TK_TAG_END':if(multi_parser.last_token==='TK_CONTENT'&&multi_parser.last_text===''){var tag_name=multi_parser.token_text.match(/\w+/)[0];var tag_extracted_from_last_output=null;if(multi_parser.output.length){tag_extracted_from_last_output=multi_parser.output[multi_parser.output.length-1].match(/(?:<|{{#)\s*(\w+)/)}
|
97
|
+
if(tag_extracted_from_last_output===null||(tag_extracted_from_last_output[1]!==tag_name&&!multi_parser.Utils.in_array(tag_extracted_from_last_output[1],unformatted))){multi_parser.print_newline(!1,multi_parser.output)}}
|
98
|
+
multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='CONTENT';break;case 'TK_TAG_SINGLE':var tag_check=multi_parser.token_text.match(/^\s*<([a-z-]+)/i);if(!tag_check||!multi_parser.Utils.in_array(tag_check[1],unformatted)){multi_parser.print_newline(!1,multi_parser.output)}
|
99
|
+
multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='CONTENT';break;case 'TK_TAG_HANDLEBARS_ELSE':var foundIfOnCurrentLine=!1;for(var lastCheckedOutput=multi_parser.output.length-1;lastCheckedOutput>=0;lastCheckedOutput--){if(multi_parser.output[lastCheckedOutput]==='\n'){break}else{if(multi_parser.output[lastCheckedOutput].match(/{{#if/)){foundIfOnCurrentLine=!0;break}}}
|
100
|
+
if(!foundIfOnCurrentLine){multi_parser.print_newline(!1,multi_parser.output)}
|
101
|
+
multi_parser.print_token(multi_parser.token_text);if(multi_parser.indent_content){multi_parser.indent();multi_parser.indent_content=!1}
|
102
|
+
multi_parser.current_mode='CONTENT';break;case 'TK_TAG_HANDLEBARS_COMMENT':multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='TAG';break;case 'TK_CONTENT':multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='TAG';break;case 'TK_STYLE':case 'TK_SCRIPT':if(multi_parser.token_text!==''){multi_parser.print_newline(!1,multi_parser.output);var text=multi_parser.token_text,_beautifier,script_indent_level=1;if(multi_parser.token_type==='TK_SCRIPT'){_beautifier=typeof js_beautify==='function'&&js_beautify}else if(multi_parser.token_type==='TK_STYLE'){_beautifier=typeof css_beautify==='function'&&css_beautify}
|
103
|
+
if(options.indent_scripts==="keep"){script_indent_level=0}else if(options.indent_scripts==="separate"){script_indent_level=-multi_parser.indent_level}
|
104
|
+
var indentation=multi_parser.get_full_indent(script_indent_level);if(_beautifier){var Child_options=function(){this.eol='\n'};Child_options.prototype=options;var child_options=new Child_options();text=_beautifier(text.replace(/^\s*/,indentation),child_options)}else{var white=text.match(/^\s*/)[0];var _level=white.match(/[^\n\r]*$/)[0].split(multi_parser.indent_string).length-1;var reindent=multi_parser.get_full_indent(script_indent_level-_level);text=text.replace(/^\s*/,indentation).replace(/\r\n|\r|\n/g,'\n'+reindent).replace(/\s+$/,'')}
|
105
|
+
if(text){multi_parser.print_token_raw(text);multi_parser.print_newline(!0,multi_parser.output)}}
|
106
|
+
multi_parser.current_mode='TAG';break;default:if(multi_parser.token_text!==''){multi_parser.print_token(multi_parser.token_text)}
|
107
|
+
break}
|
108
|
+
multi_parser.last_token=multi_parser.token_type;multi_parser.last_text=multi_parser.token_text}
|
109
|
+
var sweet_code=multi_parser.output.join('').replace(/[\r\n\t ]+$/,'');if(end_with_newline){sweet_code+='\n'}
|
110
|
+
if(eol!=='\n'){sweet_code=sweet_code.replace(/[\n]/g,eol)}
|
111
|
+
return sweet_code}
|
112
|
+
if(typeof define==="function"&&define.amd){define(["require","./beautify","./beautify-css"],function(requireamd){var js_beautify=requireamd("./beautify");var css_beautify=requireamd("./beautify-css");return{html_beautify:function(html_source,options){return style_html(html_source,options,js_beautify.js_beautify,css_beautify.css_beautify)}}})}else if(typeof exports!=="undefined"){var js_beautify=require('./beautify.js');var css_beautify=require('./beautify-css.js');exports.html_beautify=function(html_source,options){return style_html(html_source,options,js_beautify.js_beautify,css_beautify.css_beautify)}}else if(typeof window!=="undefined"){window.html_beautify=function(html_source,options){return style_html(html_source,options,window.js_beautify,window.css_beautify)}}else if(typeof global!=="undefined"){global.html_beautify=function(html_source,options){return style_html(html_source,options,global.js_beautify,global.css_beautify)}}}())
|
@@ -0,0 +1,247 @@
|
|
1
|
+
/*
|
2
|
+
The MIT License (MIT)
|
3
|
+
|
4
|
+
Copyright (c) 2007-2013 Einar Lielmanis and contributors.
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person
|
7
|
+
obtaining a copy of this software and associated documentation files
|
8
|
+
(the "Software"), to deal in the Software without restriction,
|
9
|
+
including without limitation the rights to use, copy, modify, merge,
|
10
|
+
publish, distribute, sublicense, and/or sell copies of the Software,
|
11
|
+
and to permit persons to whom the Software is furnished to do so,
|
12
|
+
subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
21
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
22
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
23
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
24
|
+
SOFTWARE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
if(!Object.values){Object.values=function(o){if(o!==Object(o)){throw new TypeError('Object.values called on a non-object')}
|
28
|
+
var k=[],p;for(p in o){if(Object.prototype.hasOwnProperty.call(o,p)){k.push(o[p])}}
|
29
|
+
return k}}(function(){var acorn={};(function(exports){var nonASCIIwhitespace=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/;var nonASCIIidentifierStartChars="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";var nonASCIIidentifierChars="\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";var nonASCIIidentifierStart=new RegExp("["+nonASCIIidentifierStartChars+"]");var nonASCIIidentifier=new RegExp("["+nonASCIIidentifierStartChars+nonASCIIidentifierChars+"]");exports.newline=/[\n\r\u2028\u2029]/;exports.lineBreak=new RegExp('\r\n|'+exports.newline.source);exports.allLineBreaks=new RegExp(exports.lineBreak.source,'g');exports.isIdentifierStart=function(code){if(code<65)return code===36||code===64;if(code<91)return !0;if(code<97)return code===95;if(code<123)return !0;return code>=0xaa&&nonASCIIidentifierStart.test(String.fromCharCode(code))};exports.isIdentifierChar=function(code){if(code<48)return code===36;if(code<58)return !0;if(code<65)return !1;if(code<91)return !0;if(code<97)return code===95;if(code<123)return !0;return code>=0xaa&&nonASCIIidentifier.test(String.fromCharCode(code))}})(acorn);function in_array(what,arr){for(var i=0;i<arr.length;i+=1){if(arr[i]===what){return !0}}
|
30
|
+
return !1}
|
31
|
+
function trim(s){return s.replace(/^\s+|\s+$/g,'')}
|
32
|
+
function ltrim(s){return s.replace(/^\s+/g,'')}
|
33
|
+
function js_beautify(js_source_text,options){"use strict";var beautifier=new Beautifier(js_source_text,options);return beautifier.beautify()}
|
34
|
+
function sanitizeOperatorPosition(opPosition){opPosition=opPosition||OPERATOR_POSITION.before_newline;var validPositionValues=Object.values(OPERATOR_POSITION);if(!in_array(opPosition,validPositionValues)){throw new Error("Invalid Option Value: The option 'operator_position' must be one of the following values\n"+validPositionValues+"\nYou passed in: '"+opPosition+"'")}
|
35
|
+
return opPosition}
|
36
|
+
var OPERATOR_POSITION={before_newline:'before-newline',after_newline:'after-newline',preserve_newline:'preserve-newline',};var OPERATOR_POSITION_BEFORE_OR_PRESERVE=[OPERATOR_POSITION.before_newline,OPERATOR_POSITION.preserve_newline];var MODE={BlockStatement:'BlockStatement',Statement:'Statement',ObjectLiteral:'ObjectLiteral',ArrayLiteral:'ArrayLiteral',ForInitializer:'ForInitializer',Conditional:'Conditional',Expression:'Expression'};function Beautifier(js_source_text,options){"use strict";var output;var tokens=[],token_pos;var Tokenizer;var current_token;var last_type,last_last_text,indent_string;var flags,previous_flags,flag_store;var prefix;var handlers,opt;var baseIndentString='';handlers={'TK_START_EXPR':handle_start_expr,'TK_END_EXPR':handle_end_expr,'TK_START_BLOCK':handle_start_block,'TK_END_BLOCK':handle_end_block,'TK_WORD':handle_word,'TK_RESERVED':handle_word,'TK_SEMICOLON':handle_semicolon,'TK_STRING':handle_string,'TK_EQUALS':handle_equals,'TK_OPERATOR':handle_operator,'TK_COMMA':handle_comma,'TK_BLOCK_COMMENT':handle_block_comment,'TK_COMMENT':handle_comment,'TK_DOT':handle_dot,'TK_UNKNOWN':handle_unknown,'TK_EOF':handle_eof};function create_flags(flags_base,mode){var next_indent_level=0;if(flags_base){next_indent_level=flags_base.indentation_level;if(!output.just_added_newline()&&flags_base.line_indent_level>next_indent_level){next_indent_level=flags_base.line_indent_level}}
|
37
|
+
var next_flags={mode:mode,parent:flags_base,last_text:flags_base?flags_base.last_text:'',last_word:flags_base?flags_base.last_word:'',declaration_statement:!1,declaration_assignment:!1,multiline_frame:!1,inline_frame:!1,if_block:!1,else_block:!1,do_block:!1,do_while:!1,import_block:!1,in_case_statement:!1,in_case:!1,case_body:!1,indentation_level:next_indent_level,line_indent_level:flags_base?flags_base.line_indent_level:next_indent_level,start_line_index:output.get_line_number(),ternary_depth:0};return next_flags}
|
38
|
+
options=options?options:{};opt={};if(options.braces_on_own_line!==undefined){opt.brace_style=options.braces_on_own_line?"expand":"collapse"}
|
39
|
+
opt.brace_style=options.brace_style?options.brace_style:(opt.brace_style?opt.brace_style:"collapse");if(opt.brace_style==="expand-strict"){opt.brace_style="expand"}
|
40
|
+
opt.indent_size=options.indent_size?parseInt(options.indent_size,10):4;opt.indent_char=options.indent_char?options.indent_char:' ';opt.eol=options.eol?options.eol:'auto';opt.preserve_newlines=(options.preserve_newlines===undefined)?!0:options.preserve_newlines;opt.break_chained_methods=(options.break_chained_methods===undefined)?!1:options.break_chained_methods;opt.max_preserve_newlines=(options.max_preserve_newlines===undefined)?0:parseInt(options.max_preserve_newlines,10);opt.space_in_paren=(options.space_in_paren===undefined)?!1:options.space_in_paren;opt.space_in_empty_paren=(options.space_in_empty_paren===undefined)?!1:options.space_in_empty_paren;opt.jslint_happy=(options.jslint_happy===undefined)?!1:options.jslint_happy;opt.space_after_anon_function=(options.space_after_anon_function===undefined)?!1:options.space_after_anon_function;opt.keep_array_indentation=(options.keep_array_indentation===undefined)?!1:options.keep_array_indentation;opt.space_before_conditional=(options.space_before_conditional===undefined)?!0:options.space_before_conditional;opt.unescape_strings=(options.unescape_strings===undefined)?!1:options.unescape_strings;opt.wrap_line_length=(options.wrap_line_length===undefined)?0:parseInt(options.wrap_line_length,10);opt.e4x=(options.e4x===undefined)?!1:options.e4x;opt.end_with_newline=(options.end_with_newline===undefined)?!1:options.end_with_newline;opt.comma_first=(options.comma_first===undefined)?!1:options.comma_first;opt.operator_position=sanitizeOperatorPosition(options.operator_position);opt.test_output_raw=(options.test_output_raw===undefined)?!1:options.test_output_raw;if(opt.jslint_happy){opt.space_after_anon_function=!0}
|
41
|
+
if(options.indent_with_tabs){opt.indent_char='\t';opt.indent_size=1}
|
42
|
+
if(opt.eol==='auto'){opt.eol='\n';if(js_source_text&&acorn.lineBreak.test(js_source_text||'')){opt.eol=js_source_text.match(acorn.lineBreak)[0]}}
|
43
|
+
opt.eol=opt.eol.replace(/\\r/,'\r').replace(/\\n/,'\n');indent_string='';while(opt.indent_size>0){indent_string+=opt.indent_char;opt.indent_size-=1}
|
44
|
+
var preindent_index=0;if(js_source_text&&js_source_text.length){while((js_source_text.charAt(preindent_index)===' '||js_source_text.charAt(preindent_index)==='\t')){baseIndentString+=js_source_text.charAt(preindent_index);preindent_index+=1}
|
45
|
+
js_source_text=js_source_text.substring(preindent_index)}
|
46
|
+
last_type='TK_START_BLOCK';last_last_text='';output=new Output(indent_string,baseIndentString);output.raw=opt.test_output_raw;flag_store=[];set_mode(MODE.BlockStatement);this.beautify=function(){var local_token,sweet_code;Tokenizer=new tokenizer(js_source_text,opt,indent_string);tokens=Tokenizer.tokenize();token_pos=0;function get_local_token(){local_token=get_token();return local_token}
|
47
|
+
while(get_local_token()){for(var i=0;i<local_token.comments_before.length;i++){handle_token(local_token.comments_before[i])}
|
48
|
+
handle_token(local_token);last_last_text=flags.last_text;last_type=local_token.type;flags.last_text=local_token.text;token_pos+=1}
|
49
|
+
sweet_code=output.get_code();if(opt.end_with_newline){sweet_code+='\n'}
|
50
|
+
if(opt.eol!=='\n'){sweet_code=sweet_code.replace(/[\n]/g,opt.eol)}
|
51
|
+
return sweet_code};function handle_token(local_token){var newlines=local_token.newlines;var keep_whitespace=opt.keep_array_indentation&&is_array(flags.mode);if(keep_whitespace){for(var i=0;i<newlines;i+=1){print_newline(i>0)}}else{if(opt.max_preserve_newlines&&newlines>opt.max_preserve_newlines){newlines=opt.max_preserve_newlines}
|
52
|
+
if(opt.preserve_newlines){if(local_token.newlines>1){print_newline();for(var j=1;j<newlines;j+=1){print_newline(!0)}}}}
|
53
|
+
current_token=local_token;handlers[current_token.type]()}
|
54
|
+
function split_linebreaks(s){s=s.replace(acorn.allLineBreaks,'\n');var out=[],idx=s.indexOf("\n");while(idx!==-1){out.push(s.substring(0,idx));s=s.substring(idx+1);idx=s.indexOf("\n")}
|
55
|
+
if(s.length){out.push(s)}
|
56
|
+
return out}
|
57
|
+
var newline_restricted_tokens=['break','contiue','return','throw'];function allow_wrap_or_preserved_newline(force_linewrap){force_linewrap=(force_linewrap===undefined)?!1:force_linewrap;if(output.just_added_newline()){return}
|
58
|
+
var shouldPreserveOrForce=(opt.preserve_newlines&¤t_token.wanted_newline)||force_linewrap;var operatorLogicApplies=in_array(flags.last_text,Tokenizer.positionable_operators)||in_array(current_token.text,Tokenizer.positionable_operators);if(operatorLogicApplies){var shouldPrintOperatorNewline=(in_array(flags.last_text,Tokenizer.positionable_operators)&&in_array(opt.operator_position,OPERATOR_POSITION_BEFORE_OR_PRESERVE))||in_array(current_token.text,Tokenizer.positionable_operators);shouldPreserveOrForce=shouldPreserveOrForce&&shouldPrintOperatorNewline}
|
59
|
+
if(shouldPreserveOrForce){print_newline(!1,!0)}else if(opt.wrap_line_length){if(last_type==='TK_RESERVED'&&in_array(flags.last_text,newline_restricted_tokens)){return}
|
60
|
+
var proposed_line_length=output.current_line.get_character_count()+current_token.text.length+(output.space_before_token?1:0);if(proposed_line_length>=opt.wrap_line_length){print_newline(!1,!0)}}}
|
61
|
+
function print_newline(force_newline,preserve_statement_flags){if(!preserve_statement_flags){if(flags.last_text!==';'&&flags.last_text!==','&&flags.last_text!=='='&&last_type!=='TK_OPERATOR'){while(flags.mode===MODE.Statement&&!flags.if_block&&!flags.do_block){restore_mode()}}}
|
62
|
+
if(output.add_new_line(force_newline)){flags.multiline_frame=!0}}
|
63
|
+
function print_token_line_indentation(){if(output.just_added_newline()){if(opt.keep_array_indentation&&is_array(flags.mode)&¤t_token.wanted_newline){output.current_line.push(current_token.whitespace_before);output.space_before_token=!1}else if(output.set_indent(flags.indentation_level)){flags.line_indent_level=flags.indentation_level}}}
|
64
|
+
function print_token(printable_token){if(output.raw){output.add_raw_token(current_token);return}
|
65
|
+
if(opt.comma_first&&last_type==='TK_COMMA'&&output.just_added_newline()){if(output.previous_line.last()===','){var popped=output.previous_line.pop();if(output.previous_line.is_empty()){output.previous_line.push(popped);output.trim(!0);output.current_line.pop();output.trim()}
|
66
|
+
print_token_line_indentation();output.add_token(',');output.space_before_token=!0}}
|
67
|
+
printable_token=printable_token||current_token.text;print_token_line_indentation();output.add_token(printable_token)}
|
68
|
+
function indent(){flags.indentation_level+=1}
|
69
|
+
function deindent(){if(flags.indentation_level>0&&((!flags.parent)||flags.indentation_level>flags.parent.indentation_level)){flags.indentation_level-=1}}
|
70
|
+
function set_mode(mode){if(flags){flag_store.push(flags);previous_flags=flags}else{previous_flags=create_flags(null,mode)}
|
71
|
+
flags=create_flags(previous_flags,mode)}
|
72
|
+
function is_array(mode){return mode===MODE.ArrayLiteral}
|
73
|
+
function is_expression(mode){return in_array(mode,[MODE.Expression,MODE.ForInitializer,MODE.Conditional])}
|
74
|
+
function restore_mode(){if(flag_store.length>0){previous_flags=flags;flags=flag_store.pop();if(previous_flags.mode===MODE.Statement){output.remove_redundant_indentation(previous_flags)}}}
|
75
|
+
function start_of_object_property(){return flags.parent.mode===MODE.ObjectLiteral&&flags.mode===MODE.Statement&&((flags.last_text===':'&&flags.ternary_depth===0)||(last_type==='TK_RESERVED'&&in_array(flags.last_text,['get','set'])))}
|
76
|
+
function start_of_statement(){if((last_type==='TK_RESERVED'&&in_array(flags.last_text,['var','let','const'])&¤t_token.type==='TK_WORD')||(last_type==='TK_RESERVED'&&flags.last_text==='do')||(last_type==='TK_RESERVED'&&in_array(flags.last_text,['return','throw'])&&!current_token.wanted_newline)||(last_type==='TK_RESERVED'&&flags.last_text==='else'&&!(current_token.type==='TK_RESERVED'&¤t_token.text==='if'))||(last_type==='TK_END_EXPR'&&(previous_flags.mode===MODE.ForInitializer||previous_flags.mode===MODE.Conditional))||(last_type==='TK_WORD'&&flags.mode===MODE.BlockStatement&&!flags.in_case&&!(current_token.text==='--'||current_token.text==='++')&&last_last_text!=='function'&¤t_token.type!=='TK_WORD'&¤t_token.type!=='TK_RESERVED')||(flags.mode===MODE.ObjectLiteral&&((flags.last_text===':'&&flags.ternary_depth===0)||(last_type==='TK_RESERVED'&&in_array(flags.last_text,['get','set']))))){set_mode(MODE.Statement);indent();if(last_type==='TK_RESERVED'&&in_array(flags.last_text,['var','let','const'])&¤t_token.type==='TK_WORD'){flags.declaration_statement=!0}
|
77
|
+
if(!start_of_object_property()){allow_wrap_or_preserved_newline(current_token.type==='TK_RESERVED'&&in_array(current_token.text,['do','for','if','while']))}
|
78
|
+
return !0}
|
79
|
+
return !1}
|
80
|
+
function all_lines_start_with(lines,c){for(var i=0;i<lines.length;i++){var line=trim(lines[i]);if(line.charAt(0)!==c){return !1}}
|
81
|
+
return !0}
|
82
|
+
function each_line_matches_indent(lines,indent){var i=0,len=lines.length,line;for(;i<len;i++){line=lines[i];if(line&&line.indexOf(indent)!==0){return !1}}
|
83
|
+
return !0}
|
84
|
+
function is_special_word(word){return in_array(word,['case','return','do','if','throw','else'])}
|
85
|
+
function get_token(offset){var index=token_pos+(offset||0);return(index<0||index>=tokens.length)?null:tokens[index]}
|
86
|
+
function handle_start_expr(){if(start_of_statement()){}
|
87
|
+
var next_mode=MODE.Expression;if(current_token.text==='['){if(last_type==='TK_WORD'||flags.last_text===')'){if(last_type==='TK_RESERVED'&&in_array(flags.last_text,Tokenizer.line_starters)){output.space_before_token=!0}
|
88
|
+
set_mode(next_mode);print_token();indent();if(opt.space_in_paren){output.space_before_token=!0}
|
89
|
+
return}
|
90
|
+
next_mode=MODE.ArrayLiteral;if(is_array(flags.mode)){if(flags.last_text==='['||(flags.last_text===','&&(last_last_text===']'||last_last_text==='}'))){if(!opt.keep_array_indentation){print_newline()}}}}else{if(last_type==='TK_RESERVED'&&flags.last_text==='for'){next_mode=MODE.ForInitializer}else if(last_type==='TK_RESERVED'&&in_array(flags.last_text,['if','while'])){next_mode=MODE.Conditional}else{}}
|
91
|
+
if(flags.last_text===';'||last_type==='TK_START_BLOCK'){print_newline()}else if(last_type==='TK_END_EXPR'||last_type==='TK_START_EXPR'||last_type==='TK_END_BLOCK'||flags.last_text==='.'){allow_wrap_or_preserved_newline(current_token.wanted_newline)}else if(!(last_type==='TK_RESERVED'&¤t_token.text==='(')&&last_type!=='TK_WORD'&&last_type!=='TK_OPERATOR'){output.space_before_token=!0}else if((last_type==='TK_RESERVED'&&(flags.last_word==='function'||flags.last_word==='typeof'))||(flags.last_text==='*'&&last_last_text==='function')){if(opt.space_after_anon_function){output.space_before_token=!0}}else if(last_type==='TK_RESERVED'&&(in_array(flags.last_text,Tokenizer.line_starters)||flags.last_text==='catch')){if(opt.space_before_conditional){output.space_before_token=!0}}
|
92
|
+
if(current_token.text==='('&&last_type==='TK_RESERVED'&&flags.last_word==='await'){output.space_before_token=!0}
|
93
|
+
if(current_token.text==='('){if(last_type==='TK_EQUALS'||last_type==='TK_OPERATOR'){if(!start_of_object_property()){allow_wrap_or_preserved_newline()}}}
|
94
|
+
if(current_token.text==='('&&last_type!=='TK_WORD'&&last_type!=='TK_RESERVED'){allow_wrap_or_preserved_newline()}
|
95
|
+
set_mode(next_mode);print_token();if(opt.space_in_paren){output.space_before_token=!0}
|
96
|
+
indent()}
|
97
|
+
function handle_end_expr(){while(flags.mode===MODE.Statement){restore_mode()}
|
98
|
+
if(flags.multiline_frame){allow_wrap_or_preserved_newline(current_token.text===']'&&is_array(flags.mode)&&!opt.keep_array_indentation)}
|
99
|
+
if(opt.space_in_paren){if(last_type==='TK_START_EXPR'&&!opt.space_in_empty_paren){output.trim();output.space_before_token=!1}else{output.space_before_token=!0}}
|
100
|
+
if(current_token.text===']'&&opt.keep_array_indentation){print_token();restore_mode()}else{restore_mode();print_token()}
|
101
|
+
output.remove_redundant_indentation(previous_flags);if(flags.do_while&&previous_flags.mode===MODE.Conditional){previous_flags.mode=MODE.Expression;flags.do_block=!1;flags.do_while=!1}}
|
102
|
+
function handle_start_block(){var next_token=get_token(1);var second_token=get_token(2);if(second_token&&((in_array(second_token.text,[':',','])&&in_array(next_token.type,['TK_STRING','TK_WORD','TK_RESERVED']))||(in_array(next_token.text,['get','set'])&&in_array(second_token.type,['TK_WORD','TK_RESERVED'])))){if(!in_array(last_last_text,['class','interface'])){set_mode(MODE.ObjectLiteral)}else{set_mode(MODE.BlockStatement)}}else if(last_type==='TK_OPERATOR'&&flags.last_text==='=>'){set_mode(MODE.BlockStatement)}else if(in_array(last_type,['TK_EQUALS','TK_START_EXPR','TK_COMMA','TK_OPERATOR'])||(last_type==='TK_RESERVED'&&in_array(flags.last_text,['return','throw','import']))){set_mode(MODE.ObjectLiteral)}else{set_mode(MODE.BlockStatement)}
|
103
|
+
var empty_braces=!next_token.comments_before.length&&next_token.text==='}';var empty_anonymous_function=empty_braces&&flags.last_word==='function'&&last_type==='TK_END_EXPR';if(opt.brace_style==="expand"||(opt.brace_style==="none"&¤t_token.wanted_newline)){if(last_type!=='TK_OPERATOR'&&(empty_anonymous_function||last_type==='TK_EQUALS'||(last_type==='TK_RESERVED'&&is_special_word(flags.last_text)&&flags.last_text!=='else'))){output.space_before_token=!0}else{print_newline(!1,!0)}}else{if(opt.brace_style==='collapse-preserve-inline'){var index=0;var check_token=null;flags.inline_frame=!0;do{index+=1;check_token=get_token(index);if(check_token.wanted_newline){flags.inline_frame=!1;break}}while(check_token.type!=='TK_EOF'&&!(check_token.type==='TK_END_BLOCK'&&check_token.opened===current_token))}
|
104
|
+
if(is_array(previous_flags.mode)&&(last_type==='TK_START_EXPR'||last_type==='TK_COMMA')){if(last_type==='TK_COMMA'||opt.space_in_paren){output.space_before_token=!0}
|
105
|
+
if(opt.brace_style==='collapse-preserve-inline'&&(last_type==='TK_COMMA'||(last_type==='TK_START_EXPR'&&flags.inline_frame))){allow_wrap_or_preserved_newline();previous_flags.multiline_frame=previous_flags.multiline_frame||flags.multiline_frame;flags.multiline_frame=!1}}else if(last_type!=='TK_OPERATOR'&&last_type!=='TK_START_EXPR'){if(last_type==='TK_START_BLOCK'){print_newline()}else{output.space_before_token=!0}}}
|
106
|
+
print_token();indent()}
|
107
|
+
function handle_end_block(){while(flags.mode===MODE.Statement){restore_mode()}
|
108
|
+
var empty_braces=last_type==='TK_START_BLOCK';if(opt.brace_style==="expand"){if(!empty_braces){print_newline()}}else{if(!empty_braces){if(flags.inline_frame){output.space_before_token=!0}else if(is_array(flags.mode)&&opt.keep_array_indentation){opt.keep_array_indentation=!1;print_newline();opt.keep_array_indentation=!0}else{print_newline()}}}
|
109
|
+
restore_mode();print_token()}
|
110
|
+
function handle_word(){if(current_token.type==='TK_RESERVED'){if(in_array(current_token.text,['set','get'])&&flags.mode!==MODE.ObjectLiteral){current_token.type='TK_WORD'}else if(in_array(current_token.text,['as','from'])&&!flags.import_block){current_token.type='TK_WORD'}else if(flags.mode===MODE.ObjectLiteral){var next_token=get_token(1);if(next_token.text===':'){current_token.type='TK_WORD'}}}
|
111
|
+
if(start_of_statement()){}else if(current_token.wanted_newline&&!is_expression(flags.mode)&&(last_type!=='TK_OPERATOR'||(flags.last_text==='--'||flags.last_text==='++'))&&last_type!=='TK_EQUALS'&&(opt.preserve_newlines||!(last_type==='TK_RESERVED'&&in_array(flags.last_text,['var','let','const','set','get'])))){print_newline()}
|
112
|
+
if(flags.do_block&&!flags.do_while){if(current_token.type==='TK_RESERVED'&¤t_token.text==='while'){output.space_before_token=!0;print_token();output.space_before_token=!0;flags.do_while=!0;return}else{print_newline();flags.do_block=!1}}
|
113
|
+
if(flags.if_block){if(!flags.else_block&&(current_token.type==='TK_RESERVED'&¤t_token.text==='else')){flags.else_block=!0}else{while(flags.mode===MODE.Statement){restore_mode()}
|
114
|
+
flags.if_block=!1;flags.else_block=!1}}
|
115
|
+
if(current_token.type==='TK_RESERVED'&&(current_token.text==='case'||(current_token.text==='default'&&flags.in_case_statement))){print_newline();if(flags.case_body||opt.jslint_happy){deindent();flags.case_body=!1}
|
116
|
+
print_token();flags.in_case=!0;flags.in_case_statement=!0;return}
|
117
|
+
if(current_token.type==='TK_RESERVED'&¤t_token.text==='function'){if(in_array(flags.last_text,['}',';'])||(output.just_added_newline()&&!in_array(flags.last_text,['[','{',':','=',',']))){if(!output.just_added_blankline()&&!current_token.comments_before.length){print_newline();print_newline(!0)}}
|
118
|
+
if(last_type==='TK_RESERVED'||last_type==='TK_WORD'){if(last_type==='TK_RESERVED'&&in_array(flags.last_text,['get','set','new','return','export','async'])){output.space_before_token=!0}else if(last_type==='TK_RESERVED'&&flags.last_text==='default'&&last_last_text==='export'){output.space_before_token=!0}else{print_newline()}}else if(last_type==='TK_OPERATOR'||flags.last_text==='='){output.space_before_token=!0}else if(!flags.multiline_frame&&(is_expression(flags.mode)||is_array(flags.mode))){}else{print_newline()}}
|
119
|
+
if(last_type==='TK_COMMA'||last_type==='TK_START_EXPR'||last_type==='TK_EQUALS'||last_type==='TK_OPERATOR'){if(!start_of_object_property()){allow_wrap_or_preserved_newline()}}
|
120
|
+
if(current_token.type==='TK_RESERVED'&&in_array(current_token.text,['function','get','set'])){print_token();flags.last_word=current_token.text;return}
|
121
|
+
prefix='NONE';if(last_type==='TK_END_BLOCK'){if(!(current_token.type==='TK_RESERVED'&&in_array(current_token.text,['else','catch','finally','from']))){prefix='NEWLINE'}else{if(opt.brace_style==="expand"||opt.brace_style==="end-expand"||(opt.brace_style==="none"&¤t_token.wanted_newline)){prefix='NEWLINE'}else{prefix='SPACE';output.space_before_token=!0}}}else if(last_type==='TK_SEMICOLON'&&flags.mode===MODE.BlockStatement){prefix='NEWLINE'}else if(last_type==='TK_SEMICOLON'&&is_expression(flags.mode)){prefix='SPACE'}else if(last_type==='TK_STRING'){prefix='NEWLINE'}else if(last_type==='TK_RESERVED'||last_type==='TK_WORD'||(flags.last_text==='*'&&last_last_text==='function')){prefix='SPACE'}else if(last_type==='TK_START_BLOCK'){if(flags.inline_frame){prefix='SPACE'}else{prefix='NEWLINE'}}else if(last_type==='TK_END_EXPR'){output.space_before_token=!0;prefix='NEWLINE'}
|
122
|
+
if(current_token.type==='TK_RESERVED'&&in_array(current_token.text,Tokenizer.line_starters)&&flags.last_text!==')'){if(flags.last_text==='else'||flags.last_text==='export'){prefix='SPACE'}else{prefix='NEWLINE'}}
|
123
|
+
if(current_token.type==='TK_RESERVED'&&in_array(current_token.text,['else','catch','finally'])){if(!(last_type==='TK_END_BLOCK'&&previous_flags.mode===MODE.BlockStatement)||opt.brace_style==="expand"||opt.brace_style==="end-expand"||(opt.brace_style==="none"&¤t_token.wanted_newline)){print_newline()}else{output.trim(!0);var line=output.current_line;if(line.last()!=='}'){print_newline()}
|
124
|
+
output.space_before_token=!0}}else if(prefix==='NEWLINE'){if(last_type==='TK_RESERVED'&&is_special_word(flags.last_text)){output.space_before_token=!0}else if(last_type!=='TK_END_EXPR'){if((last_type!=='TK_START_EXPR'||!(current_token.type==='TK_RESERVED'&&in_array(current_token.text,['var','let','const'])))&&flags.last_text!==':'){if(current_token.type==='TK_RESERVED'&¤t_token.text==='if'&&flags.last_text==='else'){output.space_before_token=!0}else{print_newline()}}}else if(current_token.type==='TK_RESERVED'&&in_array(current_token.text,Tokenizer.line_starters)&&flags.last_text!==')'){print_newline()}}else if(flags.multiline_frame&&is_array(flags.mode)&&flags.last_text===','&&last_last_text==='}'){print_newline()}else if(prefix==='SPACE'){output.space_before_token=!0}
|
125
|
+
print_token();flags.last_word=current_token.text;if(current_token.type==='TK_RESERVED'){if(current_token.text==='do'){flags.do_block=!0}else if(current_token.text==='if'){flags.if_block=!0}else if(current_token.text==='import'){flags.import_block=!0}else if(flags.import_block&¤t_token.type==='TK_RESERVED'&¤t_token.text==='from'){flags.import_block=!1}}}
|
126
|
+
function handle_semicolon(){if(start_of_statement()){output.space_before_token=!1}
|
127
|
+
while(flags.mode===MODE.Statement&&!flags.if_block&&!flags.do_block){restore_mode()}
|
128
|
+
if(flags.import_block){flags.import_block=!1}
|
129
|
+
print_token()}
|
130
|
+
function handle_string(){if(start_of_statement()){output.space_before_token=!0}else if(last_type==='TK_RESERVED'||last_type==='TK_WORD'||flags.inline_frame){output.space_before_token=!0}else if(last_type==='TK_COMMA'||last_type==='TK_START_EXPR'||last_type==='TK_EQUALS'||last_type==='TK_OPERATOR'){if(!start_of_object_property()){allow_wrap_or_preserved_newline()}}else{print_newline()}
|
131
|
+
print_token()}
|
132
|
+
function handle_equals(){if(start_of_statement()){}
|
133
|
+
if(flags.declaration_statement){flags.declaration_assignment=!0}
|
134
|
+
output.space_before_token=!0;print_token();output.space_before_token=!0}
|
135
|
+
function handle_comma(){print_token();output.space_before_token=!0;if(flags.declaration_statement){if(is_expression(flags.parent.mode)){flags.declaration_assignment=!1}
|
136
|
+
if(flags.declaration_assignment){flags.declaration_assignment=!1;print_newline(!1,!0)}else if(opt.comma_first){allow_wrap_or_preserved_newline()}}else if(flags.mode===MODE.ObjectLiteral||(flags.mode===MODE.Statement&&flags.parent.mode===MODE.ObjectLiteral)){if(flags.mode===MODE.Statement){restore_mode()}
|
137
|
+
if(!flags.inline_frame){print_newline()}}else if(opt.comma_first){allow_wrap_or_preserved_newline()}}
|
138
|
+
function handle_operator(){if(start_of_statement()){}
|
139
|
+
if(last_type==='TK_RESERVED'&&is_special_word(flags.last_text)){output.space_before_token=!0;print_token();return}
|
140
|
+
if(current_token.text==='*'&&last_type==='TK_DOT'){print_token();return}
|
141
|
+
if(current_token.text==='::'){print_token();return}
|
142
|
+
if(last_type==='TK_OPERATOR'&&in_array(opt.operator_position,OPERATOR_POSITION_BEFORE_OR_PRESERVE)){allow_wrap_or_preserved_newline()}
|
143
|
+
if(current_token.text===':'&&flags.in_case){flags.case_body=!0;indent();print_token();print_newline();flags.in_case=!1;return}
|
144
|
+
var space_before=!0;var space_after=!0;var in_ternary=!1;var isGeneratorAsterisk=current_token.text==='*'&&last_type==='TK_RESERVED'&&flags.last_text==='function';var isUnary=in_array(current_token.text,['-','+'])&&(in_array(last_type,['TK_START_BLOCK','TK_START_EXPR','TK_EQUALS','TK_OPERATOR'])||in_array(flags.last_text,Tokenizer.line_starters)||flags.last_text===',');if(current_token.text===':'){if(flags.ternary_depth===0){space_before=!1}else{flags.ternary_depth-=1;in_ternary=!0}}else if(current_token.text==='?'){flags.ternary_depth+=1}
|
145
|
+
if(!isUnary&&!isGeneratorAsterisk&&opt.preserve_newlines&&in_array(current_token.text,Tokenizer.positionable_operators)){var isColon=current_token.text===':';var isTernaryColon=(isColon&&in_ternary);var isOtherColon=(isColon&&!in_ternary);switch(opt.operator_position){case OPERATOR_POSITION.before_newline:output.space_before_token=!isOtherColon;print_token();if(!isColon||isTernaryColon){allow_wrap_or_preserved_newline()}
|
146
|
+
output.space_before_token=!0;return;case OPERATOR_POSITION.after_newline:output.space_before_token=!0;if(!isColon||isTernaryColon){if(get_token(1).wanted_newline){print_newline(!1,!0)}else{allow_wrap_or_preserved_newline()}}else{output.space_before_token=!1}
|
147
|
+
print_token();output.space_before_token=!0;return;case OPERATOR_POSITION.preserve_newline:if(!isOtherColon){allow_wrap_or_preserved_newline()}
|
148
|
+
space_before=!(output.just_added_newline()||isOtherColon);output.space_before_token=space_before;print_token();output.space_before_token=!0;return}}
|
149
|
+
if(in_array(current_token.text,['--','++','!','~'])||isUnary){space_before=!1;space_after=!1;if(current_token.wanted_newline&&(current_token.text==='--'||current_token.text==='++')){print_newline(!1,!0)}
|
150
|
+
if(flags.last_text===';'&&is_expression(flags.mode)){space_before=!0}
|
151
|
+
if(last_type==='TK_RESERVED'){space_before=!0}else if(last_type==='TK_END_EXPR'){space_before=!(flags.last_text===']'&&(current_token.text==='--'||current_token.text==='++'))}else if(last_type==='TK_OPERATOR'){space_before=in_array(current_token.text,['--','-','++','+'])&&in_array(flags.last_text,['--','-','++','+']);if(in_array(current_token.text,['+','-'])&&in_array(flags.last_text,['--','++'])){space_after=!0}}
|
152
|
+
if(((flags.mode===MODE.BlockStatement&&!flags.inline_frame)||flags.mode===MODE.Statement)&&(flags.last_text==='{'||flags.last_text===';')){print_newline()}}else if(isGeneratorAsterisk){space_before=!1;space_after=!1}
|
153
|
+
output.space_before_token=output.space_before_token||space_before;print_token();output.space_before_token=space_after}
|
154
|
+
function handle_block_comment(){if(output.raw){output.add_raw_token(current_token);if(current_token.directives&¤t_token.directives.preserve==='end'){output.raw=opt.test_output_raw}
|
155
|
+
return}
|
156
|
+
if(current_token.directives){print_newline(!1,!0);print_token();if(current_token.directives.preserve==='start'){output.raw=!0}
|
157
|
+
print_newline(!1,!0);return}
|
158
|
+
if(!acorn.newline.test(current_token.text)&&!current_token.wanted_newline){output.space_before_token=!0;print_token();output.space_before_token=!0;return}
|
159
|
+
var lines=split_linebreaks(current_token.text);var j;var javadoc=!1;var starless=!1;var lastIndent=current_token.whitespace_before;var lastIndentLength=lastIndent.length;print_newline(!1,!0);if(lines.length>1){javadoc=all_lines_start_with(lines.slice(1),'*');starless=each_line_matches_indent(lines.slice(1),lastIndent)}
|
160
|
+
print_token(lines[0]);for(j=1;j<lines.length;j++){print_newline(!1,!0);if(javadoc){print_token(' '+ltrim(lines[j]))}else if(starless&&lines[j].length>lastIndentLength){print_token(lines[j].substring(lastIndentLength))}else{output.add_token(lines[j])}}
|
161
|
+
print_newline(!1,!0)}
|
162
|
+
function handle_comment(){if(current_token.wanted_newline){print_newline(!1,!0)}else{output.trim(!0)}
|
163
|
+
output.space_before_token=!0;print_token();print_newline(!1,!0)}
|
164
|
+
function handle_dot(){if(start_of_statement()){}
|
165
|
+
if(last_type==='TK_RESERVED'&&is_special_word(flags.last_text)){output.space_before_token=!0}else{allow_wrap_or_preserved_newline(flags.last_text===')'&&opt.break_chained_methods)}
|
166
|
+
print_token()}
|
167
|
+
function handle_unknown(){print_token();if(current_token.text[current_token.text.length-1]==='\n'){print_newline()}}
|
168
|
+
function handle_eof(){while(flags.mode===MODE.Statement){restore_mode()}}}
|
169
|
+
function OutputLine(parent){var _character_count=0;var _indent_count=-1;var _items=[];var _empty=!0;this.set_indent=function(level){_character_count=parent.baseIndentLength+level*parent.indent_length;_indent_count=level};this.get_character_count=function(){return _character_count};this.is_empty=function(){return _empty};this.last=function(){if(!this._empty){return _items[_items.length-1]}else{return null}};this.push=function(input){_items.push(input);_character_count+=input.length;_empty=!1};this.pop=function(){var item=null;if(!_empty){item=_items.pop();_character_count-=item.length;_empty=_items.length===0}
|
170
|
+
return item};this.remove_indent=function(){if(_indent_count>0){_indent_count-=1;_character_count-=parent.indent_length}};this.trim=function(){while(this.last()===' '){_items.pop();_character_count-=1}
|
171
|
+
_empty=_items.length===0};this.toString=function(){var result='';if(!this._empty){if(_indent_count>=0){result=parent.indent_cache[_indent_count]}
|
172
|
+
result+=_items.join('')}
|
173
|
+
return result}}
|
174
|
+
function Output(indent_string,baseIndentString){baseIndentString=baseIndentString||'';this.indent_cache=[baseIndentString];this.baseIndentLength=baseIndentString.length;this.indent_length=indent_string.length;this.raw=!1;var lines=[];this.baseIndentString=baseIndentString;this.indent_string=indent_string;this.previous_line=null;this.current_line=null;this.space_before_token=!1;this.add_outputline=function(){this.previous_line=this.current_line;this.current_line=new OutputLine(this);lines.push(this.current_line)};this.add_outputline();this.get_line_number=function(){return lines.length};this.add_new_line=function(force_newline){if(this.get_line_number()===1&&this.just_added_newline()){return !1}
|
175
|
+
if(force_newline||!this.just_added_newline()){if(!this.raw){this.add_outputline()}
|
176
|
+
return !0}
|
177
|
+
return !1};this.get_code=function(){var sweet_code=lines.join('\n').replace(/[\r\n\t ]+$/,'');return sweet_code};this.set_indent=function(level){if(lines.length>1){while(level>=this.indent_cache.length){this.indent_cache.push(this.indent_cache[this.indent_cache.length-1]+this.indent_string)}
|
178
|
+
this.current_line.set_indent(level);return !0}
|
179
|
+
this.current_line.set_indent(0);return !1};this.add_raw_token=function(token){for(var x=0;x<token.newlines;x++){this.add_outputline()}
|
180
|
+
this.current_line.push(token.whitespace_before);this.current_line.push(token.text);this.space_before_token=!1};this.add_token=function(printable_token){this.add_space_before_token();this.current_line.push(printable_token)};this.add_space_before_token=function(){if(this.space_before_token&&!this.just_added_newline()){this.current_line.push(' ')}
|
181
|
+
this.space_before_token=!1};this.remove_redundant_indentation=function(frame){if(frame.multiline_frame||frame.mode===MODE.ForInitializer||frame.mode===MODE.Conditional){return}
|
182
|
+
var index=frame.start_line_index;var output_length=lines.length;while(index<output_length){lines[index].remove_indent();index++}};this.trim=function(eat_newlines){eat_newlines=(eat_newlines===undefined)?!1:eat_newlines;this.current_line.trim(indent_string,baseIndentString);while(eat_newlines&&lines.length>1&&this.current_line.is_empty()){lines.pop();this.current_line=lines[lines.length-1];this.current_line.trim()}
|
183
|
+
this.previous_line=lines.length>1?lines[lines.length-2]:null};this.just_added_newline=function(){return this.current_line.is_empty()};this.just_added_blankline=function(){if(this.just_added_newline()){if(lines.length===1){return !0}
|
184
|
+
var line=lines[lines.length-2];return line.is_empty()}
|
185
|
+
return !1}}
|
186
|
+
var Token=function(type,text,newlines,whitespace_before,parent){this.type=type;this.text=text;this.comments_before=[];this.newlines=newlines||0;this.wanted_newline=newlines>0;this.whitespace_before=whitespace_before||'';this.parent=parent||null;this.opened=null;this.directives=null};function tokenizer(input,opts){var whitespace="\n\r\t ".split('');var digit=/[0-9]/;var digit_bin=/[01]/;var digit_oct=/[01234567]/;var digit_hex=/[0123456789abcdefABCDEF]/;this.positionable_operators='!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||'.split(' ');var punct=this.positionable_operators.concat('! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~'.split(' '));this.line_starters='continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(',');var reserved_words=this.line_starters.concat(['do','in','else','get','set','new','catch','finally','typeof','yield','async','await','from','as']);var block_comment_pattern=/([\s\S]*?)((?:\*\/)|$)/g;var comment_pattern=/([^\n\r\u2028\u2029]*)/g;var directives_block_pattern=/\/\* beautify( \w+[:]\w+)+ \*\//g;var directive_pattern=/ (\w+)[:](\w+)/g;var directives_end_ignore_pattern=/([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g;var template_pattern=/((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g;var n_newlines,whitespace_before_token,in_html_comment,tokens,parser_pos;var input_length;this.tokenize=function(){input_length=input.length;parser_pos=0;in_html_comment=!1;tokens=[];var next,last;var token_values;var open=null;var open_stack=[];var comments=[];while(!(last&&last.type==='TK_EOF')){token_values=tokenize_next();next=new Token(token_values[1],token_values[0],n_newlines,whitespace_before_token);while(next.type==='TK_COMMENT'||next.type==='TK_BLOCK_COMMENT'||next.type==='TK_UNKNOWN'){if(next.type==='TK_BLOCK_COMMENT'){next.directives=token_values[2]}
|
187
|
+
comments.push(next);token_values=tokenize_next();next=new Token(token_values[1],token_values[0],n_newlines,whitespace_before_token)}
|
188
|
+
if(comments.length){next.comments_before=comments;comments=[]}
|
189
|
+
if(next.type==='TK_START_BLOCK'||next.type==='TK_START_EXPR'){next.parent=last;open_stack.push(open);open=next}else if((next.type==='TK_END_BLOCK'||next.type==='TK_END_EXPR')&&(open&&((next.text===']'&&open.text==='[')||(next.text===')'&&open.text==='(')||(next.text==='}'&&open.text==='{')))){next.parent=open.parent;next.opened=open;open=open_stack.pop()}
|
190
|
+
tokens.push(next);last=next}
|
191
|
+
return tokens};function get_directives(text){if(!text.match(directives_block_pattern)){return null}
|
192
|
+
var directives={};directive_pattern.lastIndex=0;var directive_match=directive_pattern.exec(text);while(directive_match){directives[directive_match[1]]=directive_match[2];directive_match=directive_pattern.exec(text)}
|
193
|
+
return directives}
|
194
|
+
function tokenize_next(){var resulting_string;var whitespace_on_this_line=[];n_newlines=0;whitespace_before_token='';if(parser_pos>=input_length){return['','TK_EOF']}
|
195
|
+
var last_token;if(tokens.length){last_token=tokens[tokens.length-1]}else{last_token=new Token('TK_START_BLOCK','{')}
|
196
|
+
var c=input.charAt(parser_pos);parser_pos+=1;while(in_array(c,whitespace)){if(acorn.newline.test(c)){if(!(c==='\n'&&input.charAt(parser_pos-2)==='\r')){n_newlines+=1;whitespace_on_this_line=[]}}else{whitespace_on_this_line.push(c)}
|
197
|
+
if(parser_pos>=input_length){return['','TK_EOF']}
|
198
|
+
c=input.charAt(parser_pos);parser_pos+=1}
|
199
|
+
if(whitespace_on_this_line.length){whitespace_before_token=whitespace_on_this_line.join('')}
|
200
|
+
if(digit.test(c)||(c==='.'&&digit.test(input.charAt(parser_pos)))){var allow_decimal=!0;var allow_e=!0;var local_digit=digit;if(c==='0'&&parser_pos<input_length&&/[XxOoBb]/.test(input.charAt(parser_pos))){allow_decimal=!1;allow_e=!1;if(/[Bb]/.test(input.charAt(parser_pos))){local_digit=digit_bin}else if(/[Oo]/.test(input.charAt(parser_pos))){local_digit=digit_oct}else{local_digit=digit_hex}
|
201
|
+
c+=input.charAt(parser_pos);parser_pos+=1}else if(c==='.'){allow_decimal=!1}else{c='';parser_pos-=1}
|
202
|
+
while(parser_pos<input_length&&local_digit.test(input.charAt(parser_pos))){c+=input.charAt(parser_pos);parser_pos+=1;if(allow_decimal&&parser_pos<input_length&&input.charAt(parser_pos)==='.'){c+=input.charAt(parser_pos);parser_pos+=1;allow_decimal=!1}else if(allow_e&&parser_pos<input_length&&/[Ee]/.test(input.charAt(parser_pos))){c+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos<input_length&&/[+-]/.test(input.charAt(parser_pos))){c+=input.charAt(parser_pos);parser_pos+=1}
|
203
|
+
allow_e=!1;allow_decimal=!1}}
|
204
|
+
return[c,'TK_WORD']}
|
205
|
+
if(acorn.isIdentifierStart(input.charCodeAt(parser_pos-1))){if(parser_pos<input_length){while(acorn.isIdentifierChar(input.charCodeAt(parser_pos))){c+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos===input_length){break}}}
|
206
|
+
if(!(last_token.type==='TK_DOT'||(last_token.type==='TK_RESERVED'&&in_array(last_token.text,['set','get'])))&&in_array(c,reserved_words)){if(c==='in'){return[c,'TK_OPERATOR']}
|
207
|
+
return[c,'TK_RESERVED']}
|
208
|
+
return[c,'TK_WORD']}
|
209
|
+
if(c==='('||c==='['){return[c,'TK_START_EXPR']}
|
210
|
+
if(c===')'||c===']'){return[c,'TK_END_EXPR']}
|
211
|
+
if(c==='{'){return[c,'TK_START_BLOCK']}
|
212
|
+
if(c==='}'){return[c,'TK_END_BLOCK']}
|
213
|
+
if(c===';'){return[c,'TK_SEMICOLON']}
|
214
|
+
if(c==='/'){var comment='';var comment_match;if(input.charAt(parser_pos)==='*'){parser_pos+=1;block_comment_pattern.lastIndex=parser_pos;comment_match=block_comment_pattern.exec(input);comment='/*'+comment_match[0];parser_pos+=comment_match[0].length;var directives=get_directives(comment);if(directives&&directives.ignore==='start'){directives_end_ignore_pattern.lastIndex=parser_pos;comment_match=directives_end_ignore_pattern.exec(input);comment+=comment_match[0];parser_pos+=comment_match[0].length}
|
215
|
+
comment=comment.replace(acorn.allLineBreaks,'\n');return[comment,'TK_BLOCK_COMMENT',directives]}
|
216
|
+
if(input.charAt(parser_pos)==='/'){parser_pos+=1;comment_pattern.lastIndex=parser_pos;comment_match=comment_pattern.exec(input);comment='//'+comment_match[0];parser_pos+=comment_match[0].length;return[comment,'TK_COMMENT']}}
|
217
|
+
var startXmlRegExp=/^<([-a-zA-Z:0-9_.]+|{.+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{.+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{.+?}))*\s*(\/?)\s*>/;if(c==='`'||c==="'"||c==='"'||((c==='/')||(opts.e4x&&c==="<"&&input.slice(parser_pos-1).match(startXmlRegExp)))&&((last_token.type==='TK_RESERVED'&&in_array(last_token.text,['return','case','throw','else','do','typeof','yield']))||(last_token.type==='TK_END_EXPR'&&last_token.text===')'&&last_token.parent&&last_token.parent.type==='TK_RESERVED'&&in_array(last_token.parent.text,['if','while','for']))||(in_array(last_token.type,['TK_COMMENT','TK_START_EXPR','TK_START_BLOCK','TK_END_BLOCK','TK_OPERATOR','TK_EQUALS','TK_EOF','TK_SEMICOLON','TK_COMMA'])))){var sep=c,esc=!1,has_char_escapes=!1;resulting_string=c;if(sep==='/'){var in_char_class=!1;while(parser_pos<input_length&&((esc||in_char_class||input.charAt(parser_pos)!==sep)&&!acorn.newline.test(input.charAt(parser_pos)))){resulting_string+=input.charAt(parser_pos);if(!esc){esc=input.charAt(parser_pos)==='\\';if(input.charAt(parser_pos)==='['){in_char_class=!0}else if(input.charAt(parser_pos)===']'){in_char_class=!1}}else{esc=!1}
|
218
|
+
parser_pos+=1}}else if(opts.e4x&&sep==='<'){var xmlRegExp=/<(\/?)([-a-zA-Z:0-9_.]+|{.+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{.+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{.+?}))*\s*(\/?)\s*>/g;var xmlStr=input.slice(parser_pos-1);var match=xmlRegExp.exec(xmlStr);if(match&&match.index===0){var rootTag=match[2];var depth=0;while(match){var isEndTag=!!match[1];var tagName=match[2];var isSingletonTag=(!!match[match.length-1])||(tagName.slice(0,8)==="![CDATA[");if(tagName===rootTag&&!isSingletonTag){if(isEndTag){--depth}else{++depth}}
|
219
|
+
if(depth<=0){break}
|
220
|
+
match=xmlRegExp.exec(xmlStr)}
|
221
|
+
var xmlLength=match?match.index+match[0].length:xmlStr.length;xmlStr=xmlStr.slice(0,xmlLength);parser_pos+=xmlLength-1;xmlStr=xmlStr.replace(acorn.allLineBreaks,'\n');return[xmlStr,"TK_STRING"]}}else{var parse_string=function(delimiter,allow_unescaped_newlines,start_sub){var current_char;while(parser_pos<input_length){current_char=input.charAt(parser_pos);if(!(esc||(current_char!==delimiter&&(allow_unescaped_newlines||!acorn.newline.test(current_char))))){break}
|
222
|
+
if((esc||allow_unescaped_newlines)&&acorn.newline.test(current_char)){if(current_char==='\r'&&input.charAt(parser_pos+1)==='\n'){parser_pos+=1;current_char=input.charAt(parser_pos)}
|
223
|
+
resulting_string+='\n'}else{resulting_string+=current_char}
|
224
|
+
if(esc){if(current_char==='x'||current_char==='u'){has_char_escapes=!0}
|
225
|
+
esc=!1}else{esc=current_char==='\\'}
|
226
|
+
parser_pos+=1;if(start_sub&&resulting_string.indexOf(start_sub,resulting_string.length-start_sub.length)!==-1){if(delimiter==='`'){parse_string('}',allow_unescaped_newlines,'`')}else{parse_string('`',allow_unescaped_newlines,'${')}}}};if(sep==='`'){parse_string('`',!0,'${')}else{parse_string(sep)}}
|
227
|
+
if(has_char_escapes&&opts.unescape_strings){resulting_string=unescape_string(resulting_string)}
|
228
|
+
if(parser_pos<input_length&&input.charAt(parser_pos)===sep){resulting_string+=sep;parser_pos+=1;if(sep==='/'){while(parser_pos<input_length&&acorn.isIdentifierStart(input.charCodeAt(parser_pos))){resulting_string+=input.charAt(parser_pos);parser_pos+=1}}}
|
229
|
+
return[resulting_string,'TK_STRING']}
|
230
|
+
if(c==='#'){if(tokens.length===0&&input.charAt(parser_pos)==='!'){resulting_string=c;while(parser_pos<input_length&&c!=='\n'){c=input.charAt(parser_pos);resulting_string+=c;parser_pos+=1}
|
231
|
+
return[trim(resulting_string)+'\n','TK_UNKNOWN']}
|
232
|
+
var sharp='#';if(parser_pos<input_length&&digit.test(input.charAt(parser_pos))){do{c=input.charAt(parser_pos);sharp+=c;parser_pos+=1}while(parser_pos<input_length&&c!=='#'&&c!=='=');if(c==='#'){}else if(input.charAt(parser_pos)==='['&&input.charAt(parser_pos+1)===']'){sharp+='[]';parser_pos+=2}else if(input.charAt(parser_pos)==='{'&&input.charAt(parser_pos+1)==='}'){sharp+='{}';parser_pos+=2}
|
233
|
+
return[sharp,'TK_WORD']}}
|
234
|
+
if(c==='<'&&(input.charAt(parser_pos)==='?'||input.charAt(parser_pos)==='%')){template_pattern.lastIndex=parser_pos-1;var template_match=template_pattern.exec(input);if(template_match){c=template_match[0];parser_pos+=c.length-1;c=c.replace(acorn.allLineBreaks,'\n');return[c,'TK_STRING']}}
|
235
|
+
if(c==='<'&&input.substring(parser_pos-1,parser_pos+3)==='<!--'){parser_pos+=3;c='<!--';while(!acorn.newline.test(input.charAt(parser_pos))&&parser_pos<input_length){c+=input.charAt(parser_pos);parser_pos++}
|
236
|
+
in_html_comment=!0;return[c,'TK_COMMENT']}
|
237
|
+
if(c==='-'&&in_html_comment&&input.substring(parser_pos-1,parser_pos+2)==='-->'){in_html_comment=!1;parser_pos+=2;return['-->','TK_COMMENT']}
|
238
|
+
if(c==='.'){return[c,'TK_DOT']}
|
239
|
+
if(in_array(c,punct)){while(parser_pos<input_length&&in_array(c+input.charAt(parser_pos),punct)){c+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos>=input_length){break}}
|
240
|
+
if(c===','){return[c,'TK_COMMA']}else if(c==='='){return[c,'TK_EQUALS']}else{return[c,'TK_OPERATOR']}}
|
241
|
+
return[c,'TK_UNKNOWN']}
|
242
|
+
function unescape_string(s){var esc=!1,out='',pos=0,s_hex='',escaped=0,c;while(esc||pos<s.length){c=s.charAt(pos);pos++;if(esc){esc=!1;if(c==='x'){s_hex=s.substr(pos,2);pos+=2}else if(c==='u'){s_hex=s.substr(pos,4);pos+=4}else{out+='\\'+c;continue}
|
243
|
+
if(!s_hex.match(/^[0123456789abcdefABCDEF]+$/)){return s}
|
244
|
+
escaped=parseInt(s_hex,16);if(escaped>=0x00&&escaped<0x20){if(c==='x'){out+='\\x'+s_hex}else{out+='\\u'+s_hex}
|
245
|
+
continue}else if(escaped===0x22||escaped===0x27||escaped===0x5c){out+='\\'+String.fromCharCode(escaped)}else if(c==='x'&&escaped>0x7e&&escaped<=0xff){return s}else{out+=String.fromCharCode(escaped)}}else if(c==='\\'){esc=!0}else{out+=c}}
|
246
|
+
return out}}
|
247
|
+
if(typeof define==="function"&&define.amd){define([],function(){return{js_beautify:js_beautify}})}else if(typeof exports!=="undefined"){exports.js_beautify=js_beautify}else if(typeof window!=="undefined"){window.js_beautify=js_beautify}else if(typeof global!=="undefined"){global.js_beautify=js_beautify}}())
|