[clangd-dev] Completion of #include statements

Doug Schaefer via clangd-dev clangd-dev at lists.llvm.org
Thu Sep 13 13:14:49 PDT 2018

Eclipse CDT does that, actually one of the features I miss when using clangd.

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.

Unfortunately, I don’t know clang well enough at this point to know how it should be done though.


From: clangd-dev <clangd-dev-bounces at lists.llvm.org> On Behalf Of Sam McCall via clangd-dev
Sent: Thursday, September 13, 2018 7:18 AM
To: clangd-dev at lists.llvm.org
Subject: [clangd-dev] Completion of #include statements

I was reminded by https://reviews.llvm.org/D51333 that I'd been meaning to look at adding completion of filenames inside #include directives.
I won't have time soon sadly :-(

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.

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 https://reviews.llvm.org/D51921 it should just be readdir().

Anyone want to pick this up, or have ideas/guidance about the implementation?

Cheers, Sam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/clangd-dev/attachments/20180913/13879777/attachment.html>

More information about the clangd-dev mailing list