52 const DString &header,
bool localNames)
const override;
97 const DString &fileName,
int startLine,
size_t startColumn,
100 return std::make_unique<ConceptDefImpl>(fileName,startLine,startColumn,name,tagRef,tagFile);
149 const DString &header,
bool localNames)
const override
159 return std::make_unique<ConceptDefAliasImpl>(newScope,cd);
167 if (!tagFile.
empty())
171 m_fileName = stripExtension(tagFile);
175 m_fileName = convertNameToFile(stripExtension(tagFile));
182 setReference(tagRef);
246 (fd!=
nullptr &&
m_incInfo->fileDef==
nullptr)
253 if (force && !incName.
empty())
336 tagFile <<
" <compound kind=\"concept\">\n";
340 tagFile <<
" <filename>" <<
convertToXML(fn) <<
"</filename>\n";
344 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
347 tagFile <<
" </compound>\n";
363 .setSingleLine(
true))
372 ol.
writeDoc(ast.get(),
this,
nullptr);
433 for (
const auto &a : al)
435 if (!first) t <<
", ";
441 if (a.defval.length()!=0)
443 t <<
" " << a.defval;
468 intf->resetCodeParserState();
470 for (
const auto &part :
m_parts)
474 codeOL.startCodeFragment(
"DoxyCode");
478 intf->parseCode(codeOL,
485 .setInlineFragment(
true)
486 .setShowLineNumbers(
false)
489 codeOL.endCodeFragment(
"DoxyCode");
554 .setIndexWords(
true));
603 if (!generateTreeView)
630 case LayoutDocEntry::BriefDesc:
633 case LayoutDocEntry::ConceptDefinition:
636 case LayoutDocEntry::DetailedDesc:
639 case LayoutDocEntry::AuthorSection:
642 case LayoutDocEntry::ClassIncludes:
645 case LayoutDocEntry::MemberDeclStart:
646 case LayoutDocEntry::NamespaceClasses:
647 case LayoutDocEntry::NamespaceInterfaces:
648 case LayoutDocEntry::NamespaceStructs:
649 case LayoutDocEntry::NamespaceExceptions:
650 case LayoutDocEntry::NamespaceConcepts:
651 case LayoutDocEntry::NamespaceNestedNamespaces:
652 case LayoutDocEntry::NamespaceNestedConstantGroups:
653 case LayoutDocEntry::MemberGroups:
654 case LayoutDocEntry::MemberDecl:
655 case LayoutDocEntry::MemberDeclEnd:
656 case LayoutDocEntry::MemberDefStart:
657 case LayoutDocEntry::NamespaceInlineClasses:
658 case LayoutDocEntry::MemberDef:
659 case LayoutDocEntry::MemberDefEnd:
660 case LayoutDocEntry::ClassInheritanceGraph:
661 case LayoutDocEntry::ClassNestedClasses:
662 case LayoutDocEntry::ClassCollaborationGraph:
663 case LayoutDocEntry::ClassAllMembersLink:
664 case LayoutDocEntry::ClassUsedFiles:
665 case LayoutDocEntry::ClassInlineClasses:
666 case LayoutDocEntry::FileClasses:
667 case LayoutDocEntry::FileConcepts:
668 case LayoutDocEntry::FileInterfaces:
669 case LayoutDocEntry::FileStructs:
670 case LayoutDocEntry::FileExceptions:
671 case LayoutDocEntry::FileNamespaces:
672 case LayoutDocEntry::FileConstantGroups:
673 case LayoutDocEntry::FileIncludes:
674 case LayoutDocEntry::FileIncludeGraph:
675 case LayoutDocEntry::FileIncludedByGraph:
676 case LayoutDocEntry::FileInlineClasses:
677 case LayoutDocEntry::FileSourceLink:
678 case LayoutDocEntry::GroupClasses:
679 case LayoutDocEntry::GroupConcepts:
680 case LayoutDocEntry::GroupModules:
681 case LayoutDocEntry::GroupInlineClasses:
682 case LayoutDocEntry::GroupNamespaces:
683 case LayoutDocEntry::GroupDirs:
684 case LayoutDocEntry::GroupNestedGroups:
685 case LayoutDocEntry::GroupFiles:
686 case LayoutDocEntry::GroupGraph:
687 case LayoutDocEntry::GroupPageDocs:
688 case LayoutDocEntry::ModuleExports:
689 case LayoutDocEntry::ModuleClasses:
690 case LayoutDocEntry::ModuleConcepts:
691 case LayoutDocEntry::ModuleUsedFiles:
692 case LayoutDocEntry::DirSubDirs:
693 case LayoutDocEntry::DirFiles:
694 case LayoutDocEntry::DirGraph:
695 err(
"Internal inconsistency: member '{}' should not be part of "
696 "LayoutDocManager::Concept entry list\n",lde->entryToString());
730 if (anc.
empty()) anc=cname;
else anc.
prepend(cname+
"_");
760 .setSingleLine(
true))
765 ol.
writeDoc(ast.get(),
this,
nullptr);
795 for (
const auto &cd : *
this)
797 bool isLink = cd->isLinkable();
798 if (isLink || !hideUndocClasses)
809 for (
const auto &cd : *
this)
811 cd->writeDeclarationLink(ol,found,header,localNames);
873 if (n.
empty())
return nullptr;
This class represents an function or template argument list.
DString displayName(bool includeScope=true) const override
Parts conceptParts() const override
DefType definitionType() const override
DString initializer() const override
const NamespaceDef * getNamespaceDef() const override
DString getOutputFileBase() const override
const ModuleDef * getModuleDef() const override
bool isLinkable() const override
int groupId() const override
bool isLinkableInProject() const override
DString getReference() const override
const IncludeInfo * includeInfo() const override
bool hasDetailedDescription() const override
CodeSymbolType codeSymbolType() const override
~ConceptDefAliasImpl() override
ArgumentList getTemplateParameterList() const override
void writeDeclarationLink(OutputList &ol, bool &found, const DString &header, bool localNames) const override
const FileDef * getFileDef() const override
const ConceptDef * getCdAlias() const
DString anchor() const override
ConceptDefAliasImpl(const Definition *newScope, const ConceptDef *cd)
DString title() const override
bool isReference() const override
virtual DString initializer() const =0
virtual DString title() const =0
virtual ArgumentList getTemplateParameterList() const =0
virtual const IncludeInfo * includeInfo() const =0
std::vector< Part > Parts
virtual void writeDeclarationLink(OutputList &ol, bool &found, const DString &header, bool localNames) const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual const ModuleDef * getModuleDef() const =0
virtual Parts conceptParts() const =0
virtual bool hasDetailedDescription() const =0
virtual int groupId() const =0
virtual const FileDef * getFileDef() const =0
const NamespaceDef * getNamespaceDef() const override
void writeIncludeFiles(OutputList &ol) const
void addConceptAttributes(OutputList &ol) const
~ConceptDefImpl() override
std::unique_ptr< IncludeInfo > m_incInfo
DString title() const override
const FileDef * getFileDef() const override
void setInitializer(const DString &init) override
void writeDeclarationLink(OutputList &ol, bool &found, const DString &header, bool localNames) const override
DString getOutputFileBase() const override
int groupId() const override
ArgumentList getTemplateParameterList() const override
void addListReferences() override
void setTemplateArguments(const ArgumentList &al) override
void writeBriefDescription(OutputList &) const
Parts conceptParts() const override
void writeDocumentation(OutputList &) override
DString anchor() const override
bool isLinkableInProject() const override
void addCodePart(const DString &code, int lineNr, size_t colNr) override
void findSectionsInDocumentation() override
bool hasDetailedDescription() const override
void addDocPart(const DString &doc, int lineNr, size_t colNr) override
const IncludeInfo * includeInfo() const override
void addRequirementReferences() override
void writeTagFile(TextStream &) override
bool isLinkable() const override
void setModuleDef(ModuleDef *mod) override
void setNamespace(NamespaceDef *nd) override
DefType definitionType() const override
void setGroupId(int id) override
DString displayName(bool includeScope=true) const override
void setIncludeFile(FileDef *fd, const DString &incName, bool local, bool force) override
void setFileDef(FileDef *fd) override
void writeDetailedDescription(OutputList &ol, const DString &title) const
ConceptDefImpl(const DString &fileName, int startLine, size_t startColumn, const DString &name, const DString &tagRef=DString(), const DString &tagFile=DString())
void writeAuthorSection(OutputList &ol) const
void writeDefinition(OutputList &ol, const DString &title) const
const ModuleDef * getModuleDef() const override
DString initializer() const override
CodeSymbolType codeSymbolType() const override
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
DString & prepend(const char *s)
const Definition * getAlias() const
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
The common base class of all entity definitions found in the sources.
virtual bool isLinkable() const =0
virtual const DString & name() const =0
virtual bool isLinkableInProject() const =0
virtual DString displayName(bool includeScope=true) const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual CodeSymbolType codeSymbolType() const =0
virtual Definition * getOuterScope() const =0
virtual bool isReference() const =0
virtual DString getOutputFileBase() const =0
bool isReference() const override
DString docFile() const override
void writeSourceDef(OutputList &ol) 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
DString getReference() const override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
Definition * getOuterScope() const override
const DString & localName() 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)
const FileDef * getBodyDef() const override
DString inbodyDocumentation() const override
int getStartBodyLine() const override
int docLine() const override
int briefLine() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
static ConceptLinkedMap * conceptLinkedMap
static ParserManager * parserManager
static NamespaceDefMutable * globalScope
A model of a file symbol.
Class representing the data associated with a #include statement.
static LayoutDocManager & instance()
Returns a reference to this singleton.
const T * find(const std::string &key) const
An abstract interface of a namespace symbol.
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)
const OutputCodeList & codeGenerators() const
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 writeAnchor(const DString &fileName, const DString &name)
void insertMemberAlign(bool templ=false)
void writeString(const DString &text)
void endMemberItem(OutputGenerator::MemberItemType type)
void pushGeneratorState()
void startEmbeddedDoc(size_t indent)
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)
std::unique_ptr< CodeParserInterface > getCodeParser(const DString &extension)
Gets the interface to the parser associated with a given extension.
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
Text streaming class that buffers data.
std::string str() const
Return the contents of the buffer as a std::string object.
virtual DString trConceptReference(const DString &conceptName)=0
virtual DString trAuthor(bool first_capital, bool singular)=0
virtual DString trMore()=0
virtual DString trConcept(bool first_capital, bool singular)=0
virtual DString trGeneratedAutomatically(const DString &s)=0
ConceptDefMutable * toConceptDefMutable(Definition *d)
ConceptDef * getResolvedConcept(const Definition *d, const DString &name)
ConceptDef * getConcept(const DString &n)
static DString templateSpec(const ArgumentList &al)
std::unique_ptr< ConceptDef > createConceptDef(const DString &fileName, int startLine, size_t startColumn, const DString &name, const DString &tagRef, const DString &tagFile)
ConceptDef * toConceptDef(Definition *d)
std::unique_ptr< ConceptDef > createConceptDefAlias(const Definition *newScope, const ConceptDef *cd)
#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.
Definition * toDefinition(DefinitionMutable *dm)
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 includeClose(SrcLangExt lang, IncludeKind kind)
DString includeOpen(SrcLangExt lang, IncludeKind kind)
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
void addRefItem(const RefItemVector &sli, const DString &key, const DString &prefix, const DString &name, const DString &title, const DString &args, const Definition *scope)
Web server based search engine.
Options to configure the code parser.
Helper class to pass options when calling OutputList::generateDoc().
DString title(SrcLangExt lang) const
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
void addGroupListToTitle(OutputList &ol, const Definition *d)
void addHtmlExtensionIfMissing(DString &fName)
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
A bunch of utility functions.