CodingGuidelines: on splitting a long line
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5db9ab82b9
commit
f26443da04
@ -249,6 +249,61 @@ For C programs:
|
|||||||
Just do not mix styles in the same part of the code and mimic
|
Just do not mix styles in the same part of the code and mimic
|
||||||
existing styles in the neighbourhood.
|
existing styles in the neighbourhood.
|
||||||
|
|
||||||
|
- There are two schools of thought when it comes to splitting a long
|
||||||
|
logical line into multiple lines. Some people push the second and
|
||||||
|
subsequent lines far enough to the right with tabs and align them:
|
||||||
|
|
||||||
|
if (the_beginning_of_a_very_long_expression_that_has_to ||
|
||||||
|
span_more_than_a_single_line_of ||
|
||||||
|
the_source_text) {
|
||||||
|
...
|
||||||
|
|
||||||
|
while other people prefer to align the second and the subsequent
|
||||||
|
lines with the column immediately inside the opening parenthesis,
|
||||||
|
with tabs and spaces, following our "tabstop is always a multiple
|
||||||
|
of 8" convention:
|
||||||
|
|
||||||
|
if (the_beginning_of_a_very_long_expression_that_has_to ||
|
||||||
|
span_more_than_a_single_line_of ||
|
||||||
|
the_source_text) {
|
||||||
|
...
|
||||||
|
|
||||||
|
Both are valid, and we use both. Again, just do not mix styles in
|
||||||
|
the same part of the code and mimic existing styles in the
|
||||||
|
neighbourhood.
|
||||||
|
|
||||||
|
- When splitting a long logical line, some people change line before
|
||||||
|
a binary operator, so that the result looks like a parse tree when
|
||||||
|
you turn your head 90-degrees counterclockwise:
|
||||||
|
|
||||||
|
if (the_beginning_of_a_very_long_expression_that_has_to
|
||||||
|
|| span_more_than_a_single_line_of_the_source_text) {
|
||||||
|
|
||||||
|
while other people prefer to leave the operator at the end of the
|
||||||
|
line:
|
||||||
|
|
||||||
|
if (the_beginning_of_a_very_long_expression_that_has_to ||
|
||||||
|
span_more_than_a_single_line_of_the_source_text) {
|
||||||
|
|
||||||
|
Both are valid, but we tend to use the latter more, unless the
|
||||||
|
expression gets fairly complex, in which case the former tends to
|
||||||
|
be easier to read. Again, just do not mix styles in the same part
|
||||||
|
of the code and mimic existing styles in the neighbourhood.
|
||||||
|
|
||||||
|
- When splitting a long logical line, with everything else being
|
||||||
|
equal, it is preferable to split after the operator at higher
|
||||||
|
level in the parse tree. That is, this is more preferable:
|
||||||
|
|
||||||
|
if (a_very_long_variable * that_is_used_in +
|
||||||
|
a_very_long_expression) {
|
||||||
|
...
|
||||||
|
|
||||||
|
than
|
||||||
|
|
||||||
|
if (a_very_long_variable *
|
||||||
|
that_is_used_in + a_very_long_expression) {
|
||||||
|
...
|
||||||
|
|
||||||
- Some clever tricks, like using the !! operator with arithmetic
|
- Some clever tricks, like using the !! operator with arithmetic
|
||||||
constructs, can be extremely confusing to others. Avoid them,
|
constructs, can be extremely confusing to others. Avoid them,
|
||||||
unless there is a compelling reason to use them.
|
unless there is a compelling reason to use them.
|
||||||
|
Loading…
Reference in New Issue
Block a user