Hi,

Indentation is not defined well in the coding style documentation
(actually, lots of things are not mentioned in the document). Thus, by
the rules of thermodynamics, KiCad has a healthy mix of different
styles.

The clang-fomat file specifies the following:

* IndentWidth: 4 # This is the "block indent"
* ContinuationIndentWidth: 8 # This is the indent when continuing a
line, as you found
* AlignAfterOpenBracket: DontAlign # indent following lines of a
function call using the ContinuationIndentWidth

So you get:

someLongFunction( argument1,
        argument2 );

If we change AlignAfterOpenBracket to Align, this will produce:

someLongFunction( argument1,
                  argument2 );

If this is "correct" KiCad style, we should change clang-format.

WRT to template spacing inside < >, again the policy says nothing.
Clang format uses SpacesInAngles: false, which gives <FOO> rather than
< Foo >. Notably, no-spaces appears to outnumber with-spaces roughly
3.5-1 in extant code.

So both these issues are a mismatch of clang-format and "the right
style". Or vice versa.

One thing that you absolutely should be careful of with clang-format
is auto-generated files (like wxFormBuilder and CPP files). These
files should not be auto-formatted. I plan to submit a change to
disable checks on these files (it's been on my stack for some time!).

Cheers,

John

On Wed, Mar 20, 2019 at 4:56 PM Wayne Stambaugh <stambau...@gmail.com> wrote:
>
> Brian,
>
> On 3/20/2019 12:46 PM, Brian wrote:
> > I'm trying to get better at not breaking the KiCad style guidelines, but
> > then I see the clang-format tool make suggestions like this:
> >
> > - static LIB_TEXT* loadText( std::unique_ptr< LIB_PART >& aPart,
> > LINE_READER& aReader,
> > - int aMajorVersion, int aMinorVersion );
> > - static LIB_RECTANGLE* loadRectangle( std::unique_ptr< LIB_PART >& aPart,
> > - LINE_READER& aReader );
> > + static LIB_TEXT* loadText( std::unique_ptr<LIB_PART>& aPart,
> > LINE_READER& aReader,
> > + int aMajorVersion, int aMinorVersion );
> > + static LIB_RECTANGLE* loadRectangle( std::unique_ptr<LIB_PART>& aPart,
> > LINE_READER& aReader );
> >
> > This doesn't seem right to me, in particular pulling the second line of
> > the loadText definition leftward and removing the spaces around template
> > parameters.  It makes me reluctant to blindly do a `git clang-format`
> > before a commit.
> >
> > Comments / advice?
>
> This is why I didn't allow this to be always hooked when making commits.
>  I don't trust them to do exactly what I want.  Technically we do not
> define this indentation.  It can be either indented one level (4 spaces)
> or aligned with the first parameter.  I prefer the latter.  In either
> case, this indentation doesn't appear to be correct.  I don't pretend to
> be a clang-format expert but I'm guessing this can be fixed with the
> appropriate setting.  Your best bet is to configure your editor to
> perform the code formatting to match the kicad coding policy.
>
> Cheers,
>
> Wayne
>
> >
> > Thanks,
> > -Brian
> >
> >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to     : kicad-developers@lists.launchpad.net
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help   : https://help.launchpad.net/ListHelp
> >
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to