IntelliJ IDEA 13: Importing Code Formatter Settings from Eclipse
Many development teams are using more than one IDE because it’s a very personal matter, and people always seek what best suits their individual needs. And then there’s collaboration, and it sometimes is harder when different sorts of IDEs are involved. One of the most frequently encountered problems is code style, that has to be consistent in the entire project.
You may have heard about Eclipse Code Formatter, a quite popular IntelliJ IDEA plugin that lets you, what else, — use Eclipse’s code formatter with IntelliJ IDEA. In most cases the plugin is fine, but because it’s calling Eclipse API directly from IntelliJ IDEA, there can be problems with processing such actions as refactoring, code generation, etc., so it’s not always that helpful.
Now things are going to be a bit easier, because IntelliJ IDEA 13 is capable of importing code formatter settings from Eclipse without the use of any plugins. All you need is to export settings from Eclipse (go to Eclipse’s Preferences → Java → Code Style → Formatter and export the settings to an XML file via the Export All button.), and then open IntelliJ IDEA Settings → Code Style → Java, click Manage, and import that XML file by simply clicking Import.
Currently, IntelliJ IDEA supports the import of the following settings:
- Right margin, Formatter on/off tags
- 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)
- 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
- Enable JavaDoc formatting
- Blank lines in JavaDoc
Keep in mind that code style settings in IntelliJ IDEA and Eclipse are fundamentally different and can’t be mapped one to another with complete accuracy, e.g. you can’t tell IntelliJ IDEA to put space after ‘(‘ or not to put it before ‘)’. However, we’re constantly working on improving this interoperability, and your feedback with problems and use cases is very appreciated.
What’s planned for the nearest future:
- More settings (based on your feedback, tell us what’s important for you.)
- More languages.
- Working directly with .settings/org.eclipse.jdt.core.prefs, without the need to use the XML export/import.
- Importing of Conventions (from “Java Code Style”), e.g. field prefixes.
- Importing of Code templates and Organize imports settings.
Develop with Pleasure!
Subscribe to Blog updates
Thanks, we've got you!
Import Postman Collections to the HTTP Client
We know that many of you use Postman collections and want to stay in the flow while working with them. This means staying inside IntelliJ IDEA and not switching to a different app. Great news! You can now effortlessly transform Postman collections into .http and use them in the HTTP Client …
What’s New in IntelliJ IDEA 2023.1 for Spring Developers
The IntelliJ IDEA 2023.1 release came packed with updates for Spring. This blog post will highlight the most noticeable changes, including full support for Lombok, a reworked Spring tool window, navigation for Spring Security rules, Spring Security 6 support, and more. Remember that these featur…
‘Quick’ Features in IntelliJ IDEA
A few IntelliJ IDEA features or actions include the term ‘quick’. Do they speed up certain processes? Let’s find out. In this blog post, I’ll cover what these features are, why you need them, and how you can use them. 1. Quick Lists If you have actions that you use regularly but don’t have shortcut…
5 Best Features for Profiling Java Code In IntelliJ IDEA
When it comes to apps functioning efficiently, there is always room for improvement. Fast, lag-free, smooth operation – what else can a Java developer dream of? However, when you aim for this level of perfection in your app, you will need a comprehensive toolset to monitor performance and identif…