18#include <unordered_set>
57 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
87 if (lang==SrcLangExt::IDL)
return "\";";
88 else if (lang==SrcLangExt::Java)
return ";";
106 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
107 result.
sprintf(
"local=\"%s\" import=\"%s\" module=\"%s\" objc=\"%s\"",
223 bool isConstantGroup);
270 return std::make_unique<FileDefImpl>(p,n,ref,dn);
341 mg->distributeMemberGroupDocumentation();
352 mg->findSectionsInDocumentation(
this);
357 if (ml->listType().isDeclaration())
359 ml->findSectionsInDocumentation(
this);
379 tagFile <<
" <compound kind=\"file\">\n";
382 tagFile <<
" <filename>" << fn <<
"</filename>\n";
389 tagFile <<
" <includes id=\""
401 case LayoutDocEntry::FileClasses:
406 case LayoutDocEntry::FileInterfaces:
411 case LayoutDocEntry::FileStructs:
416 case LayoutDocEntry::FileExceptions:
421 case LayoutDocEntry::FileConcepts:
425 if (nd->isLinkableInProject())
427 tagFile <<
" <concept>" <<
convertToXML(nd->name()) <<
"</concept>\n";
432 case LayoutDocEntry::FileNamespaces:
436 if (nd->isLinkableInProject())
438 tagFile <<
" <namespace>" <<
convertToXML(nd->name()) <<
"</namespace>\n";
443 case LayoutDocEntry::MemberDecl:
456 case LayoutDocEntry::MemberGroups:
460 mg->writeTagFile(tagFile);
470 tagFile <<
" </compound>\n";
519 .setIndexWords(
true));
526 int fileMarkerPos = refText.
find(
"@0");
527 if (fileMarkerPos!=-1)
532 refText.
length()-fileMarkerPos-2));
536 err(
"translation error: invalid marker in trDefinedInSourceFile()\n");
558 .setSingleLine(
true))
567 ol.
writeDoc(ast.get(),
this,
nullptr);
591 for (
const auto &cd : list)
593 if (cd->isLinkableInProject())
595 tagFile <<
" <class kind=\"" << cd->compoundTypeString() <<
614 ol.
docify(ii.includeName);
637 ol.
docify(ii.includeName);
658 warn_uncond(
"Include graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
683 warn_uncond(
"Included by graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
717 bool const isConstantGroup)
783 mg->writeDeclarations(ol,
nullptr,
nullptr,
this,
nullptr,
nullptr);
809 if (lde->kind()==LayoutDocEntry::FileClasses &&
m_classes.declVisible() && ls)
815 else if (lde->kind()==LayoutDocEntry::FileInterfaces &&
m_interfaces.declVisible() && ls)
821 else if (lde->kind()==LayoutDocEntry::FileStructs &&
m_structs.declVisible() && ls)
827 else if (lde->kind()==LayoutDocEntry::FileExceptions &&
m_exceptions.declVisible() && ls)
833 else if (lde->kind()==LayoutDocEntry::FileNamespaces &&
m_namespaces.declVisible(
false) && ls)
839 else if (lde->kind()==LayoutDocEntry::FileConcepts &&
m_concepts.declVisible() && ls)
845 else if (lde->kind()==LayoutDocEntry::MemberDecl)
906 if (!generateTreeView)
943 if (!generateTreeView)
972 case LayoutDocEntry::BriefDesc:
975 case LayoutDocEntry::MemberDeclStart:
978 case LayoutDocEntry::FileIncludes:
981 case LayoutDocEntry::FileIncludeGraph:
984 case LayoutDocEntry::FileIncludedByGraph:
987 case LayoutDocEntry::FileSourceLink:
990 case LayoutDocEntry::FileClasses:
993 case LayoutDocEntry::FileInterfaces:
996 case LayoutDocEntry::FileStructs:
999 case LayoutDocEntry::FileExceptions:
1002 case LayoutDocEntry::FileConcepts:
1005 case LayoutDocEntry::FileNamespaces:
1008 case LayoutDocEntry::FileConstantGroups:
1011 case LayoutDocEntry::MemberGroups:
1014 case LayoutDocEntry::MemberDecl:
1020 case LayoutDocEntry::MemberDeclEnd:
1023 case LayoutDocEntry::DetailedDesc:
1026 case LayoutDocEntry::MemberDefStart:
1029 case LayoutDocEntry::FileInlineClasses:
1032 case LayoutDocEntry::MemberDef:
1038 case LayoutDocEntry::MemberDefEnd:
1041 case LayoutDocEntry::AuthorSection:
1044 case LayoutDocEntry::ClassIncludes:
1045 case LayoutDocEntry::ClassInheritanceGraph:
1046 case LayoutDocEntry::ClassNestedClasses:
1047 case LayoutDocEntry::ClassCollaborationGraph:
1048 case LayoutDocEntry::ClassAllMembersLink:
1049 case LayoutDocEntry::ClassUsedFiles:
1050 case LayoutDocEntry::ClassInlineClasses:
1051 case LayoutDocEntry::NamespaceNestedNamespaces:
1052 case LayoutDocEntry::NamespaceNestedConstantGroups:
1053 case LayoutDocEntry::NamespaceClasses:
1054 case LayoutDocEntry::NamespaceConcepts:
1055 case LayoutDocEntry::NamespaceInterfaces:
1056 case LayoutDocEntry::NamespaceStructs:
1057 case LayoutDocEntry::NamespaceExceptions:
1058 case LayoutDocEntry::NamespaceInlineClasses:
1059 case LayoutDocEntry::ConceptDefinition:
1060 case LayoutDocEntry::GroupClasses:
1061 case LayoutDocEntry::GroupConcepts:
1062 case LayoutDocEntry::GroupModules:
1063 case LayoutDocEntry::GroupInlineClasses:
1064 case LayoutDocEntry::GroupNamespaces:
1065 case LayoutDocEntry::GroupDirs:
1066 case LayoutDocEntry::GroupNestedGroups:
1067 case LayoutDocEntry::GroupFiles:
1068 case LayoutDocEntry::GroupGraph:
1069 case LayoutDocEntry::GroupPageDocs:
1070 case LayoutDocEntry::ModuleExports:
1071 case LayoutDocEntry::ModuleClasses:
1072 case LayoutDocEntry::ModuleConcepts:
1073 case LayoutDocEntry::ModuleUsedFiles:
1074 case LayoutDocEntry::DirSubDirs:
1075 case LayoutDocEntry::DirFiles:
1076 case LayoutDocEntry::DirGraph:
1077 err(
"Internal inconsistency: member '{}' should not be part of "
1078 "LayoutDocManager::File entry list\n",lde->entryToString());
1104 if (ml->listType().isDocumentation())
1106 ml->writeDocumentationPage(ol,
name(),
this);
1123 for (
const auto &md : *allMemberList)
1125 if (md->getFileDef()==
this && md->getNamespaceDef()==
nullptr && md->isLinkable() && !md->isEnumValue())
1127 if (md->isLinkableInProject())
1129 QCString fn=md->getOutputFileBase();
1176 if (!generateTreeView)
1221 clangParser->switchToFile(
this);
1222 clangParser->writeSources(codeOL,
this);
1223 codeOL.endCodeFragment(
"DoxyCode");
1229 intf->resetCodeParserState();
1232 bool needs2PassParsing =
1234 !filterSourceFiles &&
1237 if (needs2PassParsing)
1240 intf->parseCode(devNullList,
QCString(),
1255 .setCollectXRefs(!needs2PassParsing)
1257 codeOL.endCodeFragment(
"DoxyCode");
1277 clangParser->switchToFile(
this);
1278 clangParser->writeSources(devNullList,
this);
1284 intf->resetCodeParserState();
1301 if (ml->listType().isDeclaration())
1313 mg->addToDeclarationSection();
1325 if (allMemberList && allMemberList->
contains(md))
1331 if (allMemberList==
nullptr)
1378 err(
"FileDefImpl::insertMembers(): "
1379 "member '{}' with class scope '{}' inserted in file scope '{}'!\n",
1437 err(
"FileDefImpl::removeMember(): unexpected member remove in file!\n");
1504 return it!=
m_srcDefMap.end() ? it->second :
nullptr;
1545 if (visitedFiles.find(
this)!=visitedFiles.end())
return;
1546 visitedFiles.
insert(
this);
1566 if (ii.fileDef && ii.fileDef!=
this)
1569 auto unl = ii.fileDef->getUsedNamespaces();
1570 for (
auto it = unl.rbegin(); it!=unl.rend(); ++it)
1577 auto udl = ii.fileDef->getUsedDefinitions();
1578 for (
auto it = udl.rbegin(); it!=udl.rend(); ++it)
1631 mg->addListReferences(
this);
1635 if (ml->listType().isDocumentation())
1637 ml->addListReferences(
this);
1647 mg->addRequirementReferences(
this);
1651 if (ml->listType().isDocumentation())
1653 ml->addRequirementReferences(
this);
1664 for (
auto &nd : usingDirList)
1673 for (
auto &nd : usingDirList)
1676 for (
const auto &und : nd->getUsedNamespaces())
1681 for (
const auto &ud : nd->getUsedDefinitions())
1690 static const std::unordered_set<std::string> docExtensions =
1691 {
"doc",
"txt",
"dox",
"md",
"markdown" };
1694 return (lastDot!=-1 && docExtensions.find(
name().mid(lastDot+1).str())!=docExtensions.end()) ||
1710 err(
"could not execute {}\n",vercmd);
1713 const int bufSize=1024;
1715 int numRead =
static_cast<int>(fread(buf,1,bufSize-1,f));
1717 if (numRead>0 && numRead<bufSize)
1727 msg(
"no version available\n");
1760 ml->setNeedsSorting(
1761 (ml->listType().isDeclaration() && sortBriefDocs) ||
1762 (ml->listType().isDocumentation() && sortMemberDocs));
1764 if (ml->listType().isDeclaration())
1778 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
1788 [](
const auto &fi1,
const auto &fi2) { return fi1.includeName < fi2.includeName; });
1824 if (ml->listType()==lt)
1867 if (ii.fileDef && !ii.fileDef->isReference() &&
1868 filesVisited.find(ii.fileDef->absFilePath().str())==filesVisited.end())
1871 incFiles.push_back(ii.fileDef->absFilePath().str());
1872 filesVisited.insert(ii.fileDef->absFilePath().str());
1915 ml->countDecMembers();
1916 ml->countDocMembers();
1920 mg->countDecMembers();
1921 mg->countDocMembers();
1968 if (d==
nullptr)
return nullptr;
1971 return static_cast<FileDef*
>(d);
1981 if (d==
nullptr)
return nullptr;
1984 return static_cast<const FileDef*
>(d);
Clang parser object for a single translation unit, which consists of a source file and the directly o...
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.
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
static void print(DebugMask mask, int prio, fmt::format_string< Args... > fmt, Args &&... args)
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 bool isHidden() const =0
virtual QCString getReference() const =0
virtual QCString qualifiedName() const =0
virtual QCString getOutputFileBase() const =0
virtual bool isReference() const =0
virtual const QCString & name() const =0
bool isReference() const override
const QCString & name() const override
bool isLinkableViaGroup() const override
bool hasBriefDescription() const override
QCString docFile() const override
QCString getDefFileExtension() const override
bool hasRequirementRefs() const override
QCString briefFile() const override
void setLanguage(SrcLangExt lang) override
void setReference(const QCString &r) override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
QCString briefDescription(bool abbreviate=FALSE) const override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
const QCString & localName() const override
const FileDef * getBodyDef() const override
int getStartBodyLine() 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 writeNavigationPath(OutputList &ol) const =0
Class implementing OutputCodeIntf by throwing away everything.
A model of a directory symbol.
Representation of an include dependency graph.
static bool suppressDocWarnings
static bool parseSourcesNeeded
static bool clangAssistedParsing
static ParserManager * parserManager
A model of a file symbol.
virtual QCString includeName() const =0
virtual bool generateSourceFile() const =0
virtual QCString absFilePath() const =0
virtual const IncludeInfoList & includeFileList() const =0
bool isDocumentationFile() const override
void findSectionsInDocumentation() override
void setModuleDef(ModuleDef *mod) override
void addIncludedUsingDirectives(FileDefSet &visitedFiles) override
void writeBriefDescription(OutputList &ol)
const LinkedRefMap< const Definition > & getUsedDefinitions() const override
void setDiskName(const QCString &name) override
void addSourceRef(int line, const Definition *d, const MemberDef *md) override
LinkedRefMap< const Definition > m_usingDeclList
QCString getOutputFileBase() const override
void insertNamespace(NamespaceDef *nd) override
ModuleDef * getModuleDef() const override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *currentMd) const override
void writeSourceLink(OutputList &ol)
void writeSummaryLinks(OutputList &ol) const override
QCString absFilePath() const override
ClassLinkedRefMap m_interfaces
const ConceptLinkedRefMap & getConcepts() const override
QCString m_inclDepFileName
ClassLinkedRefMap m_structs
void sortMemberLists() override
void parseSource(ClangTUParser *clangParser) override
void setDiskNameLocal(const QCString &name)
void addMemberToList(MemberListType lt, MemberDef *md)
void acquireFileVersion()
void addUsingDirective(NamespaceDef *nd) override
void writeNamespaceDeclarations(OutputList &ol, const QCString &title, bool isConstantGroup)
void countMembers() override
void distributeMemberGroupDocumentation() override
MemberDefLineMap m_srcMemberMap
ConceptLinkedRefMap m_concepts
void insertClass(ClassDef *cd) override
DefinitionLineMap m_srcDefMap
QCString getSourceFileBase() const override
NamespaceLinkedRefMap m_namespaces
IncludeInfoList m_includedByList
CodeSymbolType codeSymbolType() const override
void writeClassDeclarations(OutputList &ol, const QCString &title, const ClassLinkedRefMap &list)
QCString anchor() const override
const NamespaceLinkedRefMap & getNamespaces() const override
void removeMember(MemberDef *md) override
void addUsingDeclaration(const Definition *d) override
ClassLinkedRefMap m_exceptions
QCString includeName() const override
void writeTagFile(TextStream &t) override
void endMemberDeclarations(OutputList &ol)
void addListReferences() override
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
const MemberGroupList & getMemberGroups() const override
IncludeInfoMap m_includedByMap
void insertMember(MemberDef *md) override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const override
void writeInlineClasses(OutputList &ol)
const QCString & docName() const override
void writeIncludeFiles(OutputList &ol)
MemberGroupList m_memberGroups
void computeAnchors() override
void writeDetailedDescription(OutputList &ol, const QCString &title)
void writeMemberPages(OutputList &ol) override
void writeSourceFooter(OutputList &ol) override
QCString fileVersion() const override
void writeConcepts(OutputList &ol, const QCString &title)
bool generateSourceFile() const override
void writeIncludedByGraph(OutputList &ol)
const QCString & name() const override
const MemberDef * getSourceMember(int lineNr) const override
QCString m_outputDiskName
bool isIncluded(const QCString &name) const override
const IncludeInfoList & includeFileList() const override
void removeMemberFromList(MemberListType lt, MemberDef *md)
void getAllIncludeFilesRecursively(StringVector &incFiles) const override
MemberLists m_memberLists
LinkedRefMap< NamespaceDef > m_usingDirList
QCString getVersion() const override
void writeAuthorSection(OutputList &ol)
void insertConcept(ConceptDef *cd) override
const MemberLists & getMemberLists() const override
void addIncludedByDependency(const FileDef *fd, const QCString &incName, IncludeKind kind) override
IncludeInfoMap m_includeMap
QCString m_inclByDepFileName
DirDef * getDirDef() const override
void overrideIncludeGraph(bool e) override
ClassLinkedRefMap m_classes
void overrideIncludedByGraph(bool e) override
const IncludeInfoList & includedByFileList() const override
bool hasIncludedByGraph() const override
void writePageNavigation(OutputList &ol) const override
QCString displayName(bool=TRUE) const override
bool subGrouping() const override
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
void writeSourceHeader(OutputList &ol) override
FileDefImpl(const QCString &p, const QCString &n, const QCString &ref=QCString(), const QCString &dn=QCString())
void writeSourceBody(OutputList &ol, ClangTUParser *clangParser) override
void writeIncludeGraph(OutputList &ol)
QCString title() const override
void addMembersToMemberGroup() override
int numDocMembers() const override
QCString getPath() const override
bool m_hasIncludedByGraph
IncludeInfoList m_includeList
void startMemberDocumentation(OutputList &ol)
int numDecMembers() const override
void writeClassesToTagFile(TextStream &t, const ClassLinkedRefMap &list)
MemberList * getMemberList(MemberListType lt) const override
void startMemberDeclarations(OutputList &ol)
bool isSource() const override
void combineUsingRelations() override
bool isLinkableInProject() const override
void endMemberDocumentation(OutputList &ol)
QCString includedByDependencyGraphFileName() const override
const ClassLinkedRefMap & getClasses() const override
QCString fileName() const override
bool hasIncludeGraph() const override
void writeDocumentation(OutputList &ol) override
void addRequirementReferences() override
bool isLinkable() const override
void addIncludeDependency(const FileDef *fd, const QCString &incName, IncludeKind kind) override
DefType definitionType() const override
bool hasDetailedDescription() const override
QCString includeDependencyGraphFileName() const override
void setDirDef(DirDef *dd) override
void writeMemberGroups(OutputList &ol)
const Definition * getSourceDefinition(int lineNr) const override
static LayoutDocManager & instance()
Returns a reference to this singleton.
Container class representing a vector of objects with keys.
bool add(const char *k, T *obj)
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.
bool needsSorting() const
int numDocMembers() const
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)
void setNeedsSorting(bool b)
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
int numDecMembers(const ClassDef *inheritedFrom) const
Wrapper class for the MemberListType type.
constexpr const char * toLabel() const noexcept
void remove(const MemberDef *md)
bool contains(const MemberDef *md) const
void push_back(const T &value)
static ModuleManager & instance()
ModuleDef * getPrimaryInterface(const QCString &moduleName) const
An abstract interface of a namespace symbol.
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
Class representing a list of different code generators.
void add(OutputCodeIntfPtr &&p)
void startCodeFragment(const QCString &style)
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)
bool isEnabled(OutputType o)
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void disable(OutputType o)
const OutputCodeList & codeGenerators() const
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
void enable(OutputType o)
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
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 startProjectNumber()
void startTextBlock(bool dense=FALSE)
void endInclDepGraph(DotInclDepGraph &g)
void startMemberSections()
void pushGeneratorState()
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 lineBreak(const QCString &style=QCString())
void parseText(const QCString &textStr)
void startTextLink(const QCString &file, const QCString &anchor)
This is an alternative implementation of QCString.
int find(char c, int index=0, bool cs=TRUE) const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
bool isEmpty() const
Returns TRUE iff the string is empty.
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
const std::string & str() const
QCString right(size_t len) const
QCString & sprintf(const char *format,...)
int findRev(char c, int index=-1, bool cs=TRUE) const
QCString & insert(size_t index, const QCString &s)
QCString left(size_t len) const
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
Text streaming class that buffers data.
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)
#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.
std::unordered_set< std::string > StringUnorderedSet
std::vector< std::string > StringVector
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()
std::unordered_map< std::string, const IncludeInfo * > IncludeInfoMap
QCString includeClose(SrcLangExt lang, IncludeKind kind)
std::unordered_map< int, const Definition * > DefinitionLineMap
QCString includeStatement(SrcLangExt lang, IncludeKind kind)
std::unique_ptr< FileDef > createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
FileDef * toFileDef(Definition *d)
std::unordered_map< int, const MemberDef * > MemberDefLineMap
QCString includeOpen(SrcLangExt lang, IncludeKind kind)
QCString includeTagFileAttributes(SrcLangExt lang, IncludeKind kind)
static void getAllIncludeFilesRecursively(StringUnorderedSet &filesVisited, const FileDef *fd, StringVector &incFiles)
constexpr uint32_t IncludeKind_ObjCMask
constexpr uint32_t IncludeKind_ImportMask
constexpr uint32_t IncludeKind_LocalMask
std::unordered_set< const FileDef * > FileDefSet
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
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)
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
Translator * theTranslator
MemberDefMutable * toMemberDefMutable(Definition *d)
#define warn_uncond(fmt,...)
FILE * popen(const QCString &name, const QCString &type)
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
std::unordered_set< const NamespaceDef * > NamespaceDefSet
Portable versions of functions that are platform dependent.
int qstricmp_sort(const char *str1, const char *str2)
const char * qPrint(const char *s)
Web server based search engine.
std::string_view stripWhiteSpace(std::string_view s)
Given a string view s, returns a new, narrower view on that string, skipping over any leading or trai...
Options to configure the code parser.
Represents of a member declaration list with configurable title and subtitle.
QCString title(SrcLangExt lang) const
Represents of a member definition list with configurable title.
QCString title(SrcLangExt lang) const
QCString title(SrcLangExt lang) const
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
QCString convertToHtml(const QCString &s, bool keepEntities)
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)
QCString fileToString(const QCString &name, bool filter, bool isSourceCode)
void createSubDirs(const Dir &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 detab(const QCString &s, size_t &refIndent)
EntryType guessSection(const QCString &name)
QCString removeLongPathMarker(QCString path)
QCString getFileFilter(const QCString &name, bool isSourceCode)
QCString getFileNameExtension(const QCString &fn)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.