sammccall added a comment.

Oops, couple more comments.
But the big things I think are:

- what's the performance impact of doing all this work (including the URI 
stuff) inside the scoring loop?
- what's the most useful formula for the proximity score



================
Comment at: clangd/Quality.cpp:171
+/// "uri:///a/b/c" will be treated as /a/b/c
+static float uriProximity(StringRef UX, StringRef UY) {
+  auto SchemeSplitX = UX.split(':');
----------------
This doesn't look quite right to me.
We can tune the details later, but in practice this seems like it's *very* hard 
to get zero proximity, which is our neutral score - you need to be 18 
directories away?

FWIW, fozzie appears to give an additive boost proportional to 5-up, where up 
is the number of directories from the context you have to traverse up from the 
context to get to a parent of the symbol. (There's no penalty for 
down-traversals probably for implementation reasons, this should be smaller 
than the up-traversal penalty I think)


================
Comment at: clangd/Quality.h:74
+  // If set, this is used to compute proximity from symbol's declaring file.
+  llvm::StringRef ProximityPath;
   /// Proximity between best declaration and the query. [0-1], 1 is closest.
----------------
sammccall wrote:
> It seems OK to have ProximityPath or ProximityScore, but we shouldn't have 
> both: drop proximityscore and calculate it during evaluate()?
what's the plan for associated-header? should this be a smallvector<2>?


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D47935



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

Reply via email to