[clangd] Tune down scope boost for global scope
authorEric Liu <ioeric@google.com>
Mon, 26 Nov 2018 12:12:01 +0000 (12:12 +0000)
committerEric Liu <ioeric@google.com>
Mon, 26 Nov 2018 12:12:01 +0000 (12:12 +0000)
Summary:
This improves cross-namespace completions and has ignorable
impact on other completion types.

Metrics
```
==================================================================================================
                                        OVERALL (excl. CROSS_NAMESPACE)
==================================================================================================
  Total measurements: 109367 (-6)
  All measurements:
MRR: 68.11 (+0.04) Top-1: 58.59% (+0.03%) Top-5: 80.00% (+0.01%) Top-100: 95.92% (-0.02%)
  Full identifiers:
MRR: 98.35 (+0.09) Top-1: 97.87% (+0.17%) Top-5: 98.96% (+0.01%) Top-100: 99.03% (+0.00%)
  Filter length 0-5:
MRR:      23.20 (+0.05) 58.72 (+0.01) 70.16 (-0.03) 73.44 (+0.03) 76.24 (+0.00) 80.79 (+0.14)
Top-1:    11.90% (+0.03%) 45.07% (+0.03%) 58.49% (-0.05%) 62.44% (-0.02%) 66.31% (-0.05%) 72.10% (+0.07%)
Top-5:    35.51% (+0.08%) 76.94% (-0.01%) 85.10% (-0.13%) 87.40% (-0.02%) 88.65% (+0.01%) 91.84% (+0.17%)
Top-100:  83.25% (-0.02%) 96.61% (-0.15%) 98.15% (-0.02%) 98.43% (-0.01%) 98.53% (+0.01%) 98.66% (+0.02%)

==================================================================================================
                                        CROSS_NAMESPACE
==================================================================================================
  Total measurements: 17702 (+27)
  All measurements:
MRR: 28.12 (+3.26) Top-1: 21.07% (+2.70%) Top-5: 35.11% (+4.48%) Top-100: 74.31% (+1.02%)
  Full identifiers:
MRR: 79.20 (+3.72) Top-1: 71.78% (+4.86%) Top-5: 88.39% (+2.84%) Top-100: 98.99% (+0.00%)
  Filter length 0-5:
MRR:      0.92 (-0.10) 5.51 (+0.57) 18.30 (+2.34) 21.62 (+3.76) 32.00 (+6.00) 41.55 (+7.61)
Top-1:    0.56% (-0.08%) 2.44% (+0.15%) 9.82% (+1.47%) 12.59% (+2.16%) 21.17% (+4.47%) 30.05% (+6.72%)
Top-5:    1.20% (-0.15%) 7.14% (+1.04%) 25.17% (+3.91%) 29.74% (+5.90%) 43.29% (+9.59%) 54.75% (+9.79%)
Top-100:  5.49% (-0.01%) 56.22% (+2.59%) 86.69% (+1.08%) 89.03% (+2.04%) 93.74% (+0.78%) 96.99% (+0.59%)
```

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D54851

llvm-svn: 347548

clang-tools-extra/clangd/FileDistance.cpp

index 1458146..6bd73e5 100644 (file)
@@ -196,11 +196,11 @@ static FileDistance createScopeFileDistance(ArrayRef<std::string> QueryScopes) {
     // symbols in it, and there is pattern where using-namespace is used in
     // place of enclosing namespaces (e.g. in implementation files).
     if (S == Preferred)
-      Param.Cost = S == "" ? 2 : 0;
+      Param.Cost = S == "" ? 4 : 0;
     else if (Preferred.startswith(S) && !S.empty())
       continue; // just rely on up-traversals.
     else
-      Param.Cost = S == "" ? 5 : 2;
+      Param.Cost = S == "" ? 6 : 2;
     auto Path = scopeToPath(S);
     // The global namespace is not 'near' its children.
     Param.MaxUpTraversals = std::max(Path.second - 1, 0);