sammccall accepted this revision.
sammccall added a comment.
This revision is now accepted and ready to land.

(Maybe we should have a basic test for C++, but I'm not sure how this usually 
goes)

BTW it occurs to me that turning this on by default may be a surprising 
breakage for:

- people who use clang-format to format JSON, where the comma is illegal.
- people who care about IE8 or something



================
Comment at: clang/include/clang/Format/Format.h:42
+  Unsuitable,
+  BinBackTrailingCommaConflict
+};
----------------
Back->Pack?


================
Comment at: clang/lib/Format/Format.cpp:2531
+    });
+
   auto Env =
----------------
mprobst wrote:
> MyDeveloperDay wrote:
> > Ok, this comment is more a discussion point rather than a review comment. 
> > Was there a reason you needed to put the TrailingCommaInserter pass after 
> > the Formatter pass? (maybe you needed the Tokens annotated?)
> > 
> > From my understanding of some of the other conversations, it seemed the 
> > reason for ignoring the Column limit was because the "," insertion came 
> > after it had been formatted (is that correct?)
> > 
> > If there was a good reason that's also fine, I was just interested to learn 
> > if there was some part of the Formatter that perhaps needs to be pulled out 
> > into its own separate pass.
> > 
> > 
> The problem with inserting the comma during formatting is that it'd need to 
> be inserted during the state exploration as part of Dijkstra's implemented in 
> clang-format. I've considered that, but it'd be complex (if we make 
> formatting decision X, we now add a token, which might invalidate the 
> formatting decision). Keeping it as a separate pass has drawbacks, such as 
> potentially not ending up with perfect formatting, thus the backing off to 
> insert over ColumnLimit, but seems overall simpler.
> Ok, this comment is more a discussion point rather than a review comment. Was 
> there a reason you needed to put the TrailingCommaInserter pass after the 
> Formatter pass? (maybe you needed the Tokens annotated?)

The comma must only be inserted when the items are wrapped one-per-line (i.e. 
the last item is not on the same line as the closing bracket). This wrapping is 
a decision taken by the formatter, so we need to run it first to know.
(Apologies if this is obvious, but maybe missed)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73354/new/

https://reviews.llvm.org/D73354



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to