52 const QCString &header,
bool localNames)
const override;
97 const QCString &fileName,
int startLine,
int startColumn,
100 return std::make_unique<ConceptDefImpl>(fileName,startLine,startColumn,name,tagRef,tagFile);
149 const QCString &header,
bool localNames)
const override
159 return std::make_unique<ConceptDefAliasImpl>(newScope,cd);
169 if (!tagRef.isEmpty())
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.
isEmpty())
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 <<
", ";
437 if (!a.name.isEmpty())
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());
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.
isEmpty())
return nullptr;
This class represents an function or template argument list.
Parts conceptParts() const override
DefType definitionType() const override
QCString getOutputFileBase() const override
QCString anchor() const override
const NamespaceDef * getNamespaceDef() const override
const ModuleDef * getModuleDef() const override
bool isLinkable() const override
int groupId() const override
bool isLinkableInProject() const override
QCString displayName(bool includeScope=true) const override
QCString initializer() 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 QCString &header, bool localNames) const override
const FileDef * getFileDef() const override
const ConceptDef * getCdAlias() const
ConceptDefAliasImpl(const Definition *newScope, const ConceptDef *cd)
QCString title() const override
QCString getReference() const override
bool isReference() const override
virtual QCString initializer() 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 QCString &header, bool localNames) const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual const ModuleDef * getModuleDef() const =0
virtual QCString title() const =0
virtual Parts conceptParts() const =0
virtual bool hasDetailedDescription() const =0
virtual int groupId() const =0
virtual const FileDef * getFileDef() const =0
QCString getOutputFileBase() const override
const NamespaceDef * getNamespaceDef() const override
void writeIncludeFiles(OutputList &ol) const
void addConceptAttributes(OutputList &ol) const
QCString initializer() const override
~ConceptDefImpl() override
std::unique_ptr< IncludeInfo > m_incInfo
const FileDef * getFileDef() const override
int groupId() const override
ArgumentList getTemplateParameterList() const override
void addListReferences() override
QCString anchor() const override
void writeDeclarationLink(OutputList &ol, bool &found, const QCString &header, bool localNames) const override
void setTemplateArguments(const ArgumentList &al) override
void writeBriefDescription(OutputList &) const
Parts conceptParts() const override
void writeDocumentation(OutputList &) override
void writeDetailedDescription(OutputList &ol, const QCString &title) const
void setInitializer(const QCString &init) override
bool isLinkableInProject() const override
void addDocPart(const QCString &doc, int lineNr, int colNr) override
void findSectionsInDocumentation() override
bool hasDetailedDescription() const override
ConceptDefImpl(const QCString &fileName, int startLine, int startColumn, const QCString &name, const QCString &tagRef=QCString(), const QCString &tagFile=QCString())
QCString displayName(bool includeScope=true) const override
const IncludeInfo * includeInfo() const override
void writeDefinition(OutputList &ol, const QCString &title) const
void addRequirementReferences() override
void writeTagFile(TextStream &) override
bool isLinkable() const override
void setModuleDef(ModuleDef *mod) override
void addCodePart(const QCString &code, int lineNr, int colNr) override
void setNamespace(NamespaceDef *nd) override
DefType definitionType() const override
void setIncludeFile(FileDef *fd, const QCString &incName, bool local, bool force) override
void setGroupId(int id) override
void setFileDef(FileDef *fd) override
void writeAuthorSection(OutputList &ol) const
const ModuleDef * getModuleDef() const override
CodeSymbolType codeSymbolType() const override
QCString title() const override
void writeDeclaration(OutputList &ol, const QCString &header, bool localNames) const
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 QCString anchor() const =0
virtual bool isLinkableInProject() const =0
virtual QCString getReference() const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
virtual CodeSymbolType codeSymbolType() const =0
virtual QCString getOutputFileBase() const =0
virtual Definition * getOuterScope() const =0
virtual bool isReference() const =0
virtual const QCString & name() const =0
bool isReference() const override
const QCString & name() const override
void writeSourceDef(OutputList &ol) const override
QCString getDefFileName() const override
void writeNavigationPath(OutputList &ol) const override
bool isExported() const override
bool hasBriefDescription() const override
QCString docFile() const override
bool hasRequirementRefs() const override
QCString briefFile() const override
QCString qualifiedName() const override
QCString id() const override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
QCString briefDescription(bool abbreviate=FALSE) const override
Definition * getOuterScope() const override
QCString getReference() 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
bool isHidden() 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
static ConceptLinkedMap * conceptLinkedMap
static ParserManager * parserManager
static NamespaceDefMutable * globalScope
A model of a file symbol.
static LayoutDocManager & instance()
Returns a reference to this singleton.
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
void startEmbeddedDoc(int indent)
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void startMemberDeclaration()
void disable(OutputType o)
const OutputCodeList & codeGenerators() const
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
void enable(OutputType o)
void endMemberDescription()
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
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 startTextBlock(bool dense=FALSE)
void endMemberItem(OutputGenerator::MemberItemType type)
void pushGeneratorState()
void insertMemberAlign(bool templ=FALSE)
void disableAllBut(OutputType o)
void writeAnchor(const QCString &fileName, const QCString &name)
void endGroupHeader(int extraLevels=0)
void writeLabel(const QCString &l, bool isLast)
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
void parseText(const QCString &textStr)
void startTextLink(const QCString &file, const QCString &anchor)
void startMemberHeader(const QCString &anchor, int typ=2)
This is an alternative implementation of QCString.
QCString & prepend(const char *s)
bool isEmpty() const
Returns TRUE iff the string is empty.
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.
ConceptDefMutable * toConceptDefMutable(Definition *d)
ConceptDef * getResolvedConcept(const Definition *d, const QCString &name)
ConceptDef * toConceptDef(Definition *d)
static QCString templateSpec(const ArgumentList &al)
ConceptDef * getConcept(const QCString &n)
std::unique_ptr< ConceptDef > createConceptDefAlias(const Definition *newScope, const ConceptDef *cd)
std::unique_ptr< ConceptDef > createConceptDef(const QCString &fileName, int startLine, int startColumn, const QCString &name, const QCString &tagRef, const QCString &tagFile)
#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)
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()
QCString includeClose(SrcLangExt lang, IncludeKind kind)
QCString includeStatement(SrcLangExt lang, IncludeKind kind)
QCString includeOpen(SrcLangExt lang, IncludeKind kind)
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
Web server based search engine.
Options to configure the code parser.
Class representing the data associated with a #include statement.
QCString title(SrcLangExt lang) const
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 convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertToXML(const QCString &s, bool keepEntities)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.