This Ballerina Style Guide aims at maintaining a standard coding style among the Ballerina community. Therefore, the Ballerina code formatting tools are based on this guide.
Indentation and line length
- Use four spaces (not tabs) for each level of indentation.
- Keep the maximum length of a line to 120 characters.
Note: You can configure tools and plugins to use spaces when indenting and to change the maximum number of characters in a line.
- Use only a single space to separate keywords, types, and identifiers.
Few exceptions for this rule are:
- Do not keep spaces around a type when it is enclosed using angle brackets
- Do not keep spaces between the type and the opening bracket in the array definition
- If it is a list of values separated by commas, add only a single space after each comma and don't add spaces before the comma.
Separate both statements and top-level definitions by zero or one blank lines.
- Opening curly braces of a block should be placed inline.
- Add a single space before the opening curly braces.
- If an inline block is empty, do not keep spaces in between the opening and closing braces.
- Indent all the statements inside a block to be at the same level.
- Indent the closing brace of a block to align it with the starting position of the block statement.
Parentheses and brackets
- Do not have spaces after opening parenthesis/bracket and before closing parenthesis/bracket.
- To define empty parentheses/brackets, do not keep spaces between the opening and closing parentheses/brackets. i.e.
- Have only one statement in a line.
- When splitting lines, which contain operator(s), split them right before an operator.
- When splitting lines, which contains separator(s), split them right after a separator.
- If there isn't any operator or separator to break the line from, move the whole expression to a new line.
- If a line exceeds the maximum line length, start from the end of the line and come towards the start of the line until you find a point, which matches the above rules to break the line.
- Indent split lines with relation to the starting position of the statement or definition.
- However, if you cannot add the type-casting expression or statement with the constrained type in a single line
due to it exceeding the max line length,
- move the casting type with the operators to a new line.
- keep the constrained type on the same line by splitting the statement from a point before the constraint type.