clang 8.0.0

Classes | Typedefs | Enumerations | Functions
Higher level API functions
libclang: C Interface to Clang
Collaboration diagram for Higher level API functions:

## Classes
struct | CXCursorAndRangeVisitor
struct | CXIdxLoc
| Source location passed to index callbacks. More...
struct | CXIdxIncludedFileInfo
| Data for ppIncludedFile callback. More...
struct | CXIdxImportedASTFileInfo
| Data for IndexerCallbacks::importedASTFile. More...
struct | CXIdxAttrInfo
struct | CXIdxEntityInfo
struct | CXIdxContainerInfo
struct | CXIdxIBOutletCollectionAttrInfo
struct | CXIdxDeclInfo
struct | CXIdxObjCContainerDeclInfo
struct | CXIdxBaseClassInfo
struct | CXIdxObjCProtocolRefInfo
struct | CXIdxObjCProtocolRefListInfo
struct | CXIdxObjCInterfaceDeclInfo
struct | CXIdxObjCCategoryDeclInfo
struct | CXIdxObjCPropertyDeclInfo
struct | CXIdxCXXClassDeclInfo
struct | CXIdxEntityRefInfo
| Data for IndexerCallbacks::indexEntityReference. More...
struct | IndexerCallbacks
| A group of callbacks used by clang_indexSourceFile and clang_indexTranslationUnit. More...

## Typedefs
typedef struct CXCursorAndRangeVisitor | CXCursorAndRangeVisitor
typedef void * | CXIdxClientFile
| The client's data object that is associated with a CXFile. More...
typedef void * | CXIdxClientEntity
| The client's data object that is associated with a semantic entity. More...
typedef void * | CXIdxClientContainer
| The client's data object that is associated with a semantic container of entities. More...
typedef void * | CXIdxClientASTFile
| The client's data object that is associated with an AST file (PCH or module). More...
typedef void * | CXIndexAction
| An indexing action/session, to be applied to one or multiple translation units. More...
typedef enum CXVisitorResult(* | CXFieldVisitor) (CXCursor C, CXClientData client_data)
| Visitor invoked for each field found by a traversal. More...

