logic: add name delimiter to NameHierarchy
* NameHierarchy now looks like this: <delimiter>\tm<all the rest> * made new baseclasses for SettingsMigration and SettingsMigrator * Use the migration system for SqliteBookmarkStorage as well
This commit is contained in:
@@ -40,7 +40,7 @@ CxxAstVisitor::CxxAstVisitor(
|
||||
return declName->toNameHierarchy();
|
||||
}
|
||||
}
|
||||
return NameHierarchy("global");
|
||||
return NameHierarchy("global", NAME_DELIMITER_UNKNOWN);
|
||||
}
|
||||
);
|
||||
m_typeNameCache = std::make_shared<TypeNameCache>([](const clang::Type* type) -> NameHierarchy
|
||||
@@ -53,7 +53,7 @@ CxxAstVisitor::CxxAstVisitor(
|
||||
return typeName->toNameHierarchy();
|
||||
}
|
||||
}
|
||||
return NameHierarchy("global");
|
||||
return NameHierarchy("global", NAME_DELIMITER_UNKNOWN);
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -383,7 +383,7 @@ void CxxAstVisitorComponentIndexer::visitUsingDirectiveDecl(clang::UsingDirectiv
|
||||
m_client->recordReference(
|
||||
REFERENCE_USAGE,
|
||||
nameHierarchy,
|
||||
getAstVisitor()->getComponent<CxxAstVisitorComponentContext>()->getContextName(NameHierarchy(loc.filePath.str())),
|
||||
getAstVisitor()->getComponent<CxxAstVisitorComponentContext>()->getContextName(NameHierarchy(loc.filePath.str(), NAME_DELIMITER_FILE)),
|
||||
loc
|
||||
);
|
||||
}
|
||||
@@ -397,7 +397,7 @@ void CxxAstVisitorComponentIndexer::visitUsingDecl(clang::UsingDecl* d)
|
||||
m_client->recordReference(
|
||||
REFERENCE_USAGE,
|
||||
getAstVisitor()->getDeclNameCache()->getValue(d),
|
||||
getAstVisitor()->getComponent<CxxAstVisitorComponentContext>()->getContextName(NameHierarchy(loc.filePath.str())),
|
||||
getAstVisitor()->getComponent<CxxAstVisitorComponentContext>()->getContextName(NameHierarchy(loc.filePath.str(), NAME_DELIMITER_FILE)),
|
||||
loc
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
|
||||
#include "data/indexer/IndexerCommandCxxCdb.h"
|
||||
#include "data/indexer/IndexerCommandCxxManual.h"
|
||||
#include "data/name/NameHierarchy.h"
|
||||
#include "data/parser/cxx/ASTActionFactory.h"
|
||||
#include "data/parser/cxx/CxxCompilationDatabaseSingle.h"
|
||||
#include "data/parser/cxx/CxxDiagnosticConsumer.h"
|
||||
@@ -69,8 +68,6 @@ CxxParser::~CxxParser()
|
||||
|
||||
void CxxParser::buildIndex(std::shared_ptr<IndexerCommandCxxCdb> indexerCommand)
|
||||
{
|
||||
NameHierarchy::setDelimiter(getSymbolNameDelimiterForLanguage(LANGUAGE_CPP));
|
||||
|
||||
clang::tooling::CompileCommand compileCommand;
|
||||
compileCommand.Filename = indexerCommand->getSourceFilePath().str();
|
||||
compileCommand.Directory = indexerCommand->getWorkingDirectory().str();
|
||||
@@ -101,8 +98,6 @@ void CxxParser::buildIndex(std::shared_ptr<IndexerCommandCxxCdb> indexerCommand)
|
||||
|
||||
void CxxParser::buildIndex(std::shared_ptr<IndexerCommandCxxManual> indexerCommand)
|
||||
{
|
||||
NameHierarchy::setDelimiter(getSymbolNameDelimiterForLanguage(LANGUAGE_CPP));
|
||||
|
||||
std::shared_ptr<clang::tooling::CompilationDatabase> compilationDatabase = getCompilationDatabase(indexerCommand);
|
||||
|
||||
clang::tooling::ClangTool tool(*compilationDatabase, std::vector<std::string>(1, indexerCommand->getSourceFilePath().str()));
|
||||
@@ -122,8 +117,6 @@ void CxxParser::buildIndex(std::shared_ptr<IndexerCommandCxxManual> indexerComma
|
||||
|
||||
void CxxParser::buildIndex(const std::string& fileName, std::shared_ptr<TextAccess> fileContent)
|
||||
{
|
||||
NameHierarchy::setDelimiter(getSymbolNameDelimiterForLanguage(LANGUAGE_CPP));
|
||||
|
||||
std::shared_ptr<FilePathCache> canonicalFilePathCache = std::make_shared<FilePathCache>([](std::string fileName) -> FilePath
|
||||
{
|
||||
return FilePath(fileName).canonical();
|
||||
|
||||
@@ -62,8 +62,8 @@ void PreprocessorCallbacks::InclusionDirective(
|
||||
FilePath includedFilePath = m_canonicalFilePathCache->getValue(fileEntry->getName());
|
||||
if (m_fileRegister->hasFilePath(includedFilePath))
|
||||
{
|
||||
const NameHierarchy referencedNameHierarchy(includedFilePath.str());
|
||||
const NameHierarchy contextNameHierarchy(m_currentPath.str());
|
||||
const NameHierarchy referencedNameHierarchy(includedFilePath.str(), NAME_DELIMITER_FILE);
|
||||
const NameHierarchy contextNameHierarchy(m_currentPath.str(), NAME_DELIMITER_FILE);
|
||||
|
||||
m_client->recordReference(
|
||||
REFERENCE_INCLUDE,
|
||||
@@ -85,7 +85,7 @@ void PreprocessorCallbacks::MacroDefined(const clang::Token& macroNameToken, con
|
||||
return;
|
||||
}
|
||||
|
||||
const NameHierarchy nameHierarchy(macroNameToken.getIdentifierInfo()->getName().str());
|
||||
const NameHierarchy nameHierarchy(macroNameToken.getIdentifierInfo()->getName().str(), NAME_DELIMITER_CXX);
|
||||
|
||||
m_client->recordSymbol(
|
||||
nameHierarchy,
|
||||
@@ -134,8 +134,8 @@ void PreprocessorCallbacks::onMacroUsage(const clang::Token& macroNameToken)
|
||||
{
|
||||
const ParseLocation loc = getParseLocation(macroNameToken);
|
||||
|
||||
const NameHierarchy referencedNameHierarchy(macroNameToken.getIdentifierInfo()->getName().str());
|
||||
const NameHierarchy contextNameHierarchy(loc.filePath.str());
|
||||
const NameHierarchy referencedNameHierarchy(macroNameToken.getIdentifierInfo()->getName().str(), NAME_DELIMITER_CXX);
|
||||
const NameHierarchy contextNameHierarchy(loc.filePath.str(), NAME_DELIMITER_FILE);
|
||||
|
||||
m_client->recordReference(
|
||||
REFERENCE_MACRO_USAGE,
|
||||
|
||||
@@ -38,7 +38,7 @@ NameHierarchy CxxDeclName::toNameHierarchy() const
|
||||
nameString += ">";
|
||||
}
|
||||
|
||||
NameHierarchy ret = getParent() ? getParent()->toNameHierarchy(): NameHierarchy();
|
||||
NameHierarchy ret = getParent() ? getParent()->toNameHierarchy(): NameHierarchy(NAME_DELIMITER_CXX);
|
||||
ret.push(std::make_shared<NameElement>(nameString));
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -39,7 +39,7 @@ CxxTypeName::~CxxTypeName()
|
||||
|
||||
NameHierarchy CxxTypeName::toNameHierarchy() const
|
||||
{
|
||||
NameHierarchy ret = getParent() ? getParent()->toNameHierarchy(): NameHierarchy();
|
||||
NameHierarchy ret = getParent() ? getParent()->toNameHierarchy(): NameHierarchy(NAME_DELIMITER_CXX);
|
||||
ret.push(std::make_shared<NameElement>(getTypeNameString()));
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user