<div dir="auto"><div dir="auto">Ok so I seem to have tricked myself into trying it, when I really should have been doing something else.</div><div dir="auto"><br></div><div><a href="https://reviews.llvm.org/D52076">https://reviews.llvm.org/D52076</a> in case anyone's interested, feedback welcome. (No clangd changes required)<br><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 13, 2018, 22:41 Doug Schaefer via clangd-dev <<a href="mailto:clangd-dev@lists.llvm.org">clangd-dev@lists.llvm.org</a>> wrote:<br></div><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_-1463856887294518342WordSection1">
<p class="MsoNormal">Eclipse CDT does that, actually one of the features I miss when using clangd.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">CDT keeps it pretty simple. It searches each directory in the include path, including “.” for quoted includes. It uses Java’s File.listFiles() which I’m pretty sure is a readdir. Performs well.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Unfortunately, I don’t know clang well enough at this point to know how it should be done though.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Doug.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><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>From:</b> clangd-dev <<a href="mailto:clangd-dev-bounces@lists.llvm.org" target="_blank" rel="noreferrer">clangd-dev-bounces@lists.llvm.org</a>> <b>
On Behalf Of </b>Sam McCall via clangd-dev<br>
<b>Sent:</b> Thursday, September 13, 2018 7:18 AM<br>
<b>To:</b> <a href="mailto:clangd-dev@lists.llvm.org" target="_blank" rel="noreferrer">clangd-dev@lists.llvm.org</a><br>
<b>Subject:</b> [clangd-dev] Completion of #include statements<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<div>
<p class="MsoNormal">I was reminded by <a href="https://reviews.llvm.org/D51333" target="_blank" rel="noreferrer">
https://reviews.llvm.org/D51333</a> that I'd been meaning to look at adding completion of filenames inside #include directives.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">I won't have time soon sadly :-(<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I don't think there's anything clangd-specific here, so it should probably come through the SemaCodeComplete API. I don't have much of a clue about the sema/PP interaction required though.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">It requires listing all the include dirs, don't know if that would be prohibitively slow. I'd guess not: today it requires stat()ing every file on unix, but after
<a href="https://reviews.llvm.org/D51921" target="_blank" rel="noreferrer">https://reviews.llvm.org/D51921</a> it should just be readdir().<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Anyone want to pick this up, or have ideas/guidance about the implementation?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Cheers, Sam<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>

_______________________________________________<br>
clangd-dev mailing list<br>
<a href="mailto:clangd-dev@lists.llvm.org" target="_blank" rel="noreferrer">clangd-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev</a><br>
</blockquote></div></div></div>