## Enumerations
enum | CXVisitorResult { CXVisit_Break, CXVisit_Continue }
enum | CXResult { CXResult_Success = 0, CXResult_Invalid = 1, CXResult_VisitBreak = 2 }
enum | CXIdxEntityKind { CXIdxEntity_Unexposed = 0, CXIdxEntity_Typedef = 1, CXIdxEntity_Function = 2, CXIdxEntity_Variable = 3, CXIdxEntity_Field = 4, CXIdxEntity_EnumConstant = 5, CXIdxEntity_ObjCClass = 6, CXIdxEntity_ObjCProtocol = 7, CXIdxEntity_ObjCCategory = 8, CXIdxEntity_ObjCInstanceMethod = 9, CXIdxEntity_ObjCClassMethod = 10, CXIdxEntity_ObjCProperty = 11, CXIdxEntity_ObjCIvar = 12, CXIdxEntity_Enum = 13, CXIdxEntity_Struct = 14, CXIdxEntity_Union = 15, CXIdxEntity_CXXClass = 16, CXIdxEntity_CXXNamespace = 17, CXIdxEntity_CXXNamespaceAlias = 18, CXIdxEntity_CXXStaticVariable = 19, CXIdxEntity_CXXStaticMethod = 20, CXIdxEntity_CXXInstanceMethod = 21, CXIdxEntity_CXXConstructor = 22, CXIdxEntity_CXXDestructor = 23, CXIdxEntity_CXXConversionFunction = 24, CXIdxEntity_CXXTypeAlias = 25, CXIdxEntity_CXXInterface = 26 }
enum | CXIdxEntityLanguage { CXIdxEntityLang_None = 0, CXIdxEntityLang_C = 1, CXIdxEntityLang_ObjC = 2, CXIdxEntityLang_CXX = 3, CXIdxEntityLang_Swift = 4 }
enum | CXIdxEntityCXXTemplateKind { CXIdxEntity_NonTemplate = 0, CXIdxEntity_Template = 1, CXIdxEntity_TemplatePartialSpecialization = 2, CXIdxEntity_TemplateSpecialization = 3 }
| Extra C++ template information for an entity. More...
enum | CXIdxAttrKind { CXIdxAttr_Unexposed = 0, CXIdxAttr_IBAction = 1, CXIdxAttr_IBOutlet = 2, CXIdxAttr_IBOutletCollection = 3 }
enum | CXIdxDeclInfoFlags { CXIdxDeclFlag_Skipped = 0x1 }
enum | CXIdxObjCContainerKind { CXIdxObjCContainer_ForwardRef = 0, CXIdxObjCContainer_Interface = 1, CXIdxObjCContainer_Implementation = 2 }
enum | CXIdxEntityRefKind { CXIdxEntityRef_Direct = 1, CXIdxEntityRef_Implicit = 2 }
| Data for IndexerCallbacks::indexEntityReference. More...
enum | CXSymbolRole { CXSymbolRole_None = 0, CXSymbolRole_Declaration = 1 << 0, CXSymbolRole_Definition = 1 << 1, CXSymbolRole_Reference = 1 << 2, CXSymbolRole_Read = 1 << 3, CXSymbolRole_Write = 1 << 4, CXSymbolRole_Call = 1 << 5, CXSymbolRole_Dynamic = 1 << 6, CXSymbolRole_AddressOf = 1 << 7, CXSymbolRole_Implicit = 1 << 8 }
| Roles that are attributed to symbol occurrences. More...
enum | CXIndexOptFlags { CXIndexOpt_None = 0x0, CXIndexOpt_SuppressRedundantRefs = 0x1, CXIndexOpt_IndexFunctionLocalSymbols = 0x2, CXIndexOpt_IndexImplicitTemplateInstantiations = 0x4, CXIndexOpt_SuppressWarnings = 0x8, CXIndexOpt_SkipParsedBodiesInSession = 0x10 }

## Functions
CINDEX_LINKAGE CXResult | clang_findReferencesInFile (CXCursor cursor, CXFile file, CXCursorAndRangeVisitor visitor)
| Find references of a declaration in a specific file. More...
CINDEX_LINKAGE CXResult | clang_findIncludesInFile (CXTranslationUnit TU, CXFile file, CXCursorAndRangeVisitor visitor)
| Find #import/#include directives in a specific file. More...
CINDEX_LINKAGE int | clang_index_isEntityObjCContainerKind (CXIdxEntityKind)
CINDEX_LINKAGE const CXIdxObjCContainerDeclInfo * | clang_index_getObjCContainerDeclInfo (const CXIdxDeclInfo *)
CINDEX_LINKAGE const CXIdxObjCInterfaceDeclInfo * | clang_index_getObjCInterfaceDeclInfo (const CXIdxDeclInfo *)
CINDEX_LINKAGE const CXIdxObjCCategoryDeclInfo * | clang_index_getObjCCategoryDeclInfo (const CXIdxDeclInfo *)
CINDEX_LINKAGE const CXIdxObjCProtocolRefListInfo * | clang_index_getObjCProtocolRefListInfo (const CXIdxDeclInfo *)
CINDEX_LINKAGE const CXIdxObjCPropertyDeclInfo * | clang_index_getObjCPropertyDeclInfo (const CXIdxDeclInfo *)
CINDEX_LINKAGE const CXIdxIBOutletCollectionAttrInfo * | clang_index_getIBOutletCollectionAttrInfo (const CXIdxAttrInfo *)
CINDEX_LINKAGE const CXIdxCXXClassDeclInfo * | clang_index_getCXXClassDeclInfo (const CXIdxDeclInfo *)
CINDEX_LINKAGE CXIdxClientContainer | clang_index_getClientContainer (const CXIdxContainerInfo *)
| For retrieving a custom CXIdxClientContainer attached to a container. More...
CINDEX_LINKAGE void | clang_index_setClientContainer (const CXIdxContainerInfo *, CXIdxClientContainer)
| For setting a custom CXIdxClientContainer attached to a container. More...
CINDEX_LINKAGE CXIdxClientEntity | clang_index_getClientEntity (const CXIdxEntityInfo *)
| For retrieving a custom CXIdxClientEntity attached to an entity. More...
CINDEX_LINKAGE void | clang_index_setClientEntity (const CXIdxEntityInfo *, CXIdxClientEntity)
| For setting a custom CXIdxClientEntity attached to an entity. More...
CINDEX_LINKAGE CXIndexAction | clang_IndexAction_create (CXIndex CIdx)
| An indexing action/session, to be applied to one or multiple translation units. More...
CINDEX_LINKAGE void | clang_IndexAction_dispose (CXIndexAction)
| Destroy the given index action. More...
CINDEX_LINKAGE int | clang_indexSourceFile (CXIndexAction, CXClientData client_data, IndexerCallbacks *index_callbacks, unsigned index_callbacks_size, unsigned index_options, const char *source_filename, const char *const *command_line_args, int num_command_line_args, struct CXUnsavedFile *unsaved_files, unsigned num_unsaved_files, CXTranslationUnit *out_TU, unsigned TU_options)
| Index the given source file and the translation unit corresponding to that file via callbacks implemented through IndexerCallbacks. More...
CINDEX_LINKAGE int | clang_indexSourceFileFullArgv (CXIndexAction, CXClientData client_data, IndexerCallbacks *index_callbacks, unsigned index_callbacks_size, unsigned index_options, const char *source_filename, const char *const *command_line_args, int num_command_line_args, struct CXUnsavedFile *unsaved_files, unsigned num_unsaved_files, CXTranslationUnit *out_TU, unsigned TU_options)
| Same as clang_indexSourceFile but requires a full command line for `command_line_args` including argv[0]. More...
CINDEX_LINKAGE int | clang_indexTranslationUnit (CXIndexAction, CXClientData client_data, IndexerCallbacks *index_callbacks, unsigned index_callbacks_size, unsigned index_options, CXTranslationUnit)
| Index the given translation unit via callbacks implemented through IndexerCallbacks. More...
CINDEX_LINKAGE void | clang_indexLoc_getFileLocation (CXIdxLoc loc, CXIdxClientFile *indexFile, CXFile *file, unsigned *line, unsigned *column, unsigned *offset)
| Retrieve the CXIdxFile, file, line, column, and offset represented by the given CXIdxLoc. More...
CINDEX_LINKAGE CXSourceLocation | clang_indexLoc_getCXSourceLocation (CXIdxLoc loc)
| Retrieve the CXSourceLocation represented by the given CXIdxLoc. More...
CINDEX_LINKAGE unsigned | clang_Type_visitFields (CXType T, CXFieldVisitor visitor, CXClientData client_data)
| Visit the fields of a particular type. More...

## Detailed Description

## Typedef Documentation

## ◆ CXCursorAndRangeVisitor

typedef struct CXCursorAndRangeVisitor CXCursorAndRangeVisitor

## ◆ CXFieldVisitor

typedef enum CXVisitorResult(* CXFieldVisitor) (CXCursor C, CXClientData client_data)

Visitor invoked for each field found by a traversal.

This visitor function will be invoked for each field found by `clang_Type_visitFields`. Its first argument is the cursor being visited, its second argument is the client data provided to `clang_Type_visitFields`.

The visitor should return one of the `CXVisitorResult` values to direct `clang_Type_visitFields`.

Definition at line 6681 of file Index.h.

## ◆ CXIdxClientASTFile

typedef void* CXIdxClientASTFile

The client's data object that is associated with an AST file (PCH or module).

Definition at line 6101 of file Index.h.

## ◆ CXIdxClientContainer

