DlangUI Coding Style ==================== Tabs and indentation ==================== No Tab characters should be used in source code. Use 4 spaces instead of tabs. Identifiers =========== Class names: CamelCase with uppercase first letter, e.g.: LinearLayout, GridWidget Method and property names: camelCase with lowercase first letter, e.g.: textAlign, layoutWidth Private and protected class and struct fields: \_camelCase prepended with underscore, e.g. \_windowWidth Signal names: camelCase Enum member names: currently, 3 styles are used JAVA_LIKE, CamelCase and camelCase TODO: make it consistent? class MyClass { private int _x; @property int x() { return _x; } } Spaces ====== Always put space after comma or semicolon if there are more items in the same line. update(x, y, isAnimating(this)) auto list = [1, 2, 3, 4, 5]; Usually there is no space after opening or before closing [] and () Spaces may be added to improve readability when there is a sequence brackets of the same type. auto y = (x * x + ( ((a - b) + c) ) * 2); Use spaces before and after == != && || + - * / etc. Brackets ======== Curly braces for if, switch, for, foreach - preferable placed on the same lines as keyword if (a == b) { } else { } foreach(item; list) { writeln(item); } Cases in switch should be indented: switch(action.id) { case 1: processAction(1); break; default: break; } For classes and structs opening { can be either at end of line or in a new line). class Foo { } class Bar : Foo { } For methods { can be either at end of line. Short methods (e.g. property getters) may be written in one line. void invalidate() { // } int length() { return _list.length; }