187 return std::make_unique<GroupDefImpl>(fileName,line,name,title,refFileName);
197 if (!refFileName.
empty())
199 m_fileName=stripExtension(refFileName);
203 m_fileName = convertNameToFile(DString(
"group_")+na);
244 mg->distributeMemberGroupDocumentation();
256 mg->findSectionsInDocumentation(
this);
261 if (ml->listType().isDeclaration())
263 ml->findSectionsInDocumentation(
this);
275 [](
const auto &fd1,
const auto &fd2)
276 { return dstricmp_sort(fd1->name(),fd2->name())<0; }),
362 if (ml->listType().isDeclaration())
376 for (
auto &srcMi : *mni)
378 const MemberDef *srcMd = srcMi->memberDef();
379 if (srcMd==md)
return false;
417 case MemberType::Variable:
424 case MemberType::Function:
431 case MemberType::Typedef:
438 case MemberType::Enumeration:
445 case MemberType::EnumValue:
452 case MemberType::Define:
459 case MemberType::Signal:
466 case MemberType::Slot:
475 else if (md->
protection()==Protection::Protected)
492 case MemberType::Event:
499 case MemberType::Property:
506 case MemberType::Friend:
514 err(
"GroupDefImpl::insertMembers(): "
515 "member '{}' (typeid='{}') with scope '{}' inserted in group scope '{}'!\n",
534 case MemberType::Variable:
538 case MemberType::Function:
542 case MemberType::Typedef:
546 case MemberType::Enumeration:
550 case MemberType::EnumValue:
554 case MemberType::Define:
558 case MemberType::Signal:
562 case MemberType::Slot:
568 else if (md->
protection()==Protection::Protected)
579 case MemberType::Event:
583 case MemberType::Property:
587 case MemberType::Friend:
592 err(
"GroupDefImpl::removeMember(): unexpected member remove in file!\n");
598 const DString &includeName,
bool local,
bool force)
601 if (!force || includeName.
empty())
return;
657 if (gd->findGroup(def))
683 ml->countDecMembers();
684 ml->countDocMembers();
688 mg->countDecMembers();
689 mg->countDocMembers();
715 tagFile <<
" <compound kind=\"group\">\n";
718 tagFile <<
" <filename>" << fn <<
"</filename>\n";
723 case LayoutDocEntry::GroupClasses:
727 if (cd->isLinkableInProject())
729 tagFile <<
" <class kind=\"" << cd->compoundTypeString()
735 case LayoutDocEntry::GroupConcepts:
739 if (cd->isLinkableInProject())
747 case LayoutDocEntry::GroupModules:
751 if (mod->isLinkableInProject())
759 case LayoutDocEntry::GroupNamespaces:
763 if (nd->isLinkableInProject())
771 case LayoutDocEntry::GroupFiles:
775 if (fd->isLinkableInProject())
777 tagFile <<
" <file path=\""
784 case LayoutDocEntry::GroupPageDocs:
788 DString pageName = pd->getOutputFileBase();
789 if (pd->isLinkableInProject())
791 tagFile <<
" <page>" <<
convertToXML(pageName) <<
"</page>\n";
796 case LayoutDocEntry::GroupDirs:
800 if (dd->isLinkableInProject())
802 tagFile <<
" <dir>" <<
convertToXML(dd->displayName()) <<
"</dir>\n";
807 case LayoutDocEntry::GroupNestedGroups:
813 tagFile <<
" <subgroup>" <<
convertToXML(gd->name()) <<
"</subgroup>\n";
818 case LayoutDocEntry::MemberDecl:
831 case LayoutDocEntry::MemberGroups:
835 mg->writeTagFile(tagFile,
true);
844 tagFile <<
" </compound>\n";
906 .setIndexWords(
true));
918 .setIndexWords(
true));
938 .setSingleLine(
true))
947 ol.
writeDoc(ast.get(),
this,
nullptr);
974 warn_uncond(
"Group dependency graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
1003 if (!fd->hasDocumentation())
continue;
1006 if (anc.
empty()) anc=fd->docName();
else anc.
prepend(fd->docName()+
"_");
1012 if (!fd->briefDescription().empty() &&
Config_getBool(BRIEF_MEMBER_DESC))
1019 fd->briefDescription(),
1021 .setSingleLine(
true));
1042 if (gd->isVisible()) count++;
1052 if (gd->isVisible())
1054 if (!gd->hasDocumentation())
continue;
1057 if (anc.
empty()) anc=gd->name();
else anc.
prepend(gd->name()+
"_");
1062 if (!gd->briefDescription().empty() &&
Config_getBool(BRIEF_MEMBER_DESC))
1069 gd->briefDescription(),
1071 .setSingleLine(
true));
1092 if (!dd->hasDocumentation())
continue;
1095 if (anc.
empty()) anc=dd->shortName();
else anc.
prepend(dd->shortName()+
"_");
1101 if (!dd->briefDescription().empty() &&
Config_getBool(BRIEF_MEMBER_DESC))
1108 dd->briefDescription(),
1110 .setSingleLine(
true));
1146 for (
const auto *pd :
m_pages)
1148 if (!pd->isReference())
1151 if (pd->hasTitle() && !pd->name().empty() &&
1163 (pd->documentation()+pd->inbodyDocumentation()),
1165 .setIndexWords(
true));
1176 mg->writeDeclarations(ol,
nullptr,
nullptr,
nullptr,
this,
nullptr);
1235 (lde->kind()==LayoutDocEntry::GroupFiles && !
m_fileList.empty()) ||
1236 (lde->kind()==LayoutDocEntry::GroupNestedGroups && !
m_groups.empty()) ||
1237 (lde->kind()==LayoutDocEntry::GroupDirs && !
m_dirList.empty())
1243 DString label = lde->kind()==LayoutDocEntry::GroupClasses ?
"nested-classes" :
1244 lde->kind()==LayoutDocEntry::GroupConcepts ?
"concepts" :
1245 lde->kind()==LayoutDocEntry::GroupModules ?
"modules" :
1246 lde->kind()==LayoutDocEntry::GroupNamespaces ?
"namespaces" :
1247 lde->kind()==LayoutDocEntry::GroupFiles ?
"files" :
1248 lde->kind()==LayoutDocEntry::GroupNestedGroups ?
"groups" :
1254 else if (lde->kind()==LayoutDocEntry::MemberDecl)
1286 int hierarchyLevel = 0;
1295 false ,
DString() , hierarchyLevel);
1298 bool writeOutlinePanel = generateTreeView &&
Config_getBool(PAGE_OUTLINE_PANEL);
1310 .setIndexWords(
true)
1311 .setSingleLine(
true)
1312 .setAutolinkSupport(
false));
1342 switch (lde->kind())
1344 case LayoutDocEntry::BriefDesc:
1347 case LayoutDocEntry::MemberDeclStart:
1350 case LayoutDocEntry::GroupClasses:
1353 case LayoutDocEntry::GroupConcepts:
1356 case LayoutDocEntry::GroupModules:
1359 case LayoutDocEntry::GroupInlineClasses:
1362 case LayoutDocEntry::GroupNamespaces:
1365 case LayoutDocEntry::MemberGroups:
1368 case LayoutDocEntry::MemberDecl:
1377 case LayoutDocEntry::MemberDeclEnd:
1380 case LayoutDocEntry::DetailedDesc:
1383 case LayoutDocEntry::MemberDefStart:
1386 case LayoutDocEntry::MemberDef:
1395 case LayoutDocEntry::MemberDefEnd:
1398 case LayoutDocEntry::GroupNestedGroups:
1401 case LayoutDocEntry::GroupPageDocs:
1404 case LayoutDocEntry::GroupDirs:
1407 case LayoutDocEntry::GroupFiles:
1410 case LayoutDocEntry::GroupGraph:
1413 case LayoutDocEntry::AuthorSection:
1416 case LayoutDocEntry::Includes:
1419 case LayoutDocEntry::ClassInheritanceGraph:
1420 case LayoutDocEntry::ClassNestedClasses:
1421 case LayoutDocEntry::ClassCollaborationGraph:
1422 case LayoutDocEntry::ClassAllMembersLink:
1423 case LayoutDocEntry::ClassUsedFiles:
1424 case LayoutDocEntry::ClassInlineClasses:
1425 case LayoutDocEntry::NamespaceNestedNamespaces:
1426 case LayoutDocEntry::NamespaceNestedConstantGroups:
1427 case LayoutDocEntry::NamespaceClasses:
1428 case LayoutDocEntry::NamespaceConcepts:
1429 case LayoutDocEntry::NamespaceInterfaces:
1430 case LayoutDocEntry::NamespaceStructs:
1431 case LayoutDocEntry::NamespaceExceptions:
1432 case LayoutDocEntry::NamespaceInlineClasses:
1433 case LayoutDocEntry::ConceptDefinition:
1434 case LayoutDocEntry::FileClasses:
1435 case LayoutDocEntry::FileConcepts:
1436 case LayoutDocEntry::FileInterfaces:
1437 case LayoutDocEntry::FileStructs:
1438 case LayoutDocEntry::FileExceptions:
1439 case LayoutDocEntry::FileNamespaces:
1440 case LayoutDocEntry::FileConstantGroups:
1441 case LayoutDocEntry::FileIncludeGraph:
1442 case LayoutDocEntry::FileIncludedByGraph:
1443 case LayoutDocEntry::FileSourceLink:
1444 case LayoutDocEntry::FileInlineClasses:
1445 case LayoutDocEntry::ModuleExports:
1446 case LayoutDocEntry::ModuleClasses:
1447 case LayoutDocEntry::ModuleConcepts:
1448 case LayoutDocEntry::ModuleUsedFiles:
1449 case LayoutDocEntry::DirSubDirs:
1450 case LayoutDocEntry::DirFiles:
1451 case LayoutDocEntry::DirGraph:
1452 err(
"Internal inconsistency: member '{}' should not be part of "
1453 "LayoutDocManager::Group entry list\n",lde->entryToString());
1462 if (!subgd->isReference())
1464 if (subgd->partOfGroups().front() ==
this)
1507 if (ml->listType().isDocumentation())
1509 ml->writeDocumentationPage(ol,
name(),
this,hierarchyLevel);
1525 if (md->getGroupDef()==
this && md->isLinkable() && !md->isEnumValue())
1527 if (md->isLinkableInProject())
1529 DString fn = md->getOutputFileBase();
1576 "Found non-existing group '{}' for the command '{}', ignoring command",
1600 "Found non-existing group '{}' for the command '{}', ignoring command",
1620 "Found non-existing group '{}' for the command '{}', ignoring command",
1648 "Found non-existing group '{}' for the command '{}', ignoring command",
1671 "Found non-existing group '{}' for the command '{}', ignoring command",
1693 warn(root->
fileName,root->
startLine,
"Refusing to add group {} to group {}, since the latter is already a "
1694 "subgroup of the former", subGroup->
name(),gd->
name());
1705 "Found non-existing group '{}' for the command '{}', ignoring command",
1725 if (gd && g.
pri >= pri)
1727 if (fgd && gd!=fgd && g.
pri==pri)
1730 "Member {} found in multiple {} groups! "
1731 "The member will be put in group {}, and not in group {}",
1743 "Found non-existing group '{}' for the command '{}', ignoring command",
1755 bool insertit =
false;
1762 bool moveit =
false;
1782 "Member documentation for {} found several times in {} groups!\n"
1783 "{}:{}: The member will remain in group {}, and won't be put into group {}",
1852 "Found non-existing group '{}' for the command '{}', ignoring command",
1875 mg->addListReferences(
this);
1879 if (ml->listType().isDocumentation())
1881 ml->addListReferences(
this);
1891 mg->addRequirementReferences(
this);
1895 if (ml->listType().isDocumentation())
1897 ml->addRequirementReferences(
this);
1907 ml->setNeedsSorting(
1908 (ml->listType().isDeclaration() && sortBriefDocs) ||
1909 (ml->listType().isDocumentation() && sortMemberDocs));
1921 for (
size_t i=0; i<vec.size(); i++)
1923 std::string qni = vec[i]->name().str();
1924 size_t posi = qni.rfind(
"::");
1925 if (posi!=std::string::npos)
1927 std::string scope = qni.substr(0,posi);
1928 auto it = std::find_if( vec.begin(), vec.end(),
1929 [&](
typename Vec::Ptr &cd)
1930 { return cd->name().str()==scope; });
1933 size_t idx = std::distance(vec.begin(),it);
1939 while (k<vec.size() && vec[k]->name().str().substr(0,posi)==scope)
1945 for (
size_t j=i; j<idx; j++)
1947 std::swap(vec[j],vec[j+1]);
1951 else if (idx<i && vec[i-1]->name().str().substr(0,posi)!=scope)
1956 while (idx<i && vec[idx]->name().str().substr(0,posi)==scope)
1961 for (
size_t j=idx; j<i; j++)
1963 std::swap(vec[j],vec[j+1]);
1977 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
false); }
2027 if (ml->listType()==lt)
2040 if (optimizeVhdl && ml)
2067 [](
const auto &g1,
const auto &g2)
2068 { return g1->groupTitle() < g2->groupTitle(); });
2075 err(
"Possible recursive group relation while inside {}\n",gd->
name());
2143 if (d==
nullptr)
return nullptr;
2156 if (d==
nullptr)
return nullptr;
2159 return static_cast<const GroupDef*
>(d);
This class represents an function or template argument list.
A abstract class representing of a compound symbol.
virtual DString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
virtual void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs)=0
bool declVisible(const ClassDef::CompoundType *filter=nullptr) const
void writeDocumentation(OutputList &ol, const Definition *container=nullptr) const
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const DString &header, bool localNames) const
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
DString & prepend(const char *s)
const std::string & str() const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
The common base class of all entity definitions found in the sources.
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual DefType definitionType() const =0
virtual const DString & name() const =0
virtual bool isLinkableInProject() const =0
virtual bool isHidden() const =0
virtual const GroupList & partOfGroups() const =0
virtual Definition * getOuterScope() const =0
bool isReference() const override
DString docFile() const override
bool hasUserDocumentation() const override
DString qualifiedName() const override
bool hasBriefDescription() const override
DString briefFile() const override
bool hasRequirementRefs() const override
DString briefDescription(bool abbreviate=false) const override
const DString & name() const override
void setLanguage(SrcLangExt lang) override
DString inbodyFile() const override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
DString documentation() const override
const GroupList & partOfGroups() const override
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
DString inbodyDocumentation() const override
int getStartBodyLine() const override
int docLine() const override
int inbodyLine() const override
int briefLine() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
SrcLangExt getLanguage() const override
virtual void makePartOfGroup(GroupDef *gd)=0
A model of a directory symbol.
Representation of a group collaboration graph.
static bool suppressDocWarnings
static GroupLinkedMap * groupLinkedMap
Represents an unstructured piece of information, about an entity found in the sources.
DString fileName
file this entry was extracted from
DString doc
documentation block (partly parsed)
std::vector< Grouping > groups
list of groups this entry belongs to
int startLine
start line of entry in the source
A model of a file symbol.
virtual DString includeName() const =0
virtual const DString & docName() const =0
A model of a group of symbols.
virtual void addDir(DirDef *dd)=0
virtual void addExample(PageDef *def)=0
virtual const GroupList & getSubGroups() const =0
virtual bool addClass(ClassDef *def)=0
virtual bool addModule(ModuleDef *def)=0
virtual void removeMember(MemberDef *md)=0
virtual bool insertMember(MemberDef *def, bool docOnly=false)=0
virtual bool addNamespace(NamespaceDef *def)=0
virtual void addGroup(GroupDef *def)=0
virtual bool findGroup(const GroupDef *def) const =0
virtual bool addConcept(ConceptDef *def)=0
void writeConcepts(OutputList &ol, const DString &title)
ConceptLinkedRefMap m_concepts
const ModuleLinkedRefMap & getModules() const override
void endMemberDeclarations(OutputList &ol)
void startMemberDocumentation(OutputList &ol)
void setGroupScope(Definition *d) override
bool isLinkable() const override
bool addNamespace(NamespaceDef *def) override
Definition * getGroupScope() const override
bool hasGroupTitle() const override
void removeMemberFromList(MemberListType lt, MemberDef *md)
bool hasGroupGraph() const override
void writeSummaryLinks(OutputList &ol) const override
void startMemberDeclarations(OutputList &ol)
std::map< std::string, IncludeInfo > m_incInfo
bool findGroup(const GroupDef *def) const override
void sortMemberLists() override
NamespaceLinkedRefMap m_namespaces
void writeInlineClasses(OutputList &ol)
CodeSymbolType codeSymbolType() const override
const MemberGroupList & getMemberGroups() const override
void removeMember(MemberDef *md) override
void addPage(PageDef *def) override
MemberList * getMemberList(MemberListType lt) const override
bool isASubGroup() const override
bool subGrouping() const override
ModuleLinkedRefMap m_modules
DString getOutputFileBase() const override
DString displayName(bool=true) const override
void addGroup(GroupDef *def) override
void addDir(DirDef *dd) override
MemberGroupList m_memberGroups
bool addModule(ModuleDef *def) override
void addMembersToMemberGroup() override
PageLinkedRefMap m_examples
DString groupTitle() const override
void writeTagFile(TextStream &) override
MemberList m_allMemberList
void writeGroupGraph(OutputList &ol)
bool isVisibleInHierarchy() const override
void writeAuthorSection(OutputList &ol)
void endMemberDocumentation(OutputList &ol)
void writeNamespaces(OutputList &ol, const DString &title)
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const DString &title)
void writeModules(OutputList &ol, const DString &title)
void writeClasses(OutputList &ol, const DString &title)
void sortSubGroups() override
GroupDefImpl(const DString &fileName, int line, const DString &name, const DString &title, const DString &refFileName=DString())
bool addClass(ClassDef *def) override
void updateLanguage(const Definition *)
void writeNestedGroups(OutputList &ol, const DString &title)
void findSectionsInDocumentation() override
const GroupList & getSubGroups() const override
const DirList & getDirs() const override
void addMemberListToGroup(MemberList *, bool(MemberDef::*)() const)
const PageLinkedRefMap & getExamples() const override
void addFile(FileDef *def) override
bool insertMember(MemberDef *def, bool docOnly=false) override
bool hasDetailedDescription() const override
void overrideGroupGraph(bool e) override
const FileList & getFiles() const override
void writePageDocumentation(OutputList &ol)
DString anchor() const override
void writeFiles(OutputList &ol, const DString &title)
const NamespaceLinkedRefMap & getNamespaces() const override
const PageLinkedRefMap & getPages() const override
void setIncludeFile(FileDef *fd, const DString &incName, bool local, bool force) override
void writeMemberGroups(OutputList &ol)
void writeDirs(OutputList &ol, const DString &title)
void writeIncludeFiles(OutputList &ol) const
Definition * m_groupScope
ClassLinkedRefMap m_classes
void writeMemberPages(OutputList &ol, int hierarchyLevel) override
void setGroupTitleLocal(const DString &title)
const MemberLists & getMemberLists() const override
void setGroupTitle(const DString &newtitle) override
const ClassLinkedRefMap & getClasses() const override
void writePageNavigation(OutputList &ol) const override
MemberNameInfoLinkedMap m_allMemberNameInfoLinkedMap
bool addConcept(ConceptDef *def) override
void writeDetailedDescription(OutputList &ol, const DString &title)
DefType definitionType() const override
void distributeMemberGroupDocumentation() override
void computeAnchors() override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *currentMd) const override
void addRequirementReferences() override
void addListReferences() override
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const DString &title)
bool containsFile(const FileDef *def) const override
void countMembers() override
bool isLinkableInProject() const override
MemberLists m_memberLists
size_t numDocMembers() const override
void addMemberToList(MemberListType lt, MemberDef *md)
DString groupTitleAsText() const override
const ConceptLinkedRefMap & getConcepts() const override
void writeDocumentation(OutputList &ol) override
void writeBriefDescription(OutputList &ol)
void addExample(PageDef *def) override
Class representing the data associated with a #include statement.
static LayoutDocManager & instance()
Returns a reference to this singleton.
bool del(const DString &key)
T * add(const char *k, Args &&... args)
const T * find(const std::string &key) const
bool add(const char *k, T *obj)
const T * find(const std::string &key) const
A model of a class/file/namespace member symbol.
virtual bool getGroupHasDocs() const =0
virtual const ClassDef * getClassDef() const =0
virtual const MemberDef * getGroupAlias() const =0
virtual const ArgumentList & templateArguments() const =0
virtual GroupDef * getGroupDef()=0
virtual const MemberVector & enumFieldList() const =0
virtual const FileDef * getFileDef() const =0
virtual const ArgumentList & argumentList() const =0
virtual int getGroupStartLine() const =0
virtual bool isFunction() const =0
virtual Grouping::GroupPri_t getGroupPri() const =0
virtual const ClassDef * getClassDefOfAnonymousType() const =0
virtual Protection protection() const =0
virtual bool isEnumerate() const =0
virtual MemberType memberType() const =0
virtual DString getGroupFileName() const =0
virtual bool isStrong() const =0
virtual DString typeString() const =0
virtual Specifier virtualness(int count=0) const =0
virtual DString memberTypeName() const =0
virtual void setGroupAlias(const MemberDef *md)=0
virtual void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs, MemberDef *member=nullptr)=0
A list of MemberDef objects as shown in documentation sections.
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const DString &title, const DString &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 writeDocumentation(OutputList &ol, const DString &scopeName, const Definition *container, const DString &title, const DString &anchor, bool showEnumValues=false, bool showInline=false) const
MemberListType listType() const
Wrapper class for the MemberListType type.
constexpr const char * toLabel() const noexcept
const std::unique_ptr< MemberList > & get(MemberListType lt, MemberListContainer con)
void remove(const MemberDef *md)
size_type size() const noexcept
void push_back(const T &value)
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const
An abstract interface of a namespace symbol.
void writeDeclaration(OutputList &ol, const DString &title, bool isConstantGroup=false, bool localName=false)
bool declVisible(bool isContantGroup) const
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 startTitleHead(const DString &fileName)
void startMemberDeclaration()
void parseText(const DString &textStr)
void endTitleHead(const DString &fileName, const DString &name)
void disable(OutputType o)
void startParagraph(const DString &classDef=DString())
void writePageLink(const DString &name, bool first)
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
void endGroupCollaboration(DotGroupCollaboration &g)
void enable(OutputType o)
void endMemberDescription()
void endTextBlock(bool paraBreak=false)
void endMemberDeclaration(const DString &anchor, const DString &inheritId)
void startGroupCollaboration()
void docify(const DString &s)
void startMemberHeader(const DString &anchor, int typ=2)
void lineBreak(const DString &style=DString())
void writeAnchor(const DString &fileName, const DString &name)
void startHeaderSection()
void insertMemberAlign(bool templ=false)
void writeString(const DString &text)
void endSection(const DString &lab, SectionType t)
void startMemberSections()
void endMemberItem(OutputGenerator::MemberItemType type)
void pushGeneratorState()
void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)
void disableAllBut(OutputType o)
void startTextBlock(bool dense=false)
void startTextLink(const DString &file, const DString &anchor)
void endGroupHeader(int extraLevels=0)
void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())
void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
void startSection(const DString &lab, const DString &title, SectionType t)
void startGroupHeader(const DString &id=DString(), int extraLevels=0)
A model of a page symbol.
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
class that provide information about a section.
static SectionManager & instance()
returns a reference to the singleton
static constexpr int Subsection
Text streaming class that buffers data.
virtual DString trGroup(bool first_capital, bool singular)=0
virtual DString trAuthor(bool first_capital, bool singular)=0
virtual DString trCollaborationDiagram(const DString &clName)=0
virtual DString trDir(bool first_capital, bool singular)=0
virtual DString trMore()=0
virtual DString trGeneratedAutomatically(const DString &s)=0
virtual DString trFile(bool first_capital, bool singular)=0
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)
ClassDefMutable * toClassDefMutable(Definition *d)
ConceptDefMutable * toConceptDefMutable(Definition *d)
#define Config_getInt(name)
#define Config_getBool(name)
#define Config_getString(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
bool compareDirDefs(const DirDef *item1, const DirDef *item2)
DString parseCommentAsText(const Definition *scope, const MemberDef *md, const DString &doc, const DString &fileName, int lineNr)
IDocParserPtr createDocParser()
factory function to create a parser
void docFindSections(const DString &input, const Definition *d, const DString &fileName)
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &input, const DocOptions &options)
int dstricmp_sort(const char *str1, const char *str2)
DString includeClose(SrcLangExt lang, IncludeKind kind)
DString includeOpen(SrcLangExt lang, IncludeKind kind)
bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
DString includeStatement(SrcLangExt lang, IncludeKind kind)
void addNamespaceToGroups(const Entry *root, NamespaceDef *nd)
void addGroupToGroups(const Entry *root, GroupDef *subGroup)
void addClassToGroups(const Entry *root, ClassDef *cd)
void addDirToGroups(const Entry *root, DirDef *dd)
std::unique_ptr< GroupDef > createGroupDef(const DString &fileName, int line, const DString &name, const DString &title, const DString &refFileName)
static void groupClassesWithSameScope(Vec &vec)
void addModuleToGroups(const Entry *root, ModuleDef *mod)
GroupDef * toGroupDef(Definition *d)
void addConceptToGroups(const Entry *root, ConceptDef *cd)
static bool hasNonReferenceNestedGroupRec(const GroupDef *gd, int level)
void addExampleToGroups(const Entry *root, PageDef *eg)
void addMemberToGroups(const Entry *root, MemberDef *md)
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const DString &navPath)
void startFile(OutputList &ol, const DString &name, bool isSource, const DString &manName, const DString &title, HighlightedItem hli, bool additionalIndices, const DString &altSidebarName, int hierarchyLevel, const DString &allMembersFile)
Translator * theTranslator
MemberDefMutable * toMemberDefMutable(Definition *d)
#define warn_uncond(fmt,...)
#define warn(file, line, fmt,...)
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
void addRefItem(const RefItemVector &sli, const DString &key, const DString &prefix, const DString &name, const DString &title, const DString &args, const Definition *scope)
Helper class to pass options when calling OutputList::generateDoc().
DString groupname
name of the group
static constexpr const char * getGroupPriName(GroupPri_t priority) noexcept
GroupPri_t
Grouping priority.
@ GROUPING_INGROUP
membership in group was defined by @ingroup
GroupPri_t pri
priority of this definition
Represents of a member declaration list with configurable title and subtitle.
DString title(SrcLangExt lang) const
Represents of a member definition list with configurable title.
DString title(SrcLangExt lang) const
DString title(SrcLangExt lang) const
void addGroupListToTitle(OutputList &ol, const Definition *d)
void createSubDirs(const Dir &d)
DString convertToHtml(const DString &s, bool keepEntities)
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const DString &srcReturnType, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const DString &dstReturnType, const ArgumentList *dstAl, bool checkCV, SrcLangExt lang)
void addHtmlExtensionIfMissing(DString &fName)
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
DString stripFromPath(const DString &path)
A bunch of utility functions.