Java コードの特定のセクションの Eclipse コード フォーマッタをオフにするにはどうすればよいでしょうか? 質問する

Java コードの特定のセクションの Eclipse コード フォーマッタをオフにするにはどうすればよいでしょうか? 質問する

Java 文字列として記述された SQL ステートメントを含む Java コードがいくつかあります (OR/M の炎上はやめてください。埋め込み SQL はそのままの状態で、私の決定ではありません)。

メンテナンスを容易にするために、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)。たとえば、エディターを「上書き」モードにして、テキストをその場で簡単に変更できます。

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

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

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

私は、Eclipse フォーマッタを切り替える特別なコメントのようなものを探しています。理想的には、そのようなコメントは、選択したものになるように構成可能であり、他のフォーマッタもそれを尊重するようにプログラムできます。

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

明らかに、1つの「解決策」は、チームメンバーに次のような外部フォーマッタを標準化させることです。ジャロピーまたはジンデントしかし、それはこの質問の目的ではありません (また、このプロジェクトに関する私の決定でもありません)。私は特に、Eclipse フォーマッタをアドホックに回避する方法を探しています。

理想的には、 Eclipse を使用するチーム メンバーに IDE の再構成を要求せずに(フォーマッタに依存しないコマンド コメントを選択する以外: STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING)、Eclipse フォーマッタの指示を挿入できるソリューションが必要です。

ベストアンサー1

Eclipse 3.6では、特別なコメントを配置することでフォーマットをオフにすることができます。

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

オン/オフ機能は、Eclipse の設定で「オン」にする必要があります: Java Code StyleFormatter。 、 をクリックしてEditOff/On Tags有効にしますEnable Off/On tags

設定でマジックストリングを変更することも可能です。Eclipse 3.6のドキュメントはこちらをご覧ください

詳しくは

Java Code StyleFormatterEditOff/On Tags

この設定により、フォーマッタを無効にするタグを 1 つと有効にするタグを 1 つ定義できます (フォーマッタ プロファイルの [タグのオフ/オン] タブを参照)。

ここに画像の説明を入力してください

また、以下のフラグを有効にする必要があります。Java Formatting

注意: これらのコントロールが Javadoc コメント内に配置されている場合、Javadoc の生成は失敗します。

おすすめ記事