Js-beautify: {"brace_style": "preserve-inline"}複数行の関数パラメーターで期待どおりに機能しない

作成日 2018年10月24日  ·  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());

実際の出力

すべてが1行で再フォーマットされます...

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

{"brace_style": "preserve-inline"}ルールと関係があると確信しています。

環境

OS:Linux Mint
コードエディター:VSCode

設定

例:

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

ありがとうございました ;)

javascript bug

全てのコメント4件

開いた中括弧を前の行に引き戻すのはcollapse設定です。

しかし、 preserve-inlineがそれをオーバーライドする必要があると主張することができます。 難しいのは、美化者は、ブロックが最後に到達するまで、ブロックがインラインになるかどうかを判断できないことです。 これは現在の設計では困難です。

わかりました、私はconfigで試しました:

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

結果は同じです...また、これは関数paramsコンテキストでのみ発生すると思います。他のすべてのケースは問題ありません。時間をかけて、確認してください。

こんにちは、解決策を探している人のために、ここに回避策があります:

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

空のコメントを入力すると、1行に再フォーマットされません。 少なくともVScodeでは。 レンダリングの感度が低下することはなく、検索と置換を使用してプロジェクト全体で簡単に削除できます( //\n

それが役立つことを願っています...

@sebRomeo
痛い。 回避策を見つけてよかったですが、それは苦痛な回避策です。
明確にするために、 "none,preserve-inline"は機能するはずなので、これをバグに変更します。

このページは役に立ちましたか?
0 / 5 - 0 評価