組み込みのJavaコンテンツアシストプロポーザルをインデントするためにスペースの代わりにタブを使用するようにEclipseを説得する方法はありますか(親クラスのメソッドをオーバーライドする空のメソッドを作成する場合など)?
関連性があると思われる唯一の設定は、Windows /環境設定/一般/エディター/テキストエディター/タブのスペースの挿入であり、この設定はオフになっています。
(編集:いくつかのポスターがJava /コードスタイル/フォーマッター/インデント/タブポリシー、「タブのみ」に設定されている)を指摘しています)
現時点では、それらを選択し、<Ctrl>+<Shift>+<F>
で再フォーマットすることを忘れないでください。
現在はバグのようです(3.5トレインでは修正されていません):
bug 44755 (コメント用ですが、他のリファクタリングJDT操作にも有効です)
bug 231832 にもリンクされており、AST rewrite .. ..
これは
ASTRewrite
の問題であり、ASTRewrite
のクライアントの問題ではないと思います。コードフォーマッター設定がリライト部分で使用可能であることを確認する必要があります。
に移動しますJDT/Core
調査用。
3.4後半で検出されましたが、3.5ではまだ修正されていません
上記のSimonNickersonのコメントのおかげで、解決策が見つかりました。これは、元の投稿者が彼の編集で参照していたものです。設定を見つけた後、私は彼らが何について話しているのかを見る。しかし、それへの道は道のりの初めから数歩与えられたので、私のようにEclipseに不慣れな人や、Eclipseから数年離れている人には明確な答えを与えることができません。だから私はここでフルパスを与えます:
さて、本当に壊れているのは、これらの設定が、「Windows /設定/一般/エディター/テキストエディター/タブのスペースの挿入」で同様のサウンド設定を変更するためのより高度なインターフェイスをオーバーライドするという事実です。エディターに比較的慣れていない人にとっては、これはデフォルトのタブ=スペース設定を設定する場所のように思えます。本当の答えを見つけた後、これは一般的なテキスト編集のためだけのものであり、言語固有の設定を手元の言語のプロファイルで設定する必要があることは明らかです。ただし、これは初心者にとっては少し明確にする必要があります。 ;-)
Java /コードスタイル/フォーマッターの設定をご覧ください
独自のプロファイルを作成し、「インデント」/「タブポリシー」を「タブのみ」に設定します
[編集]> [スマート挿入モード]がチェックされていないことを確認しました。これは、インデントとフォーマットの設定が機能しない場合に役立つようです。 Eclipse3.7.0の実行。
テキストエディタの環境設定で[タブにスペースを挿入]オプションを設定し、フォーマッタプロファイルのタブポリシーを[スペース]に設定した後でも、Eclipseのみがタブ文字を挿入していました。ファイルからすべてのタブを削除した後でのみ、タブ用のスペースが適切に挿入されました。これを発見した後、テキストエディタの環境設定の[タブにスペースを挿入]オプションは効果がないようで、目的の結果を達成するのはフォーマッタプロファイルのタブポリシーへの変更であると判断しました。
環境設定> Java>コードスタイル>フォーマッタ>編集>インデント>タブを先頭のインデントにのみ使用するチェックボックス
私が設定した方法は、[エディター]-> [アクションの保存]設定で[ソースコードのフォーマット]を有効にすることです。
そうすれば、保存時にソースコードを再フォーマットします。
私もこの問題を抱えていました。問題は、ワークスペースのどこかに埋め込まれている構成であることが判明しました。新しいワークスペースを作成してプロジェクトを再インポートしたところ、タブがスペースに変換されなくなりました。
他のソリューションが機能しなかった場合でも「私のために機能した」さらに別のソリューション(バージョン:3.8.1):
環境設定> Java>コードスタイル>フォーマッタ>編集>インデント>スペースを使用して折り返し行をインデントする-オフに設定
これは本質的に「スマートタブ」オプションです。フォーマッタでは機能しますが、コード生成がスペースのみを使用するように誤って設定されます。迷惑なことに、ソリューションはフォーマッタを壊します。