Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
DocumentSymbolUtils Namespace Reference

Classes

class  DocumentSymbolVisitor
class  DomItem
 A value type that references any element of the Dom. More...
struct  TypeSymbolRelation

Typedefs

using MutableRefToDocumentSymbol = QLspSpecification::DocumentSymbol &
using DocumentSymbolPredicate
using SymbolsList = QList<QLspSpecification::DocumentSymbol>
using AssemblingFunction

Functions

static constexpr SymbolKind symbolKindFor (const DomType &type)
static constexpr bool documentSymbolNotSupportedFor (const DomType &type)
static bool propertyBoundAtDefinitionLine (const DomItem &propertyDefinition)
static bool shouldFilterOut (const DomItem &item)
static std::optional< QByteArraytryGetQmlObjectDetail (const DomItem &qmlObj)
static std::optional< QByteArraytryGetBindingDetail (const DomItem &bItem)
static QByteArray getMethodDetail (const DomItem &mItem)
std::optional< QByteArraytryGetDetailOf (const DomItem &item)
static bool isSubRange (const QLspSpecification::Range &potentialSubRange, const QLspSpecification::Range &range)
static MutableRefToDocumentSymbol findDirectParentFor (const QLspSpecification::DocumentSymbol &child, MutableRefToDocumentSymbol currentParent)
static SymbolsList extractChildrenIf (const DocumentSymbolPredicate shouldBeReadopted, MutableRefToDocumentSymbol currentParent)
static void adopt (QLspSpecification::DocumentSymbol &&child, MutableRefToDocumentSymbol parent)
static void readoptChildrenIf (const DocumentSymbolPredicate unaryPred, MutableRefToDocumentSymbol currentParent)
static void reorganizeQmlComponentSymbol (MutableRefToDocumentSymbol qmlCompSymbol)
void reorganizeForOutlineView (SymbolsList &qmlFileSymbols)
SymbolsList buildSymbolOrReturnChildren (const DomItem &item, SymbolsList &&children)
std::pair< QLspSpecification::Range, QLspSpecification::Range > symbolRangesOf (const DomItem &item)
QByteArray symbolNameOf (const DomItem &item)
QLspSpecification::SymbolKind symbolKindOf (const DomItem &item)
SymbolsList assembleSymbolsForQmlFile (const DomItem &item, const AssemblingFunction af)

Variables

static constexpr std::array< TypeSymbolRelation, 9 > s_TypeSymbolRelations

Typedef Documentation

◆ AssemblingFunction

Initial value:
A value type that references any element of the Dom.
QList< QLspSpecification::DocumentSymbol > SymbolsList
QGraphicsItem * item

Definition at line 33 of file documentsymbolutils_p.h.

◆ DocumentSymbolPredicate

typedef qxp::function_ref< bool(const QLspSpecification::DocumentSymbol &) const > DocumentSymbolUtils::DocumentSymbolPredicate
Initial value:
qxp::function_ref<bool(const QLspSpecification::DocumentSymbol &) const>

Definition at line 183 of file documentsymbolutils.cpp.

◆ MutableRefToDocumentSymbol

using DocumentSymbolUtils::MutableRefToDocumentSymbol = QLspSpecification::DocumentSymbol &

Definition at line 155 of file documentsymbolutils.cpp.

◆ SymbolsList

using DocumentSymbolUtils::SymbolsList = QList<QLspSpecification::DocumentSymbol>

Definition at line 32 of file documentsymbolutils_p.h.

Function Documentation

◆ adopt()

void DocumentSymbolUtils::adopt ( QLspSpecification::DocumentSymbol && child,
MutableRefToDocumentSymbol parent )
inlinestatic

Definition at line 201 of file documentsymbolutils.cpp.

◆ assembleSymbolsForQmlFile()

SymbolsList DocumentSymbolUtils::assembleSymbolsForQmlFile ( const DomItem & item,
const AssemblingFunction af = buildSymbolOrReturnChildren )
nodiscard

Definition at line 494 of file documentsymbolutils.cpp.

◆ buildSymbolOrReturnChildren()

SymbolsList DocumentSymbolUtils::buildSymbolOrReturnChildren ( const DomItem & item,
SymbolsList && children )
nodiscard

Constructs a DocumentSymbol for an Item with the provided children. Returns children if the current Item should not be represented via a DocumentSymbol.

Definition at line 273 of file documentsymbolutils.cpp.

◆ documentSymbolNotSupportedFor()

constexpr bool DocumentSymbolUtils::documentSymbolNotSupportedFor ( const DomType & type)
inlinestaticconstexpr

Definition at line 50 of file documentsymbolutils.cpp.

◆ extractChildrenIf()

SymbolsList DocumentSymbolUtils::extractChildrenIf ( const DocumentSymbolPredicate shouldBeReadopted,
MutableRefToDocumentSymbol currentParent )
staticnodiscard

Definition at line 185 of file documentsymbolutils.cpp.

◆ findDirectParentFor()

MutableRefToDocumentSymbol DocumentSymbolUtils::findDirectParentFor ( const QLspSpecification::DocumentSymbol & child,
MutableRefToDocumentSymbol currentParent )
staticnodiscard

Definition at line 157 of file documentsymbolutils.cpp.

◆ getMethodDetail()

QByteArray DocumentSymbolUtils::getMethodDetail ( const DomItem & mItem)
inlinestatic

Definition at line 111 of file documentsymbolutils.cpp.

◆ isSubRange()

bool DocumentSymbolUtils::isSubRange ( const QLspSpecification::Range & potentialSubRange,
const QLspSpecification::Range & range )
inlinestatic

Definition at line 139 of file documentsymbolutils.cpp.

◆ propertyBoundAtDefinitionLine()

bool DocumentSymbolUtils::propertyBoundAtDefinitionLine ( const DomItem & propertyDefinition)
static

Definition at line 55 of file documentsymbolutils.cpp.

◆ readoptChildrenIf()

void DocumentSymbolUtils::readoptChildrenIf ( const DocumentSymbolPredicate unaryPred,
MutableRefToDocumentSymbol currentParent )
static

Definition at line 211 of file documentsymbolutils.cpp.

◆ reorganizeForOutlineView()

void DocumentSymbolUtils::reorganizeForOutlineView ( SymbolsList & qmlFileSymbols)

This function reorganizes qmlFileSymbols (result of assembleSymbolsForQmlFile) in the following way:

  1. Moves Symbol-s representing Enum-s and inline QmlComponent-s to their respective range-containing parents , a.k.a. direct structural parents.
  2. Reassignes head to the DocumentSymbol representing root QmlObject of the main QmlComponent

Definition at line 245 of file documentsymbolutils.cpp.

Referenced by QQmlDocumentSymbolSupport::process().

Here is the caller graph for this function:

◆ reorganizeQmlComponentSymbol()

void DocumentSymbolUtils::reorganizeQmlComponentSymbol ( MutableRefToDocumentSymbol qmlCompSymbol)
static

Definition at line 222 of file documentsymbolutils.cpp.

◆ shouldFilterOut()

bool DocumentSymbolUtils::shouldFilterOut ( const DomItem & item)
inlinestatic

Definition at line 61 of file documentsymbolutils.cpp.

◆ symbolKindFor()

constexpr SymbolKind DocumentSymbolUtils::symbolKindFor ( const DomType & type)
inlinestaticnodiscardconstexpr

Definition at line 39 of file documentsymbolutils.cpp.

◆ symbolKindOf()

QLspSpecification::SymbolKind DocumentSymbolUtils::symbolKindOf ( const DomItem & item)
nodiscard

Definition at line 335 of file documentsymbolutils.cpp.

◆ symbolNameOf()

QByteArray DocumentSymbolUtils::symbolNameOf ( const DomItem & item)
nodiscard

Definition at line 327 of file documentsymbolutils.cpp.

◆ symbolRangesOf()

std::pair< QLspSpecification::Range, QLspSpecification::Range > DocumentSymbolUtils::symbolRangesOf ( const DomItem & item)
nodiscard

Definition at line 310 of file documentsymbolutils.cpp.

◆ tryGetBindingDetail()

std::optional< QByteArray > DocumentSymbolUtils::tryGetBindingDetail ( const DomItem & bItem)
static

Definition at line 90 of file documentsymbolutils.cpp.

◆ tryGetDetailOf()

std::optional< QByteArray > DocumentSymbolUtils::tryGetDetailOf ( const DomItem & item)
nodiscard

Definition at line 118 of file documentsymbolutils.cpp.

◆ tryGetQmlObjectDetail()

std::optional< QByteArray > DocumentSymbolUtils::tryGetQmlObjectDetail ( const DomItem & qmlObj)
static

Definition at line 75 of file documentsymbolutils.cpp.

Variable Documentation

◆ s_TypeSymbolRelations

constexpr std::array< TypeSymbolRelation, 9 > DocumentSymbolUtils::s_TypeSymbolRelations
staticconstexpr
Initial value:
= { {
{ DomType::Binding, SymbolKind::Variable },
{ DomType::PropertyDefinition, SymbolKind::Property },
{ DomType::MethodInfo, SymbolKind::Method },
{ DomType::Id, SymbolKind::Key },
{ DomType::QmlObject, SymbolKind::Object },
{ DomType::EnumDecl, SymbolKind::Enum },
{ DomType::EnumItem, SymbolKind::EnumMember },
{ DomType::QmlComponent, SymbolKind::Module },
{ DomType::QmlFile, SymbolKind::File },
} }

Definition at line 23 of file documentsymbolutils.cpp.