3

「編集、行、再インデント」は HAML では機能しません。HAML を自動フォーマットするコマンドはありますか? 何か案は?ありがとう

4

1 に答える 1

1

前のスペースの量によって要素がネストされる場所、または前の要素の後に来る必要がある場所が決まるため、自動的に HAML を再インデントすることはできません。

次のケースを検討してください。

.table
      .row

再インデントすると、

.table
.row

あなたが欲しいのは

.table
  .row

row上記の例では意味のある名前を使用しており、それが の子であることは理解できるかもしれませtableんが、エディターは理解できません。

行が常にテーブルの一部であることを編集者に教えたとしても、常にそうであるとは限りません。

次の例は、その理由を示しています

.table
  .row
     .table
        .row
                  .row Which table has two rows?

やっぱり両方

.table
  .row
    .table
      .row
      .row

.table
  .row
    .table
      .row
  .row

有効なソリューションです。最初のオプションでは内部テーブルに 2 つの行があり、2 つ目のオプションでは外部テーブルに 2 つの行があります。

tl;dr-version: Sublime Text には HAML の自動インデント機能はありません。HAML の作成者が何を意味するのかを判断することはほとんど不可能であるため、おそらく存在しないでしょう。

于 2015-05-13T19:27:15.230 に答える