Lines Matching full:cursor
147 static enum CXChildVisitResult findFileIdRefVisit(CXCursor cursor,
150 CXCursor declCursor = clang_getCursorReferenced(cursor);
160 cursor = cxcursor::getSelectorIdentifierCursor(data->SelectorIdIdx, cursor);
164 if ((cursor.kind == CXCursor_ObjCClassMethodDecl ||
165 cursor.kind == CXCursor_ObjCInstanceMethodDecl) &&
166 cxcursor::getSelectorIdentifierIndex(cursor) == -1)
169 if (clang_isExpression(cursor.kind)) {
170 if (cursor.kind == CXCursor_DeclRefExpr ||
171 cursor.kind == CXCursor_MemberRefExpr) {
174 } else if (cursor.kind == CXCursor_ObjCMessageExpr &&
175 cxcursor::getSelectorIdentifierIndex(cursor) != -1) {
183 Loc = cxloc::translateSourceLocation(clang_getCursorLocation(cursor));
184 SourceLocation SelIdLoc = cxcursor::getSelectorIdentifierLoc(cursor);
208 if (data->visitor.visit(data->visitor.context, cursor,
265 static enum CXChildVisitResult findFileMacroRefVisit(CXCursor cursor,
269 if (cursor.kind == CXCursor_MacroDefinition)
270 Macro = getCursorMacroDefinition(cursor)->getName();
271 else if (cursor.kind == CXCursor_MacroExpansion)
272 Macro = getCursorMacroExpansion(cursor).getName();
281 Loc = cxloc::translateSourceLocation(clang_getCursorLocation(cursor));
303 if (data->visitor.visit(data->visitor.context, cursor,
309 static bool findMacroRefsInFile(CXTranslationUnit TU, CXCursor Cursor,
312 if (Cursor.kind != CXCursor_MacroDefinition &&
313 Cursor.kind != CXCursor_MacroExpansion)
321 if (Cursor.kind == CXCursor_MacroDefinition)
322 Macro = getCursorMacroDefinition(Cursor)->getName();
324 Macro = getCursorMacroExpansion(Cursor).getName();
354 enum CXChildVisitResult visit(CXCursor cursor, CXCursor parent) {
355 if (cursor.kind != CXCursor_InclusionDirective)
359 Loc = cxloc::translateSourceLocation(clang_getCursorLocation(cursor));
369 if (visitor.visit(visitor.context, cursor,
375 static enum CXChildVisitResult visit(CXCursor cursor, CXCursor parent,
378 visit(cursor, parent);
412 CXResult clang_findReferencesInFile(CXCursor cursor, CXFile file,
416 if (clang_Cursor_isNull(cursor)) {
418 *Log << "Null cursor";
421 if (cursor.kind == CXCursor_NoDeclFound) {
438 *Log << cursor << " @" << static_cast<const FileEntry *>(file);
440 ASTUnit *CXXUnit = cxcursor::getCursorASTUnit(cursor);
446 if (cursor.kind == CXCursor_MacroDefinition ||
447 cursor.kind == CXCursor_MacroExpansion) {
448 if (findMacroRefsInFile(cxcursor::getCursorTU(cursor),
449 cursor,
461 // for 'MyStruct' we'll have a cursor pointing at the constructor decl but
463 cursor = cxcursor::getTypeRefCursor(cursor);
465 CXCursor refCursor = clang_getCursorReferenced(cursor);
469 *Log << "cursor is not referencing a declaration";
473 if (findIdRefsInFile(cxcursor::getCursorTU(cursor),
516 CXCursor cursor,
519 return INVOKE_BLOCK2(block, cursor, range);
522 CXResult clang_findReferencesInFileWithBlock(CXCursor cursor,
527 return clang_findReferencesInFile(cursor, file, visitor);