mcMMO/standards.md
2014-06-28 23:49:46 -07:00

95 lines
3.0 KiB
Markdown

* git enforced \n line endings
* 4-spaces instead of tabs for indentation
* Spaces after control statements before beginning parenthesis or brace
* <pre>if (</pre>
* <pre>for (</pre>
* <pre>while (</pre>
* <pre>do {</pre>
* <pre>try {</pre>
* <pre>public class SomeClass {</pre>
* Spaces after closing parenthesis in a control statement
* No newline after closing parenthesis and space in a control statement:
* <pre>if () {</pre>
* <pre>for () {</pre>
* <pre>while () {</pre>
* <pre>catch () {</pre>
* <pre>switch () {</pre>
* Newlines before an else, else if, catch, and finally statement
* <pre>}
else {</pre>
* <pre>}
else if () {</pre>
* <pre>}
catch () {</pre>
* <pre>}
finally () {</pre>
* Space after ; in for statement, not before
* <pre>for (int i = 0; i < 10; i++) {</pre>
* Spaces around operators
* <pre>a + b</pre>
* <pre>a == b</pre>
* <pre>for (Type blah : blahs) {</pre>
* <pre>"String " + "concatenation"</pre>
* Spaces around { and } on one-line declarations
* <pre>public boolean aMethod() { return something; }</pre>
* Fewer extraneous parentheses, except when they increase readability
* <pre>if (a == b || b == c)</pre>
* Indent on case in switch case statements
* <pre>switch () {
case 1:</pre>
* Mandatory comment for when a case falls through, and when not stacking
* <pre>switch () {
case 1:
// Fallthrough
case 2:</pre>
* <pre>switch () {
case 1:
case 2:
case 3:
case 4:
case 5:
// Fallthrough
case 6:</pre>
* Empty line between cases after break, return, or fallthrough
* <pre>switch () {
case 1:
break;
case 2:</pre>
* Prefer early returns over method indentation. Example:
* <pre>if (!precondition) {
// Possibly cleanup
return;
}
// Continue with task</pre>
* Java standard class and method naming, with exception to McMMO in a class name
* <pre>thisIsAMethod()</pre>
* <pre>ThisIsAClass</pre>
* Exception:
<pre>McMMOCustomClass</pre>
* No space before opening parenthesis for methods, or constructors
* <pre>public void thisIsAMethod() {</pre>
* <pre>public ThisIsAClass() {</pre>
* Spaces after comma in method calls and constructors, not before
* <pre>something.methodCall(variable, otherVariable);</pre>
* Accessing of variables with this. only when necessary to resolve scope
* Class variables always defined at the top, before the constructor
* No empty line between class declaration and beginning of variable declaration
* Always a empty line at the end of a method or constructor definition
* Constructors come before methods, and are typically ordered from the ones with the least arguments to the most
* Methods should be ordered in this manner:
* override public
* public
* static public
* abstract public
* override protected
* protected
* static protected
* abstract protected
* private
* static private
* No one-line if statements, they should all have brackets