web-dev-qa-db-ja.com

Javaコンテンツアシスト用のスペースの代わりにタブをEclipseに挿入させるにはどうすればよいですか?

組み込みのJavaコンテンツアシストプロポーザルをインデントするためにスペースの代わりにタブを使用するようにEclipseを説得する方法はありますか(親クラスのメソッドをオーバーライドする空のメソッドを作成する場合など)?

関連性があると思われる唯一の設定は、Windows /環境設定/一般/エディター/テキストエディター/タブのスペースの挿入であり、この設定はオフになっています。

(編集:いくつかのポスターがJava /コードスタイル/フォーマッター/インデント/タブポリシー、「タブのみ」に設定されている)を指摘しています)

現時点では、それらを選択し、<Ctrl>+<Shift>+<F>で再フォーマットすることを忘れないでください。

25
Simon Nickerson

現在はバグのようです(3.5トレインでは修正されていません):

bug 44755 (コメント用ですが、他のリファクタリングJDT操作にも有効です)

bug 231832 にもリンクされており、AST rewrite .. ..

これはASTRewriteの問題であり、ASTRewriteのクライアントの問題ではないと思います。コードフォーマッター設定がリライト部分で使用可能であることを確認する必要があります。
に移動します JDT/Core調査用。

3.4後半で検出されましたが、3.5ではまだ修正されていません

8
VonC

上記のSimonNickersonのコメントのおかげで、解決策が見つかりました。これは、元の投稿者が彼の編集で参照していたものです。設定を見つけた後、私は彼らが何について話しているのかを見る。しかし、それへの道は道のりの初めから数歩与えられたので、私のようにEclipseに不慣れな人や、Eclipseから数年離れている人には明確な答えを与えることができません。だから私はここでフルパスを与えます:

  1. [プロジェクト]-> [プロパティ]に移動します。
  2. 表示されたボックスで、「Javaコードスタイル」->「フォーマッタ」に移動します。
  3. ボックスの右上にある[ワークスペース設定の構成]リンクをクリックします。
  4. 名前の横にある[編集]ボタンをクリックします。
  5. 「タブポリシー:」ドロップダウンボックスを「スペースのみ」に変更します。これは、タブが悪であり、必然的にコードのフォーマットが不適切になるためです。 > :-(これは、ファイルのインデントサイズとタブサイズに実際に影響を与えることができる場所でもあります。
  6. 変更を保存するには、ボックスの上部にある[プロファイル名]を変更する必要があります。
  7. ありがたいことに、「OK」を押すと、Eclipseは現在のプロジェクトにプロファイルを使用するので、このステップを完了すると完了です。

さて、本当に壊れているのは、これらの設定が、「Windows /設定/一般/エディター/テキストエディター/タブのスペースの挿入」で同様のサウンド設定を変更するためのより高度なインターフェイスをオーバーライドするという事実です。エディターに比較的慣れていない人にとっては、これはデフォルトのタブ=スペース設定を設定する場所のように思えます。本当の答えを見つけた後、これは一般的なテキスト編集のためだけのものであり、言語固有の設定を手元の言語のプロファイルで設定する必要があることは明らかです。ただし、これは初心者にとっては少し明確にする必要があります。 ;-)

25
Jacob

Java /コードスタイル/フォーマッターの設定をご覧ください
独自のプロファイルを作成し、「インデント」/「タブポリシー」を「タブのみ」に設定します

2
Stroboskop

[編集]> [スマート挿入モード]がチェックされていないことを確認しました。これは、インデントとフォーマットの設定が機能しない場合に役立つようです。 Eclipse3.7.0の実行。

1

テキストエディタの環境設定で[タブにスペースを挿入]オプションを設定し、フォーマッタプロファイルのタブポリシーを[スペース]に設定した後でも、Eclipseのみがタブ文字を挿入していました。ファイルからすべてのタブを削除した後でのみ、タブ用のスペースが適切に挿入されました。これを発見した後、テキストエディタの環境設定の[タブにスペースを挿入]オプションは効果がないようで、目的の結果を達成するのはフォーマッタプロファイルのタブポリシーへの変更であると判断しました。

1
jfcole

環境設定> Java>コードスタイル>フォーマッタ>編集>インデント>タブを先頭のインデントにのみ使用するチェックボックス

1
Chris Dolan

私が設定した方法は、[エディター]-> [アクションの保存]設定で[ソースコードのフォーマット]を有効にすることです。

そうすれば、保存時にソースコードを再フォーマットします。

1
rep_movsd

私もこの問題を抱えていました。問題は、ワークスペースのどこかに埋め込まれている構成であることが判明しました。新しいワークスペースを作成してプロジェクトを再インポートしたところ、タブがスペースに変換されなくなりました。

1
user437068

他のソリューションが機能しなかった場合でも「私のために機能した」さらに別のソリューション(バージョン:3.8.1):

環境設定> Java>コードスタイル>フォーマッタ>編集>インデント>スペースを使用して折り返し行をインデントする-オフに設定

これは本質的に「スマートタブ」オプションです。フォーマッタでは機能しますが、コード生成がスペースのみを使用するように誤って設定されます。迷惑なことに、ソリューションはフォーマッタを壊します。

0