typedef void* CXIdxClientContainer

The client's data object that is associated with a semantic container of entities.

Definition at line 6095 of file Index.h.

## ◆ CXIdxClientEntity

typedef void* CXIdxClientEntity

The client's data object that is associated with a semantic entity.

Definition at line 6089 of file Index.h.

## ◆ CXIdxClientFile

typedef void* CXIdxClientFile

The client's data object that is associated with a CXFile.

Definition at line 6084 of file Index.h.

## ◆ CXIndexAction

typedef void* CXIndexAction

An indexing action/session, to be applied to one or multiple translation units.

Definition at line 6519 of file Index.h.

## Enumeration Type Documentation

## ◆ CXIdxAttrKind

enum CXIdxAttrKind

Enumerator
CXIdxAttr_Unexposed |
CXIdxAttr_IBAction |
CXIdxAttr_IBOutlet |
CXIdxAttr_IBOutletCollection |

Definition at line 6220 of file Index.h.

## ◆ CXIdxDeclInfoFlags

enum CXIdxDeclInfoFlags

Enumerator
CXIdxDeclFlag_Skipped |

Definition at line 6255 of file Index.h.

## ◆ CXIdxEntityCXXTemplateKind

enum CXIdxEntityCXXTemplateKind

Extra C++ template information for an entity.

This can apply to: CXIdxEntity_Function CXIdxEntity_CXXClass CXIdxEntity_CXXStaticMethod CXIdxEntity_CXXInstanceMethod CXIdxEntity_CXXConstructor CXIdxEntity_CXXConversionFunction CXIdxEntity_CXXTypeAlias

Enumerator
CXIdxEntity_NonTemplate |
CXIdxEntity_Template |
CXIdxEntity_TemplatePartialSpecialization |
CXIdxEntity_TemplateSpecialization |

Definition at line 6213 of file Index.h.

## ◆ CXIdxEntityKind

enum CXIdxEntityKind

Enumerator
CXIdxEntity_Unexposed |
CXIdxEntity_Typedef |
CXIdxEntity_Function |
CXIdxEntity_Variable |
CXIdxEntity_Field |
CXIdxEntity_EnumConstant |
CXIdxEntity_ObjCClass |
CXIdxEntity_ObjCProtocol |
CXIdxEntity_ObjCCategory |
CXIdxEntity_ObjCInstanceMethod |
CXIdxEntity_ObjCClassMethod |
CXIdxEntity_ObjCProperty |
CXIdxEntity_ObjCIvar |
CXIdxEntity_Enum |
CXIdxEntity_Struct |
CXIdxEntity_Union |
CXIdxEntity_CXXClass |
CXIdxEntity_CXXNamespace |
CXIdxEntity_CXXNamespaceAlias |
CXIdxEntity_CXXStaticVariable |
CXIdxEntity_CXXStaticMethod |
CXIdxEntity_CXXInstanceMethod |
CXIdxEntity_CXXConstructor |
CXIdxEntity_CXXDestructor |
CXIdxEntity_CXXConversionFunction |
CXIdxEntity_CXXTypeAlias |
CXIdxEntity_CXXInterface |

Definition at line 6160 of file Index.h.

## ◆ CXIdxEntityLanguage

enum CXIdxEntityLanguage

Enumerator
CXIdxEntityLang_None |
CXIdxEntityLang_C |
CXIdxEntityLang_ObjC |
CXIdxEntityLang_CXX |
CXIdxEntityLang_Swift |

Definition at line 6195 of file Index.h.

## ◆ CXIdxEntityRefKind

enum CXIdxEntityRefKind

Data for IndexerCallbacks::indexEntityReference.

This may be deprecated in a future version as this duplicates the `CXSymbolRole_Implicit` bit in `CXSymbolRole`.

Enumerator
CXIdxEntityRef_Direct | The entity is referenced directly in user's code.
CXIdxEntityRef_Implicit | An implicit reference, e.g. a reference of an Objective-C method via the dot syntax.

