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",


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",
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to