diff options
author | Kadir Cetinkaya <kadircet@google.com> | 2018-08-08 08:59:29 +0000 |
---|---|---|
committer | Kadir Cetinkaya <kadircet@google.com> | 2018-08-08 08:59:29 +0000 |
commit | 2f84d911317b6c0c312ef34fd1ca20a32614ea15 (patch) | |
tree | 15180eef09fe85703271e62036cdfe09576190db /clang-tools-extra/clangd/Quality.cpp | |
parent | c6a00f545c4175c94257827522d598013e213e34 (diff) | |
download | bcm5719-llvm-2f84d911317b6c0c312ef34fd1ca20a32614ea15.tar.gz bcm5719-llvm-2f84d911317b6c0c312ef34fd1ca20a32614ea15.zip |
Added functionality to suggest FixIts for conversion of '->' to '.' and vice versa.
Summary: Added functionality to suggest FixIts for conversion of '->' to '.' and vice versa.
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: yvvan, ioeric, jkorous, arphaman, cfe-commits, kadircet
Differential Revision: https://reviews.llvm.org/D50193
llvm-svn: 339224
Diffstat (limited to 'clang-tools-extra/clangd/Quality.cpp')
-rw-r--r-- | clang-tools-extra/clangd/Quality.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Quality.cpp b/clang-tools-extra/clangd/Quality.cpp index 61195b56660..8cf794b0fe8 100644 --- a/clang-tools-extra/clangd/Quality.cpp +++ b/clang-tools-extra/clangd/Quality.cpp @@ -292,6 +292,8 @@ void SymbolRelevanceSignals::merge(const CodeCompletionResult &SemaCCResult) { // Declarations are scoped, others (like macros) are assumed global. if (SemaCCResult.Declaration) Scope = std::min(Scope, computeScope(SemaCCResult.Declaration)); + + NeedsFixIts = !SemaCCResult.FixIts.empty(); } static std::pair<float, unsigned> proximityScore(llvm::StringRef SymbolURI, @@ -343,6 +345,10 @@ float SymbolRelevanceSignals::evaluate() const { Score *= 0.5; } + // Penalize for FixIts. + if (NeedsFixIts) + Score *= 0.5; + return Score; } @@ -350,6 +356,7 @@ raw_ostream &operator<<(raw_ostream &OS, const SymbolRelevanceSignals &S) { OS << formatv("=== Symbol relevance: {0}\n", S.evaluate()); OS << formatv("\tName match: {0}\n", S.NameMatch); OS << formatv("\tForbidden: {0}\n", S.Forbidden); + OS << formatv("\tNeedsFixIts: {0}\n", S.NeedsFixIts); OS << formatv("\tIsInstanceMember: {0}\n", S.IsInstanceMember); OS << formatv("\tContext: {0}\n", getCompletionKindString(S.Context)); OS << formatv("\tSymbol URI: {0}\n", S.SymbolURI); |