Nathan Ridge
Nathan Ridge
> Self-contained files are good software engineering practice (and don't prevent unity builds AFAIK). Clangd does not currently work for unity builds (see e.g. https://github.com/clangd/clangd/issues/147#issuecomment-529223278). Perhaps you mean support for...
> Wouldn't you only want to do the unity build as a final heavily-optimized, slow-building, non-incremental release build, but use a regular build for development? No, some projects use unity...
> What is unity build? It's a technique where groups of source files are combined (by e.g. `#include`-ing several .cpp files into one file), and the resulting files are compiled,...
In Eclipse CDT, we implemented one heuristic and discussed but did not get around to implementing a second: 1. If the function names a non-static member of a class, and...
See also #439
> But I don't know if creating "dependencies" to 3rd party libs is something we want in clangd? We have some precedent in clangd of [special-casing for the Protobuf library](https://searchfox.org/llvm/rev/ca04b49597ccf137da9dfcbb1844d2e8b6a83c07/clang-tools-extra/clangd/SourceCode.cpp#1170-1180)....
> Looks like maybe I could use Sema's `CurContext*` field for this and use `getParent()` until we find a class (or reach nullptr)? Am I on the right track here...
> For `&Foo::^`, if the completed function returns `void`, it can't be a call Good point. I believe we can even extend this to built-in types returned by value or...
> * references: formally the `FOO_GETTER` in `FOO_XLIST(FOO_GETTER)` is just a token, not a macro reference. (consider `#define FOO_XLIST(X) #X`). The macro-reference to `FOO_GETTER` occurs inside a macro expansion, and...
> * have a more relaxed eviction policy for preambles, so we should only build each preamble once per session. (This doesn't fix the latency, but does more to ensure...