<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I could not see an option to format the document on “save”.</div><br class=""><div><blockquote type="cite" class=""><div class="">On 11-Dec-2014, at 8:47 pm, Daniel Jasper <<a href="mailto:djasper@google.com" class="">djasper@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">What's wrong with the extension that we already have (follow the link from "Visual Studio" on <a href="http://clang.llvm.org/docs/ClangFormat.html" class="">http://clang.llvm.org/docs/ClangFormat.html</a>)?</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Dec 11, 2014 at 4:11 PM, Arvind Dalvi <span dir="ltr" class=""><<a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class=""><div dir="ltr" class="">


<div dir="ltr" class="">


<div dir="ltr" class="">Thanks Daniel for explaining the workings.</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">One side note...I created a VS2013 (community edition) extension that uses clang-format.exe to format C++ and C# documents on request or during save operation. I have been using it for a week now and it works as expected. Can I submit my extension to clang community ?</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">P.S.</div><div dir="ltr" class="">It is based off on AStyle extension source.</div><div dir="ltr" class=""><br class=""><div class=""><hr class="">Date: Mon, 1 Dec 2014 07:54:15 +0100<span class=""><br class="">Subject: Re: [cfe-dev] odd character limit while string formatting<br class=""></span>From: <a href="mailto:djasper@google.com" target="_blank" class="">djasper@google.com</a><br class="">To: <a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a><br class="">CC: <a href="mailto:rcsaba@gmail.com" target="_blank" class="">rcsaba@gmail.com</a>; <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="">cfe-dev@cs.uiuc.edu</a><div class=""><div class="h5"><br class=""><br class=""><div dir="ltr" class=""><font face="arial, helvetica, sans-serif" class="">clang-format works penalty-based. It considers both versions of this format (wrapping or not wrapping after the "(") correct. It prefers not to wrap, i.e. keep "<span style="font-size:13px;white-space:pre-wrap" class="">&</span><span style="font-size:13px;white-space:pre-wrap" class="">czString" on the same line. However, it also prefers not to automatically split string literals and that has a higher penalty. The reason is that it is more likely that the author has split or not split the string literal in a way that is preferable knowing the string's content. So the two short strings actually fit on a line if the line is wrapped before </span>"<span style="font-size:13px;white-space:pre-wrap" class="">&</span><span style="font-size:13px;white-space:pre-wrap" class="">czString". For the second statement, however, the string needs to be split either way, as the string would not fit onto a line by itself anyway. Thus, clang-format can wrap it in a way to prefer keeping </span>"<span style="font-size:13px;white-space:pre-wrap" class="">&</span><span style="font-size:13px;white-space:pre-wrap" class="">czString" on the same line.</span></font><div class=""><span style="font-size:13px;white-space:pre-wrap" class=""><font face="arial, helvetica, sans-serif" class=""><br class=""></font></span></div><div class=""><font face="arial, helvetica, sans-serif" class=""><span style="font-size:13px;white-space:pre-wrap" class="">To work around this, you can manually break the strings the way you think they should be broken or reduce the penalty for breaking string literals (</span><span style="white-space:pre-wrap" class="">PenaltyBreakString - <a href="http://clang.llvm.org/docs/ClangFormatStyleOptions.html" target="_blank" class="">http://clang.llvm.org/docs/ClangFormatStyleOptions.html</a>). The latter might lead to "interesting" behavior in some cases, though.</span></font></div><div class=""><font face="arial, helvetica, sans-serif" class=""><span style="white-space:pre-wrap" class=""><br class=""></span></font></div><div class=""><font face="arial, helvetica, sans-serif" class=""><span style="white-space:pre-wrap" class="">The content of the string literal is 63 characters plus quotes plus "L" plus closing parentheses plus semicolon makes 68 characters. Assuming the 12 character indent from your first snippet is correct that put the string right up onto the 80 column limit. Adding a single character means that clang-format hast to line-wrap the string.</span></font></div></div><div class=""><br class=""><div class="">On Sat, Nov 29, 2014 at 2:39 PM, Arvind Dalvi <span dir="ltr" class=""><<a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a>></span> wrote:<br class=""><blockquote style="border-left:1px #ccc solid;padding-left:1ex" class="">


