diff options
Diffstat (limited to 'src/plugins/cppeditor/cppeditor.cpp')
| -rw-r--r-- | src/plugins/cppeditor/cppeditor.cpp | 63 |
1 files changed, 33 insertions, 30 deletions
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index a691417399..18485a9616 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1178,7 +1178,7 @@ void CPPEditorWidget::switchDeclarationDefinition() bool isVisible = false; foreach (Core::IEditor *visEditor, editorManager->visibleEditors()) { if (visEditor->document() && - (symbolLink.fileName == visEditor->document()->fileName()) && + (symbolLink.targetFileName == visEditor->document()->fileName()) && (visEditor != editor)) { isVisible = true; editorManager->activateEditor(visEditor); @@ -1199,15 +1199,15 @@ void CPPEditorWidget::switchDeclarationDefinition() if (Symbol *def = symbolFinder()->findMatchingDefinition(lastVisibleSymbol, snapshot)) { Core::IEditor *editor = editorManager->currentEditor(); CPPEditorWidget::Link symbolLink = linkToSymbol(def); - if (editorManager->hasSplitter() && (editor->document()->fileName() != symbolLink.fileName)) { + if (editorManager->hasSplitter() && (editor->document()->fileName() != symbolLink.targetFileName)) { if (forceOpenLinksInNextSplit()) { editorManager->gotoOtherSplit(); } else if (openLinksInNextSplit()) { bool isVisible = false; foreach (Core::IEditor *visEditor, editorManager->visibleEditors()) { - if (visEditor->document() && - (symbolLink.fileName == visEditor->document()->fileName()) && - (visEditor != editor)) { + if (visEditor->document() + && (symbolLink.targetFileName == visEditor->document()->fileName()) + && (visEditor != editor)) { isVisible = true; editorManager->activateEditor(visEditor); break; @@ -1333,8 +1333,10 @@ CPPEditorWidget::Link CPPEditorWidget::attemptFuncDeclDef(const QTextCursor &cur doc->translationUnit()->getTokenEndPosition(name->lastToken() - 1, &endLine, &endColumn); QTextDocument *textDocument = cursor.document(); - result.begin = textDocument->findBlockByNumber(startLine - 1).position() + startColumn - 1; - result.end = textDocument->findBlockByNumber(endLine - 1).position() + endColumn - 1; + result.linkTextStart = + textDocument->findBlockByNumber(startLine - 1).position() + startColumn - 1; + result.linkTextEnd = + textDocument->findBlockByNumber(endLine - 1).position() + endColumn - 1; } return result; @@ -1364,8 +1366,8 @@ CPPEditorWidget::Link CPPEditorWidget::findMacroLink(const QByteArray &name, foreach (const Macro ¯o, doc->definedMacros()) { if (macro.name() == name) { Link link; - link.fileName = macro.fileName(); - link.line = macro.line(); + link.targetFileName = macro.fileName(); + link.targetLine = macro.line(); return link; } } @@ -1374,7 +1376,7 @@ CPPEditorWidget::Link CPPEditorWidget::findMacroLink(const QByteArray &name, for (int index = includes.size() - 1; index != -1; --index) { const Document::Include &i = includes.at(index); Link link = findMacroLink(name, snapshot.document(i.fileName()), snapshot, processed); - if (! link.fileName.isEmpty()) + if (link.hasValidTarget()) return link; } } @@ -1415,7 +1417,7 @@ CPPEditorWidget::Link CPPEditorWidget::findLinkAt(const QTextCursor &cursor, ++pos; if (characterAt(pos) == QLatin1Char('(')) { link = attemptFuncDeclDef(cursor, m_lastSemanticInfo.doc, snapshot); - if (link.isValid()) + if (link.hasValidLinkText()) return link; } } @@ -1501,9 +1503,9 @@ CPPEditorWidget::Link CPPEditorWidget::findLinkAt(const QTextCursor &cursor, const unsigned lineno = cursor.blockNumber() + 1; foreach (const Document::Include &incl, doc->includes()) { if (incl.line() == lineno && incl.resolved()) { - link.fileName = incl.fileName(); - link.begin = beginOfToken + 1; - link.end = endOfToken - 1; + link.targetFileName = incl.fileName(); + link.linkTextStart = beginOfToken + 1; + link.linkTextEnd = endOfToken - 1; return link; } } @@ -1526,10 +1528,10 @@ CPPEditorWidget::Link CPPEditorWidget::findLinkAt(const QTextCursor &cursor, const Document::MacroUse *use = doc->findMacroUseAt(endOfToken - 1); if (use && use->macro().fileName() != CppModelManagerInterface::configurationFileName()) { const Macro ¯o = use->macro(); - link.fileName = macro.fileName(); - link.line = macro.line(); - link.begin = use->begin(); - link.end = use->end(); + link.targetFileName = macro.fileName(); + link.targetLine = macro.line(); + link.linkTextStart = use->begin(); + link.linkTextEnd = use->end(); return link; } } @@ -1597,8 +1599,8 @@ CPPEditorWidget::Link CPPEditorWidget::findLinkAt(const QTextCursor &cursor, } link = linkToSymbol(def ? def : symbol); - link.begin = beginOfToken; - link.end = endOfToken; + link.linkTextStart = beginOfToken; + link.linkTextEnd = endOfToken; return link; } } @@ -1607,9 +1609,9 @@ CPPEditorWidget::Link CPPEditorWidget::findLinkAt(const QTextCursor &cursor, QTextCursor macroCursor = cursor; const QByteArray name = identifierUnderCursor(¯oCursor).toLatin1(); link = findMacroLink(name); - if (! link.fileName.isEmpty()) { - link.begin = macroCursor.selectionStart(); - link.end = macroCursor.selectionEnd(); + if (link.hasValidTarget()) { + link.linkTextStart = macroCursor.selectionStart(); + link.linkTextEnd = macroCursor.selectionEnd(); return link; } @@ -1920,8 +1922,9 @@ CPPEditorWidget::Link CPPEditorWidget::linkToSymbol(CPlusPlus::Symbol *symbol) if (!symbol) return Link(); - const QString fileName = QString::fromUtf8(symbol->fileName(), + const QString filename = QString::fromUtf8(symbol->fileName(), symbol->fileNameLength()); + unsigned line = symbol->line(); unsigned column = symbol->column(); @@ -1931,18 +1934,18 @@ CPPEditorWidget::Link CPPEditorWidget::linkToSymbol(CPlusPlus::Symbol *symbol) if (symbol->isGenerated()) column = 0; - return Link(fileName, line, column); + return Link(filename, line, column); } bool CPPEditorWidget::openCppEditorAt(const Link &link) { - if (link.fileName.isEmpty()) + if (link.targetFileName.isEmpty()) return false; - return TextEditor::BaseTextEditorWidget::openEditorAt(link.fileName, - link.line, - link.column, - Constants::CPPEDITOR_ID); + return TextEditor::BaseTextEditorWidget::openEditorAt(link.targetFileName, + link.targetLine, + link.targetColumn, + Constants::CPPEDITOR_ID); } void CPPEditorWidget::semanticRehighlight(bool force) |
