IntelliJ IDEA 13ではEclipseのコードフォーマット設定のインポートが可能に


Eclipse Code Formatterという人気のプラグインを使うと名前の通りIntelliJ IDEAでEclipseのコードフォーマットを適用することができます。このプラグインはEclipseのAPIを使うため、他の人がEclipseで編集したコードにフォーマットを合わせるという目的は十分に果たします。しかしリファクタリングやコード生成等を使う場面ではこのプラグインは働きません。

しかしIDEA 13ではもう心配無用です。プラグインを使うことなくEclipseのコードフォーマット設定をインポートすることができます。やり方は簡単で、Eclipseで[Preferences → Java → Code Style → Formatter→ Export All]よりXMLファイルにフォーマット定義を書き出し、IntelliJ IDEAより[Settings → Code Style → Java→  Manage]よりそのXMLファイルを読み込むだけです。

現在のところ、IntelliJ IDEAは以下の設定項目のインポートに対応しています:

  • General
    • Right margin, Formatter on/off tags
    • Indentation
    • Indent size
    • Usage of ‘Tab’ character
    • Usage of Tab only for leading indentation (Smart Tabs)
    • Indent ‘case’ branches from ‘switch’
    • Indent class members
    • Keep comment at first column
  • Spaces (Java)
    • Before/after comma (as set for Eclipse method declaration parameters)
    • After comma in type arguments
    • Within array initializer braces
    • Within brackets (in array reference)
    • Within parentheses of: annotation, ‘for’, ‘if’, ‘catch’ ’while’, ’switch’, method, empty method, parenthesized expression, method call, type cast, ‘synchronized’
    • Before parentheses of: ‘try’, ‘for’, ’while’, ‘switch’, method, ’if’, ‘catch’, method, method call, ‘synchronized’.
    • After type cast
    • Around unary, assignment operators (if it’s set for ‘before’ and ‘after’ in Eclipse).
    • Before opening brace of: array initializer, ‘switch’
    • Before ‘?’ in conditional expression
    • Space before/after ‘:’ in conditional expression
    • Space around binary operators (a single Eclipse setting is mapped to multiple IntelliJ IDEA’s settings)
  • Blank lines
    • Around fields and methods
    • Before/after package
    • Before/after imports
    • Before method body
    • Keep blank lines in code (number of empty lines to preserve)
  • Wrapping
    • New line before: closing brace in array initializer, ‘else’ in ‘if’ statement, ‘finally’ and ‘catch’ in ‘try’ statement, binary operator (if wrapped)
    • New line after:  opening brace in array initializer
    • Special ‘else if’ treatment (compact ‘else if’)
    • Keep simple blocks in one line
    • Keep control statements in one line
  • Alignment of: array initializer expressions, arguments in method declarations and calls, field declarations, extends list, assignments, binary expressions, ‘throws’ clause, resources in ‘try’.
  • Brace style for: code blocks, methods and classes
  • JavaDoc
    • Enable JavaDoc formatting
    • Blank lines in JavaDoc

注意していただきたいのはIntelliJ IDEAとEclipseのコードフォーマット定義は根本的に異なるため、完全なマッピングはできないということです。例えばIntelliJ IDEAで‘(‘の後にスペースを置き、‘)’の前にスペースを置かないという設定はできません。しかしながら、IntelliJ IDEAのチームでは相互互換性を改善するため継続的に取り組んでいます。そして皆様のフィードバックをお待ちしております。


  • より多くの設定項目(皆様のフィードバックにより何を優先すべきか決めていきます)
  • より多くの言語
  • 設定のエクスポート、インポートなしに.settings/org.eclipse.jdt.core.prefsを直接読み込み可能にする
  • コーディング規約(フィールドのプレフィクスなど)のインポート
  • コードテンプレートのインポートや、インポート設定のオーガナイズ


Develop with Pleasure!


This entry was posted in IntelliJ IDEA. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *