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

Function templateParamsHelper

plugins/clang/codecompletion/completionhelper.cpp:47–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45QStringList templateParams(CXCursor cursor);
46
47CXChildVisitResult templateParamsHelper(CXCursor cursor, CXCursor /*parent*/, CXClientData data)
48{
49 CXCursorKind kind = clang_getCursorKind(cursor);
50 auto& params = *static_cast<QStringList*>(data);
51 if (kind == CXCursor_TemplateTypeParameter) {
52 auto paramName = ClangString(clang_getCursorSpelling(cursor)).toString();
53 auto param = QStringLiteral("typename");
54 if (!paramName.isEmpty()) {
55 param += QLatin1Char(' ') + paramName;
56 }
57 params.append(param);
58 } else if (kind == CXCursor_NonTypeTemplateParameter) {
59 auto param = ClangString(clang_getTypeSpelling(clang_getCursorType(cursor))).toString();
60 auto paramName = ClangString(clang_getCursorSpelling(cursor)).toString();
61 if (!paramName.isEmpty()) {
62 param += QLatin1Char(' ') + paramName;
63 }
64 params.append(param);
65 } else if (kind == CXCursor_TemplateTemplateParameter) {
66 auto paramName = ClangString(clang_getCursorSpelling(cursor)).toString();
67 auto templateTypes = templateParams(cursor);
68 QString param = QLatin1String("template<") + templateTypes.join(QLatin1String(", ")) + QLatin1String("> class ") + paramName ;
69 params.append(param);
70 }
71 return CXChildVisit_Continue;
72}
73
74QStringList templateParams(CXCursor cursor)
75{

Callers

nothing calls this directly

Calls 6

ClangStringClass · 0.85
templateParamsFunction · 0.85
joinMethod · 0.80
toStringMethod · 0.45
isEmptyMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected