Add first draft of IDEA code formatting

This commit provides a first attempt at defining a standard code
formatting scheme for the Spring Framework in Intellij IDEA.

These are the major changes compared to standard settings:

* default indent option to use tab character instead of space for
  all languages
* one space before the left brace of an array initializer
* keep when reformating: multiple expressions in one line,
  simple blocks in one line
* method declaration parameters: do not align when multiline
* else, catch and finally on new line
* keep one space before } (solely use to keep the space between the
  end of the last method and the end of the class)
* minimum blank line after class header 0 (instead of 1)
* Disabled Javadoc formatting
* class count to trigger static import to 50 (to prevent
  import org.foo.*; instead of listing the classes of org.foo)
* changed the import sequence to import in the following order:
  static imports, java.*, javax.*, others, org.springframework.*. Each
  sequence is separated by a space
This commit is contained in:
Stephane Nicoll 2014-03-10 11:43:19 +01:00
parent 1d57a15e40
commit 542db72ffd
1 changed files with 264 additions and 0 deletions

View File

@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8"?>
<code_scheme name="spring-framework">
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="INDENT_SIZE" value="4"/>
<option name="CONTINUATION_INDENT_SIZE" value="8"/>
<option name="TAB_SIZE" value="4"/>
<option name="USE_TAB_CHARACTER" value="true"/>
<option name="SMART_TABS" value="false"/>
<option name="LABEL_INDENT_SIZE" value="0"/>
<option name="LABEL_INDENT_ABSOLUTE" value="false"/>
<option name="USE_RELATIVE_INDENTS" value="false"/>
</value>
</option>
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="50"/>
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="1"/>
<option name="IMPORT_LAYOUT_TABLE">
<value>
<package name="" withSubpackages="true" static="true"/>
<emptyLine/>
<package name="java" withSubpackages="true" static="false"/>
<emptyLine/>
<package name="javax" withSubpackages="true" static="false"/>
<emptyLine/>
<package name="" withSubpackages="true" static="false"/>
<emptyLine/>
<package name="org.springframework" withSubpackages="true" static="false"/>
</value>
</option>
<option name="ENABLE_JAVADOC_FORMATTING" value="false"/>
<option name="JD_ALIGN_PARAM_COMMENTS" value="false"/>
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false"/>
<option name="JD_KEEP_EMPTY_LINES" value="false"/>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true"/>
</XML>
<codeStyleSettings language="Groovy">
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true"/>
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1"/>
<option name="BLANK_LINES_AROUND_FIELD" value="1"/>
<option name="BLANK_LINES_AROUND_FIELD_IN_INTERFACE" value="1"/>
<option name="ELSE_ON_NEW_LINE" value="true"/>
<option name="CATCH_ON_NEW_LINE" value="true"/>
<option name="FINALLY_ON_NEW_LINE" value="true"/>
<option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true"/>
<option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true"/>
<option name="KEEP_MULTIPLE_EXPRESSIONS_IN_ONE_LINE" value="true"/>
<option name="FIELD_ANNOTATION_WRAP" value="1"/>
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true"/>
</indentOptions>
<arrangement>
<groups>
<group>
<type>GETTERS_AND_SETTERS</type>
<order>KEEP</order>
</group>
</groups>
<rules>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PUBLIC</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PROTECTED</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PACKAGE_PRIVATE</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PRIVATE</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PUBLIC</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PROTECTED</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PACKAGE_PRIVATE</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PRIVATE</MODIFIER>
<MODIFIER>STATIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PUBLIC</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PROTECTED</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PACKAGE_PRIVATE</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PRIVATE</MODIFIER>
<MODIFIER>FINAL</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PUBLIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PROTECTED</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PACKAGE_PRIVATE</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>FIELD</TYPE>
<MODIFIER>PRIVATE</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<TYPE>FIELD</TYPE>
</match>
</rule>
<rule>
<match>
<TYPE>CONSTRUCTOR</TYPE>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>METHOD</TYPE>
<MODIFIER>STATIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<TYPE>METHOD</TYPE>
</match>
</rule>
<rule>
<match>
<TYPE>ENUM</TYPE>
</match>
</rule>
<rule>
<match>
<TYPE>INTERFACE</TYPE>
</match>
</rule>
<rule>
<match>
<AND>
<TYPE>CLASS</TYPE>
<MODIFIER>STATIC</MODIFIER>
</AND>
</match>
</rule>
<rule>
<match>
<TYPE>CLASS</TYPE>
</match>
</rule>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true"/>
</indentOptions>
</codeStyleSettings>
</code_scheme>