indent

David Hampton gnucash at love2code.net
Thu Mar 8 23:46:53 EST 2007


There's been some discussion on IRC about using the indent program to
reformat the sources into something consistent from file to file.  I'd
like to propose the following options as a starting point for
discussion.  I think some of these options will be agreed upon by all,
and I'm sure others will be contentious.  :-)

Indentation

-nut	No tabs. Indentation is done with spaces.
-i4	Add four spaces for each indent level
-ci4	Continuation lines are indented by four spaces
-cli4	Case labels are indented by four spaces
-ppi4	Nested pre-processor defines are indented by four spaces
-nbc	Do not force newlines after commas in declarations (default)
-nbfda	Don´t put each argument in a function declaration
        on a separate line (default)
-lp	Line up continued lines at parentheses (default)
-psl	Put the type of a procedure on the line before its name.
-bbo	Prefer to break long lines before boolean operators.

Blank Lines

-nsob	Do not swallow optional blank lines (default)
-bad	Force a blank line after a declaration.
-bbb	Force a blank line before a block comment.
-bap	Force blank lines after procedure bodies.

Comments

-fca	Reformat all comments except those starting in column 1
-fc1	Reformat comments starting in column 1
-sc	Continuation lines in a comments start with a '*'

Statements

-npcs	Do not put space after the function in function calls.
-nprs	Do not put a space after every ´(´ and before every ´)´.

-ncs	Do not put a space after cast operators.
-saf	Put a space after each for.
-sai	Put a space after each if.
-saw	Put a space after each while.

-brs	Put braces on struct declaration line.
-br	Put braces on line with if, etc.
-ce	Cuddle else and preceeding `}´.
-cdw	Cuddle while of do {} while; and preceeding `}´.

Other

-l80	Line width of 80.

Attached is a small source file formatted with the above options.

Let the discussion begin. :-)

Of the above list of options, the ones I feel strongly about are lining
up continued lines at parentheses (-lp), the space-after-keyword group
(saf, -sai, -saw), and the cuddling-of-braces group (-br, -ce, -cdw).  I
feel most strongly about this last group.  The parts of an if/then/else
statement are clearly delineated by the indentation of the keywords vs.
the indentation of the code blocks.  I believe it a complete waste to
additionally add vertical separation my making the "else" take up three
lines.  One for a closing parenthesis, one for the word "else", and one
for an opening parenthesis.  Maybe that's just me.

What do the rest of the developers think?

David
 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: bar.c
Type: text/x-csrc
Size: 1070 bytes
Desc: 
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20070308/4e411a4d/attachment.bin 


More information about the gnucash-devel mailing list