Clang: Locator filter for the symbol database

There are no symbol queries for the locator filters. The signature
generation is still not implemented but for simple cases it should work.

Change-Id: Ic6b04fbe1e7e057892f194ac139615c47d6ec33f
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Marco Bubke
2018-04-09 13:30:30 +02:00
parent 18de1e3fcf
commit 4b0bcbdcb6
57 changed files with 649 additions and 1118 deletions

View File

@@ -36,17 +36,6 @@ using uint = unsigned int;
namespace ClangBackEnd {
enum class SymbolType
{
None = 0,
Declaration,
DeclarationReference,
Definition,
MacroDefinition = 1024,
MacroUsage,
MacroUndefinition
};
using SymbolIndex = long long;
class SourceLocationEntry
@@ -55,24 +44,24 @@ public:
SourceLocationEntry(SymbolIndex symbolId,
FilePathId filePathId,
Utils::LineColumn lineColumn,
SymbolType symbolType)
SourceLocationKind kind)
: symbolId(symbolId),
filePathId(filePathId),
lineColumn(lineColumn),
symbolType(symbolType)
kind(kind)
{}
SymbolIndex symbolId = 0;
FilePathId filePathId;
Utils::LineColumn lineColumn;
SymbolType symbolType;
SourceLocationKind kind;
friend bool operator==(const SourceLocationEntry &first, const SourceLocationEntry &second)
{
return first.symbolId == second.symbolId
&& first.filePathId == second.filePathId
&& first.lineColumn == second.lineColumn
&& first.symbolType == second.symbolType;
&& first.kind == second.kind;
}
};