Definition at line 6345 of file Index.h.

## ◆ CXIdxObjCContainerKind

enum CXIdxObjCContainerKind

Enumerator
CXIdxObjCContainer_ForwardRef |
CXIdxObjCContainer_Interface |
CXIdxObjCContainer_Implementation |

Definition at line 6285 of file Index.h.

## ◆ CXIndexOptFlags

enum CXIndexOptFlags

Enumerator
CXIndexOpt_None | Used to indicate that no special indexing options are needed.
CXIndexOpt_SuppressRedundantRefs | Used to indicate that IndexerCallbacks::indexEntityReference should be invoked for only one reference of an entity per source file that does not also include a declaration/definition of the entity.
CXIndexOpt_IndexFunctionLocalSymbols | Function-local symbols should be indexed. If this is not set function-local symbols will be ignored.
CXIndexOpt_IndexImplicitTemplateInstantiations | Implicit function/class template instantiations should be indexed. If this is not set, implicit instantiations will be ignored.
CXIndexOpt_SuppressWarnings | Suppress all compiler warnings when parsing for indexing.
CXIndexOpt_SkipParsedBodiesInSession | Skip a function/method body that was already parsed during an indexing session associated with a `CXIndexAction` object. Bodies in system headers are always skipped.

Definition at line 6537 of file Index.h.

## ◆ CXResult

enum CXResult

Enumerator
CXResult_Success | Function returned successfully.
CXResult_Invalid | One of the parameters was invalid for the function.
CXResult_VisitBreak | The function was terminated by a callback (e.g. it returned CXVisit_Break)

Definition at line 6014 of file Index.h.

## ◆ CXSymbolRole

enum CXSymbolRole

Roles that are attributed to symbol occurrences.

Internal: this currently mirrors low 9 bits of clang::index::SymbolRole with higher bits zeroed. These high bits may be exposed in the future.

Enumerator
CXSymbolRole_None |
CXSymbolRole_Declaration |
CXSymbolRole_Definition |
CXSymbolRole_Reference |
CXSymbolRole_Read |
CXSymbolRole_Write |
CXSymbolRole_Call |
CXSymbolRole_Dynamic |
CXSymbolRole_AddressOf |
CXSymbolRole_Implicit |

Definition at line 6363 of file Index.h.

## ◆ CXVisitorResult

enum CXVisitorResult

Enumerator
CXVisit_Break |
CXVisit_Continue |

Definition at line 6004 of file Index.h.

## Function Documentation

## ◆ clang_findIncludesInFile()

CINDEX_LINKAGE CXResult clang_findIncludesInFile | ( | CXTranslationUnit | TU,
|  | CXFile | file,
|  | CXCursorAndRangeVisitor | visitor
| ) |  |

Find #import/#include directives in a specific file.

Parameters

  TU | translation unit containing the file to query.
  file | to search for #import/#include directives.
  visitor | callback that will receive pairs of CXCursor/CXSourceRange for each directive found.

Returns
  one of the CXResult enumerators.

## ◆ clang_findReferencesInFile()

CINDEX_LINKAGE CXResult clang_findReferencesInFile | ( | CXCursor | cursor,
|  | CXFile | file,
|  | CXCursorAndRangeVisitor | visitor
| ) |  |

Find references of a declaration in a specific file.

Parameters

  cursor | pointing to a declaration or a reference of one.
  file | to search for references.
  visitor | callback that will receive pairs of CXCursor/CXSourceRange for each reference found. The CXSourceRange will point inside the file; if the reference is inside a macro (and not a macro argument) the CXSourceRange will be invalid.

Returns
  one of the CXResult enumerators.

## ◆ clang_index_getClientContainer()

CINDEX_LINKAGE CXIdxClientContainer clang_index_getClientContainer | ( | const CXIdxContainerInfo * |  | ) |

For retrieving a custom CXIdxClientContainer attached to a container.

## ◆ clang_index_getClientEntity()

