Differences between revisions 2 and 4 (spanning 2 versions)
Revision 2 as of 2010-08-01 10:57:12
Size: 2021
Editor: MalteHelmert
Comment:
Revision 4 as of 2010-08-01 18:47:26
Size: 2023
Editor: MalteHelmert
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Back to the HomePage. Back to CodingConventions.
Line 3: Line 3:
= Coding conventions = = Code formatting =

Back to CodingConventions.

Code formatting

We use uncrustify with a Fast Downward configuration file to enforce some of the formatting conventions. This page clarifies things that are not covered by uncrustify and/or unclear.

Breaking long lines

Preferably keep lines to 72 characters, or else to 80 characters.

Breaking function calls

Use one of these two ways to break function calls:

  1. Break after opening parenthesis, indent following lines by four spaces.
  2. Break after an argument, align after the opening parenthesis.

The first way is usually preferred.

   1     int foobar1 = example_of_breaking_after_parenthesis(
   2         some_argument, foo + bar, baz, final_argument);
   3     int foobar2 = example_of_breaking_after_argument(some_argument, foo + bar,
   4                                                      baz, final_argument);

Breaking stream output

Break lines before << or >> operators and align on these operators:

   1     cout << "here's a lot of introductory text to make this a long line; x = " << x
   2          << ", y = " << y << endl;

Breaking function definition heads

  1. Prefer to keep everything on one line.
  2. If this is too long, break as for function calls above.
  3. If this is still too long, break after the return value type.

   1 void MyClass::everything_fits_on_one_line_here(double &x, int y) {
   2     // Case 1 above.
   3 }
   4 
   5 int *MyLongerClassName::ooh_it_does_not_really_fit_any_more_here(
   6     double &x, int y) {
   7     // Case 2 above.
   8 }
   9 
  10 int *MyLongerClassName::ooh_it_does_not_really_fit_any_more_here(double &x,
  11                                                                  int y) {
  12     // Case 2 above, variant.
  13 }
  14 
  15 MyEvenQuiteAFewWordsLongerClassName::NestedClassWithALongName *
  16 MyEvenQuiteAFewWordsLongerClassName::create_nested_class_with_a_long_name_instance(
  17     double &x, int y) {
  18     // Case 3 above.
  19 }

FastDownward: ForDevelopers/Whitespace (last edited 2010-11-15 18:26:04 by MalteHelmert)