MCPcopy Create free account
hub / github.com/KDE/kdevelop / specialLanguageObjectNavigationWidget

Method specialLanguageObjectNavigationWidget

plugins/clang/clangsupport.cpp:330–351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

328}
329
330QPair<QWidget*, KTextEditor::Range> ClangSupport::specialLanguageObjectNavigationWidget(const QUrl& url, const KTextEditor::Cursor& position)
331{
332 DUChainReadLocker lock;
333 const QPair<TopDUContextPointer, Use> macroExpansion = macroExpansionForPosition(url, position);
334 if (macroExpansion.first) {
335 Declaration* declaration = macroExpansion.second.usedDeclaration(macroExpansion.first.data());
336 const MacroDefinition::Ptr macroDefinition(dynamic_cast<MacroDefinition*>(declaration));
337 Q_ASSERT(macroDefinition);
338 auto rangeInRevision = macroExpansion.first->transformFromLocalRevision(macroExpansion.second.m_range.start);
339 return {
340 new ClangNavigationWidget(macroDefinition, DocumentCursor(IndexedString(url), rangeInRevision)),
341 macroExpansion.second.m_range.castToSimpleRange()
342 };
343 }
344
345 const QPair<TopDUContextPointer, KTextEditor::Range> import = importedContextForPosition(url, position);
346
347 if (import.first) {
348 return {import.first->createNavigationWidget(), import.second};
349 }
350 return {nullptr, KTextEditor::Range::invalid()};
351}
352
353QString ClangSupport::indentationSample() const
354{

Callers 2

updateForViewMethod · 0.45

Calls 9

usedDeclarationMethod · 0.80
DocumentCursorClass · 0.50
IndexedStringClass · 0.50
invalidFunction · 0.50
dataMethod · 0.45

Tested by

no test coverage detected