2011/01/28

eclipseでソースコードを保存したときに、空の行のインデントが自動で削除されないようにする方法

eclipseでソースコードを保存したときに、空の行のインデントが自動で削除されることがある。

空白行はそのまま残ってほしい身としては、この設定は意外とストレスを感じていましたが(だいぶ慣れたけど)、ようやく残したままにする設定が分かったのでメモ。
ここで使用しているeclipseは、Pleadesのeclipse3.5.2です。

■AnyEdit ツールの設定が要因

  1. "ウィンドウ"タブ->の"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "一般->エディター->AnyEdit ツール"を選択し、"AnyEdit ツール"を開く。
  3. "自動変換"タブにある"エディター・バッファーが保管される前に..."の"末尾の空白を除去"のチェックを外す。
  4. "OK"ボタンをクリックして変更を反映させる。

■保管アクションの追加アクションが要因

"追加アクション"にチェックが入っており、"すべての行末の空白を削除"となっている場合。


  1. "ウィンドウ"タブ->"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "Java->エディター->保管アクション"にある構成ボタンをクリックし"追加保管アクションウィンドウ"を表示する。
  3. "コード編成"タブ->"フォーマッター"にある"すべての行"から"空行を無視"に設定する。
  4. "OK"ボタンをクリックし、"適用"ボタンをクリックして変更を反映させる。

■フォーマッターが要因

  1. "ウィンドウ"タブ->"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "Java->コード・スタイル->フォーマッター"にある編集ボタンをクリックする。
  3. "インテント"タブを選択し、"インデント"の"空の行"にチェックを入れる。
  4. あとは"適用"ボタンを押せば空の行のインデントがそのままで保存されるようになる。

逆に、チェックを外せば、ファイル保存時に空の行のインデントが自動で削除される。


で試してみたけど、フォーマット(Ctrl+Shift+F)を使ったときには空の行のインデントがそのままで保存されることもあるが、ファイル保存時にはどうしても削除されてしまう。(2012/05/15追記)
"プレビュー"画面には空の行のインデントがそのままで保存されているのだけど、どうもうまくいかない



なので、(いろいろと試行錯誤してみたけども)とりあえず保管時にはフォーマッターが作動しないようにすることにした。

■保管アクションのソース・コードのフォーマットが要因
"ソース・コードのフォーマット"にチェックが入っている場合。
  1. "ウィンドウ"タブ->"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "Java->エディター->保管アクション"にある"ソース・コードのフォーマット"のチェックを外す。
  3. "適用"ボタンをクリックして変更を反映させる。


以上の設定をすれば、ファイル保管時に空の行のインデントがそのままで保存されるようになる。


と、ここまでやったのはいいけど、容量の厳しい組み込み系で開発する場合は、空の行のインデントは削除したほうが容量削減のためには良いのかもしれません。ほんと微々たるものだろうけど。ProGuardがこれもやってくれるのかな。(2013/10/25 削除)
それとも、バイトコード作成時になくなるのだろうか。


そこら辺はちょっと分からないけど、空の行のインデントが削除されてもそこまで不自由してなかったし(Enterキー押せば自動でインデントが作成される)、ストレスを感じていたのは何故削除されるのか分からなかったためなので、どっちでもいいと思った。


新たに、フォーマッターの設定がうまくいっていないのが謎ができたけど。。



2 件のコメント:

  1. 自動で空行削除される困ってたので、助かりました!

    返信削除
    返信
    1. コメントありがとうございます!
      お役に立てたようで何よりです!

      削除