[PATCH] D40780: [clangd] Incorporate fuzzy-match into result rankings.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 12 07:21:43 PST 2018


sammccall marked 2 inline comments as done.
sammccall added a comment.

Tested in this file:

  #include <memory>
  #include <unordered_map>
  #include <vector>
  int main() { std::^ }

Before this change:

  u -> __has_argument_type, __has_first_argument_type...
  un -> __has_argument_type, __has_first_argument_type...
  u_p -> __has_argument_type, __has_first_argument_type...
  um -> uintmax_t, unordered_map, unordered_multimap...

After this change

  u -> u16streampos, u16string, u32streampos...
  un -> unary_function, unary_negate, uncaught_exception...
  u_p -> unique_ptr, undeclare_no_pointers, __has_argument_type...
  um -> unordered_map, unordered_multimap, __has_argument_type...



================
Comment at: clangd/ClangdUnit.cpp:377
+      : Result(&Result), SymbolScore(score(Result)), FilterScore(FilterScore),
+        Score(FilterScore * SymbolScore) {}
 
----------------
ioeric wrote:
> It might worth mentioning how well `FilterScore * SymbolScore` performs. I think it could be affected by the distribution of the filtering score and symbol scores. We might want to do some tweaks on the numbers depending on the distributions...
Described this sensitivity.


================
Comment at: clangd/ClangdUnit.cpp:380
   CodeCompletionResult *Result;
-  float Score; // 0 to 1, higher is better.
+  float SymbolScore; // higher is better
+  float FilterScore; // 0 to 1, higher is better.
----------------
ioeric wrote:
> Any reason not to use `CompletionItemScores` here? Maybe copy over some comments?
Done. My feeling was that CompletionItemScores was an API and we shouldn't couple our internal layout to it. But it's convenient now and may remain so, we can change it later.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D40780





More information about the cfe-commits mailing list