[PATCH] D42669: [clangd] Enable completion index by default, limit results to 100.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 29 15:52:17 PST 2018


sammccall created this revision.
sammccall added reviewers: hokein, ioeric, ilya-biryukov.
Herald added subscribers: cfe-commits, jkorous-apple, klimek.

This should speed up global code completion by avoiding deserializing
preamble declarations to look up names. The tradeoff is memory usage.
Currently the index is fairly naive and may not be much faster, but there's lots
of performance headroom.

These two changes go together because results from the index get copied a couple
of times, so we should avoid it for huge sets.

Also the flag should be -completion-limit, rather than -limit-completion.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D42669

Files:
  clangd/tool/ClangdMain.cpp


Index: clangd/tool/ClangdMain.cpp
===================================================================
--- clangd/tool/ClangdMain.cpp
+++ clangd/tool/ClangdMain.cpp
@@ -87,10 +87,10 @@
     llvm::cl::init(PCHStorageFlag::Disk));
 
 static llvm::cl::opt<int> LimitCompletionResult(
-    "limit-completion",
+    "completion-limit",
     llvm::cl::desc("Limit the number of completion results returned by clangd. "
                    "0 means no limit."),
-    llvm::cl::init(0));
+    llvm::cl::init(100));
 
 static llvm::cl::opt<bool> RunSynchronously(
     "run-synchronously",
@@ -117,9 +117,9 @@
 static llvm::cl::opt<bool> EnableIndexBasedCompletion(
     "enable-index-based-completion",
     llvm::cl::desc(
-        "Enable index-based global code completion (experimental). Clangd will "
-        "use index built from symbols in opened files"),
-    llvm::cl::init(false), llvm::cl::Hidden);
+        "Enable index-based global code completion. "
+        "Clang uses an index built from symbols in opened files"),
+    llvm::cl::init(true));
 
 static llvm::cl::opt<Path> YamlSymbolFile(
     "yaml-symbol-file",


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42669.131891.patch
Type: text/x-patch
Size: 1124 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180129/398e58a5/attachment-0001.bin>


More information about the cfe-commits mailing list