CINDEX_LINKAGE CXIdxClientEntity clang_index_getClientEntity | ( | const CXIdxEntityInfo * |  | ) |

For retrieving a custom CXIdxClientEntity attached to an entity.

## ◆ clang_index_getCXXClassDeclInfo()

CINDEX_LINKAGE const CXIdxCXXClassDeclInfo* clang_index_getCXXClassDeclInfo | ( | const CXIdxDeclInfo * |  | ) |

## ◆ clang_index_getIBOutletCollectionAttrInfo()

CINDEX_LINKAGE const CXIdxIBOutletCollectionAttrInfo* clang_index_getIBOutletCollectionAttrInfo | ( | const CXIdxAttrInfo * |  | ) |

## ◆ clang_index_getObjCCategoryDeclInfo()

CINDEX_LINKAGE const CXIdxObjCCategoryDeclInfo* clang_index_getObjCCategoryDeclInfo | ( | const CXIdxDeclInfo * |  | ) |

## ◆ clang_index_getObjCContainerDeclInfo()

CINDEX_LINKAGE const CXIdxObjCContainerDeclInfo* clang_index_getObjCContainerDeclInfo | ( | const CXIdxDeclInfo * |  | ) |

## ◆ clang_index_getObjCInterfaceDeclInfo()

CINDEX_LINKAGE const CXIdxObjCInterfaceDeclInfo* clang_index_getObjCInterfaceDeclInfo | ( | const CXIdxDeclInfo * |  | ) |

## ◆ clang_index_getObjCPropertyDeclInfo()

CINDEX_LINKAGE const CXIdxObjCPropertyDeclInfo* clang_index_getObjCPropertyDeclInfo | ( | const CXIdxDeclInfo * |  | ) |

## ◆ clang_index_getObjCProtocolRefListInfo()

CINDEX_LINKAGE const CXIdxObjCProtocolRefListInfo* clang_index_getObjCProtocolRefListInfo | ( | const CXIdxDeclInfo * |  | ) |

## ◆ clang_index_isEntityObjCContainerKind()

CINDEX_LINKAGE int clang_index_isEntityObjCContainerKind | ( | CXIdxEntityKind |  | ) |

## ◆ clang_index_setClientContainer()

CINDEX_LINKAGE void clang_index_setClientContainer | ( | const CXIdxContainerInfo * | ,
|  | CXIdxClientContainer |
| ) |  |

For setting a custom CXIdxClientContainer attached to a container.

## ◆ clang_index_setClientEntity()

CINDEX_LINKAGE void clang_index_setClientEntity | ( | const CXIdxEntityInfo * | ,
|  | CXIdxClientEntity |
| ) |  |

For setting a custom CXIdxClientEntity attached to an entity.

## ◆ clang_IndexAction_create()

CINDEX_LINKAGE CXIndexAction clang_IndexAction_create | ( | CXIndex | CIdx | ) |

An indexing action/session, to be applied to one or multiple translation units.

Parameters

  CIdx | The index object with which the index action will be associated.

## ◆ clang_IndexAction_dispose()

CINDEX_LINKAGE void clang_IndexAction_dispose | ( | CXIndexAction |  | ) |

Destroy the given index action.

The index action must not be destroyed until all of the translation units created within that index action have been destroyed.

## ◆ clang_indexLoc_getCXSourceLocation()

CINDEX_LINKAGE CXSourceLocation clang_indexLoc_getCXSourceLocation | ( | CXIdxLoc | loc | ) |

Retrieve the CXSourceLocation represented by the given CXIdxLoc.

## ◆ clang_indexLoc_getFileLocation()

CINDEX_LINKAGE void clang_indexLoc_getFileLocation | ( | CXIdxLoc | loc,
|  | CXIdxClientFile * | indexFile,
|  | CXFile * | file,
|  | unsigned * | line,
|  | unsigned * | column,
|  | unsigned * | offset
| ) |  |

Retrieve the CXIdxFile, file, line, column, and offset represented by the given CXIdxLoc.

