#javascript #code-formatting #js-beautify
#javascript #форматирование кода #js-украсить
Вопрос:
Я пытаюсь настроить пользовательский форматировщик, используя js-beautify
пакет node, но я сталкиваюсь с проблемой при форматировании массива объектов. Я хочу, чтобы мой вывод выглядел следующим образом:
{
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"
это будет то, что я хотел, но, похоже, в данном случае это не сработает. Это странно, потому что, если бы у меня было что-то вроде приведенного ниже, это было бы правильно отформатировано в онлайн-программе для улучшения:
{
someFunction: function() {
},
arr: [{
thing: 1
}, {
one: 2
}]
}
У кого-нибудь есть какие-либо предложения, как получить желаемый результат? Я предполагаю, что есть какое-то свойство конфигурации, которое я могу установить. Кроме того, если у кого-то есть лучший пакет node или средство форматирования, я бы тоже заинтересовался этим.
РЕДАКТИРОВАТЬ Исходя из первого предложения Аднана Шарифа, похоже, что "preserve_newlines": true
это причина, по которой это происходит, но если я удалю это, то потеряю все свои новые строки… это кажется немного тревожным, если я не могу сохранить все свои новые строки из-за форматирования в фигурных скобках.
Ответ №1:
Я вставил вашу строку 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
}
Все работает так, как вы сказали!
Вы можете попробовать настроить вышеуказанные настройки в соответствии с вашими потребностями. Спасибо!
Комментарии:
1. Похоже, моя проблема связана со свойством
"preserve_newlines": true
, и если я переключу это значение на false, да, это работает, но тогда я потеряю все свои новые строки…