IntelliJ IDEA code style settings for Square's Java and Android projects.
- Run the
install.shscript. - Restart IntelliJ if it's running.
- Open IntelliJ/AS Project Settings -> Code Styles, change the code style for the project to the one you want.
Code styles changes from the AS default ones ------------------------------------------------ ### CesardsAndroid
#### Code Styles
Indents Detection
✓ Detect and use existing file indents for editing
<optionname="AUTODETECT_INDENTS"value="true" />
Tab size: 2 / Indent: 2 / Continuation indent: 4
<indentOptions> <optionname="INDENT_SIZE"value="2" /> <optionname="CONTINUATION_INDENT_SIZE"value="4" /> <optionname="TAB_SIZE"value="2" /> </indentOptions>
▼__Before Left Brace__
✓ Array initializer left brace
<optionname="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE"value="true" />
int[] empty = newint[]{};
▼ Within
✓ Code braces
<optionname="SPACE_WITHIN_BRACES"value="true" />
interfaceAbba{}
✓ Array initializer braces
<optionname="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES"value="true" />
@SuppressWarnings({"ALL" })
▼ Keep when reformatting
✗ Comment at first column
<optionname="KEEP_FIRST_COLUMN_COMMENT"value="false" />
// todo something✓ Simple methods in one line
<optionname="KEEP_SIMPLE_METHODS_IN_ONE_LINE"value="true" />
publicvoidfoo1(inti1, inti2, inti3, inti4, inti5, inti6, inti7){}
✓ Simple classes in one line
<optionname="KEEP_SIMPLE_CLASSES_IN_ONE_LINE"value="true" />
newObject(){};
▼ Extends / implements list ⇨ Wrap if long
<optionname="EXTENDS_LIST_WRAP"value="1" />publicclassThisIsASampleClassextendsC1implementsI1, I2, I3, I4, I5{Extends / implements keyword ⇨ Wrap if long
<optionname="EXTENDS_KEYWORD_WRAP"value="1" />
publicclassThisIsASampleClassextendsC1implementsI1, I2, I3, I4, I5{
▼ Throws list ⇨ Wrap if long
<optionname="THROWS_LIST_WRAP"value="1" />publicstaticvoidlongerMethod() throwsException1, Exception2, Exception3{Throws keyword ⇨ Wrap if long
<optionname="THROWS_KEYWORD_WRAP"value="1" />
publicstaticvoidlongerMethod() throwsException1, Exception2, Exception3{
▼ Method declaration parameters ⇨ Chop down if long
<optionname="METHOD_PARAMETERS_WRAP"value="5" />publicvoidfoo1(inti1, inti2, inti3, inti4, inti5, inti6, inti7){✓ New line after '('
<optionname="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE"value="true" />
publicvoidfoo1( inti1, inti2, inti3, inti4, inti5, inti6, inti7){}
✓ Place ')' on new line
<optionname="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE"value="true" />
publicvoidfoo1( inti1, inti2, inti3, inti4, inti5, inti6, inti7 ){}
▼ Method call arguments ⇨ Chop down if long
<optionname="CALL_PARAMETERS_WRAP"value="5" />foo1(0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057);✓ New line after '('
<optionname="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE"value="true" />
foo1( 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057);
✓ Place ')' on new line
<optionname="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE"value="true" />
foo1( 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057 );
▼ Chained method calls ⇨ Chop down if long
<optionname="METHOD_CALL_CHAIN_WRAP"value="5" />super.getFoo() .foo() .getBar() .bar();▼ if() statement
Force braces ⇨ Always
<optionname="IF_BRACE_FORCE"value="3" />
if (2 < 3){return} elseif (2 > 3){return} else{return}
▼ for() statement ⇨ Wrap if long
<optionname="FOR_STATEMENT_WRAP"value="1" />for (inti = 0; i < 0xFFFFFF; i += 2)✗ Align when multiline
<optionname="ALIGN_MULTILINE_FOR"value="false" />
for (inti = 0; i < 0xFFFFFF; i += 2)
Force braces ⇨ Always
<optionname="FOR_BRACE_FORCE"value="3" />
for (inti = 0; i < 0xFFFFFF; i += 2){System.out.println(i)}
✓ New line after '('
<optionname="FOR_STATEMENT_LPAREN_ON_NEXT_LINE"value="true" />
for ( inti = 0; i < 0xFFFFFF; i += 2){
✓ Place ')' on new line
<optionname="FOR_STATEMENT_RPAREN_ON_NEXT_LINE"value="true" />
for ( inti = 0; i < 0xFFFFFF; i += 2 ){
▼ while() statement
Force braces ⇨ Always
<optionname="WHILE_BRACE_FORCE"value="3" />
while (x < 50000){x++}
▼ do{} while() statement
Force braces ⇨ Always
<optionname="DOWHILE_BRACE_FORCE"value="3" />
do{x++} while (x < 10000);
▼ try-with-resources ⇨ Wrap if long
<optionname="RESOURCE_LIST_WRAP"value="1" />try (MyResourcer1 = getResource(); MyResourcer2 = null){doSomething()}✓ New line after '('
<optionname="RESOURCE_LIST_LPAREN_ON_NEXT_LINE"value="true" />
✓ Place ')' on new line
<optionname="RESOURCE_LIST_RPAREN_ON_NEXT_LINE"value="true" />
try ( MyResourcer1 = getResource(); MyResourcer2 = null ){
▼ Binary expressions ⇨ Wrap if long
<optionname="BINARY_OPERATION_WRAP"value="1" />intx = (3 + 4 + 5 + 6) * (7 + 8 + 9 + 10) * (11 + 12 + 13 + 14 + 0xFFFFFFFF); asserti + j + k + l + n + m <= 2 : "assert description"; inty = 2 > 3 ? 7 + 8 + 9 : 11 + 12 + 13;✓ Operation sign on next line
<optionname="BINARY_OPERATION_SIGN_ON_NEXT_LINE"value="true" />
intx = (3 + 4 + 5 + 6) * (7 + 8 + 9 + 10) * (11 + 12 + 13 + 14 + 0xFFFFFFFF); asserti + j + k + l + n + m <= 2 : "assert description";
✓ New line after
{<optionname="PARENTHESES_EXPRESSION_LPAREN_WRAP"value="true" />
intx = (3 + 4 + 5 + 6) * ( 7 + 8 + 9 + 10) * ( 11 + 12 + 13 + 14 + 0xFFFFFFFF);
✓ Place
}on new line<optionname="PARENTHESES_EXPRESSION_RPAREN_WRAP"value="true" />
intx = (3 + 4 + 5 + 6) * ( 7 + 8 + 9 + 10 ) * ( 11 + 12 + 13 + 14 + 0xFFFFFFFF );
▼ Assignment statement ⇨ Wrap if long
<optionname="ASSIGNMENT_WRAP"value="1" />int[] a = newint[]{1, 2, 0x0052, 0x0053, 0x0054};✓ Assignment sign on next line
<optionname="PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE"value="true" />
int[] a = newint[]{1, 2, 0x0052, 0x0053, 0x0054};
▼ Ternary operation ⇨ Wrap if long
<optionname="TERNARY_OPERATION_WRAP"value="1" />inty = 2 > 3 ? 7 + 8 + 9 : 11 + 12 + 13;✓
?and:signs on next line<optionname="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE"value="true" />
inty = 2 > 3 ? 7 + 8 + 9 : 11 + 12 + 13;
▼ Array initializer ⇨ Wrap always
<optionname="ARRAY_INITIALIZER_WRAP"value="2" />int[] a = newint[]{1, 2, 0x0052, 0x0053, 0x0054};✓ New line after
{<optionname="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE"value="true" />
int[] a = newint[]{1, 2, 0x0052, 0x0053, 0x0054 };
✓ Place
}on new line<optionname="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE"value="true" />
int[] a = newint[]{1, 2, 0x0052, 0x0053, 0x0054 };
▼ Assert statement ⇨ Wrap if long
<optionname="ASSERT_STATEMENT_WRAP"value="1" />asserti + j + k + l + n + m <= 2 : "assert description";✓
:signs on next line<optionname="ASSERT_STATEMENT_COLON_ON_NEXT_LINE"value="true" />
asserti + j + k + l + n + m <= 2 : "assert description";
Enums constants ⇨ Wrap always
<optionname="ENUM_CONSTANTS_WRAP"value="2" />enumBreed{Dalmatian(), Labrador(), Dachshund() }Parameter annotations ⇨ Wrap if long
<optionname="PARAMETER_ANNOTATION_WRAP"value="1" />publicvoidmethod(@Annotation1@Annotation3(param1 = "value1", param2 = "value2") finalintparam){Local variable annotations ⇨ Wrap always
<optionname="VARIABLE_ANNOTATION_WRAP"value="2" />@Annotation1@Annotation3(param1 = "value1", param2 = "value2") finalintlocalVariable;▼ Annotation parameters ⇨ Chow down if long
<optionname="ANNOTATION_PARAMETER_WRAP"value="5" />@Annotation3(param1 = "value1", param2 = "value2")In declarations ⇨ 1
<optionname="KEEP_BLANK_LINES_IN_DECLARATIONS"value="1" />publicclassFoo{privateintfield1; privateintfield2}In code ⇨ 1
<optionname="KEEP_BLANK_LINES_IN_CODE"value="1" />if (places != null && !places.isEmpty()){placeModelCollection = newArrayList<>(); for (Placeplace : places){placeModelCollection.add(transform(place))} }Before } ⇨ 0
<optionname="KEEP_BLANK_LINES_BEFORE_RBRACE"value="0" />publicvoidfoo1(){newRunnable(){publicvoidrun(){} }}Around method interface ⇨ 0
<optionname="BLANK_LINES_AROUND_METHOD_IN_INTERFACE"value="0" />interfaceTestInterface{intMAX = 10; intMIN = 1; voidmethod1(); voidmethod2()}▼ Alignment
✗ Align parameter descriptions
<optionname="JD_ALIGN_PARAM_COMMENTS"value="false" />
/** * @param i short named parameter description * @param longParameterName long named parameter description * @param missingDescription */
✗ Align thrown exception descriptions
<optionname="JD_ALIGN_EXCEPTION_COMMENTS"value="false" />
/** * @throws XXXException description. * @throws YException description. * @throws ZException */
▼ Blank lines
✓ After parameter descriptions
<optionname="JD_ADD_BLANK_AFTER_PARM_COMMENTS"value="true" />
/** * @param missingDescription * * @return return description. */
✓ After return tag
<optionname="JD_ADD_BLANK_AFTER_RETURN"value="true" />
/** * @param missingDescription * * @return return description. * * @throws XXXException description. */
▼ Invalid tags
✗ Keep empty
@paramtags<optionname="JD_KEEP_EMPTY_PARAMETER"value="false" />
✗ Keep empty
@returntags<optionname="JD_KEEP_EMPTY_RETURN"value="false" />
✗ Keep empty
@throwstags<optionname="JD_KEEP_EMPTY_EXCEPTION"value="false" />
▼ Other
✓ Wrap at right margin
<optionname="WRAP_COMMENTS"value="true" />
/** * This is a method description that is * long enough to exceed right margin. * <p> * Another paragraph of the description * placed after blank line. * <p> * Line with manual line feed. */
✗ Generate
<p/>on empty lines<optionname="JD_P_AT_EMPTY_LINES"value="false" />
/** * This is a method description that is * long enough to exceed right margin. * * Another paragraph of the description * placed after blank line. * * Line with manual line feed. */
✗ Do not wrap one line comments
<optionname="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS"value="true" />
/** One-line comment */publicabstractStringsampleMethod2();
✓ Preserve line feeds
<optionname="JD_PRESERVE_LINE_FEEDS"value="true" />
/** * Another paragraph of the description * placed after blank line. * <p/> * Line with manual * line feed. */
Class count to use import with * ⇨ 999
<optionname="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND"value="999" />Names count to use static import with * ⇨ 999
<optionname="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND"value="999" />Import Layout
<packagename="android"withSubpackages="true"static="false" /> <packagename="com"withSubpackages="true"static="false" /> <packagename="junit"withSubpackages="true"static="false" /> <packagename="net"withSubpackages="true"static="false" /> <packagename="org"withSubpackages="true"static="false" /> <packagename="java"withSubpackages="true"static="false" /> <packagename="javax"withSubpackages="true"static="false" /> <packagename=""withSubpackages="true"static="false" /> <emptyLine /> <packagename=""withSubpackages="true"static="true" />import android.* import com.* import junit.* import net.* import org.* import java.* import javax.* import all other imports <blank line> import static all other imports Grouping rules
✓ Keep getters and setters together
<group> <type>GETTERS_AND_SETTERS</type> <order>KEEP</order> </group>
✓ Keep overriden methods together (keep order)
<group> <type>OVERRIDDEN_METHODS</type> <order>KEEP</order> </group>
Final Modifier
✓ Make generated local variables final
<optionname="GENERATE_FINAL_LOCALS"value="true" />
Comment Code
✗ Line comment at first column
<optionname="LINE_COMMENT_AT_FIRST_COLUMN"value="false" />
✗ Block comment at first column
<optionname="BLOCK_COMMENT_AT_FIRST_COLUMN"value="false" />
Default Visibility
✓ Package local
<optionname="VISIBILITY"value="packageLocal" />
Tab size: 2 / Indent: 2 / Continuation indent: 4
<indentOptions> <optionname="INDENT_SIZE"value="2" /> <optionname="TAB_SIZE"value="2" /> </indentOptions>
✓ Keep line breaks
<optionname="XML_KEEP_LINE_BREAKS"value="true" />Keep blank lines ⇨ 1
<optionname="XML_KEEP_BLANK_LINES"value="1" /><application-components> <description>Our product makes development a real pleasure. It decreases the time you spend on routine, repetitive. </description> </application-components>Wrap attributes ⇨ Wrap always
<optionname="XML_ATTRIBUTE_WRAP"value="2" /><optionname="workspace" value="true"/>✗ Align attrivutes
<optionname="XML_ALIGN_ATTRIBUTES"value="false" /><optionname="workspace" value="true"/>Spaces
✗ In empty tag
<optionname="XML_SPACE_INSIDE_EMPTY_TAG"value="false" />
<optionname="workspace"/>
Layout Files
✗ Insert blank line before tag
<optionname="LAYOUT_SETTINGS"> <value> <optionname="INSERT_BLANK_LINE_BEFORE_TAG"value="false" /> </value> </option>
Other XML resource files
✗ Insert line break before first attribute
<optionname="OTHER_SETTINGS"> <value> <optionname="INSERT_LINE_BREAK_BEFORE_FIRST_ATTRIBUTE"value="false" /> </value> </option>
Tab size: 2 / Indent: 2 / Continuation indent: 4
<indentOptions> <optionname="INDENT_SIZE"value="2" /> <optionname="CONTINUATION_INDENT_SIZE"value="4" /> <optionname="TAB_SIZE"value="2" /> </indentOptions>
▼ Keep when reformatting
✗ Comment at first column
<optionname="KEEP_FIRST_COLUMN_COMMENT"value="false" />
// todo something
▼ Extends / implements list ⇨ Wrap if long
<optionname="EXTENDS_LIST_WRAP"value="1" />publicclassThisIsASampleClassextendsC1implementsI1, I2, I3, I4, I5{Extends / implements keyword ⇨ Wrap if long
<optionname="EXTENDS_KEYWORD_WRAP"value="1" />
publicclassThisIsASampleClassextendsC1implementsI1, I2, I3, I4, I5{
▼ Throws list ⇨ Wrap if long
<optionname="THROWS_LIST_WRAP"value="1" />publicstaticvoidlongerMethod() throwsException1, Exception2, Exception3{Throws keyword ⇨ Wrap if long
<optionname="THROWS_KEYWORD_WRAP"value="1" />
publicstaticvoidlongerMethod() throwsException1, Exception2, Exception3{
▼ Method declaration parameters ⇨ Chop down if long
<optionname="METHOD_PARAMETERS_WRAP"value="5" />publicvoidfoo1(inti1, inti2, inti3, inti4, inti5, inti6, inti7){✓ New line after '('
<optionname="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE"value="true" />
publicvoidfoo1( inti1, inti2, inti3, inti4, inti5, inti6, inti7){}
✓ Place ')' on new line
<optionname="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE"value="true" />
publicvoidfoo1( inti1, inti2, inti3, inti4, inti5, inti6, inti7 ){}
▼ Method call arguments ⇨ Chop down if long
<optionname="CALL_PARAMETERS_WRAP"value="5" />foo1(0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057);✓ New line after '('
<optionname="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE"value="true" />
foo1( 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057);
✓ Place ')' on new line
<optionname="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE"value="true" />
foo1( 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057 );
▼ Chained method calls ⇨ Wrap if long
<optionname="METHOD_CALL_CHAIN_WRAP"value="5" />super.getFoo() .foo() .getBar() .bar();✓ Wrap first call
<optionname="WRAP_FIRST_METHOD_IN_CALL_CHAIN"value="true" />
super .getFoo() .foo() .getBar() .bar();
▼ if() statement
Force braces ⇨ Always
<optionname="IF_BRACE_FORCE"value="3" />
if (2 < 3){return} elseif (2 > 3){return} else{return}
▼ for() statement ⇨ Wrap if long
<optionname="FOR_STATEMENT_WRAP"value="1" />for (inti = 0; i < 0xFFFFFF; i += 2)✗ Align when multiline
<optionname="ALIGN_MULTILINE_FOR"value="false" />
for (inti = 0; i < 0xFFFFFF; i += 2)
Force braces ⇨ Always
<optionname="FOR_BRACE_FORCE"value="3" />
for (inti = 0; i < 0xFFFFFF; i += 2){System.out.println(i)}
✓ New line after '('
<optionname="FOR_STATEMENT_LPAREN_ON_NEXT_LINE"value="true" />
for ( inti = 0; i < 0xFFFFFF; i += 2){
✓ Place ')' on new line
<optionname="FOR_STATEMENT_RPAREN_ON_NEXT_LINE"value="true" />
for ( inti = 0; i < 0xFFFFFF; i += 2 ){
▼ while() statement
Force braces ⇨ Always
<optionname="WHILE_BRACE_FORCE"value="3" />
while (x < 50000){x++}
▼ Binary expressions ⇨ Wrap if long
<optionname="BINARY_OPERATION_WRAP"value="1" />intx = (3 + 4 + 5 + 6) * (7 + 8 + 9 + 10) * (11 + 12 + 13 + 14 + 0xFFFFFFFF); asserti + j + k + l + n + m <= 2 : "assert description"; inty = 2 > 3 ? 7 + 8 + 9 : 11 + 12 + 13;✓ New line after
{<optionname="PARENTHESES_EXPRESSION_LPAREN_WRAP"value="true" />
intx = (3 + 4 + 5 + 6) * ( 7 + 8 + 9 + 10) * ( 11 + 12 + 13 + 14 + 0xFFFFFFFF);
✓ Place
}on new line<optionname="PARENTHESES_EXPRESSION_RPAREN_WRAP"value="true" />
intx = (3 + 4 + 5 + 6) * ( 7 + 8 + 9 + 10 ) * ( 11 + 12 + 13 + 14 + 0xFFFFFFFF );
▼ Assignment statement ⇨ Wrap if long
<optionname="ASSIGNMENT_WRAP"value="1" />s1 = s2 = s3 = "012345678901456"▼ Ternary operation ⇨ Wrap if long
<optionname="TERNARY_OPERATION_WRAP"value="1" />inty = 2 > 3 ? 7 + 8 + 9 : 11 + 12 + 13;▼ Assert statement ⇨ Wrap if long
<optionname="ASSERT_STATEMENT_WRAP"value="1" />asserti + j + k + l + n + m <= 2 : "assert description";Enums constants ⇨ Wrap always
<optionname="ENUM_CONSTANTS_WRAP"value="2" />enumBreed{Dalmatian(), Labrador(), Dachshund() }Parameter annotations ⇨ Wrap if long
<optionname="PARAMETER_ANNOTATION_WRAP"value="1" />publicvoidmethod(@Annotation1@Annotation3(param1 = "value1", param2 = "value2") finalintparam){Local variable annotations ⇨ Wrap always
<optionname="VARIABLE_ANNOTATION_WRAP"value="2" />@Annotation1@Annotation3(param1 = "value1", param2 = "value2") finalintlocalVariable;In declarations ⇨ 1
<optionname="KEEP_BLANK_LINES_IN_DECLARATIONS"value="1" />publicclassFoo{privateintfield1; privateintfield2}In code ⇨ 1
<optionname="KEEP_BLANK_LINES_IN_CODE"value="1" />if (places != null && !places.isEmpty()){placeModelCollection = newArrayList<>(); for (Placeplace : places){placeModelCollection.add(transform(place))} }Before } ⇨ 0
<optionname="KEEP_BLANK_LINES_BEFORE_RBRACE"value="0" />publicvoidfoo1(){newRunnable(){publicvoidrun(){} }}Around method interface ⇨ 0
<optionname="BLANK_LINES_AROUND_METHOD_IN_INTERFACE"value="0" />interfaceTestInterface{intMAX = 10intMIN = 1defmethod1() voidmethod2() }Class count to use import with * ⇨ 999
<optionname="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND"value="999" />Names count to use static import with * ⇨ 999
<optionname="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND"value="999" />Import Layout
<packagename="android"withSubpackages="true"static="false" /> <packagename="com"withSubpackages="true"static="false" /> <packagename="junit"withSubpackages="true"static="false" /> <packagename="net"withSubpackages="true"static="false" /> <packagename="org"withSubpackages="true"static="false" /> <packagename="java"withSubpackages="true"static="false" /> <packagename="javax"withSubpackages="true"static="false" /> <packagename=""withSubpackages="true"static="false" /> <emptyLine /> <packagename=""withSubpackages="true"static="true" />importandroid.* importcom.* importjunit.* importnet.* importorg.* importjava.* importjavax.* importallotherimports <blankline> importstaticallotherimports#### Related sources
