34 ConceptDefImpl(
const QCString &fileName,
int startLine,
int startColumn,
35 const QCString &
name,
const QCString &tagRef=QCString(),
const QCString &tagFile=QCString());
44 QCString
displayName(
bool includeScope=
true)
const override;
47 QCString
anchor()
const override;
52 const QCString &header,
bool localNames)
const override;
56 QCString
title()
const override;
60 void setIncludeFile(FileDef *fd,
const QCString &incName,
bool local,
bool force)
override;
91 const QCString &fileName,
int startLine,
int startColumn,
94 return std::make_unique<ConceptDefImpl>(fileName,startLine,startColumn,name,tagRef,tagFile);
143 const QCString &header,
bool localNames)
const override
151 return std::make_unique<ConceptDefAliasImpl>(newScope,cd);
161 if (!tagRef.isEmpty())
163 m_fileName = stripExtension(tagFile);
167 m_fileName = convertNameToFile(stripExtension(tagFile));
174 setReference(tagRef);
237 (fd!=
nullptr &&
m_incInfo->fileDef==
nullptr)
244 if (force && !incName.
isEmpty())
303 tagFile <<
" <compound kind=\"concept\">\n";
307 tagFile <<
" <filename>" <<
convertToXML(fn) <<
"</filename>\n";
308 QCString idStr =
id();
311 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
314 tagFile <<
" </compound>\n";
333 ol.
writeDoc(ast.get(),
this,
nullptr);
357 QCString nm=
m_incInfo->includeName.isEmpty() ?
359 m_incInfo->fileDef->docName() : QCString()
394 for (
const auto &a : al)
396 if (!first) t <<
", ";
398 if (!a.name.isEmpty())
402 if (a.defval.length()!=0)
404 t <<
" " << a.defval;
429 intf->resetCodeParserState();
434 TextStream conceptDef;
437 m_fileDef, -1,-1,
true,
nullptr,
false,
this);
438 codeOL.endCodeFragment(
"DoxyCode");
520 if (!generateTreeView)
544 const LayoutDocEntrySection *ls =
dynamic_cast<const LayoutDocEntrySection*
>(lde.get());
547 case LayoutDocEntry::BriefDesc:
550 case LayoutDocEntry::ConceptDefinition:
553 case LayoutDocEntry::DetailedDesc:
556 case LayoutDocEntry::AuthorSection:
559 case LayoutDocEntry::ClassIncludes:
562 case LayoutDocEntry::MemberDeclStart:
563 case LayoutDocEntry::NamespaceClasses:
564 case LayoutDocEntry::NamespaceInterfaces:
565 case LayoutDocEntry::NamespaceStructs:
566 case LayoutDocEntry::NamespaceExceptions:
567 case LayoutDocEntry::NamespaceConcepts:
568 case LayoutDocEntry::NamespaceNestedNamespaces:
569 case LayoutDocEntry::NamespaceNestedConstantGroups:
570 case LayoutDocEntry::MemberGroups:
571 case LayoutDocEntry::MemberDecl:
572 case LayoutDocEntry::MemberDeclEnd:
573 case LayoutDocEntry::MemberDefStart:
574 case LayoutDocEntry::NamespaceInlineClasses:
575 case LayoutDocEntry::MemberDef:
576 case LayoutDocEntry::MemberDefEnd:
577 case LayoutDocEntry::ClassInheritanceGraph:
578 case LayoutDocEntry::ClassNestedClasses:
579 case LayoutDocEntry::ClassCollaborationGraph:
580 case LayoutDocEntry::ClassAllMembersLink:
581 case LayoutDocEntry::ClassUsedFiles:
582 case LayoutDocEntry::ClassInlineClasses:
583 case LayoutDocEntry::FileClasses:
584 case LayoutDocEntry::FileConcepts:
585 case LayoutDocEntry::FileInterfaces:
586 case LayoutDocEntry::FileStructs:
587 case LayoutDocEntry::FileExceptions:
588 case LayoutDocEntry::FileNamespaces:
589 case LayoutDocEntry::FileConstantGroups:
590 case LayoutDocEntry::FileIncludes:
591 case LayoutDocEntry::FileIncludeGraph:
592 case LayoutDocEntry::FileIncludedByGraph:
593 case LayoutDocEntry::FileInlineClasses:
594 case LayoutDocEntry::FileSourceLink:
595 case LayoutDocEntry::GroupClasses:
596 case LayoutDocEntry::GroupConcepts:
597 case LayoutDocEntry::GroupModules:
598 case LayoutDocEntry::GroupInlineClasses:
599 case LayoutDocEntry::GroupNamespaces:
600 case LayoutDocEntry::GroupDirs:
601 case LayoutDocEntry::GroupNestedGroups:
602 case LayoutDocEntry::GroupFiles:
603 case LayoutDocEntry::GroupGraph:
604 case LayoutDocEntry::GroupPageDocs:
605 case LayoutDocEntry::ModuleExports:
606 case LayoutDocEntry::ModuleClasses:
607 case LayoutDocEntry::ModuleConcepts:
608 case LayoutDocEntry::ModuleUsedFiles:
609 case LayoutDocEntry::DirSubDirs:
610 case LayoutDocEntry::DirFiles:
611 case LayoutDocEntry::DirGraph:
612 err(
"Internal inconsistency: member %d should not be part of "
613 "LayoutDocManager::Concept entry list\n",lde->kind());
675 ol.
writeDoc(ast.get(),
this,
nullptr);
695 for (
const auto &cd : *
this)
697 bool isLink = cd->isLinkable();
698 if (isLink || !hideUndocClasses)
709 for (
const auto &cd : *
this)
711 cd->writeDeclarationLink(ol,
found,header,localNames);
773 if (n.
isEmpty())
return nullptr;
This class represents an function or template argument list.
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
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 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
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
void writeDocumentation(OutputList &) override
void writeDetailedDescription(OutputList &ol, const QCString &title) const
void setInitializer(const QCString &init) override
bool isLinkableInProject() const 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 writeTagFile(TextStream &) override
bool isLinkable() const override
void setModuleDef(ModuleDef *mod) 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 SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isLinkable() const =0
virtual QCString anchor() const =0
virtual QCString id() const =0
virtual bool isLinkableInProject() const =0
virtual QCString getReference() const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
virtual QCString briefFile() 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
void writeNavigationPath(OutputList &ol) const override
bool isExported() const override
bool hasBriefDescription() const override
QCString docFile() const override
QCString briefFile() const override
QCString id() 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
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.
void startCodeFragment(const QCString &style)
Class representing a list of output generators that are written to in parallel.
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void startGroupHeader(int extraLevels=0)
void startMemberDeclaration()
void disable(OutputType o)
const OutputCodeList & codeGenerators() const
void enable(OutputType o)
void endMemberDescription()
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md)
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
void docify(const QCString &s)
void startParagraph(const QCString &classDef=QCString())
void startTextBlock(bool dense=FALSE)
void endMemberItem(OutputGenerator::MemberItemType type)
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
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)
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.
bool isEmpty() const
Returns TRUE iff the string is empty.
Text streaming class that buffers data.
std::string str() const
Return the contents of the buffer as a std::string object.
virtual QCString trConcept(bool first_capital, bool singular)=0
virtual QCString trMore()=0
virtual QCString trGeneratedAutomatically(const QCString &s)=0
virtual QCString trAuthor(bool first_capital, bool singular)=0
virtual QCString trConceptReference(const QCString &conceptName)=0
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)
IDocParserPtr createDocParser()
factory function to create a parser
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
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, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
void endFileWithNavPath(OutputList &ol, const Definition *d)
Translator * theTranslator
Web server based search engine.
Class representing the data associated with a #include statement.
QCString title(SrcLangExt lang) const
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.