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);
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)
1339 case MemberType::Property:
1347 case MemberType::Variable:
1351 case MemberType::Function:
1355 case MemberType::Typedef:
1359 case MemberType::Sequence:
1363 case MemberType::Dictionary:
1367 case MemberType::Enumeration:
1371 case MemberType::EnumValue:
1373 case MemberType::Define:
1378 err(
"FileDefImpl::insertMembers(): "
1379 "member '{}' with class scope '{}' inserted in file scope '{}'!\n",
1398 case MemberType::Property:
1406 case MemberType::Variable:
1410 case MemberType::Function:
1414 case MemberType::Typedef:
1418 case MemberType::Sequence:
1422 case MemberType::Dictionary:
1426 case MemberType::Enumeration:
1430 case MemberType::EnumValue:
1432 case MemberType::Define:
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. class/struct/union/...
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
bool declVisible(const ClassDef::CompoundType *filter=nullptr) const
void writeDocumentation(OutputList &ol, const Definition *container=nullptr) const
void writeDeclaration(OutputList &ol, 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
QCString briefDescription(bool abbreviate=false) 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
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
void setLanguage(SrcLangExt lang) override
void setReference(const QCString &r) override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
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)
bool prepend(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 writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, const QCString &anchor, bool showEnumValues=false, bool showInline=false) const
void setNeedsSorting(bool b)
MemberListType listType() 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.
int numDecMembers(const ClassDef *inheritedFrom) 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)
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
void writeDeclaration(OutputList &ol, const QCString &title, bool isConstantGroup=false, bool localName=false)
bool declVisible(bool isContantGroup) const
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 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 endTextBlock(bool paraBreak=false)
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 endInclDepGraph(DotInclDepGraph &g)
void startMemberSections()
void pushGeneratorState()
void disableAllBut(OutputType o)
void startTextBlock(bool dense=false)
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)
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
This is an alternative implementation of QCString.
QCString & prepend(const char *s)
size_t length() const
Returns the length of the string, not counting the 0-terminator.
int find(char c, int index=0, bool cs=true) const
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,...)
QCString & insert(size_t index, const QCString &s)
int findRev(char c, int index=-1, bool cs=true) const
QCString left(size_t len) const
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
Text streaming class that buffers data.
virtual QCString trSourceFile(const QCString &filename)=0
virtual QCString trInclByDepGraph()=0
virtual QCString trFileReference(const QCString &fileName)=0
virtual QCString trGotoSourceCode()=0
virtual QCString trInclDepGraph(const QCString &fName)=0
virtual QCString trDefinedInSourceFile()=0
virtual QCString trMore()=0
virtual QCString trGeneratedAutomatically(const QCString &s)=0
virtual QCString trAuthor(bool first_capital, bool singular)=0
virtual QCString trGotoDocumentation()=0
virtual QCString trFile(bool first_capital, bool singular)=0
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
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)
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertToXML(const QCString &s, bool keepEntities, const bool citeEntry)
QCString detab(const QCString &s, size_t &refIndent)
EntryType guessSection(const QCString &name)
QCString removeLongPathMarker(QCString path)
QCString stripFromPath(const QCString &path)
QCString getFileFilter(const QCString &name, bool isSourceCode)
QCString getFileNameExtension(const QCString &fn)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.