Reputation: 2776
Essentially, I want to export the code style settings from IntelliJ (the default one is fine) and use them in Checkstyle. (It's for a maven build validation kind of thing that is already setup, but we want to use IntelliJ's code style, not Sun's or Googles)
Step one should be to export the IntelliJ code style. Easier said than done, it seems.
Now, I know there is a lot of material on this on both SO and other places, but I simply cannot find the code style xml file anywhere, not even after using "copy to project" or "save as..." in the IntelliJ settings code style dialog.
I also tried exporting code style through the IntelliJ File menu, but it will only export the code style from areas that have changed (eg. change tab space from 4 to 2 and it will only export the "OTHER_INDENT_OPTIONS" part of the code style).
I should add that I'm using IDEA 14.1.4.
Is it possible to export the complete IntelliJ code style?
Upvotes: 22
Views: 16007
Reputation: 894
I was looking for an answer to this too. I suppose you want to add it to your build process like I do. Since I saw no value in enforcing something that can't be automated, I settled on (haven't implemented yet) executing the style formatter as a pre-commit hook (I use git) https://www.jetbrains.com/help/idea/command-line-formatter.html against all files in the changelist. I use the defaults too, and this would be enough.
Since I don't have any customizations, I would not know if an exported code style xml would run the default in addition to the diff in the xml. Either way, there's no point in enforcing code style rules that can't be automated.
Upvotes: 0
Reputation: 17383
Unfortunately it is not possible to do what you want for (at least) three reasons, the first two of which you have already raised:
While is possible to export a code style file from Intellij IDEA using File->Settings->Code Style->Java->{Click the Settings icon}->Select Export... from the popup menu, that exported XML file only contains the changes you have made from the default settings.
Those exported settings are in a format that is only meaningful to Intellij, so even if you could export every single Java code style setting to an XML file, you would then have to massively edit that file to make it meaningful to CheckStyle.
Finally, note that there is an open request for Intellij to do exactly what you want. See IDEA-149529:
Current export functionality for Code Styles is lacking. Only useful for other users of IntelliJ or as a backup. Only exports the diff between user defined settings and the built-in default. This makes it very difficult to produce a matching style for other formatting/beautification tools.
It would be helpful if the export had the option of exports ALL the settings IDEA uses.
However, there is an alternative approach. Instead of providing an Intellij IDEA file to Checkstyle, provide a Checkstyle file to Intellij IDEA...
Install the Checkstyle plugin, and then open two sets of one or more duplicated files in Intellij IDEA, one set configured to use IDEA's formatting and one set configured to Checkstyle's formatting.
Repeatedly tweak the Checkstyle settings until its opened file(s) are formatted to conform to the corresponding files formatted by IDEA. When the sets of files match create a Checkstyle XML rules file. Tedious, but only a one time activity.
Finally, you can then import your customized CheckStyle XML rules file into Intellij Idea, using Import Scheme -> CheckStyle Configuration as as shown in the screen shot below (if, and only if, you have installed the CheckStyle-IDEA plugin). This functionality did not exist when the OP was created. For more details see the following bug report: IDEA-61520 Codestyle from Checkstyle and in particular the response from JetBrains dated 2/8/16.
See also:
Intellij IDEA bug Configure code style from checkstyle #126
SO post IntelliJ IDEA code format from checkstyle configuration
Upvotes: 13