Difference between revisions of "Code Formatting Conventions"

From ScummVM :: Wiki
Jump to navigation Jump to search
(major formatting improvements)
m (update formatting to match original website's style)
Line 29: Line 29:
== 4. Whitespaces ==
== 4. Whitespaces ==


Conventional operators surrounded by a space character
'''Conventional operators surrounded by a space character'''


<pre>
<pre>
Line 35: Line 35:
</pre>
</pre>


C++ reserved words separated from opening parentheses by a white space
'''C++ reserved words separated from opening parentheses by a white space'''


<pre>
<pre>
Line 41: Line 41:
</pre>
</pre>


Commas followed by a white space
'''Commas followed by a white space'''


<pre>
<pre>
Line 48: Line 48:
</pre>
</pre>


Semicolons followed by a space character, if there is more on line
'''Semicolons followed by a space character, if there is more on line'''


<pre>
<pre>
Line 55: Line 55:
</pre>
</pre>


When declaring class inheritance and in a ? construct, colons should be surrounded by white space
'''When declaring class inheritance and in a ? construct, colons should be surrounded by white space'''


<pre>
<pre>
Line 62: Line 62:
</pre>
</pre>


Indentation level is not increased after namespace clause
'''Indentation level is not increased after namespace clause'''


<pre>
<pre>
Line 94: Line 94:
== 6. Naming ==
== 6. Naming ==


Constants
'''Constants'''


Basically, you have two choices:
Basically, you have two choices:
Line 108: Line 108:
</pre>
</pre>


Classes
'''Classes'''


Mixed case starting with upper case
Mixed case starting with upper case
Line 116: Line 116:
</pre>
</pre>


Class members
'''Class members'''


_ prefixed and in mixed case (Yo! no underscore separators), starting with lowercase.
_ prefixed and in mixed case (Yo! no underscore separators), starting with lowercase.
Line 124: Line 124:
</pre>
</pre>


Class methods
'''Class methods'''


mixed case, starting with lowercase.
mixed case, starting with lowercase.

Revision as of 16:47, 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();