CPlusPlus: Migrate Macro to FilePath

Change-Id: I94e8702e81e809e4d8318572cc070a0531edaefa
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2022-11-28 13:06:13 +01:00
parent 3c8c5b08a8
commit f68db427ef
6 changed files with 20 additions and 23 deletions

View File

@@ -68,13 +68,10 @@ public:
void addFormal(const QByteArray &formal) void addFormal(const QByteArray &formal)
{ _formals.append(formal); } { _formals.append(formal); }
const QString &fileName() const const Utils::FilePath &filePath() const
{ return _fileName; } { return _fileName; }
Utils::FilePath filePath() const void setFilePath(const Utils::FilePath &fileName)
{ return Utils::FilePath::fromString(_fileName); }
void setFileName(const QString &fileName)
{ _fileName = fileName; } { _fileName = fileName; }
unsigned fileRevision() const unsigned fileRevision() const
@@ -145,7 +142,7 @@ private:
QByteArray _definitionText; QByteArray _definitionText;
QVector<PPToken> _definitionTokens; QVector<PPToken> _definitionTokens;
QVector<QByteArray> _formals; QVector<QByteArray> _formals;
QString _fileName; Utils::FilePath _fileName;
unsigned _hashcode; unsigned _hashcode;
unsigned _fileRevision; unsigned _fileRevision;
int _line; int _line;
@@ -160,4 +157,4 @@ private:
}; };
}; };
} // namespace CPlusPlus } // CPlusPlus

View File

@@ -29,6 +29,8 @@
#include <cstring> #include <cstring>
using namespace Utils;
namespace CPlusPlus { namespace CPlusPlus {
static unsigned hashCode(const char *str, int length) static unsigned hashCode(const char *str, int length)
@@ -116,7 +118,7 @@ Macro *Environment::remove(const ByteArrayRef &name)
Macro macro; Macro macro;
macro.setName(name.toByteArray()); macro.setName(name.toByteArray());
macro.setHidden(true); macro.setHidden(true);
macro.setFileName(currentFile); macro.setFilePath(FilePath::fromString(currentFile));
macro.setLine(currentLine); macro.setLine(currentLine);
return bind(macro); return bind(macro);
} }
@@ -246,4 +248,4 @@ void Environment::dump() const
} }
} }
} // namespace CPlusPlus } // CPlusPlus

View File

@@ -1703,7 +1703,7 @@ void Preprocessor::handleDefineDirective(PPToken *tk)
return; return;
Macro macro; Macro macro;
macro.setFileName(m_env->currentFile); macro.setFilePath(FilePath::fromString(m_env->currentFile));
macro.setLine(tk->lineno); macro.setLine(tk->lineno);
QByteArray macroName = tk->asByteArrayRef().toByteArray(); QByteArray macroName = tk->asByteArrayRef().toByteArray();
macro.setName(macroName); macro.setName(macroName);

View File

@@ -254,7 +254,7 @@ bool isMacroUseOf(const Document::MacroUse &marcoUse, const Macro &macro)
return candidate.line() == macro.line() return candidate.line() == macro.line()
&& candidate.utf16CharOffset() == macro.utf16CharOffset() && candidate.utf16CharOffset() == macro.utf16CharOffset()
&& candidate.length() == macro.length() && candidate.length() == macro.length()
&& candidate.fileName() == macro.fileName(); && candidate.filePath() == macro.filePath();
} }
bool handleMacroCase(const Document::Ptr document, bool handleMacroCase(const Document::Ptr document,

View File

@@ -650,7 +650,7 @@ restart_search:
for (const CPlusPlus::Document::MacroUse &use : doc->macroUses()) { for (const CPlusPlus::Document::MacroUse &use : doc->macroUses()) {
const CPlusPlus::Macro &useMacro = use.macro(); const CPlusPlus::Macro &useMacro = use.macro();
if (useMacro.fileName() == macro.fileName()) { // Check if this is a match, but possibly against an outdated document. if (useMacro.filePath() == macro.filePath()) { // Check if this is a match, but possibly against an outdated document.
if (source.isEmpty()) if (source.isEmpty())
source = getSource(fileName, workingCopy); source = getSource(fileName, workingCopy);
@@ -752,13 +752,12 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro &macro, const QStri
// add the macro definition itself // add the macro definition itself
{ {
const QByteArray &source = getSource(Utils::FilePath::fromString(macro.fileName()), const QByteArray &source = getSource(macro.filePath(), workingCopy);
workingCopy);
unsigned column; unsigned column;
const QString line = FindMacroUsesInFile::matchingLine(macro.bytesOffset(), source, const QString line = FindMacroUsesInFile::matchingLine(macro.bytesOffset(), source,
&column); &column);
SearchResultItem item; SearchResultItem item;
const Utils::FilePath filePath = Utils::FilePath::fromString(macro.fileName()); const FilePath filePath = macro.filePath();
item.setFilePath(filePath); item.setFilePath(filePath);
item.setLineText(line); item.setLineText(line);
item.setMainRange(macro.line(), column, macro.nameToQString().length()); item.setMainRange(macro.line(), column, macro.nameToQString().length());

View File

@@ -25,8 +25,7 @@
using namespace CPlusPlus; using namespace CPlusPlus;
using namespace TextEditor; using namespace TextEditor;
using namespace Utils;
using Link = Utils::Link;
namespace CppEditor { namespace CppEditor {
@@ -188,7 +187,7 @@ Link findMacroLink_helper(const QByteArray &name, Document::Ptr doc, const Snaps
for (const Macro &macro : doc->definedMacros()) { for (const Macro &macro : doc->definedMacros()) {
if (macro.name() == name) { if (macro.name() == name) {
Link link; Link link;
link.targetFilePath = Utils::FilePath::fromString(macro.fileName()); link.targetFilePath = macro.filePath();
link.targetLine = macro.line(); link.targetLine = macro.line();
return link; return link;
} }
@@ -648,12 +647,12 @@ void FollowSymbolUnderCursor::findLink(
if (macro->name() == name) if (macro->name() == name)
return processLinkCallback(link); //already on definition! return processLinkCallback(link); //already on definition!
} else if (const Document::MacroUse *use = doc->findMacroUseAt(endOfToken - 1)) { } else if (const Document::MacroUse *use = doc->findMacroUseAt(endOfToken - 1)) {
const QString fileName = use->macro().fileName(); const FilePath filePath = use->macro().filePath();
if (fileName == CppModelManager::editorConfigurationFileName()) { if (filePath.path() == CppModelManager::editorConfigurationFileName()) {
editorWidget->showPreProcessorWidget(); editorWidget->showPreProcessorWidget();
} else if (fileName != CppModelManager::configurationFileName().path()) { } else if (filePath.path() != CppModelManager::configurationFileName().path()) {
const Macro &macro = use->macro(); const Macro &macro = use->macro();
link.targetFilePath = Utils::FilePath::fromString(macro.fileName()); link.targetFilePath = macro.filePath();
link.targetLine = macro.line(); link.targetLine = macro.line();
link.linkTextStart = use->utf16charsBegin(); link.linkTextStart = use->utf16charsBegin();
link.linkTextEnd = use->utf16charsEnd(); link.linkTextEnd = use->utf16charsEnd();
@@ -866,4 +865,4 @@ void FollowSymbolUnderCursor::setVirtualFunctionAssistProvider(
m_virtualFunctionAssistProvider = provider; m_virtualFunctionAssistProvider = provider;
} }
} // namespace CppEditor } // CppEditor