If the location refers into a macro expansion, retrieves the location of the macro expansion and if it refers into a macro argument retrieves the location of the argument.

## ◆ clang_indexSourceFile()

CINDEX_LINKAGE int clang_indexSourceFile | ( | CXIndexAction | ,
|  | CXClientData | client_data,
|  | IndexerCallbacks * | index_callbacks,
|  | unsigned | index_callbacks_size,
|  | unsigned | index_options,
|  | const char * | source_filename,
|  | const char *const * | command_line_args,
|  | int | num_command_line_args,
|  | struct CXUnsavedFile * | unsaved_files,
|  | unsigned | num_unsaved_files,
|  | CXTranslationUnit * | out_TU,
|  | unsigned | TU_options
| ) |  |

Index the given source file and the translation unit corresponding to that file via callbacks implemented through IndexerCallbacks.

Parameters

  | client_data | pointer data supplied by the client, which will be passed to the invoked callbacks.
  | index_callbacks | Pointer to indexing callbacks that the client implements.
  | index_callbacks_size | Size of IndexerCallbacks structure that gets passed in index_callbacks.
  | index_options | A bitmask of options that affects how indexing is performed. This should be a bitwise OR of the CXIndexOpt_XXX flags.
  [out] | out_TU | pointer to store a `CXTranslationUnit` that can be reused after indexing is finished. Set to `NULL` if you do not require it.

Returns
  0 on success or if there were errors from which the compiler could recover. If there is a failure from which there is no recovery, returns a non-zero `CXErrorCode`.

The rest of the parameters are the same as clang_parseTranslationUnit.

## ◆ clang_indexSourceFileFullArgv()

CINDEX_LINKAGE int clang_indexSourceFileFullArgv | ( | CXIndexAction | ,
|  | CXClientData | client_data,
|  | IndexerCallbacks * | index_callbacks,
|  | unsigned | index_callbacks_size,
|  | unsigned | index_options,
|  | const char * | source_filename,
|  | const char *const * | command_line_args,
|  | int | num_command_line_args,
|  | struct CXUnsavedFile * | unsaved_files,
|  | unsigned | num_unsaved_files,
|  | CXTranslationUnit * | out_TU,
|  | unsigned | TU_options
| ) |  |

Same as clang_indexSourceFile but requires a full command line for `command_line_args` including argv[0].

This is useful if the standard library paths are relative to the binary.

## ◆ clang_indexTranslationUnit()

CINDEX_LINKAGE int clang_indexTranslationUnit | ( | CXIndexAction | ,
|  | CXClientData | client_data,
|  | IndexerCallbacks * | index_callbacks,
|  | unsigned | index_callbacks_size,
|  | unsigned | index_options,
|  | CXTranslationUnit |
| ) |  |

Index the given translation unit via callbacks implemented through IndexerCallbacks.

The order of callback invocations is not guaranteed to be the same as when indexing a source file. The high level order will be:

-Preprocessor callbacks invocations -Declaration/reference callbacks invocations -Diagnostic callback invocations

The parameters are the same as clang_indexSourceFile.

Returns
  If there is a failure from which there is no recovery, returns non-zero, otherwise returns 0.

## ◆ clang_Type_visitFields()

CINDEX_LINKAGE unsigned clang_Type_visitFields | ( | CXType | T,
|  | CXFieldVisitor | visitor,
|  | CXClientData | client_data
| ) |  |

Visit the fields of a particular type.

This function visits all the direct fields of the given cursor, invoking the given `visitor` function with the cursors of each visited field. The traversal may be ended prematurely, if the visitor returns `CXFieldVisit_Break`.

Parameters

  T | the record type whose field may be visited.
  visitor | the visitor function that will be invoked for each field of `T`.
  client_data | pointer data supplied by the client, which will be passed to the visitor each time it is invoked.

Returns
  a non-zero value if the traversal was terminated prematurely by the visitor returning `CXFieldVisit_Break`.