我正在尝试使用js-beautify
节点包来设置自定义格式化程序,但是在格式化对象数组时遇到了问题。我希望我的输出看起来像这样:
{
someFunction: function() {
},
arr: [{
thing: 1
}, {
one: 2
}]
}
您会注意到我的牙套与另一个牙套或支架在同一行。但是,我注意到,如果我的代码包含这样的格式,则其格式错误:
// Formatted input
{
someFunction: function() {
},
arr: [{
thing: 1
},
{
one: 2
}]
}
// Formatted output
{
someFunction: function() {
},
arr: [{
thing: 1
},
{
one: 2
}
]
}
我认为"brace_style": "end-expand"
将是我想要的,但是似乎不适用于这种情况。这很奇怪,因为如果我有类似下面的内容,它将在the online beautifier上正确格式化:
{
someFunction: function() {
},
arr: [{
thing: 1
}, {
one: 2
}]
}
有人对如何获得所需的输出有任何建议吗?我假设可以设置一些配置属性。另外,如果有人拥有更好的节点程序包或格式化程序,我也会很高兴。
编辑
根据阿德南·谢里夫(Adnan Sharif)的第一个建议,看来"preserve_newlines": true
是发生这种情况的原因,但是如果我删除了它,那么我将丢失所有换行符……如果我不能保留所有的换行符,这似乎有些麻烦。我的换行符是由于大括号格式所致。
答案 0 :(得分:3)
我已使用JSON选项粘贴了您的JSON字符串-
{
"indent_size": "2",
"indent_char": " ",
"max_preserve_newlines": "-1",
"preserve_newlines": false,
"keep_array_indentation": false,
"break_chained_methods": false,
"indent_scripts": "keep",
"brace_style": "collapse",
"space_before_conditional": false,
"unescape_strings": false,
"jslint_happy": false,
"end_with_newline": false,
"wrap_line_length": "0",
"indent_inner_html": false,
"comma_first": false,
"e4x": false,
"indent_empty_lines": false
}
它如您所说工作!
您可以根据需要尝试调整上述设置。谢谢!