Difference between revisions of "Code Formatting Conventions"

From ScummVM :: Wiki
Jump to navigation Jump to search
(inital Wiki Code_formatting_Conventions)
 
m (update formatting)
Line 1: Line 1:
1. Use common sense
 
== 1. Use common sense ==
 
These are conventions which we try to follow when writing code for ScummVM. They are this way mainly for reasons of taste, however, sticking to a common set of formatting rules also makes it slightly easier to read through our sources. If you want to submit patches, please try to follow these rules.  
These are conventions which we try to follow when writing code for ScummVM. They are this way mainly for reasons of taste, however, sticking to a common set of formatting rules also makes it slightly easier to read through our sources. If you want to submit patches, please try to follow these rules.  


As such we don't follow these rules slavishly, in certain cases it is OK (and in fact favorable) to stray from them.  
As such we don't follow these rules slavishly, in certain cases it is OK (and in fact favorable) to stray from them.  


2. Hugging braces
== 2. Hugging braces ==
 
Braces in your code should look like the following example:
Braces in your code should look like the following example:


Line 19: Line 22:
Did you see the {}'s on that?
Did you see the {}'s on that?


3. Tab indents, with tabstop at four spaces
== 3. Tab indents, with tabstop at four spaces ==
 
Says it all, really.  
Says it all, really.  
4. Whitespaces
 
== 4. Whitespaces ==
 
Conventional operators surrounded by a space character
Conventional operators surrounded by a space character
a = (b + c) * d;
a = (b + c) * d;
Line 51: Line 57:
} // End of namespace Scumm
} // End of namespace Scumm


== 5. Switch / Case constructs ==
5. Switch / Case constructs
 
switch (cmd) {
switch (cmd) {
case kSaveCmd:
case kSaveCmd:
Line 64: Line 70:
Dialog::handleCommand(sender, cmd, data);
Dialog::handleCommand(sender, cmd, data);
}
}
 
6. Naming
== 6. Naming ==
 
Constants
Constants



Revision as of 15:36, 13 February 2006

1. Use common sense

These are conventions which we try to follow when writing code for ScummVM. They are this way mainly for reasons of taste, however, sticking to a common set of formatting rules also makes it slightly easier to read through our sources. If you want to submit patches, please try to follow these rules.

As such we don't follow these rules slavishly, in certain cases it is OK (and in fact favorable) to stray from them.

2. Hugging braces

Braces in your code should look like the following example:

if (int i = 0; i < t; i++) { [...] } else { [...] }

class Dummy() { [...] }

Did you see the {}'s on that?

3. Tab indents, with tabstop at four spaces

Says it all, really.

4. Whitespaces

Conventional operators surrounded by a space character a = (b + c) * d;

C++ reserved words separated from opening parentheses by a white space while (true) {

Commas followed by a white space someFunction(a, b, c); int d, e;

Semicolons followed by a space character, if there is more on line for (int a = 0; b++; c < d) doSomething(e); doSomething(f); // This is probably bad style anyway

When declaring class inheritance and in a ? construct, colons should be surrounded by white space class BusWheel : public RubberInflatable { (isNight) ? colorMeDark() : colorMeBright();

Indentation level is not increased after namespace clause namespace Scumm {

byte Actor::kInvalidBox = 0;

void Actor::initActorClass(ScummEngine *scumm) { _vm = scumm; }

} // End of namespace Scumm

5. Switch / Case constructs

switch (cmd) { case kSaveCmd: save(); break; case kLoadCmd: case kPlayCmd: close(); break; default: Dialog::handleCommand(sender, cmd, data); }

6. Naming

Constants

Basically, you have two choices: kSomeKludgyConstantName // notice k prefix

or SOME_KLUDGY_CONSTANT_NAME

Classes

Mixed case starting with upper case class MeClass() {

Class members

_ prefixed and in mixed case (Yo! no underscore separators), starting with lowercase. char *_someVariableName;

Class methods

mixed case, starting with lowercase. void thisIsMyFancyMethod();