sammccall added a subscriber: hokein.
sammccall added inline comments.

================
Comment at: clangd/index/Index.h:158
   unsigned References = 0;
-
+  /// Whether or not this is symbol is meant to be used for the global
+  /// completion.
----------------
ioeric wrote:
> s/this is symbol/this symbol/?
Sorry, I hadn't seen this patch until now.
When it was part of the `workspace/symbol` patch, I was the other person 
concerned this was too coupled to existing use cases and preferred something 
more descriptive.

I dug up an analysis @hokein and I worked on. One concluseion we came to was 
that we thought results needed by `completion` were a subset of what 
`workspace/symbol` needs, so a boolean would work. It seemed a bit ad-hoc and 
fragile though.

The cases we looked at were:

||private|member|local|primary template|template specialization|nested in 
template|
| code complete |N|N|N|Y|N|N|
| workspace/symbol |Y|Y|N|Y|Y|Y|
| go to defn |Y|Y|?|?|?|?|
(Y = index should return it, N = index should not return it, ? = don't care)

So the most relevant information seems to be:
 - is this private (private member, internal linkage, no decl outside cpp file, 
etc)
 - is this nested in a class type (or template)
 - is this a template specialization

I could live with bundling these into a single property (though they seem like 
good ranking signals, and we'd lose them for that purpose), it will certainly 
make a posting-list based index more efficient.

In that case I think we should have canonical documentation *somewhere* about 
exactly what this subset is, and this field should reference that.
e.g. `isIndexedForCodeCompletion()` in `CodeComplete.h` with docs and 
`IsIndexedForCodeCompletion` here. (Please avoid "global" as it has too many 
different meanings - here we mean "index-based").


================
Comment at: clangd/index/Index.h:279
+  /// considered.
+  bool GlobalCodeCompletionOnly = false;
 };
----------------
please also avoid "global" here, e.g. `RestrictForCodeCompletion`


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D44954



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

Reply via email to