forked from OSchip/llvm-project
[clangd] Log sema completion context kind and query scopes. NFC
Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48724 llvm-svn: 336321
This commit is contained in:
parent
f84dd024de
commit
bc25ef76ed
|
@ -41,6 +41,7 @@
|
||||||
#include "clang/Sema/Sema.h"
|
#include "clang/Sema/Sema.h"
|
||||||
#include "clang/Tooling/Core/Replacement.h"
|
#include "clang/Tooling/Core/Replacement.h"
|
||||||
#include "llvm/Support/Format.h"
|
#include "llvm/Support/Format.h"
|
||||||
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "llvm/Support/ScopedPrinter.h"
|
#include "llvm/Support/ScopedPrinter.h"
|
||||||
#include <queue>
|
#include <queue>
|
||||||
|
|
||||||
|
@ -940,6 +941,7 @@ class CodeCompleteFlow {
|
||||||
int NSema = 0, NIndex = 0, NBoth = 0; // Counters for logging.
|
int NSema = 0, NIndex = 0, NBoth = 0; // Counters for logging.
|
||||||
bool Incomplete = false; // Would more be available with a higher limit?
|
bool Incomplete = false; // Would more be available with a higher limit?
|
||||||
llvm::Optional<FuzzyMatcher> Filter; // Initialized once Sema runs.
|
llvm::Optional<FuzzyMatcher> Filter; // Initialized once Sema runs.
|
||||||
|
std::vector<std::string> QueryScopes; // Initialized once Sema runs.
|
||||||
// Include-insertion and proximity scoring rely on the include structure.
|
// Include-insertion and proximity scoring rely on the include structure.
|
||||||
// This is available after Sema has run.
|
// This is available after Sema has run.
|
||||||
llvm::Optional<IncludeInserter> Inserter; // Available during runWithSema.
|
llvm::Optional<IncludeInserter> Inserter; // Available during runWithSema.
|
||||||
|
@ -1001,6 +1003,10 @@ public:
|
||||||
Inserter.reset(); // Make sure this doesn't out-live Clang.
|
Inserter.reset(); // Make sure this doesn't out-live Clang.
|
||||||
SPAN_ATTACH(Tracer, "sema_completion_kind",
|
SPAN_ATTACH(Tracer, "sema_completion_kind",
|
||||||
getCompletionKindString(Recorder->CCContext.getKind()));
|
getCompletionKindString(Recorder->CCContext.getKind()));
|
||||||
|
log(llvm::formatv(
|
||||||
|
"Code complete: sema context {0}, query scopes [{1}]",
|
||||||
|
getCompletionKindString(Recorder->CCContext.getKind()),
|
||||||
|
llvm::join(QueryScopes.begin(), QueryScopes.end(), ",")));
|
||||||
});
|
});
|
||||||
|
|
||||||
Recorder = RecorderOwner.get();
|
Recorder = RecorderOwner.get();
|
||||||
|
@ -1028,6 +1034,8 @@ private:
|
||||||
CodeCompleteResult runWithSema() {
|
CodeCompleteResult runWithSema() {
|
||||||
Filter = FuzzyMatcher(
|
Filter = FuzzyMatcher(
|
||||||
Recorder->CCSema->getPreprocessor().getCodeCompletionFilter());
|
Recorder->CCSema->getPreprocessor().getCodeCompletionFilter());
|
||||||
|
QueryScopes = getQueryScopes(Recorder->CCContext,
|
||||||
|
Recorder->CCSema->getSourceManager());
|
||||||
// Sema provides the needed context to query the index.
|
// Sema provides the needed context to query the index.
|
||||||
// FIXME: in addition to querying for extra/overlapping symbols, we should
|
// FIXME: in addition to querying for extra/overlapping symbols, we should
|
||||||
// explicitly request symbols corresponding to Sema results.
|
// explicitly request symbols corresponding to Sema results.
|
||||||
|
@ -1059,8 +1067,7 @@ private:
|
||||||
Req.MaxCandidateCount = Opts.Limit;
|
Req.MaxCandidateCount = Opts.Limit;
|
||||||
Req.Query = Filter->pattern();
|
Req.Query = Filter->pattern();
|
||||||
Req.RestrictForCodeCompletion = true;
|
Req.RestrictForCodeCompletion = true;
|
||||||
Req.Scopes = getQueryScopes(Recorder->CCContext,
|
Req.Scopes = QueryScopes;
|
||||||
Recorder->CCSema->getSourceManager());
|
|
||||||
// FIXME: we should send multiple weighted paths here.
|
// FIXME: we should send multiple weighted paths here.
|
||||||
Req.ProximityPaths.push_back(FileName);
|
Req.ProximityPaths.push_back(FileName);
|
||||||
log(llvm::formatv("Code complete: fuzzyFind(\"{0}\", scopes=[{1}])",
|
log(llvm::formatv("Code complete: fuzzyFind(\"{0}\", scopes=[{1}])",
|
||||||
|
|
Loading…
Reference in New Issue