sammccall added a comment.

In https://reviews.llvm.org/D39738#921103, @francisco.lopes wrote:

> I'm still in the process of construction of a general jsonrpc/LSP client and 
> didn't start consuming clangd yet.


If you concerns about clangd's responsiveness, I recommend testing using 
VSCode, which has a high-quality LSP client. The clangd plugin can be installed 
from the extension browser.

> But, I do have previous experience with libclang, and I don't know whether 
> clangd will be able to return completion results at global scope (not 
> necessarily on member access solely), like libclang does.

Yes, this works today. On my usage in the LLVM codebase it's fast (~0.5 ms) but 
VSCode takes ~200ms to process the results, and other clients (e.g. an 
experimental YCMd integration) are much slower. Based on this, I'm not 
concerned about the server-side sorting overhead.

> This is my main concern, because global scope completion is one of the most 
> useful use cases, even more in languages like C, but the results can be large 
> and can go at the order of 43k results by simply including a header like 
> windows.h <https://github.com/Valloric/YouCompleteMe/issues/2668>. As I still 
> didn't start consuming clangd, I don't know whether it even supports 
> returning all the results from libclang to let the client do its filtering 
> and sorting.

This will work, but it's not really possible to make it fast. Fully populating, 
serializing and deserializing 43k results so the client can see them is a lot 
of work.
The only way to make this fast is to score and filter results before seralizing 
them. https://reviews.llvm.org/D39852 goes down this path. (It can be disabled 
if you're set on filtering client-side).


Repository:
  rL LLVM

https://reviews.llvm.org/D39738



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to