mirror of
https://github.com/beautifier/js-beautify.git
synced 2024-11-30 08:00:55 +00:00
parent
6210928940
commit
772437e8dc
@ -1429,42 +1429,31 @@
|
||||
function handle_block_comment() {
|
||||
var lines = split_newlines(token_text);
|
||||
var j; // iterator for this case
|
||||
var javadoc = false;
|
||||
|
||||
if (all_lines_start_with(lines.slice(1), '*')) {
|
||||
// javadoc: reformat and reindent
|
||||
print_newline(false, true);
|
||||
print_token(lines[0]);
|
||||
for (j = 1; j < lines.length; j++) {
|
||||
print_newline(false, true);
|
||||
print_token(' ' + trim(lines[j]));
|
||||
// block comment starts with a new line
|
||||
print_newline(false, true);
|
||||
if (lines.length > 1) {
|
||||
if (all_lines_start_with(lines.slice(1), '*')) {
|
||||
javadoc = true;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// simple block comment: leave intact
|
||||
if (lines.length > 1) {
|
||||
// multiline comment block starts with a new line
|
||||
print_newline(false, true);
|
||||
} else {
|
||||
// single-line /* comment */ stays where it is
|
||||
if (last_type === 'TK_END_BLOCK') {
|
||||
print_newline(false, true);
|
||||
} else {
|
||||
output_space_before_token = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
print_token(lines[0]);
|
||||
output.push("\n");
|
||||
for (j = 1; j < lines.length; j++) {
|
||||
output.push(lines[j]);
|
||||
output.push("\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!is_next('\n')) {
|
||||
// first line always indented
|
||||
print_token(lines[0]);
|
||||
for (j = 1; j < lines.length; j++) {
|
||||
print_newline(false, true);
|
||||
if (javadoc) {
|
||||
// javadoc: reformat and re-indent
|
||||
print_token(' ' + trim(lines[j]));
|
||||
} else {
|
||||
// normal comments output raw
|
||||
output.push(lines[j]);
|
||||
}
|
||||
}
|
||||
|
||||
// for comments of more than one line, make sure there's a new line after
|
||||
if (lines.length > 1 && !is_next('\n')) {
|
||||
print_newline(false, true);
|
||||
}
|
||||
}
|
||||
|
@ -511,6 +511,23 @@ function run_beautifier_tests(test_obj, Urlencoded, js_beautify)
|
||||
test_fragment('new function');
|
||||
bt("foo({\n 'a': 1\n},\n10);",
|
||||
"foo(\n {\n 'a': 1\n },\n 10);");
|
||||
bt( "test(\n" +
|
||||
"/*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
"},\n" +
|
||||
"/*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
"});",
|
||||
// expected
|
||||
"test(\n" +
|
||||
" /*Argument 1*/\n" +
|
||||
" {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
" },\n" +
|
||||
" /*Argument 2*/\n" +
|
||||
" {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
" });");
|
||||
|
||||
opts.brace_style = 'collapse';
|
||||
|
||||
@ -549,6 +566,21 @@ function run_beautifier_tests(test_obj, Urlencoded, js_beautify)
|
||||
test_fragment('new function');
|
||||
bt("foo({\n 'a': 1\n},\n10);",
|
||||
"foo({\n 'a': 1\n },\n 10);");
|
||||
bt( "test(\n" +
|
||||
"/*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
"},\n" +
|
||||
"/*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
"});",
|
||||
// expected
|
||||
"test(\n" +
|
||||
" /*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
" },\n" +
|
||||
" /*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
" });");
|
||||
|
||||
opts.brace_style = "end-expand";
|
||||
|
||||
@ -587,6 +619,21 @@ function run_beautifier_tests(test_obj, Urlencoded, js_beautify)
|
||||
test_fragment('new function');
|
||||
bt("foo({\n 'a': 1\n},\n10);",
|
||||
"foo({\n 'a': 1\n },\n 10);");
|
||||
bt( "test(\n" +
|
||||
"/*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
"},\n" +
|
||||
"/*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
"});",
|
||||
// expected
|
||||
"test(\n" +
|
||||
" /*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
" },\n" +
|
||||
" /*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
" });");
|
||||
|
||||
opts.brace_style = 'collapse';
|
||||
|
||||
|
@ -1238,34 +1238,30 @@ class Beautifier:
|
||||
|
||||
|
||||
def handle_block_comment(self, token_text):
|
||||
|
||||
lines = token_text.replace('\x0d', '').split('\x0a')
|
||||
# all lines start with an asterisk? that's a proper box comment
|
||||
if not any(l for l in lines[1:] if ( l.strip() == '' or (l.lstrip())[0] != '*')):
|
||||
javadoc = False
|
||||
|
||||
# block comment starts with a new line
|
||||
self.append_newline(preserve_statement_flags = True)
|
||||
if len(lines) > 1:
|
||||
if not any(l for l in lines[1:] if ( l.strip() == '' or (l.lstrip())[0] != '*')):
|
||||
javadoc = True
|
||||
|
||||
# first line always indented
|
||||
self.append_token(lines[0])
|
||||
for line in lines[1:]:
|
||||
self.append_newline(preserve_statement_flags = True)
|
||||
self.append_token(lines[0])
|
||||
for line in lines[1:]:
|
||||
self.append_newline(preserve_statement_flags = True)
|
||||
if javadoc:
|
||||
# javadoc: reformat and re-indent
|
||||
self.append_token(' ' + line.strip())
|
||||
else:
|
||||
# simple block comment: leave intact
|
||||
if len(lines) > 1:
|
||||
# multiline comment starts on a new line
|
||||
self.append_newline(preserve_statement_flags = True)
|
||||
else:
|
||||
# single line /* ... */ comment stays on the same line
|
||||
self.output_space_before_token = True
|
||||
|
||||
self.append_token(lines[0])
|
||||
self.output.append('\n')
|
||||
for line in lines[1:]:
|
||||
# normal comments output raw
|
||||
self.output.append(line)
|
||||
self.output.append('\n')
|
||||
|
||||
if not self.is_next('\n'):
|
||||
# for comments of more than one line, make sure there's a new line after
|
||||
if len(lines) > 1 and not self.is_next('\n'):
|
||||
self.append_newline(preserve_statement_flags = True)
|
||||
|
||||
|
||||
def handle_inline_comment(self, token_text):
|
||||
self.output_space_before_token = True
|
||||
self.append_token(token_text)
|
||||
|
@ -465,6 +465,23 @@ class TestJSBeautifier(unittest.TestCase):
|
||||
test_fragment('new function');
|
||||
bt("foo({\n 'a': 1\n},\n10);",
|
||||
"foo(\n {\n 'a': 1\n },\n 10);");
|
||||
bt( "test(\n" +
|
||||
"/*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
"},\n" +
|
||||
"/*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
"});",
|
||||
# expected
|
||||
"test(\n" +
|
||||
" /*Argument 1*/\n" +
|
||||
" {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
" },\n" +
|
||||
" /*Argument 2*/\n" +
|
||||
" {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
" });");
|
||||
|
||||
self.options.brace_style = 'collapse';
|
||||
|
||||
@ -503,6 +520,21 @@ class TestJSBeautifier(unittest.TestCase):
|
||||
test_fragment('new function');
|
||||
bt("foo({\n 'a': 1\n},\n10);",
|
||||
"foo({\n 'a': 1\n },\n 10);");
|
||||
bt( "test(\n" +
|
||||
"/*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
"},\n" +
|
||||
"/*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
"});",
|
||||
# expected
|
||||
"test(\n" +
|
||||
" /*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
" },\n" +
|
||||
" /*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
" });");
|
||||
|
||||
self.options.brace_style = "end-expand";
|
||||
|
||||
@ -541,6 +573,21 @@ class TestJSBeautifier(unittest.TestCase):
|
||||
test_fragment('new function');
|
||||
bt("foo({\n 'a': 1\n},\n10);",
|
||||
"foo({\n 'a': 1\n },\n 10);");
|
||||
bt( "test(\n" +
|
||||
"/*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
"},\n" +
|
||||
"/*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
"});",
|
||||
# expected
|
||||
"test(\n" +
|
||||
" /*Argument 1*/ {\n" +
|
||||
" 'Value1': '1'\n" +
|
||||
" },\n" +
|
||||
" /*Argument 2*/ {\n" +
|
||||
" 'Value2': '2'\n" +
|
||||
" });");
|
||||
|
||||
self.options.brace_style = 'collapse';
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user