web-dev-qa-db-ja.com

タブとスペースの変換

リポジトリとの間でコードをコミット/更新するときに、インデント用にタブとスペースを自動的に変換したいと思います。ファイルのディレクトリを変換できるEclipse用のAnyEditプラグインを見つけました。初めに悪いことではありませんが、これを処理する方法についての経験はありますか?または、Antスクリプトまたは他の何かを知っていますか?

31
Robse

なぜコードフォーマッタやクリーンアップ関数を使用しないのですか?それはあなたのためにそのようなものの世話をする設定があります。保存時に自動的に実行することもできます。

編集:PeterPerháčがコメントで指摘しているように、これは質問の半分しか答えません。実際的な経験はありませんが、Mavenビルドからフォーマットするために Maven Eclipse Format Plugin を試すことができます。

残念ながら、これはMavenのみであり、軽量のコマンドラインフォーマッターは知らない。ただし、Mavenを使用する場合は、フォーマットの目標を適切なフェーズにバインドできます。Eclipseを自動ビルドに設定すると、更新時にフォーマットされます。

SCMツール(git、svnなど)に応じて、ビルドを実行するフックを作成することもできます(ただし、そのためには少し重すぎるかもしれません)。

14
Sietse
  1. エディターが タブの代わりにスペースを使用 に設定されていることを確認してください。
  2. すべてのテキストを選択してヒット CMDI Macまたは CTRLI 窓に。
16
pwaterz

AnyEditプラグインを使用して、ファイルの保存時にタブをスペースに自動変換します。タブの代わりにスペースを挿入するようにベーステキストエディター(他のほとんどすべてのテキストエディターから派生)も構成します。これは冗長に聞こえますが、タブを挿入しないようにすることで、すでにタブがある編集済みのファイルは、保存するとすぐに変換されます。

タブはソースコードのどこにもありません。タブストップが別の値に設定されているファイルを他の誰かが見た場合でも、ほとんどの整列/フォーマットが失われます。

(もちろん、直接編集するMakefileがある場合は、それらのタブが保持されるようにする必要があります。ただし、私のプロジェクトでは、makeがすべて使用されている場合、MakefileはMakefileなどの別のソースから派生しています。 PerlでのPL。)

12
rjray

少しやりすぎですが、それを処理できる特定のリポジトリ製品で試してみるだけですが、インデントまたは astyle を呼び出すフックスクリプトでうまくいくでしょう。フックスクリプトの記述方法に応じて、すべてのファイルに対して全員のコードを同じ方法でフォーマットします。もちろん、事前にコミットする必要があります。

3

タブが行の先頭にない場合に限り、スペースの代わりにタブを使用すると、配置/フォーマットが失われる可能性があります。行の内側にタブを使用しないでください。常に行の先頭にタブを使用してください。これにより、ファイルの同僚のビューに影響を与えることなく、エディターを使用して目的のインデントレベルに調整できます。課題:行の先頭にあるタブが整列を失う例を見つけます。

1
Andrew

私はこのためにKeditを使用します。また、Macintosh、UNIX、MS-Dosのテキストファイルをネイティブに変換します。古いエディターなので、私はそのスクリプトの1つを使用してUnicodeファイルを処理します。また、他のスマートエディターを確認することもできます。

0
Dave

Java EE developer 4.6.0 NeonにEclipseを使用しています。 http://marketplace.Eclipse.org/content/anyedit-tools を使用しています。

0
Do Nhu Vy