Eclipse Java Formatter。カーリーブレースの前の新しいラインですが、後は​​そうではありません

StackOverflow https://stackoverflow.com/questions/5884273

質問

私たちはここで非常に奇妙なコーディング慣習をしていますが、私は自分が望むことをするためにEclipseのJava Formatterを設定することができませんでした。大会は言う:

  • 巻き毛のブレースの前」{"常に新しい行があるはずです

更新]「{"がラインブレークであるかどうかにかかわらず、私たちの条約にはルールがありません。例では、実際にラインブレイクを使用しています(そして、これまで見たほぼすべてのコンベンションは、「{"と"}」の後に常にラインブレークであるべきだと言っているか、暗示しています)。したがって、サンプル1と2はどちらも「構文的に正しい」です。 [/アップデート

これがコードを吹き飛ばすと、私たちのチームはこのようなコードを書くことに決めました(いいえ、これは私の選択ではありませんでした!):

public void methode(final boolean b)
{ if (b)
  { do.something();
  }
  else
  { do.somethingElse();
  }
}

しかし、フォーマッタでは、これを手に入れることができました。

public void methode(final boolean b)
{
  if (b)
  { 
    do.something();
  }
  else
  { 
    do.somethingElse();
  }
}

またはこれ:

public void methode(final boolean b) { 
  if (b) { 
    do.something();
  }
  else {
    do.somethingElse();
  }
}

「{」の前にラインを破るようにフォーマッタに伝える方法はありますか?私は最初のスタイルがひどいことを知っています、そして、私は最後の2つのうちの1つを使うことを喜んでいますが、これは会社の決定です。

役に立ちましたか?

解決

したがって、ここにこのトピックに関する情報があります。私はもう少し研究をしました。ここで憎むべきブレーススタイル(サンプル1)には次の名前があります。 Horstman Brace Style またはこちら ホルストマン. 。 K&RとAllman(サンプル2)スタイルからの利点を組み合わせているため、それを擁護する人々の小さなグループがあります。ブレースが並んでおり、スペースの「無駄」はありません。

しかし、これだけが真実ではありません。このスタイルはVCSにとって惨めです。オープニングブレースと最初のステートメントの間にラインを追加する必要がある場合は、まずラインを壊して新しいラインを置く必要があります。差分またはマージでは、「1行が追加された」ではなく、「1つの線が2行で交換されました」が表示されます。しかし、実際には古い声明はあなたによって変更されました。

したがって、このスタイルを使用するのではなく、別の議論。

他のヒント

コードフォーマッタの関連部分をオフにして、代わりにテンプレートを使用してください。たとえば、入力するとき

private_

Ctrl+スペースを押すと、private_methodテンプレートが呼び出されます。その後、プライベートテンプレートをこのようなものに変更できます -

private ${return_type} ${name}(${}) 
{ ${cursor}
}

他のブロックステートメントと同様のことを行う必要があり、テンプレートをより頻繁に使用するためにコーディングスタイルを変更する必要がありますが、機能する可能性があると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top