64 bool isPublished=
false);
186 return std::make_unique<NamespaceDefImpl>(defFileName,defLine,defColumn,name,ref,refFile,type,isPublished);
270 auto alnd = std::make_unique<NamespaceDefAliasImpl>(newScope,nd);
290 fileName = stripExtension(fName);
294 fileName = convertNameToFile(stripExtension(fName));
299 setFileNameLocal(name);
308 else if (type==
"constants")
310 m_type = CONSTANT_GROUP;
312 else if (type==
"library")
362 mg->distributeMemberGroupDocumentation();
373 mg->findSectionsInDocumentation(
this);
377 if (ml->listType().isDeclaration())
379 ml->findSectionsInDocumentation(
this);
386 if (fd==
nullptr)
return;
387 auto it = std::find(
files.begin(),
files.end(),fd);
446 const DString &includeName,
bool local,
bool force)
449 if (!force || includeName.
empty())
return;
501 if (ml->listType().isDeclaration())
513 mg->addToDeclarationSection();
559 if (allMemberList==
nullptr)
569 case MemberType::Variable:
573 case MemberType::Function:
577 case MemberType::Typedef:
581 case MemberType::Sequence:
585 case MemberType::Dictionary:
589 case MemberType::Enumeration:
593 case MemberType::EnumValue:
595 case MemberType::Define:
599 case MemberType::Property:
608 err(
"NamespaceDefImpl::insertMembers(): "
609 "member '{}' with unexpected type '{}' and class scope '{}' inserted in namespace scope '{}'!\n",
644 if (allMemberList) allMemberList->
setAnchors();
658 tagFile <<
" <compound kind=\"namespace\">\n";
660 tagFile <<
" <filename>" << fn <<
"</filename>\n";
664 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
670 case LayoutDocEntry::NamespaceNestedNamespaces:
674 if (nd->isLinkableInProject())
676 tagFile <<
" <namespace>" <<
convertToXML(nd->name()) <<
"</namespace>\n";
681 case LayoutDocEntry::NamespaceClasses:
686 case LayoutDocEntry::NamespaceInterfaces:
691 case LayoutDocEntry::NamespaceStructs:
696 case LayoutDocEntry::NamespaceExceptions:
701 case LayoutDocEntry::NamespaceConcepts:
706 case LayoutDocEntry::MemberDecl:
719 case LayoutDocEntry::MemberGroups:
723 mg->writeTagFile(tagFile);
732 tagFile <<
" </compound>\n";
781 .setIndexWords(
true));
801 .setSingleLine(
true))
810 ol.
writeDoc(ast.get(),
this,
nullptr);
904 mg->writeDeclarations(ol,
nullptr,
this,
nullptr,
nullptr,
nullptr);
932 DString label =
"nested-classes";
962 DString label =
"constantgroups";
972 else if (lde->kind()== LayoutDocEntry::MemberDecl)
1023 for (
const auto &cd : list)
1025 if (cd->isLinkableInProject())
1027 tagFile <<
" <class kind=\"" << cd->compoundTypeString()
1037 if (cd->isLinkableInProject())
1039 tagFile <<
" <concept>" <<
convertToXML(cd->name()) <<
"</concept>\n";
1053 if (!generateTreeView)
1075 switch (lde->kind())
1077 case LayoutDocEntry::BriefDesc:
1080 case LayoutDocEntry::MemberDeclStart:
1083 case LayoutDocEntry::NamespaceClasses:
1088 case LayoutDocEntry::NamespaceInterfaces:
1093 case LayoutDocEntry::NamespaceStructs:
1098 case LayoutDocEntry::NamespaceExceptions:
1103 case LayoutDocEntry::NamespaceConcepts:
1108 case LayoutDocEntry::NamespaceNestedNamespaces:
1113 case LayoutDocEntry::NamespaceNestedConstantGroups:
1118 case LayoutDocEntry::MemberGroups:
1121 case LayoutDocEntry::MemberDecl:
1127 case LayoutDocEntry::MemberDeclEnd:
1130 case LayoutDocEntry::DetailedDesc:
1135 case LayoutDocEntry::MemberDefStart:
1138 case LayoutDocEntry::NamespaceInlineClasses:
1141 case LayoutDocEntry::MemberDef:
1147 case LayoutDocEntry::MemberDefEnd:
1150 case LayoutDocEntry::AuthorSection:
1153 case LayoutDocEntry::Includes:
1156 case LayoutDocEntry::ClassInheritanceGraph:
1157 case LayoutDocEntry::ClassNestedClasses:
1158 case LayoutDocEntry::ClassCollaborationGraph:
1159 case LayoutDocEntry::ClassAllMembersLink:
1160 case LayoutDocEntry::ClassUsedFiles:
1161 case LayoutDocEntry::ClassInlineClasses:
1162 case LayoutDocEntry::ConceptDefinition:
1163 case LayoutDocEntry::FileClasses:
1164 case LayoutDocEntry::FileConcepts:
1165 case LayoutDocEntry::FileInterfaces:
1166 case LayoutDocEntry::FileStructs:
1167 case LayoutDocEntry::FileExceptions:
1168 case LayoutDocEntry::FileNamespaces:
1169 case LayoutDocEntry::FileConstantGroups:
1170 case LayoutDocEntry::FileIncludeGraph:
1171 case LayoutDocEntry::FileIncludedByGraph:
1172 case LayoutDocEntry::FileSourceLink:
1173 case LayoutDocEntry::FileInlineClasses:
1174 case LayoutDocEntry::GroupClasses:
1175 case LayoutDocEntry::GroupConcepts:
1176 case LayoutDocEntry::GroupModules:
1177 case LayoutDocEntry::GroupInlineClasses:
1178 case LayoutDocEntry::GroupNamespaces:
1179 case LayoutDocEntry::GroupDirs:
1180 case LayoutDocEntry::GroupNestedGroups:
1181 case LayoutDocEntry::GroupFiles:
1182 case LayoutDocEntry::GroupGraph:
1183 case LayoutDocEntry::GroupPageDocs:
1184 case LayoutDocEntry::ModuleExports:
1185 case LayoutDocEntry::ModuleClasses:
1186 case LayoutDocEntry::ModuleConcepts:
1187 case LayoutDocEntry::ModuleUsedFiles:
1188 case LayoutDocEntry::DirSubDirs:
1189 case LayoutDocEntry::DirFiles:
1190 case LayoutDocEntry::DirGraph:
1191 err(
"Internal inconsistency: member '{}' should not be part of "
1192 "LayoutDocManager::Namespace entry list\n",lde->entryToString());
1206 if (allMemberList) allMemberList->
sort();
1218 if (ml->listType().isDocumentation())
1220 ml->writeDocumentationPage(ol,
displayName(),
this);
1236 for (
const auto &md : *allMemberList)
1238 if (md->getNamespaceDef()==
this && md->isLinkable() && !md->isEnumValue())
1240 if (md->isLinkableInProject())
1242 DString fn = md->getOutputFileBase();
1273 ml->countDecMembers();
1274 ml->countDocMembers();
1278 mg->countDecMembers();
1279 mg->countDocMembers();
1307 if (n==
nullptr)
return nullptr;
1336 mg->addListReferences(
this);
1340 if (ml->listType().isDocumentation())
1342 ml->addListReferences(
this);
1352 mg->addRequirementReferences(
this);
1356 if (ml->listType().isDocumentation())
1358 ml->addRequirementReferences(
this);
1370 if (visitedNamespaces.find(
this)!=visitedNamespaces.end())
return;
1371 visitedNamespaces.insert(
this);
1374 for (
auto &nd : usingDirList)
1383 for (
auto &nd : usingDirList)
1386 for (
const auto &und : nd->getUsedNamespaces())
1391 for (
const auto &ud : nd->getUsedDefinitions())
1403 if (lde->kind()==LayoutDocEntry::MemberDef)
1411 for (
const auto &md : *ml)
1413 if (md->visibleInIndex())
1432 for (
const auto &nd : *
this)
1434 if (nd->isLinkable() && nd->hasDocumentation())
1437 if (SrcLangExt::IDL==lang)
1439 if (isConstantGroup == nd->isConstantGroup())
1445 else if (!isConstantGroup)
1447 if (nd->isConstantGroup())
1449 err(
"Internal inconsistency: constant group but not IDL?\n");
1460 bool const isConstantGroup,
bool localName)
1464 if (
empty())
return;
1477 for (
const auto &nd : *
this)
1479 if (nd->isLinkable() && nd->hasDocumentation())
1482 if (lang==SrcLangExt::IDL && (isConstantGroup != nd->isConstantGroup()))
1485 DString name = localName ? nd->localName() : nd->displayName();
1489 DString ct = nd->compoundTypeString();
1495 if (!nd->briefDescription().empty() &&
Config_getBool(BRIEF_MEMBER_DESC))
1502 nd->briefDescription(),
1504 .setSingleLine(
true));
1520 ml->setNeedsSorting(
1521 (ml->listType().isDeclaration() && sortBriefDocs) ||
1522 (ml->listType().isDocumentation() && sortMemberDocs));
1525 if (ml->listType().isDeclaration())
1535template<
class Container>
1539 bool allSame =
true;
1540 for (
const auto &c : container)
1542 DString name = c->getDefFileName();
1543 if (!prev.
empty() && prev!=name)
1557 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
false); }
1592 if (ml->listType()==lt)
1616 err(
"Possible recursive namespace relation while inside {}\n",nd->
name());
1647 if (extractAnonNs &&
1648 name().mid(i,20)==
"anonymous_namespace{"
1675 auto getReferenceTitle = [
this](std::function<
DString()> translateFunc) ->
DString
1680 if (lang==SrcLangExt::Java)
1684 else if (lang==SrcLangExt::Fortran || lang==SrcLangExt::Slice)
1686 pageTitle = getReferenceTitle([
this](){
1690 else if (lang==SrcLangExt::IDL)
1692 pageTitle = getReferenceTitle([
this](){
1700 pageTitle = getReferenceTitle([
this](){
1710 if (lang==SrcLangExt::Java)
1714 else if(lang==SrcLangExt::CSharp)
1718 else if (lang==SrcLangExt::Fortran)
1722 else if (lang==SrcLangExt::IDL)
1809 if (namespacesTried.find(name.
str())==namespacesTried.end())
1811 namespacesTried.insert(name.
str());
1815 size_t i = name.
str().find(
"::",p);
1816 if (i==std::string::npos)
1853 size_t j = aliasInfo.
context.length();
1871 j = aliasInfo.
context.rfind(
"::",j-1);
1875 j = std::string::npos;
1877 if (j==std::string::npos)
1903 if (name.
empty())
return nullptr;
1916 if (cnd->isLinkableInProject() && !cnd->isAnonymous())
1938 if (cnd->isLinkableInProject())
1979 for (
const auto &cd : list)
1982 if (cd->isLinkableInProject())
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.
CompoundType
The various compound types.
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e. class/struct/union/...
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...
size_t rfind(char c, size_t pos=npos) const
DString mid(size_t index, size_t len=npos) const
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
char & at(size_t i)
Returns a reference to the character at index i.
DString & prepend(const char *s)
DString left(size_t len) const
const std::string & str() const
const DString & name() const override
const Definition * getAlias() const
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
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 bool isLinkable() const =0
virtual DefType definitionType() const =0
virtual const DString & name() const =0
virtual const DString & localName() const =0
virtual bool isLinkableInProject() const =0
virtual bool isAnonymous() const =0
virtual DString qualifiedName() const =0
virtual bool isHidden() const =0
virtual DString anchor() const =0
virtual CodeSymbolType codeSymbolType() const =0
virtual const Definition * findInnerCompound(const DString &name) const =0
virtual DString getOutputFileBase() const =0
int getDefLine() const override
bool isReference() const override
DString docFile() const override
DString qualifiedName() const override
void writeNavigationPath(OutputList &ol) const override
bool isExported() const override
bool hasBriefDescription() const override
DString id() const override
DString briefFile() const override
bool hasRequirementRefs() const override
DString briefDescription(bool abbreviate=false) const override
const DString & name() const override
void setName(const DString &name) override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
Definition * getOuterScope() const override
bool isHidden() const override
DString getDefFileName() const override
DString documentation() 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
void setLocalName(const DString &name) override
int docLine() const override
bool isArtificial() const override
int briefLine() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
virtual void setOuterScope(Definition *d)=0
static NamespaceLinkedMap * namespaceLinkedMap
static bool suppressDocWarnings
static MemberNameLinkedMap * functionNameLinkedMap
static NamespaceDefMutable * globalScope
static NamespaceAliasInfoMap namespaceAliasMap
A model of a file symbol.
virtual DString includeName() const =0
virtual const DString & docName() const =0
virtual void insertMember(MemberDef *md)=0
Class representing the data associated with a #include statement.
static LayoutDocManager & instance()
Returns a reference to this singleton.
T * add(const char *k, Args &&... args)
const T * find(const std::string &key) const
Container class representing a vector of objects with keys.
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 const ClassDef * getClassDef() const =0
virtual MemberType memberType() const =0
virtual DString memberTypeName() const =0
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
virtual void setFileDef(FileDef *fd)=0
virtual void setNamespace(NamespaceDef *nd)=0
A list of MemberDef objects as shown in documentation sections.
int numDocMembers() const
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 push_back(const T &value)
ClassLinkedRefMap getInterfaces() const override
bool subGrouping() const override
ClassLinkedRefMap getExceptions() const override
DString compoundTypeString() const override
ClassLinkedRefMap getStructs() const override
ConceptLinkedRefMap getConcepts() const override
DString getOutputFileBase() const override
ClassLinkedRefMap getClasses() const override
DefType definitionType() const override
DString displayName(bool b=true) const override
bool isLinkableInProject() const override
const NamespaceDef * getNSAlias() const
const MemberDef * getMemberByName(const DString &name) const override
int numDocMembers() const override
bool isLinkable() const override
const MemberGroupList & getMemberGroups() const override
const LinkedRefMap< const Definition > & getUsedDefinitions() const override
const Definition * findInnerCompound(const DString &name) const override
int countVisibleMembers() const override
~NamespaceDefAliasImpl() override
bool isLibrary() const override
bool hasDetailedDescription() const override
bool isVisibleInHierarchy() const override
MemberList * getMemberList(MemberListType lt) const override
NamespaceDefAliasImpl(const Definition *newScope, const NamespaceDef *nd)
DString anchor() const override
bool isModule() const override
bool isInline() const override
const DString & localName() const override
NamespaceLinkedRefMap getNamespaces() const override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const override
DString title() const override
CodeSymbolType codeSymbolType() const override
const MemberLists & getMemberLists() const override
bool isConstantGroup() const override
An abstract interface of a namespace symbol.
virtual bool isLibrary() const =0
virtual MemberList * getMemberList(MemberListType lt) const =0
virtual bool isConstantGroup() const =0
virtual ConceptLinkedRefMap getConcepts() const =0
virtual ClassLinkedRefMap getStructs() const =0
virtual DString compoundTypeString() const =0
virtual const MemberDef * getMemberByName(const DString &) const =0
virtual const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const =0
virtual ClassLinkedRefMap getExceptions() const =0
virtual const MemberLists & getMemberLists() const =0
virtual NamespaceLinkedRefMap getNamespaces() const =0
virtual bool isModule() const =0
virtual DString title() const =0
virtual bool subGrouping() const =0
virtual int countVisibleMembers() const =0
virtual int numDocMembers() const =0
virtual bool hasDetailedDescription() const =0
virtual bool isInline() const =0
virtual bool isVisibleInHierarchy() const =0
virtual ClassLinkedRefMap getClasses() const =0
virtual ClassLinkedRefMap getInterfaces() const =0
virtual const LinkedRefMap< const Definition > & getUsedDefinitions() const =0
virtual const MemberGroupList & getMemberGroups() const =0
MemberGroupList m_memberGroups
void writeQuickMemberLinks(OutputList &ol, const MemberDef *currentMd) const override
void setFileName(const DString &fn) override
bool isConstantGroup() const override
LinkedRefMap< NamespaceDef > m_usingDirList
void addUsingDirective(NamespaceDef *nd) override
const LinkedRefMap< const Definition > & getUsedDefinitions() const override
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const DString &title)
NamespaceLinkedRefMap getNamespaces() const override
DString getOutputFileBase() const override
void computeAnchors() override
NamespaceLinkedRefMap m_namespaces
DString title() const override
void writeConceptsToTagFile(TextStream &)
void writeMemberPages(OutputList &ol) override
DString displayName(bool=true) const override
bool isLibrary() const override
void insertNamespace(NamespaceDef *nd) override
void writeMemberGroups(OutputList &ol)
void addInnerCompound(Definition *d) override
void insertClass(ClassDef *cd) override
int countVisibleMembers() const override
bool isLinkable() const override
void insertConcept(ConceptDef *cd) override
bool isInline() const override
void addMemberToList(MemberListType lt, MemberDef *md)
DString compoundTypeString() const override
MemberLinkedRefMap m_allMembers
DString anchor() const override
void startMemberDeclarations(OutputList &ol)
void setFileNameLocal(const DString &fn)
void writeTagFile(TextStream &) override
void writeAuthorSection(OutputList &ol)
CodeSymbolType codeSymbolType() const override
ClassLinkedRefMap m_structs
ClassLinkedRefMap getClasses() const override
MemberList * getMemberList(MemberListType lt) const override
void endMemberDocumentation(OutputList &ol)
const MemberLists & getMemberLists() const override
ClassLinkedRefMap m_interfaces
std::map< std::string, IncludeInfo > m_incInfo
const MemberGroupList & getMemberGroups() const override
enum NamespaceDefImpl::@152056333015234071026257214045103374127312105332 m_type
void addRequirementReferences() override
void writeInlineClasses(OutputList &ol)
void writeBriefDescription(OutputList &ol)
~NamespaceDefImpl() override
void combineUsingRelations(NamespaceDefSet &visitedNamespace) override
void setIncludeFile(FileDef *fd, const DString &incName, bool local, bool force) override
int numDocMembers() const override
ClassLinkedRefMap m_exceptions
bool subGrouping() const override
bool isModule() const override
void writeIncludeFiles(OutputList &ol) const
const MemberDef * getMemberByName(const DString &) const override
bool isVisibleInHierarchy() const override
void startMemberDocumentation(OutputList &ol)
LinkedRefMap< const Definition > m_usingDeclList
void writeNamespaceDeclarations(OutputList &ol, const DString &title, bool isConstantGroup=false)
bool hasDetailedDescription() const override
ClassLinkedRefMap getInterfaces() const override
void insertUsedFile(FileDef *fd) override
void setMetaData(const DString &m) override
void endMemberDeclarations(OutputList &ol)
const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const override
void writeConcepts(OutputList &ol, const DString &title)
void addMembersToMemberGroup() override
void writeDocumentation(OutputList &ol) override
void findSectionsInDocumentation() override
void addUsingDeclaration(const Definition *cd) override
bool isLinkableInProject() const override
void writeClassDeclarations(OutputList &ol, const DString &title, const ClassLinkedRefMap &d)
NamespaceDefImpl(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const DString &ref=DString(), const DString &refFile=DString(), const DString &type=DString(), bool isPublished=false)
LinkedRefMap< const Definition > m_innerCompounds
ConceptLinkedRefMap getConcepts() const override
void setInline(bool isInline) override
ClassLinkedRefMap getStructs() const override
void addNamespaceAttributes(OutputList &ol)
void distributeMemberGroupDocumentation() override
ClassLinkedRefMap m_classes
const Definition * findInnerCompound(const DString &name) const override
void countMembers() override
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const DString &title)
MemberLists m_memberLists
void insertMember(MemberDef *md) override
ClassLinkedRefMap getExceptions() const override
void writePageNavigation(OutputList &ol) const override
void writeDetailedDescription(OutputList &ol, const DString &title)
void sortMemberLists() override
void setName(const DString &name) override
void addListReferences() override
ConceptLinkedRefMap m_concepts
DefType definitionType() const override
void writeClassesToTagFile(TextStream &, const ClassLinkedRefMap &d)
void writeSummaryLinks(OutputList &ol) const override
virtual void insertMember(MemberDef *md)=0
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
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 startMemberDeclaration()
void parseText(const DString &textStr)
void disable(OutputType o)
void startParagraph(const DString &classDef=DString())
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
void enable(OutputType o)
void endMemberDescription()
void endTextBlock(bool paraBreak=false)
void endMemberDeclaration(const DString &anchor, const DString &inheritId)
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 insertMemberAlign(bool templ=false)
void writeString(const DString &text)
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 writeLabel(const DString &l, bool isLast)
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 startGroupHeader(const DString &id=DString(), int extraLevels=0)
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
Text streaming class that buffers data.
virtual DString trPackage(const DString &name)=0
virtual DString trNamespace(bool first_capital, bool singular)=0
virtual DString trAuthor(bool first_capital, bool singular)=0
virtual DString trMore()=0
virtual DString trModule(bool first_capital, bool singular)=0
virtual DString trModuleReference(const DString &namespaceName)=0
virtual DString trGeneratedAutomatically(const DString &s)=0
virtual DString trNamespaceReference(const DString &namespaceName)=0
virtual DString trConstantGroupReference(const DString &namespaceName)=0
ClassDef * toClassDef(Definition *d)
ConceptDef * toConceptDef(Definition *d)
#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.
std::set< std::string > StringSet
Definition * toDefinition(DefinitionMutable *dm)
DirIterator end(const DirIterator &) noexcept
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)
DString substitute(const DString &s, const DString &src, const DString &dst)
substitute all occurrences of src in s by dst
int dstricmp_sort(const char *str1, const char *str2)
DString includeClose(SrcLangExt lang, IncludeKind kind)
DString includeOpen(SrcLangExt lang, IncludeKind kind)
FileDef * toFileDef(Definition *d)
DString includeStatement(SrcLangExt lang, IncludeKind kind)
void endTitle(OutputList &ol, const DString &fileName, const DString &name)
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
void startTitle(OutputList &ol, const DString &fileName, const DefinitionMutable *def)
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
std::unique_ptr< MemberDef > createMemberDefAlias(const Definition *newScope, const MemberDef *aliasMd)
MemberDefMutable * toMemberDefMutable(Definition *d)
#define err_full(file, line, fmt,...)
bool namespaceHasNestedNamespace(const NamespaceDef *nd)
std::unique_ptr< NamespaceDef > createNamespaceDef(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const DString &ref, const DString &refFile, const DString &type, bool isPublished)
Factory method to create new NamespaceDef instance.
bool namespaceHasNestedClass(const NamespaceDef *nd, bool filterClasses, ClassDef::CompoundType ct)
static NamespaceDef * getResolvedNamespaceRec(StringSet &namespacesTried, const NamespaceAliasInfo &aliasInfo)
std::unique_ptr< NamespaceDef > createNamespaceDefAlias(const Definition *newScope, const NamespaceDef *nd)
Factory method to create an alias of an existing namespace.
bool needsSorting(const Container &container)
static DString makeDisplayName(const NamespaceDef *nd, bool includeScope)
static bool hasNonReferenceNestedNamespaceRec(const NamespaceDef *nd, int level)
void replaceNamespaceAliases(DString &name)
NamespaceDef * getResolvedNamespace(const DString &name)
NamespaceDef * toNamespaceDef(Definition *d)
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
static DString replaceNamespaceAliasesRec(StringSet &namespacesTried, const DString &name)
bool namespaceHasNestedConcept(const NamespaceDef *nd)
std::unordered_set< const NamespaceDef * > NamespaceDefSet
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().
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
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
void addGroupListToTitle(OutputList &ol, const Definition *d)
DString stripScope(const DString &name)
void createSubDirs(const Dir &d)
DString convertToHtml(const DString &s, bool keepEntities)
void addHtmlExtensionIfMissing(DString &fName)
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
DString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
DString removeAnonymousScopes(const DString &str)
A bunch of utility functions.