1. ホーム

[解決済み】EclipseのコードフォーマッターをJavaコードの特定のセクションでオフにする方法は?

2022-04-16 05:49:07

質問

SQL文がJavaの文字列として書かれたJavaのコードがあります(OR/Mの炎上騒ぎはご勘弁ください。)

私はメンテナンスのしやすさを考えて、SQL文を意味的に分割し、数行のコードに連結しました。だから、代わりにこんな感じ。

String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";

みたいなのがあるんですけど。

String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";

このスタイルは、特に大規模なクエリにおいて、SQLをより読みやすく、メンテナンスしやすくしてくれます(IMHO)。例えば、エディタを "overwrite"モードにして、テキストをその場で簡単に修正することができるのです。

この問題は、SQLという特殊な例を超えて一般化することに注意してください。縦書きのフォーマットで書かれたすべてのコード、特に表形式の構成は、プリティプリンタによって破壊される可能性があります。

さて、プロジェクトメンバーの中にはEclipseエディタを使用している人もいますが、ソースファイル全体をフォーマットすると、セマンティックフォーマットが破壊されてしまうことがよくあります。

フォーマットに関して、ソースの特定の行を無視するようにEclipseに指示する方法はありますか?

Eclipseのフォーマッターを切り替える特別なコメントのようなものを探しています。理想的には、そのようなコメントは、私たちが選ぶものであれば何でも設定可能で、他のフォーマッタも同様にそれを尊重するようにプログラムすることができます。

// STOP-ECLIPSE-FORMATTING
String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";
// START-ECLIPSE-FORMATTING

もちろん、1つの解決策として、チームメンバーが ジャロピー または JIndent ということですが、この質問はそういうことではありません(また、このプロジェクトでの私の判断でもありません)。私は特に、アドホックにEclipseのフォーマッタを回避する方法を探しています。

理想的なのは、Eclipse フォーマッタに対する指示を挿入できるようなソリューションです。 Eclipseを使用しているチームメンバーにIDEの再設定を要求することなく (フォーマッタに依存しないコマンドコメントを選択する可能性があること以外。 STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING ).

解決方法は?

Eclipse 3.6では、次のような特別なコメントを記述することで、フォーマットをオフにすることができます。

// @formatter:off
...
// @formatter:on

オン/オフ機能はEclipse preferencesで "on"をオンにする必要があります。 Java > コードスタイル > フォーマッタ . クリックすると 編集 , タグのオフ/オン 有効 Off/Onタグを有効にする .

また、環境設定でマジックストリングを変更することも可能です -。 Eclipse 3.6 のドキュメントを参照してください。 .

その他の情報

ジャワ > コードスタイル > フォーマッタ > 編集 > オフ/オン タグ

この環境設定では、フォーマッターを無効にするタグと有効にするタグをそれぞれひとつずつ定義できます (フォーマッタープロファイルの Off/On Tags タブを参照ください)。

からのフラグも有効にする必要があります。 Java の書式設定