187 AUTO_TRACE(
"name={}:line={},header={},isSystem={}",
name(),line,headerName,isSystem);
205 AUTO_TRACE(
"{}:{} class {} of module {} exported={}",
215 cdm->setExported(
true);
222 AUTO_TRACE(
"{}:{} concept {} of module {} exported={}",
234 cdm->setExported(
true);
242 if (ml->listType()==lt)
256 (ml->listType().isDeclaration() && sortBriefDocs) ||
257 (ml->listType().isDocumentation() && sortMemberDocs));
259 if (ml->listType().isDeclaration())
271 AUTO_TRACE(
"{}:{} member {} of module {} exported={}",
276 if (allMemberList==
nullptr)
306 mdm->setExported(
true);
312 AUTO_TRACE(
"{} merging symbols of {} ({}:{})",
328 for (
const auto &md : *srcMl)
330 dstMl->push_back(md);
334 mergeMemberList(MemberListType::DecVarMembers());
335 mergeMemberList(MemberListType::DecFuncMembers());
336 mergeMemberList(MemberListType::DecTypedefMembers());
337 mergeMemberList(MemberListType::DecEnumMembers());
360 bool writeOutlinePanel = generateTreeView &&
Config_getBool(PAGE_OUTLINE_PANEL);
392 case LayoutDocEntry::BriefDesc:
395 case LayoutDocEntry::MemberDeclStart:
398 case LayoutDocEntry::ModuleClasses:
401 case LayoutDocEntry::ModuleConcepts:
404 case LayoutDocEntry::ModuleExports:
407 case LayoutDocEntry::ModuleUsedFiles:
410 case LayoutDocEntry::MemberGroups:
413 case LayoutDocEntry::MemberDecl:
419 case LayoutDocEntry::MemberDeclEnd:
422 case LayoutDocEntry::DetailedDesc:
425 case LayoutDocEntry::MemberDefStart:
428 case LayoutDocEntry::MemberDef:
434 case LayoutDocEntry::MemberDefEnd:
437 case LayoutDocEntry::AuthorSection:
440 case LayoutDocEntry::ClassIncludes:
441 case LayoutDocEntry::ClassInheritanceGraph:
442 case LayoutDocEntry::ClassNestedClasses:
443 case LayoutDocEntry::ClassCollaborationGraph:
444 case LayoutDocEntry::ClassAllMembersLink:
445 case LayoutDocEntry::ClassUsedFiles:
446 case LayoutDocEntry::ClassInlineClasses:
447 case LayoutDocEntry::FileClasses:
448 case LayoutDocEntry::FileConcepts:
449 case LayoutDocEntry::FileInterfaces:
450 case LayoutDocEntry::FileStructs:
451 case LayoutDocEntry::FileExceptions:
452 case LayoutDocEntry::FileNamespaces:
453 case LayoutDocEntry::FileConstantGroups:
454 case LayoutDocEntry::FileIncludes:
455 case LayoutDocEntry::FileIncludeGraph:
456 case LayoutDocEntry::FileIncludedByGraph:
457 case LayoutDocEntry::FileInlineClasses:
458 case LayoutDocEntry::FileSourceLink:
459 case LayoutDocEntry::NamespaceNestedNamespaces:
460 case LayoutDocEntry::NamespaceNestedConstantGroups:
461 case LayoutDocEntry::NamespaceClasses:
462 case LayoutDocEntry::NamespaceConcepts:
463 case LayoutDocEntry::NamespaceInterfaces:
464 case LayoutDocEntry::NamespaceStructs:
465 case LayoutDocEntry::NamespaceExceptions:
466 case LayoutDocEntry::NamespaceInlineClasses:
467 case LayoutDocEntry::ConceptDefinition:
468 case LayoutDocEntry::GroupClasses:
469 case LayoutDocEntry::GroupConcepts:
470 case LayoutDocEntry::GroupModules:
471 case LayoutDocEntry::GroupInlineClasses:
472 case LayoutDocEntry::GroupNamespaces:
473 case LayoutDocEntry::GroupDirs:
474 case LayoutDocEntry::GroupNestedGroups:
475 case LayoutDocEntry::GroupFiles:
476 case LayoutDocEntry::GroupGraph:
477 case LayoutDocEntry::GroupPageDocs:
478 case LayoutDocEntry::DirSubDirs:
479 case LayoutDocEntry::DirFiles:
480 case LayoutDocEntry::DirGraph:
481 err(
"Internal inconsistency: member '{}' should not be part of "
482 "LayoutDocManager::Module entry list\n",lde->entryToString());
488 if (generateTreeView)
498 endFile(ol,generateTreeView,
true);
587 .setIndexWords(
true));
606 .setSingleLine(
true))
615 ol.
writeDoc(ast.get(),
this,
nullptr);
639 mg->writeDeclarations(ol,
nullptr,
nullptr,
nullptr,
nullptr,
this);
677 ml->countDecMembers();
678 ml->countDocMembers();
682 mg->countDecMembers();
683 mg->countDocMembers();
700 mg->addListReferences(
this);
704 if (ml->listType().isDocumentation())
706 ml->addListReferences(
this);
716 mg->addRequirementReferences(
this);
720 if (ml->listType().isDocumentation())
722 ml->addRequirementReferences(
this);
731 if (ml->listType().isDeclaration())
743 mg->addToDeclarationSection();
752 mg->distributeMemberGroupDocumentation();
763 mg->findSectionsInDocumentation(
this);
767 if (ml->listType().isDeclaration())
769 ml->findSectionsInDocumentation(
this);
778 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
803 FileDef *f2 = m2->getFileDef();
806 static auto typeRank = [](
const ModuleDef *m) ->
int
810 if (m->partitionName().isEmpty())
return 0;
815 if (!m->partitionName().isEmpty())
return 2;
819 auto tr1 = typeRank(m1);
820 auto tr2 = typeRank(m2);
822 return tr1<tr2 || (tr1==tr2 && diff<0);
837 if (lde->kind()==LayoutDocEntry::ModuleClasses &&
m_classes.declVisible() && ls)
843 else if (lde->kind()==LayoutDocEntry::ModuleConcepts &&
m_concepts.declVisible() && ls)
849 else if (lde->kind()==LayoutDocEntry::ModuleUsedFiles && ls)
855 else if (lde->kind()==LayoutDocEntry::MemberDecl)
933 .setSingleLine(
true))
938 ol.
writeDoc(ast.get(),
this,
nullptr);
958 for (
const auto &importInfo : importInfoList)
972 ol.
docify(importInfo.importName);
985 .setSingleLine(
true));
1006 FileDef *fd = mod->getFileDef();
1041 .setSingleLine(
true));
1056 FileDef *fd = mod->getFileDef();
1057 if (fd) result.push_back(fd);
1067 if (lde->kind()==LayoutDocEntry::MemberDecl)
1075 for (
const auto &md : *ml)
1077 if (md->visibleInIndex())
1085 else if (lde->kind()==LayoutDocEntry::ModuleClasses)
1089 if (cd->isLinkableInProject())
1095 else if (lde->kind()==LayoutDocEntry::ModuleConcepts)
1099 if (cd->isLinkableInProject())
1112 tagFile <<
" <compound kind=\"module\">\n";
1117 tagFile <<
" <filename>" <<
convertToXML(fn) <<
"</filename>\n";
1128 switch (lde->kind())
1130 case LayoutDocEntry::ModuleExports:
1134 tagFile <<
" <export>" <<
convertToXML(importInfo.importName) <<
"</export>\n";
1138 case LayoutDocEntry::ModuleClasses:
1142 if (cd->isLinkableInProject())
1144 tagFile <<
" <class kind=\"" << cd->compoundTypeString()
1150 case LayoutDocEntry::ModuleConcepts:
1154 if (cd->isLinkableInProject())
1162 case LayoutDocEntry::ModuleUsedFiles:
1166 if (usedFd->isLinkableInProject())
1168 tagFile <<
" <file>" <<
convertToXML(usedFd->name()) <<
"</file>\n";
1173 case LayoutDocEntry::MemberDecl:
1194 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
1197 tagFile <<
" </compound>\n";
1204 if (d==
nullptr)
return nullptr;
1210 if (d==
nullptr)
return nullptr;
1228 for (
const auto &mod : *
this)
1230 bool isLink = mod->isLinkable();
1231 if (isLink || !hideUndocClasses)
1242 for (
const auto &mod : *
this)
1273 AUTO_TRACE(
"{}:{}: Found module name='{}' partition='{}' exported='{}'",
1274 fileName,line,moduleName,partitionName,exported);
1275 std::lock_guard lock(
p->mutex);
1277 std::unique_ptr<ModuleDef> modDef = std::make_unique<ModuleDefImpl>(fileName,line,column,moduleName,mt,partitionName);
1278 auto mod =
p->moduleFileMap.add(fileName,std::move(modDef));
1279 auto it =
p->moduleNameMap.find(moduleName.
str());
1280 if (it ==
p->moduleNameMap.end())
1284 p->moduleNameMap.emplace(moduleName.
str(),ml);
1288 it->second.push_back(mod);
1294 std::lock_guard lock(
p->mutex);
1296 p->externalImports.clear();
1297 p->moduleNameMap.clear();
1298 p->moduleFileMap.clear();
1303 AUTO_TRACE(
"{}:{} headerName={} isSystem={}",moduleFile,line,headerName,isSystem);
1304 std::lock_guard lock(
p->mutex);
1305 auto mod =
p->moduleFileMap.find(moduleFile);
1312 AUTO_TRACE_ADD(
"imported header '{}' found in file '{}' that is not a module",headerName,moduleFile);
1314 p->headers.emplace_back(moduleFile,headerName,isSystem);
1318 bool isExported,
const QCString &partitionName)
1320 AUTO_TRACE(
"{}:{} importName={},isExported={},partitionName={}",
1321 moduleFile,line,importName,isExported,partitionName);
1322 std::lock_guard lock(
p->mutex);
1323 auto mod =
p->moduleFileMap.find(moduleFile);
1332 p->externalImports[moduleFile.
str()].emplace_back(
nullptr,importName,line,partitionName);
1338 std::lock_guard lock(
p->mutex);
1339 auto mod =
p->moduleFileMap.find(root->
fileName);
1344 if (cdm) cdm->setModuleDef(mod);
1350 std::lock_guard lock(
p->mutex);
1351 auto mod =
p->moduleFileMap.find(root->
fileName);
1356 if (cdm) cdm->setModuleDef(mod);
1362 std::lock_guard lock(
p->mutex);
1363 auto mod =
p->moduleFileMap.find(root->
fileName);
1368 if (mdm) mdm->setModuleDef(mod);
1374 std::lock_guard lock(
p->mutex);
1375 auto mod =
p->moduleFileMap.find(fileName);
1380 modi->
setId(clangId);
1387 for (
auto &[partitionFileName,importInfoList] : mod->
getImports())
1389 for (
auto &importInfo : importInfoList)
1391 AUTO_TRACE_ADD(
"partitionFileName={} importName={} partitionName={}",
1392 partitionFileName,importInfo.importName,importInfo.partitionName);
1393 if (importInfo.importName==intfMod->
name() && !importInfo.partitionName.
isEmpty() &&
1394 importInfo.exported)
1396 auto it =
p->moduleNameMap.find(importInfo.importName.str());
1397 if (it !=
p->moduleNameMap.end())
1399 for (
auto importedMod : it->second)
1401 if (importedMod->qualifiedName()==importInfo.importName+
":"+importInfo.partitionName)
1404 mod->
name(),importedMod->name(),importedMod->partitionName());
1407 for (
const auto &[partitionFileName_,partitionImportInfoList] : importedMod->getImports())
1409 for (
const auto &partitionImportInfo : partitionImportInfoList)
1411 if (partitionImportInfo.exported && intfMod->
name()!=partitionImportInfo.importName)
1429 for (
auto &mod :
p->moduleFileMap)
1437 for (
const auto &[fileName,importInfoList] : mod->getImports())
1439 for (
const auto &importInfo : importInfoList)
1441 if (importInfo.exported && mod->name()!=importInfo.importName)
1462 for (
auto &mod :
p->moduleFileMap)
1464 FileDef *fd = mod->getFileDef();
1467 for (
const auto &[fileName,importInfoList] : mod->getImports())
1469 for (
const auto &importInfo : importInfoList)
1472 const FileDef *importedFd = importedModule ? importedModule->
getFileDef() :
nullptr;
1474 mod->qualifiedName(), importInfo.qualifiedName(), importInfo.line, fd?fd->
absFilePath():
"");
1480 for (
const auto &[fileName,importInfoList] :
p->externalImports)
1482 for (
const auto &importInfo : importInfoList)
1486 AUTO_TRACE_ADD(
"externalImport name={} fd={}",fileName,(
void*)fd);
1499 for (
const auto &headerInfo :
p->headers)
1503 AUTO_TRACE_ADD(
"header name={} fd={}",headerInfo.fileName,(
void*)fd);
1523 intfModImpl->mergeSymbolsFrom(partitionModImpl);
1529 for (
auto &mod :
p->moduleFileMap)
1531 if (mod->isPrimaryInterface())
1533 for (
auto &[partitionName,partitionMod] : mod->partitions())
1539 auto it =
p->moduleNameMap.find(mod->name().str());
1540 if (it !=
p->moduleNameMap.end())
1542 for (
auto contributingMod : it->second)
1544 AUTO_TRACE_ADD(
" adding contributing module {} to interface module {} type={} partition={} isPrimaryIntf={}",
1545 contributingMod->qualifiedName(),
1548 contributingMod->partitionName(),
1549 contributingMod->isPrimaryInterface());
1559 for (
auto &mod :
p->moduleFileMap)
1567 for (
auto &mod :
p->moduleFileMap)
1569 if (mod->isPrimaryInterface())
1571 mod->writeDocumentation(ol);
1579 for (
const auto &mod :
p->moduleFileMap)
1581 if (mod->isPrimaryInterface()) count++;
1588 return p->moduleFileMap;
1593 return p->moduleFileMap;
1602 warn(root->
fileName,root->
startLine,
"Ignoring documentation for module partition {}. Please place documentation at the primary module name",
1607 auto it =
p->moduleNameMap.find(root->
name.
str());
1608 if (it !=
p->moduleNameMap.end())
1625 warn(root->
fileName,root->
startLine,
"Found documentation for module {} but it has no primary interface unit.",root->
name);
1637 auto it =
p->moduleNameMap.find(moduleName.
str());
1638 if (it !=
p->moduleNameMap.end())
1640 for (
const auto &mod : it->second)
1642 if (mod->isPrimaryInterface())
1653 for (
const auto &mod :
p->moduleFileMap)
1661 for (
const auto &mod :
p->moduleFileMap)
1669 for (
const auto &mod :
p->moduleFileMap)
1677 for (
const auto &mod :
p->moduleFileMap)
1685 for (
auto &mod :
p->moduleFileMap)
1693 for (
auto &mod :
p->moduleFileMap)
A abstract class representing of a compound symbol.
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
The common base class of all entity definitions found in the sources.
virtual bool isLinkable() const =0
virtual QCString anchor() const =0
virtual bool isExported() const =0
virtual QCString briefDescription(bool abbreviate=FALSE) const =0
virtual QCString getReference() const =0
virtual QCString qualifiedName() const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
virtual QCString getOutputFileBase() const =0
virtual const QCString & name() const =0
int getDefLine() const override
bool isReference() const override
const QCString & name() const override
QCString getDefFileName() const override
bool isExported() const override
bool hasBriefDescription() const override
void setId(const QCString &name) override
QCString docFile() const override
QCString briefFile() const override
QCString id() const override
void setReference(const QCString &r) override
const RefItemVector & xrefListItems() const override
QCString briefDescription(bool abbreviate=FALSE) const override
QCString getReference() const override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
bool isHidden() const override
QCString inbodyDocumentation() const override
int docLine() const override
int briefLine() const override
QCString documentation() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
virtual void setBodySegment(int defLine, int bls, int ble)=0
virtual void setHidden(bool b)=0
virtual void setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)=0
virtual void setId(const QCString &name)=0
virtual void setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)=0
virtual void setRequirementReferences(const RequirementRefs &rqli)=0
virtual void setRefItems(const RefItemVector &sli)=0
static bool suppressDocWarnings
static FileNameLinkedMap * inputNameLinkedMap
Represents an unstructured piece of information, about an entity found in the sources.
RequirementRefs rqli
references to requirements
int docLine
line number at which the documentation was found
int endBodyLine
line number where the definition ends
bool exported
is the symbol exported from a C++20 module
QCString fileName
file this entry was extracted from
int startLine
start line of entry in the source
QCString briefFile
file in which the brief desc. was found
int bodyLine
line number of the body in the source
QCString doc
documentation block (partly parsed)
RefItemVector sli
special lists (test/todo/bug/deprecated/..) this entry is in
QCString docFile
file in which the documentation was found
bool hidden
does this represent an entity that is hidden from the output
QCString brief
brief description (doc block)
int briefLine
line number at which the brief desc. was found
A model of a file symbol.
virtual void setModuleDef(ModuleDef *mod)=0
virtual void addIncludedByDependency(const FileDef *fd, const QCString &incName, IncludeKind kind)=0
virtual QCString getPath() const =0
virtual QCString absFilePath() const =0
virtual QCString fileName() const =0
virtual void addIncludeDependency(const FileDef *fd, const QCString &incName, IncludeKind kind)=0
static LayoutDocManager & instance()
Returns a reference to this singleton.
A model of a class/file/namespace member symbol.
virtual const ClassDef * getClassDef() const =0
virtual MemberType memberType() const =0
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
A list of MemberDef objects as shown in documentation sections.
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const QCString &title, const QCString &subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, const ClassDef *inheritedFrom=nullptr, MemberListType lt=MemberListType::PubMethods(), bool showSectionTitle=true) const
Writes the list of members to the output.
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
MemberListType listType() const
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, const QCString &anchor, bool showEnumValues=FALSE, bool showInline=FALSE) const
Wrapper class for the MemberListType type.
constexpr const char * toLabel() const noexcept
bool contains(const MemberDef *md) const
void push_back(const T &value)
virtual const ImportInfoMap & getImports() const =0
virtual FileDef * getFileDef() const =0
void addPartition(ModuleDefImpl *mod)
void distributeMemberGroupDocumentation()
QCString anchor() const override
void startMemberDeclarations(OutputList &ol)
DefType definitionType() const override
QCString getOutputFileBase() const override
void endMemberDeclarations(OutputList &ol)
MemberList * getMemberList(MemberListType lt) const override
void writeDocumentation(OutputList &ol) override
FileList getUsedFiles() const override
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
ModuleList m_contributing
void addMemberToModule(const Entry *root, MemberDef *md)
bool isPrimaryInterface() const override
QCString qualifiedName() const override
void addConceptToModule(const Entry *root, ConceptDef *cd)
FileDef * getFileDef() const override
QCString partitionName() const override
void addClassToModule(const Entry *root, ClassDef *cd)
bool isLinkableInProject() const override
void writeTagFile(TextStream &t) const override
void writeMemberGroups(OutputList &ol)
const ModuleDef * m_primaryInterface
void startMemberDocumentation(OutputList &ol)
void writeAuthorSection(OutputList &ol)
const ImportInfoMap & getImports() const override
MemberLists m_memberLists
int countVisibleMembers() const override
void setPrimaryInterface(const ModuleDef *mod)
void writeClassDeclarations(OutputList &ol, const QCString &title)
void mergeSymbolsFrom(ModuleDefImpl *other)
void writeExports(OutputList &ol, const QCString &title)
const ClassLinkedRefMap & getClasses() const override
void addMembersToMemberGroup()
void writeFiles(OutputList &ol, const QCString &title)
void addExportedModule(const QCString &moduleName, const ImportInfo &info)
void endMemberDocumentation(OutputList &ol)
void setFileDef(FileDef *fd)
ConceptLinkedRefMap m_concepts
void addMemberToList(MemberListType lt, MemberDef *md)
void writeDetailedDescription(OutputList &ol, const QCString &title)
CodeSymbolType codeSymbolType() const override
const ImportInfoMap & getExports() const override
void writeBriefDescription(OutputList &ol)
ModuleDefImpl(const QCString &fileName, int startLine, int startColom, const QCString &name, Type type, const QCString &partitionName)
void addRequirementReferences()
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
ClassLinkedRefMap m_classes
const MemberGroupList & getMemberGroups() const override
void findSectionsInDocumentation()
ImportInfoMap m_exportedModules
void addImport(int line, const QCString &moduleName, const QCString &partitionName, bool isExported)
bool isLinkable() const override
QCString displayName(bool=TRUE) const override
bool hasDetailedDescription() const
void addContributingModule(ModuleDefImpl *mod)
void writeSummaryLinks(OutputList &ol) const override
void writePageNavigation(OutputList &ol) const override
Type moduleType() const override
const ModuleMap & partitions() const override
const MemberLists & getMemberLists() const override
void writeDeclarationLink(OutputList &ol, bool &found, const QCString &header, bool localNames) const
MemberGroupList m_memberGroups
void writeConcepts(OutputList &ol, const QCString &title)
const ConceptLinkedRefMap & getConcepts() const override
void addHeader(int line, const QCString &headerName, bool isSystem)
void writeDeclaration(OutputList &ol, const QCString &header, bool localNames) const
int numDocumentedModules() const
static ModuleManager & instance()
void addDocs(const Entry *root)
void collectExportedSymbolsRecursively(ModuleDef *intfMod, ModuleDef *mod)
void addHeader(const QCString &moduleFile, int line, const QCString &headerName, bool isSystem)
void addConceptToModule(const Entry *root, ConceptDef *cd)
ModuleLinkedMap & modules()
void addTagInfo(const QCString &moduleFile, const QCString &tagName, const QCString &clangId)
void addClassToModule(const Entry *root, ClassDef *cd)
void createModuleDef(const QCString &fileName, int line, int column, bool exported, const QCString &moduleName, const QCString &partitionName=QCString())
ModuleDef * getPrimaryInterface(const QCString &moduleName) const
void addMemberToModule(const Entry *root, MemberDef *md)
void writeDocumentation(OutputList &ol)
void addMembersToMemberGroup()
std::unique_ptr< Private > p
void addRequirementReferences()
void findSectionsInDocumentation()
void collectExportedSymbols()
void resolvePartitionsRecursively(ModuleDef *intfMod, ModuleDef *mod)
void addImport(const QCString &moduleFile, int line, const QCString &importName, bool isExported, const QCString &partitionName=QCString())
void distributeMemberGroupDocumentation()
Class representing a list of output generators that are written to in parallel.
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void startMemberDeclaration()
void endTitleHead(const QCString &fileName, const QCString &name)
void disable(OutputType o)
void startTitleHead(const QCString &fileName)
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
void enable(OutputType o)
void endMemberDescription()
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
void startHeaderSection()
void docify(const QCString &s)
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, const DocOptions &options)
void startParagraph(const QCString &classDef=QCString())
void startTextBlock(bool dense=FALSE)
void startMemberSections()
void endMemberItem(OutputGenerator::MemberItemType type)
void pushGeneratorState()
void insertMemberAlign(bool templ=FALSE)
void disableAllBut(OutputType o)
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
void writeAnchor(const QCString &fileName, const QCString &name)
void endGroupHeader(int extraLevels=0)
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
void parseText(const QCString &textStr)
void startTextLink(const QCString &file, const QCString &anchor)
void startMemberHeader(const QCString &anchor, int typ=2)
This is an alternative implementation of QCString.
int find(char c, int index=0, bool cs=TRUE) const
QCString & prepend(const char *s)
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
Text streaming class that buffers data.
ClassDefMutable * toClassDefMutable(Definition *d)
ConceptDefMutable * toConceptDefMutable(Definition *d)
#define Config_getBool(name)
#define Config_getString(name)
#define AUTO_TRACE_ADD(...)
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, const DocOptions &options)
IDocParserPtr createDocParser()
factory function to create a parser
static void writeTagFile()
void addModuleToGroups(const Entry *root, ModuleDef *mod)
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
void startFile(OutputList &ol, const QCString &name, bool isSource, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel, const QCString &allMembersFile)
Translator * theTranslator
MemberDefMutable * toMemberDefMutable(Definition *d)
#define warn(file, line, fmt,...)
std::vector< HeaderInfo > HeaderInfoVector
static ModuleDefImpl * toModuleDefImpl(ModuleDef *m)
ModuleDef * toModuleDef(Definition *d)
std::unordered_map< std::string, ModuleDef * > ModuleMap
std::unordered_map< std::string, ImportInfoList > ImportInfoMap
int qstricmp_sort(const char *str1, const char *str2)
const char * qPrint(const char *s)
Represents of a member declaration list with configurable title and subtitle.
QCString title(SrcLangExt lang) const
bool visible() const override
Represents of a member definition list with configurable title.
QCString title(SrcLangExt lang) const
QCString title(SrcLangExt lang) const
ModuleLinkedMap moduleFileMap
ImportInfoMap externalImports
std::unordered_map< std::string, ModuleList > moduleNameMap
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
void addGroupListToTitle(OutputList &ol, const Definition *d)
static QCString stripFromPath(const QCString &p, const StringVector &l)
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertToXML(const QCString &s, bool keepEntities)
QCString determineAbsoluteIncludeName(const QCString &curFile, const QCString &incFileName)
FileDef * findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.