18#include <unordered_set>
58 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
88 if (lang==SrcLangExt::IDL)
return "\";";
89 else if (lang==SrcLangExt::Java)
return ";";
107 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
108 result.
sprintf(
"local=\"%s\" import=\"%s\" module=\"%s\" objc=\"%s\"",
224 bool isConstantGroup);
271 return std::make_unique<FileDefImpl>(p,n,ref,dn);
342 mg->distributeMemberGroupDocumentation();
353 mg->findSectionsInDocumentation(
this);
358 if (ml->listType().isDeclaration())
360 ml->findSectionsInDocumentation(
this);
380 tagFile <<
" <compound kind=\"file\">\n";
383 tagFile <<
" <filename>" << fn <<
"</filename>\n";
390 tagFile <<
" <includes id=\""
402 case LayoutDocEntry::FileClasses:
407 case LayoutDocEntry::FileInterfaces:
412 case LayoutDocEntry::FileStructs:
417 case LayoutDocEntry::FileExceptions:
422 case LayoutDocEntry::FileConcepts:
426 if (nd->isLinkableInProject())
428 tagFile <<
" <concept>" <<
convertToXML(nd->name()) <<
"</concept>\n";
433 case LayoutDocEntry::FileNamespaces:
437 if (nd->isLinkableInProject())
439 tagFile <<
" <namespace>" <<
convertToXML(nd->name()) <<
"</namespace>\n";
444 case LayoutDocEntry::MemberDecl:
457 case LayoutDocEntry::MemberGroups:
461 mg->writeTagFile(tagFile);
471 tagFile <<
" </compound>\n";
520 .setIndexWords(
true));
527 int fileMarkerPos = refText.
find(
"@0");
528 if (fileMarkerPos!=-1)
533 refText.
length()-fileMarkerPos-2));
537 err(
"translation error: invalid marker in trDefinedInSourceFile()\n");
559 .setSingleLine(
true))
568 ol.
writeDoc(ast.get(),
this,
nullptr);
592 for (
const auto &cd : list)
594 if (cd->isLinkableInProject())
596 tagFile <<
" <class kind=\"" << cd->compoundTypeString() <<
615 ol.
docify(ii.includeName);
638 ol.
docify(ii.includeName);
659 warn_uncond(
"Include graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
684 warn_uncond(
"Included by graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
718 bool const isConstantGroup)
784 mg->writeDeclarations(ol,
nullptr,
nullptr,
this,
nullptr,
nullptr);
810 if (lde->kind()==LayoutDocEntry::FileClasses &&
m_classes.declVisible() && ls)
816 else if (lde->kind()==LayoutDocEntry::FileInterfaces &&
m_interfaces.declVisible() && ls)
822 else if (lde->kind()==LayoutDocEntry::FileStructs &&
m_structs.declVisible() && ls)
828 else if (lde->kind()==LayoutDocEntry::FileExceptions &&
m_exceptions.declVisible() && ls)
834 else if (lde->kind()==LayoutDocEntry::FileNamespaces &&
m_namespaces.declVisible(
false) && ls)
840 else if (lde->kind()==LayoutDocEntry::FileConcepts &&
m_concepts.declVisible() && ls)
846 else if (lde->kind()==LayoutDocEntry::MemberDecl)
907 if (!generateTreeView)
944 if (!generateTreeView)
973 case LayoutDocEntry::BriefDesc:
976 case LayoutDocEntry::MemberDeclStart:
979 case LayoutDocEntry::FileIncludes:
982 case LayoutDocEntry::FileIncludeGraph:
985 case LayoutDocEntry::FileIncludedByGraph:
988 case LayoutDocEntry::FileSourceLink:
991 case LayoutDocEntry::FileClasses:
994 case LayoutDocEntry::FileInterfaces:
997 case LayoutDocEntry::FileStructs:
1000 case LayoutDocEntry::FileExceptions:
1003 case LayoutDocEntry::FileConcepts:
1006 case LayoutDocEntry::FileNamespaces:
1009 case LayoutDocEntry::FileConstantGroups:
1012 case LayoutDocEntry::MemberGroups:
1015 case LayoutDocEntry::MemberDecl:
1021 case LayoutDocEntry::MemberDeclEnd:
1024 case LayoutDocEntry::DetailedDesc:
1027 case LayoutDocEntry::MemberDefStart:
1030 case LayoutDocEntry::FileInlineClasses:
1033 case LayoutDocEntry::MemberDef:
1039 case LayoutDocEntry::MemberDefEnd:
1042 case LayoutDocEntry::AuthorSection:
1045 case LayoutDocEntry::ClassIncludes:
1046 case LayoutDocEntry::ClassInheritanceGraph:
1047 case LayoutDocEntry::ClassNestedClasses:
1048 case LayoutDocEntry::ClassCollaborationGraph:
1049 case LayoutDocEntry::ClassAllMembersLink:
1050 case LayoutDocEntry::ClassUsedFiles:
1051 case LayoutDocEntry::ClassInlineClasses:
1052 case LayoutDocEntry::NamespaceNestedNamespaces:
1053 case LayoutDocEntry::NamespaceNestedConstantGroups:
1054 case LayoutDocEntry::NamespaceClasses:
1055 case LayoutDocEntry::NamespaceConcepts:
1056 case LayoutDocEntry::NamespaceInterfaces:
1057 case LayoutDocEntry::NamespaceStructs:
1058 case LayoutDocEntry::NamespaceExceptions:
1059 case LayoutDocEntry::NamespaceInlineClasses:
1060 case LayoutDocEntry::ConceptDefinition:
1061 case LayoutDocEntry::GroupClasses:
1062 case LayoutDocEntry::GroupConcepts:
1063 case LayoutDocEntry::GroupModules:
1064 case LayoutDocEntry::GroupInlineClasses:
1065 case LayoutDocEntry::GroupNamespaces:
1066 case LayoutDocEntry::GroupDirs:
1067 case LayoutDocEntry::GroupNestedGroups:
1068 case LayoutDocEntry::GroupFiles:
1069 case LayoutDocEntry::GroupGraph:
1070 case LayoutDocEntry::GroupPageDocs:
1071 case LayoutDocEntry::ModuleExports:
1072 case LayoutDocEntry::ModuleClasses:
1073 case LayoutDocEntry::ModuleConcepts:
1074 case LayoutDocEntry::ModuleUsedFiles:
1075 case LayoutDocEntry::DirSubDirs:
1076 case LayoutDocEntry::DirFiles:
1077 case LayoutDocEntry::DirGraph:
1078 err(
"Internal inconsistency: member '{}' should not be part of "
1079 "LayoutDocManager::File entry list\n",lde->entryToString());
1105 if (ml->listType().isDocumentation())
1107 ml->writeDocumentationPage(ol,
name(),
this);
1124 for (
const auto &md : *allMemberList)
1126 if (md->getFileDef()==
this && md->getNamespaceDef()==
nullptr && md->isLinkable() && !md->isEnumValue())
1128 if (md->isLinkableInProject())
1130 QCString fn=md->getOutputFileBase();
1177 if (!generateTreeView)
1222 clangParser->switchToFile(
this);
1223 clangParser->writeSources(codeOL,
this);
1224 codeOL.endCodeFragment(
"DoxyCode");
1230 intf->resetCodeParserState();
1233 bool needs2PassParsing =
1235 !filterSourceFiles &&
1238 if (needs2PassParsing)
1241 intf->parseCode(devNullList,
QCString(),
1256 .setCollectXRefs(!needs2PassParsing)
1258 codeOL.endCodeFragment(
"DoxyCode");
1278 clangParser->switchToFile(
this);
1279 clangParser->writeSources(devNullList,
this);
1285 intf->resetCodeParserState();
1302 if (ml->listType().isDeclaration())
1314 mg->addToDeclarationSection();
1326 if (allMemberList && allMemberList->
contains(md))
1332 if (allMemberList==
nullptr)
1379 err(
"FileDefImpl::insertMembers(): "
1380 "member '{}' with class scope '{}' inserted in file scope '{}'!\n",
1438 err(
"FileDefImpl::removeMember(): unexpected member remove in file!\n");
1505 return it!=
m_srcDefMap.end() ? it->second :
nullptr;
1546 if (visitedFiles.find(
this)!=visitedFiles.end())
return;
1547 visitedFiles.
insert(
this);
1567 if (ii.fileDef && ii.fileDef!=
this)
1570 auto unl = ii.fileDef->getUsedNamespaces();
1571 for (
auto it = unl.rbegin(); it!=unl.rend(); ++it)
1578 auto udl = ii.fileDef->getUsedDefinitions();
1579 for (
auto it = udl.rbegin(); it!=udl.rend(); ++it)
1632 mg->addListReferences(
this);
1636 if (ml->listType().isDocumentation())
1638 ml->addListReferences(
this);
1648 mg->addRequirementReferences(
this);
1652 if (ml->listType().isDocumentation())
1654 ml->addRequirementReferences(
this);
1665 for (
auto &nd : usingDirList)
1674 for (
auto &nd : usingDirList)
1677 for (
const auto &und : nd->getUsedNamespaces())
1682 for (
const auto &ud : nd->getUsedDefinitions())
1691 static const std::unordered_set<std::string> docExtensions =
1692 {
"doc",
"txt",
"dox",
"md",
"markdown" };
1695 return (lastDot!=-1 && docExtensions.find(
name().mid(lastDot+1).str())!=docExtensions.end()) ||
1711 err(
"could not execute {}\n",vercmd);
1714 const int bufSize=1024;
1716 int numRead =
static_cast<int>(fread(buf,1,bufSize-1,f));
1718 if (numRead>0 && numRead<bufSize)
1728 msg(
"no version available\n");
1761 ml->setNeedsSorting(
1762 (ml->listType().isDeclaration() && sortBriefDocs) ||
1763 (ml->listType().isDocumentation() && sortMemberDocs));
1765 if (ml->listType().isDeclaration())
1779 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
1789 [](
const auto &fi1,
const auto &fi2) { return fi1.includeName < fi2.includeName; });
1825 if (ml->listType()==lt)
1868 if (ii.fileDef && !ii.fileDef->isReference() &&
1869 filesVisited.find(ii.fileDef->absFilePath().str())==filesVisited.end())
1872 incFiles.push_back(ii.fileDef->absFilePath().str());
1873 filesVisited.insert(ii.fileDef->absFilePath().str());
1916 ml->countDecMembers();
1917 ml->countDocMembers();
1921 mg->countDecMembers();
1922 mg->countDocMembers();
1969 if (d==
nullptr)
return nullptr;
1972 return static_cast<FileDef*
>(d);
1982 if (d==
nullptr)
return nullptr;
1985 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.