kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #39834
Re: clang-format seems to be breaking the rules?
On 3/20/2019 3:04 PM, John Beard wrote:
> On Wed, Mar 20, 2019 at 6:44 PM Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>
>> It looked like in the example that Brian posted the indent was more than
>> eight spaces but that may have been a font spacing issue. I'm fine with
>> eight spaces as the continuation indent.
>
> Hmm, you're right, I didn't notice that. It seems clang-format
> "compensates" for the alignment of other declarations in the block:
>
> static LIB_TEXT* loadText( std::unique_ptr<LIB_PART>&
> aPart, LINE_READER& aReader,
> int aMajorVersion, int aMinorVersion );
> static LIB_RECTANGLE_but_long* loadRectangle( std::unique_ptr<LIB_PART>& aPart,
> LINE_READER& aReader, int aMajorVersion, int aMinorVersion );
>
> I'm not sure why this is, or if it's by bug or design in clang-format.
>
> However, this does only happen when you have declarations with no
> spaces between then. Adding newlines gets:
>
> static LIB_TEXT* loadText( std::unique_ptr<LIB_PART>& aPart,
> LINE_READER& aReader,
> int aMajorVersion, int aMinorVersion );
>
> static LIB_RECTANGLE_but_long* loadRectangle( std::unique_ptr<LIB_PART>& aPart,
> LINE_READER& aReader, int aMajorVersion, int aMinorVersion );
>
> The coding policy specifies 1 line spacing above declarations with
> Doxygen comments, and 2 above "bare" declarations like these. So this
> bug/quirk/feature should rarely be encountered. So the original code
> here is wrong.
>
> Of course, it always pays to be careful with the auto-formatter - I
> normally get the editor to do most of it, and then manually check
> changes with "git clang-format --diff" if I get a commit failure for
> formatting. Normally a botched space-in-parens, for me!
The moral of the story is "never trust the auto-formatter". Sounds
suspiciously like "never trust the auto-router" :)
>
> Cheers,
>
> John
>
Follow ups
References