Lukas Barth via llvm-dev
2021-Jan-01 16:07 UTC
[llvm-dev] Clang-format: Allow alignment across empty lines and comments
Paul C. Anagnostopoulos via llvm-dev writes:> How would the formatter know whether the declarations following the > comment are a continuation of the preceding series of declarations?If "across comments" is set, it would always assume that declarations following a comment are a continuation of the previous ones. Only a line containing anything but a declaration or a comment would break alignment. One could further control this by distinguishing between block and line comments. So for example: int bar = 1; // int baz = 2; int longfoo = 3; would be aligned to int bar = 1; // int baz = 2; int longfoo = 3; But int bar = 1; /* This comment is meant to break alignment */ int longfoo = 3; would stay as-is. Would you prefer this behavior? I can see its appeal - it gets rid of all the "superfluous change" when commenting-out an assignment in the middle of a block, without lobbing together blocks of alignment you want separated. However, this would make configuration more complicated. For full flexibility, the enum would then need to have the members: - `<Something>_None` (the old `false`) - `<Something>_Consecutive` (the old `true`) - `<Something>_AcrossComments` - `<Something>_AcrossBlockComments` - `<Something>_AcrossLineComments` - `<Something>_AcrossEmptyLines` - `<Something>_AcrossEmptyLinesAndComments` - `<Something>_AcrossEmptyLinesAndBlockComments` - `<Something>_AcrossEmptyLinesAndLineComments` Regards, Lukas -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 861 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210101/4782a1bf/attachment.sig>
MyDeveloper Day via llvm-dev
2021-Jan-01 17:43 UTC
[llvm-dev] Clang-format: Allow alignment across empty lines and comments
Can I suggest you submit the patch, so we can discuss it in Phabricator, you can put me down as a reviewer https://llvm.org/docs/Contributing.html On Fri, Jan 1, 2021 at 4:07 PM Lukas Barth via llvm-dev < llvm-dev at lists.llvm.org> wrote:> > Paul C. Anagnostopoulos via llvm-dev writes: > > How would the formatter know whether the declarations following the > > comment are a continuation of the preceding series of declarations? > > If "across comments" is set, it would always assume that declarations > following a comment are a continuation of the previous ones. Only a line > containing anything but a declaration or a comment would break alignment. > > One could further control this by distinguishing between block and line > comments. So for example: > > int bar = 1; > // int baz = 2; > int longfoo = 3; > > would be aligned to > > int bar = 1; > // int baz = 2; > int longfoo = 3; > > But > > int bar = 1; > /* This comment is meant to break alignment */ > int longfoo = 3; > > would stay as-is. > > Would you prefer this behavior? I can see its appeal - it gets rid of > all the "superfluous change" when commenting-out an assignment in the > middle of a block, without lobbing together blocks of alignment you want > separated. However, this would make configuration more complicated. For > full flexibility, the enum would then need to have the members: > > - `<Something>_None` (the old `false`) > - `<Something>_Consecutive` (the old `true`) > - `<Something>_AcrossComments` > - `<Something>_AcrossBlockComments` > - `<Something>_AcrossLineComments` > - `<Something>_AcrossEmptyLines` > - `<Something>_AcrossEmptyLinesAndComments` > - `<Something>_AcrossEmptyLinesAndBlockComments` > - `<Something>_AcrossEmptyLinesAndLineComments` > > Regards, > Lukas > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210101/b7df2522/attachment.html>