clang 18.0.0git
|
The visitor that organizes API information in the Symbol Graph format. More...
#include "clang/ExtractAPI/Serialization/SymbolGraphSerializer.h"
Public Types | |
enum | RelationshipKind { MemberOf , InheritsFrom , ConformsTo , ExtensionTo } |
The kind of a relationship between two symbols. More... | |
enum | ConstraintKind { Conformance , ConditionalConformance } |
Static Public Member Functions | |
static std::optional< Object > | serializeSingleSymbolSGF (StringRef USR, const APISet &API) |
Serialize a single symbol SGF. | |
static StringRef | getRelationshipString (RelationshipKind Kind) |
Get the string representation of the relationship kind. | |
static StringRef | getConstraintString (ConstraintKind Kind) |
Protected Attributes | |
const APIIgnoresList & | IgnoresList |
The list of symbols to ignore. | |
SymbolGraphSerializerOption | Options |
llvm::StringSet | visitedCategories |
![]() | |
const APISet & | API |
Additional Inherited Members | |
![]() | |
APISetVisitor (const APISet &API) | |
~APISetVisitor ()=default | |
SymbolGraphSerializer * | getDerived () |
The visitor that organizes API information in the Symbol Graph format.
The Symbol Graph format (https://github.com/apple/swift-docc-symbolkit) models an API set as a directed graph, where nodes are symbol declarations, and edges are relationships between the connected symbols.
Definition at line 46 of file SymbolGraphSerializer.h.
Enumerator | |
---|---|
Conformance | |
ConditionalConformance |
Definition at line 100 of file SymbolGraphSerializer.h.
The kind of a relationship between two symbols.
Definition at line 79 of file SymbolGraphSerializer.h.
|
inline |
Definition at line 233 of file SymbolGraphSerializer.h.
|
static |
Definition at line 819 of file SymbolGraphSerializer.cpp.
References ConditionalConformance, and Conformance.
|
static |
Get the string representation of the relationship kind.
Definition at line 805 of file SymbolGraphSerializer.cpp.
References ConformsTo, ExtensionTo, InheritsFrom, and MemberOf.
Referenced by visitObjCCategoryRecord().
Object SymbolGraphSerializer::serialize | ( | void | ) |
Serialize the APIs in APISet
in the Symbol Graph format.
Definition at line 1229 of file SymbolGraphSerializer.cpp.
References clang::extractapi::APISetVisitor< SymbolGraphSerializer >::traverseAPISet().
Referenced by clang::ExtractAPIActionBase::ImplEndSourceFileAction(), and serialize().
void SymbolGraphSerializer::serialize | ( | raw_ostream & | os | ) |
Wrap serialize(void) and write out the serialized JSON object to os
.
Definition at line 1245 of file SymbolGraphSerializer.cpp.
References clang::extractapi::SymbolGraphSerializerOption::Compact, Options, and serialize().
void SymbolGraphSerializer::serializeSingleRecord | ( | const APIRecord * | Record | ) |
Serialize a single record.
Definition at line 1161 of file SymbolGraphSerializer.cpp.
References MemberOf, clang::extractapi::APIRecord::RK_CXXClass, clang::extractapi::APIRecord::RK_Enum, clang::extractapi::APIRecord::RK_GlobalFunction, clang::extractapi::APIRecord::RK_GlobalVariable, clang::extractapi::APIRecord::RK_MacroDefinition, clang::extractapi::APIRecord::RK_ObjCCategory, clang::extractapi::APIRecord::RK_ObjCInterface, clang::extractapi::APIRecord::RK_ObjCProtocol, clang::extractapi::APIRecord::RK_StaticField, clang::extractapi::APIRecord::RK_Struct, clang::extractapi::APIRecord::RK_Typedef, clang::extractapi::APIRecord::RK_Unknown, visitCXXClassRecord(), visitEnumRecord(), visitGlobalFunctionRecord(), visitGlobalVariableRecord(), visitMacroDefinitionRecord(), visitObjCCategoryRecord(), visitObjCContainerRecord(), visitStaticFieldRecord(), visitStructRecord(), and visitTypedefRecord().
Referenced by serializeSingleSymbolSGF().
|
static |
Serialize a single symbol SGF.
This is primarily used for libclang.
std::nullopt
. Definition at line 1254 of file SymbolGraphSerializer.cpp.
References clang::extractapi::APISetVisitor< SymbolGraphSerializer >::API, clang::extractapi::APISet::findRecordForUSR(), clang::PresumedLoc::getFilename(), clang::extractapi::APISet::getLanguage(), clang::extractapi::APIRecord::IsFromSystemHeader, clang::extractapi::APIRecord::Location, clang::extractapi::APISet::ProductName, serializeSingleRecord(), and clang::extractapi::APIRecord::USR.
void SymbolGraphSerializer::visitClassTemplatePartialSpecializationRecord | ( | const ClassTemplatePartialSpecializationRecord & | Record | ) |
Definition at line 939 of file SymbolGraphSerializer.cpp.
References clang::Class, InheritsFrom, and MemberOf.
void SymbolGraphSerializer::visitClassTemplateRecord | ( | const ClassTemplateRecord & | Record | ) |
Definition at line 910 of file SymbolGraphSerializer.cpp.
References clang::Class, InheritsFrom, and MemberOf.
void SymbolGraphSerializer::visitClassTemplateSpecializationRecord | ( | const ClassTemplateSpecializationRecord & | Record | ) |
Definition at line 924 of file SymbolGraphSerializer.cpp.
References clang::Class, InheritsFrom, and MemberOf.
void SymbolGraphSerializer::visitConceptRecord | ( | const ConceptRecord & | Record | ) |
Definition at line 1026 of file SymbolGraphSerializer.cpp.
void SymbolGraphSerializer::visitCXXClassRecord | ( | const CXXClassRecord & | Record | ) |
Definition at line 897 of file SymbolGraphSerializer.cpp.
References clang::Class, InheritsFrom, and MemberOf.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitCXXFieldRecord | ( | const CXXFieldRecord & | Record | ) |
Definition at line 1002 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitCXXFieldTemplateRecord | ( | const CXXFieldTemplateRecord & | Record | ) |
Definition at line 1013 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitCXXInstanceMethodRecord | ( | const CXXInstanceMethodRecord & | Record | ) |
Definition at line 954 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitCXXStaticMethodRecord | ( | const CXXStaticMethodRecord & | Record | ) |
Definition at line 965 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitEnumRecord | ( | const EnumRecord & | Record | ) |
Visit an enum record.
Definition at line 870 of file SymbolGraphSerializer.cpp.
References clang::Enum.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitGlobalFunctionRecord | ( | const GlobalFunctionRecord & | Record | ) |
Visit a global function record.
Definition at line 852 of file SymbolGraphSerializer.cpp.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitGlobalFunctionTemplateRecord | ( | const GlobalFunctionTemplateRecord & | Record | ) |
Definition at line 1059 of file SymbolGraphSerializer.cpp.
void SymbolGraphSerializer::visitGlobalFunctionTemplateSpecializationRecord | ( | const GlobalFunctionTemplateSpecializationRecord & | Record | ) |
Definition at line 1067 of file SymbolGraphSerializer.cpp.
void SymbolGraphSerializer::visitGlobalVariableRecord | ( | const GlobalVariableRecord & | Record | ) |
Visit a global variable record.
Definition at line 861 of file SymbolGraphSerializer.cpp.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitGlobalVariableTemplatePartialSpecializationRecord | ( | const GlobalVariableTemplatePartialSpecializationRecord & | Record | ) |
Definition at line 1050 of file SymbolGraphSerializer.cpp.
void SymbolGraphSerializer::visitGlobalVariableTemplateRecord | ( | const GlobalVariableTemplateRecord & | Record | ) |
Definition at line 1034 of file SymbolGraphSerializer.cpp.
void SymbolGraphSerializer::visitGlobalVariableTemplateSpecializationRecord | ( | const GlobalVariableTemplateSpecializationRecord & | Record | ) |
Definition at line 1042 of file SymbolGraphSerializer.cpp.
void SymbolGraphSerializer::visitMacroDefinitionRecord | ( | const MacroDefinitionRecord & | Record | ) |
Visit a macro definition record.
Definition at line 1151 of file SymbolGraphSerializer.cpp.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitMethodTemplateRecord | ( | const CXXMethodTemplateRecord & | Record | ) |
Definition at line 976 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitMethodTemplateSpecializationRecord | ( | const CXXMethodTemplateSpecializationRecord & | Record | ) |
Definition at line 989 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitNamespaceRecord | ( | const NamespaceRecord & | Record | ) |
Definition at line 841 of file SymbolGraphSerializer.cpp.
References MemberOf.
void SymbolGraphSerializer::visitObjCCategoryRecord | ( | const ObjCCategoryRecord & | Record | ) |
Visit an Objective-C category record.
Definition at line 1112 of file SymbolGraphSerializer.cpp.
References clang::extractapi::APISetVisitor< SymbolGraphSerializer >::API, ConformsTo, ExtensionTo, clang::extractapi::APISet::getLanguage(), getRelationshipString(), clang::extractapi::APIRecord::RK_ObjCCategoryModule, and visitedCategories.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitObjCContainerRecord | ( | const ObjCContainerRecord & | Record | ) |
Visit an Objective-C container record.
Definition at line 1075 of file SymbolGraphSerializer.cpp.
References Category, ConformsTo, and InheritsFrom.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitStaticFieldRecord | ( | const StaticFieldRecord & | Record | ) |
Definition at line 888 of file SymbolGraphSerializer.cpp.
References MemberOf.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitStructRecord | ( | const StructRecord & | Record | ) |
Visit a struct record.
Definition at line 879 of file SymbolGraphSerializer.cpp.
References clang::Struct.
Referenced by serializeSingleRecord().
void SymbolGraphSerializer::visitTypedefRecord | ( | const TypedefRecord & | Record | ) |
Visit a typedef record.
Definition at line 1210 of file SymbolGraphSerializer.cpp.
Referenced by serializeSingleRecord().
|
protected |
The list of symbols to ignore.
Note: This should be consulted before emitting a symbol.
Definition at line 155 of file SymbolGraphSerializer.h.
|
protected |
Definition at line 157 of file SymbolGraphSerializer.h.
Referenced by serialize().
|
protected |
Definition at line 159 of file SymbolGraphSerializer.h.
Referenced by visitObjCCategoryRecord().