Js-beautify: 属性が折り返されているときに行が正しくインデント解除されない

作成日 2017年01月05日  ·  23コメント  ·  ソース: beautify-web/js-beautify

説明

属性の折り返しが発生するたびにインデントが壊れます。

js- beautifyv1.6.8の使用。

入力

美化前のコードは次のようになりました。

<div first second>content</div>
<div>content</div>

期待される出力

美化後のコードは次のようになっているはずです。

<div first 
     second>content</div>
<div>content</div>

実際の出力

美化後のコードは実際には次のようになりました。

<div first
     second>content</div>
    <div>content</div>

再現する手順

コードを美化する

環境

OS:MacOS

設定

例:

{
    "wrap_attributes": "force-aligned"
}

注: wrap_attributesをforce-alignedに設定する必要はありません。 「auto」がラッピングを引き起こしたかどうかを含め、ラッピング(「force-expand-multiline」を除く)が導入すると、この問題が発生します。

html bug

最も参考になるコメント

問題が見つかりました。 今すぐ修正します。

全てのコメント23件

私は同じ問題を経験しています(atom-beautify #735経由)

<p attr1 attr2 attr3>
  text
</p>

になる

<p attr1
    attr2
    attr3>
  text
  </p>

私のフォースラップがオンになっています

ここでも同じですが、コードは最後の瞬間までどんどんインデントされ続けます。 このようにこの美化器を使用することはもう不可能です、私は手動でコードをフォーマットする必要があります:/

<nav id="header"
  class="navbar navbar-default">
  <div class="header-container container-fluid">
    <div class="logo-container navbar-header">
      <a ui-sref="stats"
        class="navbar-brand pws-icon pws-pws"></a>
    </div>
    <div class="header-contents collapse navbar-collapse">
      <ul class="tab-list nav navbar-nav">
        <li class="tab tab-prospects"
          ui-sref-active="active">
          <a ui-sref="stats">
            Stats
          </a>
          </li>
          <li class="tab tab-prospects"
            ui-sref-active="active">
            <a ui-sref="upload">
              Importer
            </a>
            </li>
            <li class="tab tab-prospects"
              ui-sref-active="active">
              <a ui-sref="territories">
                Territory Assignment
              </a>
              </li>

      </ul>
    </div>
  </div>
  </nav>

このバグを確認できますが、ランダムに発生し始めました。
タグの属性が折り返されるたびに、内部コンテンツが誤ってインデントされ始めます。

[編集]
修正が配信されるまで作業を再開するには、このプラグインを無効にする必要がありました= /

こっちも一緒! = /

@bitwiseman誰かがこれに取り組んでいますか? これは非常に人気のあるパッケージであり、これはかなり大きな問題です...修正されるのを楽しみにしています:(残念ながら、コードを自分で提供するために何を変更すればよいかわかりません。

削除するように思える"wrap_attributes": "force"htmlから.jsbeautifyrcファイル解き問題

@ chenasraf-これが修正されるのをContributing.mdを参照してください。
プルリクエスト#1104は、適切な変更がどのように見えるかを示しています。 test/data/html/tests.jsにエントリを追加し、製品コードを更新して、ビルドします( generatedファイルへの変更は自動的に行われます)。

@ matheusdavidson-それは知っておくと良いことです。 @chenasraf - wrap_attributesオプションをすでにテストしているマトリックスにテストを追加する必要があります。

実際にこれに取り組んでいる人はいますか? フォークが多すぎてすべてをチェックできません。 多分私は助けることができます。

@ kf-ireneuszpatalas私はそれに取り組む時間がありませんでした、そして@chenasrafは興味を示した唯一の他の人です。

@bitwiseman js / lib / beautify-html.js:980の後にmulti_parser.unindent()を追加すると、この問題が修正されるようですが、これが論理的に適合するかどうか、追加する条件などはわかりません...それでも私に面倒を見てもらいたい場合は、パッケージで行われていることの基本を説明するのに十分な空き時間が得られるまで、数日かかります。 それか誰か他の人が手綱を取りたい

@ chenasraf-これにより、他のことをする前に複数のテストが失敗します。 はい、できればまだこれに対処してほしいです。

@ chenasraf 、@ bitwiseman。 明日は見る時間があります。

問題が見つかりました。 今すぐ修正します。

PR提出

@ HookyQR-どうもありがとう! マージして公開しました。

「自動整列」でラッピングのオプションを拡張することは可能でしょうか?

「force-align」は、強制的に折り返し+位置合わせします。

しかし、すべての単一のHTML要素をラップするのではなく、長いものだけをラップしたいとしましょう。その後、手動でラップします。

したがって、「自動整列」は、すでにラップされているもののみを整列します。

@ Montago-入力、出力など、必要なものを説明する新しい問題を開いてください。

@bitwiseman

私が求めている機能を備えたオープンなものがすでに1つあります//github.com/beautify-web/js-beautify/issues/1125

これをインストールしたところ、gruntと次のオプションでインデントの問題が発生しました: wrapAttributes: 'force-expand-multiline'
v1.7.5を実行しています
ありがとう

また、 'force-expand-multiline'この問題が発生しますか?

'force-expand-multiline'でもこの問題が発生します

@affanshahid @veDev
1.8.0-rc2でこれを試しましたか?

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