#include "FindSymbols.h"
#include "AST.h"
#include "FuzzyMatch.h"
#include "ParsedAST.h"
#include "Quality.h"
#include "SourceCode.h"
#include "index/Index.h"
#include "support/Logger.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/Index/IndexSymbol.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include <limits>
#include <optional>
#include <tuple>
#define DEBUG_TYPE …
namespace clang {
namespace clangd {
namespace {
ScoredSymbolInfo;
struct ScoredSymbolGreater { … };
bool approximateScopeMatch(llvm::StringRef Scope, llvm::StringRef Query) { … }
}
llvm::Expected<Location> indexToLSPLocation(const SymbolLocation &Loc,
llvm::StringRef TUPath) { … }
llvm::Expected<Location> symbolToLocation(const Symbol &Sym,
llvm::StringRef TUPath) { … }
llvm::Expected<std::vector<SymbolInformation>>
getWorkspaceSymbols(llvm::StringRef Query, int Limit,
const SymbolIndex *const Index, llvm::StringRef HintPath) { … }
namespace {
std::string getSymbolName(ASTContext &Ctx, const NamedDecl &ND) { … }
std::string getSymbolDetail(ASTContext &Ctx, const NamedDecl &ND) { … }
std::optional<DocumentSymbol> declToSym(ASTContext &Ctx, const NamedDecl &ND) { … }
class DocumentOutline { … };
struct PragmaMarkSymbol { … };
void mergePragmas(DocumentSymbol &Root, ArrayRef<PragmaMarkSymbol> Pragmas) { … }
PragmaMarkSymbol markToSymbol(const PragmaMark &P) { … }
std::vector<DocumentSymbol> collectDocSymbols(ParsedAST &AST) { … }
}
llvm::Expected<std::vector<DocumentSymbol>> getDocumentSymbols(ParsedAST &AST) { … }
}
}