Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


On 12/14/2017 10:35 AM, Miklos Vajna wrote:
On Wed, Dec 13, 2017 at 10:50:31AM +0100, Stephan Bergmann <sbergman@redhat.com> wrote:
Another gotcha to watch out for related to comments is how

void decl1(); // lengthy comment comment comment comment comment comment comment comment comment
               // comment comment comment comment comment comment comment comment pertaining to 
decl1
void decl2();
     // lengthy comment comment comment comment comment comment comment comment pertaining to decl2
void decl3();

void f() {
     statement1(); // lengthy comment comment comment comment comment comment comment comment 
comment
                   // comment comment comment comment comment comment pertaining to statement1
     statement2();
         // lengthy comment comment comment comment comment comment comment pertaining to statement2
     statement3();
}

is reformatted to

void decl1(); // lengthy comment comment comment comment comment comment comment comment comment
     // comment comment comment comment comment comment comment comment pertaining to decl1

This is due to our explicit AlignTrailingComments=false, it may make
sense to consider enabling it (if
solenv/clang-format/reformat-formatted-files confirms this solves more
problems than it causes).

void decl2();
// lengthy comment comment comment comment comment comment comment comment pertaining to decl2
void decl3();

I think this style was discussed on IRC already, and there was no
consensus if even the original form is misleading to the reader of the
code or not (so I did not research so far if there is an option to
preserve that style).

I now find that my examples above didn't even show what actually pissed me off when I tried to get a comment past clang-format in <https://cgit.freedesktop.org/libreoffice/core/commit/?id=a31267be1bb42> "Fix isSalCallFunction so it also works on Windows".

Namely the inconsistency in reformatting from

void decl1(); // lengthy comment comment comment comment comment comment comment comment
              // comment comment comment comment comment comment comment pertaining to decl1
void decl2() {} // lengthy comment comment comment comment comment comment comment comment
                // comment comment comment comment comment comment comment pertaining to decl2
void decl3();

to

void decl1(); // lengthy comment comment comment comment comment comment comment comment
    // comment comment comment comment comment comment comment pertaining to decl1
void decl2() {} // lengthy comment comment comment comment comment comment comment comment
// comment comment comment comment comment comment comment pertaining to decl2
void decl3();

treating comments following function definitions differently than those following mere function declarations.

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.