Add a sample snippet to illustrate indentation/alignment
Apparently new contributors were confused by the mix of tabs and spaces, along with how they work out in practise - especially where one begins and the other ends. Fixes issue #9368
This commit is contained in:
parent
0e7401f350
commit
a4771fa8b9
|
@ -29,7 +29,30 @@ Following this guide and formatting your code as detailed will likely get your p
|
||||||
### General
|
### General
|
||||||
- Try to limit lines of code to a maximum of 100 characters.
|
- Try to limit lines of code to a maximum of 100 characters.
|
||||||
- Note that this does not mean you should try and use all 100 characters every time you have the chance. Typically with well formatted code, you normally shouldn't hit a line count of anything over 80 or 90 characters.
|
- Note that this does not mean you should try and use all 100 characters every time you have the chance. Typically with well formatted code, you normally shouldn't hit a line count of anything over 80 or 90 characters.
|
||||||
- The indentation style we use is tabs for initial indentation and then, if vertical alignment is needed, spaces are to be used.
|
- The indentation style we use is tabs for initial indentation and then, if vertical alignment is needed, spaces are to be used:
|
||||||
|
```c++
|
||||||
|
class IndentAndAlignmentSample
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void ThisMethodIsIndentedByOneLevel(int using_one_single_tab)
|
||||||
|
{
|
||||||
|
// this method, along with its opening and closing braces are
|
||||||
|
// indented with a single tab. This comment however is indented
|
||||||
|
// with two tabs. There is no vertical alignment yet, so no
|
||||||
|
// spaces are involved at this point.
|
||||||
|
m_other->DoStuff(m_first_parameter,
|
||||||
|
m_second_parameter,
|
||||||
|
m_third_parameter);
|
||||||
|
// Indent for the three previous lines is done using two tabs
|
||||||
|
// each (which brings the lines to the column where the word
|
||||||
|
// m_other begins in the first line).
|
||||||
|
// However, lines two and three are vertically aligned using
|
||||||
|
// 17 spaces (that's the length of "m_other->DoStuff(") in order
|
||||||
|
// to line up the method parameters correctly, regardless of
|
||||||
|
// tab-width settings used in your editor/IDE.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
- The opening brace for namespaces, classes, functions, enums, structs, unions, conditionals, and loops go on the next line.
|
- The opening brace for namespaces, classes, functions, enums, structs, unions, conditionals, and loops go on the next line.
|
||||||
- With array initializer lists and lambda expressions it is OK to keep the brace on the same line.
|
- With array initializer lists and lambda expressions it is OK to keep the brace on the same line.
|
||||||
- References and pointers have the ampersand or asterisk against the type name, not the variable name. Example: `int* var`, not `int *var`.
|
- References and pointers have the ampersand or asterisk against the type name, not the variable name. Example: `int* var`, not `int *var`.
|
||||||
|
|
Loading…
Reference in New Issue