18c4e5c74e
See Kevin's nits CL for more context: https://codereview.chromium.org/153623006/ R=brianwilkerson@google.com Review URL: https://codereview.chromium.org//151243003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32378 260f80e4-7a28-3924-810f-c04153c831b5
225 lines
4.0 KiB
Plaintext
225 lines
4.0 KiB
Plaintext
>>> DO use ; instead of {} for empty constructor bodies
|
|
class Point {
|
|
int x, y;
|
|
Point(this.x, this.y) {}
|
|
}
|
|
<<<
|
|
class Point {
|
|
int x, y;
|
|
Point(this.x, this.y);
|
|
}
|
|
>>> DO indent block bodies two spaces.
|
|
hi() {
|
|
if (condition) { print('hi'); }
|
|
}
|
|
<<<
|
|
hi() {
|
|
if (condition) {
|
|
print('hi');
|
|
}
|
|
}
|
|
>>> DON'T indent lines that are continued with a function expression.
|
|
var callback = new Future.delayed(const Duration(seconds: 1), () {
|
|
print('I am a callback');
|
|
});
|
|
<<<
|
|
var callback = new Future.delayed(const Duration(seconds: 1), () {
|
|
print('I am a callback');
|
|
});
|
|
>>> DO place the opening curly brace ({) on the same line as what it follows.
|
|
class Foo {
|
|
method()
|
|
{
|
|
if (true)
|
|
{
|
|
print('true');
|
|
} else {
|
|
print('false');
|
|
}
|
|
}
|
|
}
|
|
<<<
|
|
class Foo {
|
|
method() {
|
|
if (true) {
|
|
print('true');
|
|
} else {
|
|
print('false');
|
|
}
|
|
}
|
|
}
|
|
>>> DO use curly braces for all flow control structures.
|
|
flow() {
|
|
if (true) print('sanity');
|
|
else
|
|
print('opposite day!');
|
|
}
|
|
<<<
|
|
flow() {
|
|
if (true) {
|
|
print('sanity');
|
|
} else {
|
|
print('opposite day!');
|
|
}
|
|
}
|
|
>>> ... short if statements with no else may omit the braces ...
|
|
except() {
|
|
if (arg == null) return defaultValue;
|
|
}
|
|
<<<
|
|
except() {
|
|
if (arg == null) return defaultValue;
|
|
}
|
|
>>> DO indent switch cases two spaces and case bodies four spaces
|
|
switches() {
|
|
switch (fruit) {
|
|
case 'apple':
|
|
print('delish');
|
|
break;
|
|
|
|
case 'durian':
|
|
print('stinky');
|
|
break;
|
|
}
|
|
}
|
|
<<<
|
|
switches() {
|
|
switch (fruit) {
|
|
case 'apple':
|
|
print('delish');
|
|
break;
|
|
|
|
case 'durian':
|
|
print('stinky');
|
|
break;
|
|
}
|
|
}
|
|
>>> DO use spaces around binary and ternary operators, etc...
|
|
spaces() {
|
|
a=1+2/(3* - b);
|
|
c= ! condition==a>b;
|
|
d= condition?b:object.method(a,b,c);
|
|
if (obj is !SomeType) print('not SomeType');
|
|
}
|
|
<<<
|
|
spaces() {
|
|
a = 1 + 2 / (3 * -b);
|
|
c = !condition == a > b;
|
|
d = condition ? b : object.method(a, b, c);
|
|
if (obj is! SomeType) print('not SomeType');
|
|
}
|
|
>>> DO place spaces around in, and after each ; in a loop.
|
|
loop() {
|
|
for (var i = 0;i<100;i++) {
|
|
print(i);
|
|
}
|
|
for (final item in collection) {
|
|
print(item);
|
|
}
|
|
}
|
|
<<<
|
|
loop() {
|
|
for (var i = 0; i < 100; i++) {
|
|
print(i);
|
|
}
|
|
for (final item in collection) {
|
|
print(item);
|
|
}
|
|
}
|
|
>>> DO use a space after flow-control keywords.
|
|
flow() {
|
|
while(foo) {
|
|
print(foo);
|
|
}
|
|
|
|
try{
|
|
flow();
|
|
}catch(e) {
|
|
print(e);
|
|
}
|
|
}
|
|
<<<
|
|
flow() {
|
|
while (foo) {
|
|
print(foo);
|
|
}
|
|
|
|
try {
|
|
flow();
|
|
} catch (e) {
|
|
print(e);
|
|
}
|
|
}
|
|
>>> DON'T use a space after (, [, and {, or before ), ], and }.
|
|
spaces() {
|
|
var numbers = <int> [ 1, 2,( 3+4 ) ];
|
|
}
|
|
<<<
|
|
spaces() {
|
|
var numbers = <int>[1, 2, (3 + 4)];
|
|
}
|
|
>>> DO use a space before { in function and method bodies.
|
|
getEmptyFn(a){
|
|
return (){};
|
|
}
|
|
<<<
|
|
getEmptyFn(a) {
|
|
return () {};
|
|
}
|
|
>>> DO format constructor initialization lists with each field on its own line.
|
|
class MyClass {
|
|
var firstField, secondField, thirdField;
|
|
MyClass() : firstField = "some value", secondField = "another",
|
|
thirdField = "last";
|
|
}
|
|
<<<
|
|
class MyClass {
|
|
var firstField, secondField, thirdField;
|
|
MyClass()
|
|
: firstField = "some value",
|
|
secondField = "another",
|
|
thirdField = "last";
|
|
}
|
|
>>> DO use a space after : in named parameters and named arguments.
|
|
class ListBox {
|
|
bool showScrollbars;
|
|
|
|
ListBox({this.showScrollbars: false});
|
|
}
|
|
|
|
main() {
|
|
new ListBox(showScrollbars:true);
|
|
new ListBox(showScrollbars : true);
|
|
}
|
|
<<<
|
|
class ListBox {
|
|
bool showScrollbars;
|
|
|
|
ListBox({this.showScrollbars: false});
|
|
}
|
|
|
|
main() {
|
|
new ListBox(showScrollbars: true);
|
|
new ListBox(showScrollbars: true);
|
|
}
|
|
>>> DO use a spaces around = in optional positional parameters.
|
|
class HttpServer {
|
|
static Future<HttpServer> listen([int port=80]) {
|
|
print('hi!');
|
|
}
|
|
}
|
|
<<<
|
|
class HttpServer {
|
|
static Future<HttpServer> listen([int port = 80]) {
|
|
print('hi!');
|
|
}
|
|
}
|
|
>>> DO use four spaces for method cascades
|
|
var list = new List()
|
|
..addAll([1, 2, 3])
|
|
..addAll([4, 5, 6]);
|
|
<<<
|
|
var list = new List()
|
|
..addAll([1, 2, 3])
|
|
..addAll([4, 5, 6]);
|