<div dir="ltr">Okay, so I looked into this and -extra-arg and -extra-arg-before modify the actual command line from the compilation database.  So, if you had actual errors in your code, you could toggle the colors for that reporting.  <div><br></div><div>However, this has nothing to do with the diagnostics created by clang-tidy.  They are actually hard coded to colors if your systems has them.  Here's the line you should look at.<div><br></div><div>  ClangTidy:99 DiagOpts->ShowColors = llvm::sys::Process::StandardOutHasColors();<br></div><div><br></div><div>So, if you wanted to fix this, you could add an additional option to clang-tidy that controls both.</div><div><br></div><div>hth...</div><div>don</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 27, 2017 at 11:35 AM, Riyaz Puthiyapurayil <span dir="ltr"><<a href="mailto:Riyaz.Puthiyapurayil@synopsys.com" target="_blank">Riyaz.Puthiyapurayil@synopsys.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_-921594520787776761WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">This seems like a limitation of clang-tidy. It is probably a simple fix. But not sure what is the appropriate way.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Should this be supported via -extra-arg=-f[no-]color-<wbr>diagnostics or should it be a clang-tidy option?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-align:justify"><i><span style="font-size:11.0pt;font-family:"Viner Hand ITC";color:black">-Riyaz<u></u><u></u></span></i></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> don hinton [mailto:<a href="mailto:hintonda@gmail.com" target="_blank">hintonda@gmail.com</a>]
<br>
<b>Sent:</b> Sunday, August 27, 2017 11:23 AM</span></p><div><div class="h5"><br>
<b>To:</b> Riyaz Puthiyapurayil <<a href="mailto:Riyaz.Puthiyapurayil@synopsys.com" target="_blank">Riyaz.Puthiyapurayil@<wbr>synopsys.com</a>><br>
<b>Cc:</b> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<b>Subject:</b> Re: [cfe-dev] clang-tidy: controlling color diagnostics<u></u><u></u></div></div><p></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Ah, I see.  Not sure about clang-tidy.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Sun, Aug 27, 2017 at 10:23 AM, Riyaz Puthiyapurayil <<a href="mailto:Riyaz.Puthiyapurayil@synopsys.com" target="_blank">Riyaz.Puthiyapurayil@<wbr>synopsys.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Thanks for your quick response. I am able to get colors on a terminal. But I am unable to control it with a command
 line option.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">I lose colors when I redirect the output to a file. With clang, I can force colors even when redirecting to a file
 using -fcolor-diagnostics option. However, -extra-arg=-fcolor-diagnostics doesn’t work with clang-tidy.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Alternatively, if I want to turn off color onto a terminal, I can use -fno-color-diagnostics with clang. With clang-tidy,
 that also doesn’t work. </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">I wonder if the following code in ClangTidy.cpp is the reason:</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">class ErrorReporter {</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">   . . .</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">  
<b>DiagOpts->ShowColors = llvm::sys::Process::<wbr>StandardOutHasColors();</b></span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">};</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">clang does it differently—see
</span><span style="font-size:11.0pt;font-family:Consolas">parseShowColorArgs</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> in CompilerInvocation.cpp:</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">   
</span><span style="font-size:11.0pt;font-family:Consolas">if (O.matches(options::OPT_<wbr>fcolor_diagnostics) ||</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">      O.matches(options::OPT_<wbr>fdiagnostics_color)) {</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">    ShowColors = Colors_On;</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">  } . . .</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">  :</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">  :</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">  if (ShowColors == Colors_On ||</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">     (ShowColors == Colors_Auto && llvm::sys::Process::<wbr>StandardErrHasColors()))</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas">    return true;</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas"> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-align:justify">
<i><span style="font-size:11.0pt;font-family:"Viner Hand ITC";color:black">-Riyaz</span></i><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span><u></u><u></u></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> don hinton [mailto:<a href="mailto:hintonda@gmail.com" target="_blank">hintonda@gmail.com</a>]
<br>
<b>Sent:</b> Sunday, August 27, 2017 10:10 AM<br>
<b>To:</b> Riyaz Puthiyapurayil <<a href="mailto:Riyaz.Puthiyapurayil@synopsys.com" target="_blank">Riyaz.Puthiyapurayil@<wbr>synopsys.com</a>><br>
<b>Cc:</b> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<b>Subject:</b> Re: [cfe-dev] clang-tidy: controlling color diagnostics</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">Did you build it yourself?  <u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">There's a test in llvm/cmake/config-ix.cmake that sets HAVE_TERMINFO, which needs to be set in order to enable colors.  If it's not set or set to 0, then you won't get colors. 
 Try installing one of the libraries mentioned in the test:  tinfo terminfo curses ncurses ncursesw.<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">hth...<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">don<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">On Sun, Aug 27, 2017 at 9:45 AM, Riyaz Puthiyapurayil via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">Is there a way to turn on/off color diagnostics in clang-tidy? Passing
<span style="font-family:Consolas">-f[no]-color-diagnostics</span> via <span style="font-family:Consolas">
-extra-arg</span> does not seem to have any effect. <u></u><u></u></p>
<p class="MsoNormal"><span style="color:#888888"> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-align:justify">
<i><span style="font-family:"Viner Hand ITC";color:black">-Riyaz</span></i><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#888888"> </span><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
______________________________<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="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Ddev&d=DwMFaQ&c=DPL6_X_6JkXFx7AXWqB0tg&r=mMZWMrEZcvPMLSsEQSah9FOTwza1UudSDkAneN47U9lD3qu6gt3kpnIb4MWV77cM&m=tX0BuxmCivYFNsAnVEokmG1tKqzkY0aq9NPsWF4FrDY&s=0VTnLNcleH853NCiLDoE2fdaQ-4vaRRGdpmgOqSQVEE&e=" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>