<p dir="ltr">I don't feel strongly about this. However, putting then decision into mustBreak would just work. You don't need any special casing for the single-line case as that is handled by a different code path.. </p>
<div class="gmail_quote">On Nov 21, 2013 2:22 AM, "Alexander Kornienko" <<a href="mailto:alexfh@google.com">alexfh@google.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Having played with this a bit, I found a few problems with not putting the braces into separate lines in the UnwrappedLinesParser:<div> * if we have braces on the same unwrapped line, we'll need to introduce a break when laying them out (using TokenAnnotator::mustBreak), and we'll have to undo this break when joining lines (IIUC, line joiner currently doesn't support this);</div>
<div> * when MustBreakBefore is set, we also make TotalLength > ColumnLimit, and we'll need to undo this in line joiner, which will also add complexity.</div><div><br></div><div>Overall, always having the braces on the same unwrapped line doesn't seem to be able to simplify the code =\<br>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 20, 2013 at 7:32 PM, Daniel Jasper <span dir="ltr"><<a href="mailto:djasper@google.com" target="_blank">djasper@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, Nov 20, 2013 at 9:28 AM, Alexander Kornienko <span dir="ltr"><<a href="mailto:alexfh@google.com" target="_blank">alexfh@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>On Wed, Nov 20, 2013 at 6:12 PM, Daniel Jasper <span dir="ltr"><<a href="mailto:djasper@google.com" target="_blank">djasper@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
@@ -681,6 +681,7 @@ void UnwrappedLineParser::parseStructura<br>
Style.BreakBeforeBraces == FormatStyle::BS_Stroustrup ||<br>
Style.BreakBeforeBraces == FormatStyle::BS_Allman)<br>
addUnwrappedLine();<br></blockquote><div><br></div></div></div><div>Does it still make sense to report the "{" as its own unwrapped line? Seems a bit convoluted to first report multiple lines and then merge them afterwards. I think this would make the merging code simpler.</div>
</div></div></div></blockquote><div><br></div></div><div>It also seemed strange to me. Should we instead handle BreakBeforeBraces in TokenAnnotator? This will require adding TokenType values for braces starting namespaces, classes/structs and, probably, enums. I can play with this a bit, it you think it makes sense.</div>
</div></div></div></blockquote><div><br></div></div></div><div>I might have already done this for enums. I don't think it is essential to add token types for all of these as e.g. enums and namespaces are really easy to detect. But adding token types might be the cleaner solution. I think that this makes sense but I remember having some kind of debate over this with Manuel, so he might have an opinion. </div>
</div><br></div></div>
</blockquote></div><br>
</div></div></div>
</blockquote></div>