Js-beautify: {"brace_style": "preserve-inline"} не работает должным образом с параметрами многострочной функции

Созданный на 24 окт. 2018  ·  4Комментарии  ·  Источник: beautify-web/js-beautify

Описание

Привет, сначала большое спасибо вам, ребята, за такую ​​замечательную библиотеку!

У меня проблема, когда я использую аргументы многострочной функции, содержащие объекты:

// This is working OK for me and it is very readable
myFunc('myString',
    myFunc2(),
    andSoOn());

Ожидаемый результат

Но когда я пытаюсь:

// This is working OK for me and it is very readable
myFunc('myString',
    { myProp: true }, // I have just insterted this object
    andSoOn());

Фактический выход

Все переформатировано в одну строчку ...

myFunc('myString', { myProp: true }, andSoOn());

Я почти уверен, что это связано с правилом {"brace_style": "preserve-inline"}.

Среда

ОС: Linux Mint
Редактор кода: VSCode

Настройки

Пример:

{
    "editor": {
        "formatOnSave": true
    },
    "brace_style": "collapse,preserve-inline"
}

Еще раз спасибо;)

javascript bug

Все 4 Комментарий

Параметр collapse возвращает фигурную скобку к предыдущей строке.

Но можно было бы возразить, что preserve-inline должно переопределить это. Сложность в том, что beautifier не может сказать, будет ли блок встроенным, пока не достигнет его конца. В нынешнем дизайне это сложно.

Хорошо, я пробовал с конфигурацией:

{
    "brace_style": "none,preserve-inline"
}

И результат тот же ... также я думаю, что это происходит только в контексте параметров функции, все остальные случаи в порядке, надеюсь, у меня есть время, чтобы проверить это.

Привет, для тех, кто ищет решение, вот обходной путь:

myFunc( //
    { myProp: true }, //
    { myProp: true }, //
    { myProp: true });

Когда я помещаю пустой комментарий, он не переформатируется в одну строку. По крайней мере, на VScode. Он не делает менее понятным и легко удаляется в рамках проекта с помощью поиска и замены ( //\n )

Надеюсь, это поможет ...

@sebRomeo
Ой. Я рад, что вы нашли обходной путь, но это болезненная работа.
Чтобы было ясно, "none,preserve-inline" должен работать, поэтому я заменяю это на ошибку.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги