MCPcopy Create free account
hub / github.com/Codeya-IDE/deepin-ide / findSymbol

Method findSymbol

src/plugins/codeeditor/symbol/symbolmanager.cpp:28–42  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26}
27
28SymbolManager::SymbolInfo SymbolManagerPrivate::findSymbol(const newlsp::DocumentSymbol &symbol, int line, int column)
29{
30 auto children = symbol.children.value_or(QList<newlsp::DocumentSymbol>());
31 auto iter = std::find_if(children.cbegin(), children.cend(),
32 [&](const newlsp::DocumentSymbol &child) {
33 return child.range.contains({ line, column });
34 });
35 if (iter != children.cend())
36 return findSymbol(*iter, line, column);
37
38 QString name = q->displayNameFromDocumentSymbol(static_cast<SymbolManager::SymbolKind>(symbol.kind),
39 symbol.name,
40 symbol.detail.value_or(QString()));
41 return { name, static_cast<SymbolManager::SymbolKind>(symbol.kind), symbol.range };
42}
43
44SymbolManager::SymbolManager(QObject *parent)
45 : QObject(parent),

Callers 3

updateSymbolMethod · 0.80
codeRangeMethod · 0.80

Calls 6

cbeginMethod · 0.80
cendMethod · 0.80
symbolInformationsMethod · 0.80
QStringClass · 0.50
containsMethod · 0.45

Tested by

no test coverage detected