<div dir="ltr">Hello again,<div><br></div><div>I took a look at the code and based on my research in version 4.0 there is no code to apply formatting for fixes.</div><div>It was added in the following commit: </div><div><b>[clang-tidy] Format code around applied fixes</b><br></div><div><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:13px;margin-top:10px;margin-bottom:0px;font-stretch:normal;line-height:1.45;max-width:100%;color:rgb(68,77,86);white-space:pre-wrap;overflow:visible;word-wrap:break-word;background-color:rgb(234,245,255)">Summary:
Add -format option (disabled by default for now) to trigger formatting
of replacements.</pre></div><div><br></div><div><a href="https://github.com/llvm-mirror/clang-tools-extra/commit/58b93f8657f1cce97417d954eacfaa8546aaa949">https://github.com/llvm-mirror/clang-tools-extra/commit/58b93f8657f1cce97417d954eacfaa8546aaa949</a><br></div><div><br></div><div>In this commit: <b>[clang-tidy] Make format style customizable:</b></div><div><a href="https://github.com/llvm-mirror/clang-tools-extra/commit/de666a7753f9e6d554e24ae46cf86173cad64314">https://github.com/llvm-mirror/clang-tools-extra/commit/de666a7753f9e6d554e24ae46cf86173cad64314</a></div><div><br></div><div>There was added documentation which was misleading because format could not be applied - it was only found but not used:</div><div><br></div><div><font face="monospace, monospace"><a href="https://github.com/llvm-mirror/clang-tools-extra/commit/de666a7753f9e6d554e24ae46cf86173cad64314#diff-f0891010033dd964657f9771b68abf0a" class="gmail-link-gray-dark" title="docs/clang-tidy/index.rst" style="box-sizing:border-box;background-color:rgb(250,251,252);text-decoration-line:none;font-size:12px;color:rgb(36,41,46)">docs/clang-tidy/index.rst</a>:</font><br></div><div><div><font face="monospace, monospace">+    -style=<string>              -</font></div><div><font face="monospace, monospace">+                                   Fallback style for reformatting after inserting fixes</font></div><div><font face="monospace, monospace">+                                   if there is no clang-format config file found.</font></div></div><div><br></div><div>When I added the fragment of the missing code in version 4.0 and recompiled from source it started to work as expected.</div><div><br></div><div>This was the missing part in 'clang-tidy/ClangTidy.cpp in finish method of the ErrorReporter class':</div><div><br></div><div><div><font face="monospace, monospace">+        if (llvm::Expected<tooling::Replacements> FormattedReplacements =</font></div><div><font face="monospace, monospace">+                format::formatReplacements(Code, *Replacements, *Style)) {</font></div><div><font face="monospace, monospace">+          Replacements = std::move(FormattedReplacements);</font></div><div><font face="monospace, monospace">+          if (!Replacements)</font></div><div><font face="monospace, monospace">+            llvm_unreachable("!Replacements");</font></div><div><font face="monospace, monospace">+        } else {</font></div><div><font face="monospace, monospace">+          llvm::errs() << llvm::toString(FormattedReplacements.takeError())</font></div><div><font face="monospace, monospace">+                       << ". Skipping formatting.\n";</font></div><div><font face="monospace, monospace">+        }</font></div></div><div><br></div><div>Please confirm my findings if you would be that kind.</div><div><br></div><div>Thank you in advance.</div><div><br></div><div>Best regards,</div><div>Adam.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 21, 2017 at 1:33 PM, Adam Cieszkiel <span dir="ltr"><<a href="mailto:acieszkiel@gmail.com" target="_blank">acieszkiel@gmail.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">Hello,<div><br></div><div>Thank you for the response.</div><div><br></div><div>I tried '<span style="font-size:12.8px">run-</span><span style="font-size:12.8px">clang-tidy.py' and it started to work but I had to add one additional line to the script: 'invocation.append('-style=<wbr>file')' so it takes .clang-format from the current directory otherwise it used some default formatting:</span></div><div><span style="font-size:12.8px"><br></span></div><div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 84 def apply_fixes(args, tmpdir):</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 85   """Calls clang-apply-fixes on a given directory. Deletes the dir when done."""</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 86   invocation = [args.clang_apply_<wbr>replacements_binary]</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 87   if args.format:</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 88     invocation.append('-format')</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace" color="#ff0000"><b> 89     invocation.append('-style=<wbr>file')</b></font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 90   invocation.append(tmpdir)</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 91   subprocess.call(invocation)</font></span></div><div><span style="font-size:12.8px"><font face="monospace, monospace"> 92   shutil.rmtree(tmpdir)</font></span></div><div style="font-size:12.8px"><br></div></div><div>Thanks for that.</div><div><br></div><div>Still...</div><div>I do not know why it does not work just without using '<span style="font-size:12.8px">clang-apply-replacements' as an intermediate step and it does not apply .clang-format.</span></div><div><span style="font-size:12.8px"><br></span></div><div>Can it be a bug in the version 4.0?<br></div><div>Do you have any other ideas how I could get it working? Or someone who could help?</div><div><br></div><div>I will try maybe to build it from source on a different platform.</div><div>In the last resort I will have to take a look at the source code and check.</div><div><br></div><div>Thank you in advance.</div><div><br></div><div>Best regards,</div><div>Adam.</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 21, 2017 at 1:28 AM, Piotr Padlewski <span dir="ltr"><<a href="mailto:piotr.padlewski@gmail.com" target="_blank">piotr.padlewski@gmail.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">This probably not gonna solve the issue, but have you tried run-clang-tidy.py? (extra/clang-tidy/tools/run-cl<wbr>ang-tidy.py). It export the fixes and applies them automatically, and runs on multiple threads.<span class="m_-2681152880093518896HOEnZb"><font color="#888888"><div><br></div><div>Piotr</div></font></span></div><div class="m_-2681152880093518896HOEnZb"><div class="m_-2681152880093518896h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-07-20 14:47 GMT-07:00 Adam Cieszkiel <span dir="ltr"><<a href="mailto:acieszkiel@gmail.com" target="_blank">acieszkiel@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>Thank you for the answer.</div><div><br></div><div>It was my first guess and I was surprised that it did not work.</div><div><br></div><div>I have to use '-export-fixes=' so it works. Then the fixes are written into json file and 'clang-apply-replacements -format -style=file' does the job.</div><div>But it does want to work without this exporting.</div><div><br></div><div>In version 5.0 I just use option '-format-style=file' and it uses .clang-format file in the closest parent directory as described in the documentation:</div><div><a href="https://clang.llvm.org/extra/clang-tidy/index.html" target="_blank">https://clang.llvm.org/extra/c<wbr>lang-tidy/index.html</a><br></div><div><br></div><div>But in version 4.0 there is only option "-style" which seems to not offer such option and does not work with .clang-format from the folder I run clang-tidy.</div><span><div><br></div><div><pre style="overflow-x:auto;overflow-y:hidden;border-color:rgb(12,55,98);border-style:dotted;border-width:thin;margin-top:0px;margin-bottom:12px;padding:0.8em;background-color:rgb(240,240,240);color:rgb(51,51,51)"><span class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454gmail-go" style="color:rgb(136,136,136)">-style=<string>              -</span>
<span class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454gmail-go" style="color:rgb(136,136,136)">                                 Fallback style for reformatting after inserting fixes</span>
<span class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454gmail-go" style="color:rgb(136,136,136)">                                 if there is no clang-format config file found.</span></pre></div><div><br></div></span><div>I am not sure why it it like that.</div><div><br></div><div>Best regards,</div><div>Adam.</div><div><br></div><div><br></div><div><br></div></div><div class="m_-2681152880093518896m_-1463903824974501578HOEnZb"><div class="m_-2681152880093518896m_-1463903824974501578h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 20, 2017 at 11:18 PM, Piotr Padlewski <span dir="ltr"><<a href="mailto:piotr.padlewski@gmail.com" target="_blank">piotr.padlewski@gmail.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">Hi Adam,<div>it should look for ".clang-format" from the place where you run clang-tidy. I hope it helps.</div><div><br></div><div>Piotr</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454h5">2017-07-20 13:25 GMT-07:00 Adam Cieszkiel via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454h5"><div dir="ltr"><div style="font-size:12.8px">Hello,</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I have a question:</div><div style="font-size:12.8px">Do you know maybe how to make clang-tidy in version 4.0 use formatting style for fixes (-fix) from .clang-format file?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I tried in many different ways but I failed.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Documentation mentions 'clang-format config file to be found' but anywhere I put it, it is still not used by clang-tidy also if I put in in location pointed by '-p' option.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><a href="http://releases.llvm.org/4.0.0/tools/clang/tools/extra/docs/clang-tidy/index.html" target="_blank">http://releases.llvm.org/4.0.0<wbr>/tools/clang/tools/extra/docs/<wbr>clang-tidy/index.html</a><br></div><div style="font-size:12.8px"><pre style="white-space:pre-wrap;overflow-x:auto;overflow-y:hidden;border-color:rgb(12,55,98);border-style:dotted;border-width:thin;margin-top:0px;margin-bottom:12px;padding:0.8em;background-color:rgb(240,240,240);color:rgb(51,51,51)"><span class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454m_-2240981996741135818m_-4401292906132140214gmail-m_-3350798067441497022gmail-go" style="color:rgb(136,136,136)">-style=<string>              -</span>
<span class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454m_-2240981996741135818m_-4401292906132140214gmail-m_-3350798067441497022gmail-go" style="color:rgb(136,136,136)">                                 Fallback style for reformatting after inserting fixes</span>
<span class="m_-2681152880093518896m_-1463903824974501578m_8925285455141782454m_-2240981996741135818m_-4401292906132140214gmail-m_-3350798067441497022gmail-go" style="color:rgb(136,136,136)">                                 if there is no clang-format config file found.</span></pre></div><div style="font-size:12.8px">I have no idea where I should put .clang-format file so it could be used by clang-tidy for applying clang-tidy fixes.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thank you in advance.</div></div>
<br></div></div>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>