<div class=""><div dir="ltr" class="">Hi Csaba,<div class=""><br class=""></div><div class="">Yes, it was a single string which was then broken by formatting.</div><div class=""><br class=""></div><div class="">Original:</div><div class=""><span style="font-family:Consolas;font-size:13px;background-color:white" class="">RtlInitUnicodeString(&czString, L</span><span style="font-family:Consolas;font-size:13px;color:rgb(163,21,21)" class="">"I am going to type a string that will be 63 characters only..\n"</span><span style="font-family:Consolas;font-size:13px;background-color:white" class="">);</span></div><div class=""><br class=""></div><div class="">I have not tried with lesser characters.</div><div class=""><br class=""></div><div class="">And one more thing, is there a way to format entire document while saving it ?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Arvind </div><div class=""><br class=""><div class=""><hr class="">Date: Sat, 29 Nov 2014 13:17:42 +0100<div class=""><div class=""><br class="">Subject: Re: [cfe-dev] odd character limit while string formatting<br class="">From: <a href="mailto:rcsaba@gmail.com" target="_blank" class="">rcsaba@gmail.com</a><br class="">To: <a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a><br class="">CC: <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="">cfe-dev@cs.uiuc.edu</a><br class=""><br class=""><div dir="ltr" class=""><div style="font-family:courier new,monospace;font-size:large" class="">Hi Arvind,<br class=""><br class=""></div><div style="font-family:courier new,monospace;font-size:large" class="">Are you saying that in all three cases, the original string was in one piece? (you didn't show us the originals).<br class=""><br class=""></div><div style="font-family:courier new,monospace;font-size:large" class="">Have you tried with other lengths?<br class=""><br class=""></div><div style="font-family:courier new,monospace;font-size:large" class="">Csaba<br class=""></div></div><div class=""><br class=""><div class="">On Sat, Nov 29, 2014 at 3:02 AM, Arvind Dalvi <span dir="ltr" class=""><<a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a>></span> wrote:<br class=""><blockquote style="border-left:1px #ccc solid;padding-left:1ex" class="">


<div class=""><div dir="ltr" class="">Hi Csaba,<br class=""> <br class="">I agree. But my concern is the way formatting is done. If you look at the 2nd sample, the formatting looks correct where it has broken the string in to two and aligned it. Whereas in the case of 1st and 3rd it has not.<br class=""> <br class="">Thanks,<br class="">Arvind<br class=""> <br class=""><div class=""><hr class="">Date: Fri, 28 Nov 2014 18:59:40 +0100<br class="">Subject: Re: [cfe-dev] odd character limit while string formatting<br class="">From: <a href="mailto:rcsaba@gmail.com" target="_blank" class="">rcsaba@gmail.com</a><br class="">To: <a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a><br class="">CC: <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="">cfe-dev@cs.uiuc.edu</a><div class=""><div class=""><br class=""><br class=""><div dir="ltr" class=""><div style="font-family:courier new,monospace;font-size:large" class="">Hi Avind,<br class=""><br class="">The name of RtlInitUnicodeString is 20 characters long. That, plus a 63 character string will not fit into 80 characters, which is probably set as the maximum line length.<br class=""><br class=""></div><div class=""><br class=""><div class="">On Fri, Nov 28, 2014 at 1:13 PM, Arvind Dalvi <span dir="ltr" class=""><<a href="mailto:arvind.dalvi@outlook.com" target="_blank" class="">arvind.dalvi@outlook.com</a>></span> wrote:<br class=""><blockquote style="padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="">


<div class=""><div dir="ltr" class=""><div class="">I am assuming this list caters to clang-format tool too. If not, do let me know the concerned list.</div><div class=""><br class=""></div>Today I downloaded the clang-format plugin for Visual Studio and realized that when a function call contains 63-character string, the formatting of the function call changes. If you look at the samples below, you would find that 2nd function call got formatted correctly, whereas the 1st and last pulled the parameters down. Is this expected ? If not, any setting that i can set to get the 2nd format applied to the 1st and to the last call ? <div class=""><div class=""><pre style="background:white;font-family:Consolas;font-size:13px" class="">RtlInitUnicodeString(
            &czString,
            L<span style="color:rgb(163,21,21)" class="">"I am going to type a string that will be 63 characters only..\n"</span>);</pre></div><div class=""><pre style="background:white;font-family:Consolas;font-size:13px" class="">RtlInitUnicodeString(&czString, L<span style="color:rgb(163,21,21)" class="">"I am going to type a string that "</span>
                                L<span style="color:rgb(163,21,21)" class="">"will be 64 characters only...\n"</span>);</pre><pre style="background:white;font-family:Consolas;font-size:13px" class="">RtlInitAnsiString(
    azString,
    L<span style="color:rgb(163,21,21)" class="">"I am going to type a string that will be 63 characters only..\n"</span>);</pre></div></div>                                         </div></div></blockquote></div><br clear="all" class=""><div style="font-family:courier new,monospace;font-size:large" class="">Csaba</div><br class="">-- <br class=""><div class="">GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++<br class="">The Tao of math: The numbers you can count are not the real numbers.<br class="">Life is complex, with real and imaginary parts.<br class="">"Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds<br class="">"People disagree with me. I just ignore them." -- Linus Torvalds<br class=""><br class=""></div>
</div></div></div></div></div>                                      </div></div>
</blockquote></div><br class=""><br clear="all" class=""><br class="">-- <br class=""><div class="">GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++<br class="">The Tao of math: The numbers you can count are not the real numbers.<br class="">Life is complex, with real and imaginary parts.<br class="">"Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds<br class="">"People disagree with me. I just ignore them." -- Linus Torvalds<br class=""><br class=""></div>
</div></div></div></div></div>                                      </div></div>
<br class="">_______________________________________________<br class="">
cfe-dev mailing list<br class="">
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="">cfe-dev@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br class="">
<br class=""></blockquote></div><br class=""></div></div></div></div></div>
</div>
                                          </div></div>
</blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>