Doxygen
Loading...
Searching...
No Matches
outputlist.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2020 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef OUTPUTLIST_H
17#define OUTPUTLIST_H
18
19#include <functional>
20#include <memory>
21#include <utility>
22#include <vector>
23
24#include "devnullgen.h"
25#include "docbookgen.h"
26#include "docoptions.h"
27#include "htmlgen.h"
28#include "latexgen.h"
29#include "linkifytext.h"
30#include "mangen.h"
31#include "outputgen.h"
32#include "rtfgen.h"
33#include "xmlgen.h"
34
35class OutputCodeList;
36
37//-------------------------------------------------------------------------------------------
38
39/** Helper template class which defers all methods of OutputCodeIntf to an existing object of the templated type.
40 * This allows to add the same generator to multiple lists (one that owns the element, and others that refers to it).
41 */
42template<class OutputCodeGen>
43class OutputCodeDefer final : public OutputCodeIntf
44{
45 public:
46 OutputCodeDefer(OutputCodeGen *codeGen) : m_codeGen(codeGen) {}
47 OutputType type() const override { return m_codeGen->type(); }
48 std::unique_ptr<OutputCodeIntf> clone() override { return std::make_unique<OutputCodeDefer>(*this); }
49 void codify(const DString &s) override { m_codeGen->codify(s); }
50 void stripCodeComments(bool b) override { m_codeGen->stripCodeComments(b); }
51 void startSpecialComment() override { m_codeGen->startSpecialComment(); }
52 void endSpecialComment() override { m_codeGen->endSpecialComment(); }
53 void setStripIndentAmount(size_t amount) override { m_codeGen->setStripIndentAmount(amount); }
55 const DString &ref,const DString &file,
56 const DString &anchor,const DString &name,
57 const DString &tooltip) override
58 { m_codeGen->writeCodeLink(type,ref,file,anchor,name,tooltip); }
59
60 void writeLineNumber(const DString &ref,const DString &file,const DString &anchor,
61 int lineNumber, bool writeLineAnchor) override
62 { m_codeGen->writeLineNumber(ref,file,anchor,lineNumber,writeLineAnchor); }
63
64 void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl,
65 const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) override
66 { m_codeGen->writeTooltip(id,docInfo,decl,desc,defInfo,declInfo); }
67
68 void startCodeLine(int lineNr) override
69 { m_codeGen->startCodeLine(lineNr); }
70
71 void endCodeLine() override
72 { m_codeGen->endCodeLine(); }
73
74 void startFontClass(const DString &c) override
75 { m_codeGen->startFontClass(c); }
76
77 void endFontClass() override
78 { m_codeGen->endFontClass(); }
79
80 void writeCodeAnchor(const DString &name) override
81 { m_codeGen->writeCodeAnchor(name); }
82
83 void startCodeFragment(const DString &style) override
84 { m_codeGen->startCodeFragment(style); }
85
86 void endCodeFragment(const DString &style) override
87 { m_codeGen->endCodeFragment(style); }
88
89 void startFold(int lineNr,const DString &startMarker,const DString &endMarker) override
90 { m_codeGen->startFold(lineNr,startMarker,endMarker); }
91
92 void endFold() override
93 { m_codeGen->endFold(); }
94
95 private:
96 OutputCodeGen *m_codeGen;
97};
98
105
106/** Implementation that allows capturing calls made to the code interface to later
107 * invoke them on a #OutputCodeList via replay().
108 */
110{
111 public:
112 OutputType type() const override { return OutputType::Recorder; }
113 void codify(const DString &s) override;
114 void stripCodeComments(bool) override {}
115 void startSpecialComment() override;
116 void endSpecialComment() override;
117 void setStripIndentAmount(size_t) override {}
118 std::unique_ptr<OutputCodeIntf> clone() override { return std::make_unique<OutputCodeRecorder>(*this); }
120 const DString &ref,const DString &file,
121 const DString &anchor,const DString &name,
122 const DString &tooltip) override;
123 void writeLineNumber(const DString &ref,const DString &file,const DString &anchor,
124 int lineNumber, bool writeLineAnchor) override;
125 void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl,
126 const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) override;
127 void startCodeLine(int) override;
128 void endCodeLine() override;
129 void startFontClass(const DString &c) override;
130 void endFontClass() override;
131 void writeCodeAnchor(const DString &name) override;
132 void startCodeFragment(const DString &style) override;
133 void endCodeFragment(const DString &style) override;
134 void startFold(int lineNr,const DString &startMarker,const DString &endMarker) override;
135 void endFold() override;
136
137 void replay(OutputCodeList &ol,int startLine,int endLine,bool showLineNumbers,bool stripComment,size_t stripIndentAmount);
138 private:
139 void startNewLine(int lineNr);
140 struct CallInfo
141 {
142 using ConditionFunc = std::function<bool()>;
143 using OutputFunc = std::function<void(OutputCodeList*)>;
145 : condition(std::move(c)), function(std::move(f)), insideSpecialComment(ic) {}
149 };
150 std::vector<CallInfo> m_calls;
151 std::vector<size_t> m_lineOffset;
152 bool m_showLineNumbers = false;
154};
155
156
157/** Class representing a list of different code generators.
158 * It offers the same interface as the specific code generators,
159 * and will forward each method to all generators that are enabled.
160 */
162{
163 public:
164 using OutputCodeIntfPtr = std::unique_ptr<OutputCodeIntf>;
165
166 private:
168 {
169 explicit OutputCodeElem(OutputCodeIntfPtr &&p) : intf(std::move(p)) {}
171 {
172 intf = other.intf->clone();
173 enabled = other.enabled;
174 }
176 {
177 if (&other!=this)
178 {
179 intf = other.intf->clone();
180 enabled = other.enabled;
181 }
182 return *this;
183 }
185 bool enabled = true;
186 };
187 public:
188
189 int id() const { return m_id; }
190 void setId(int id) { m_id = id; }
191
193 {
194 m_outputCodeList.emplace_back(std::move(p));
195 }
196
197 /** Add a code generator to the list, using a syntax similar to std::make_unique<T>() */
198 template<class T,class... As>
199 T* add(As&&... args)
200 {
201 add(std::make_unique<T>(std::forward<As>(args)...));
202 return static_cast<T*>(m_outputCodeList.back().intf.get());
203 }
204
205 /** Returns a pointer to a specific generator in the list */
206 template<class T>
208 {
209 for (auto &e : m_outputCodeList)
210 {
211 if (e.intf->type()==o) { return static_cast<T*>(e.intf.get()); }
212 }
213 return nullptr;
214 }
215
216 /** Enable or disable a specific generator */
217 void setEnabledFiltered(OutputType o,bool enabled)
218 {
219 for (auto &e : m_outputCodeList)
220 {
221 if (e.intf->type()==o) e.enabled = enabled;
222 }
223 }
224
225 void clear()
226 {
227 m_outputCodeList.clear();
228 }
229
230 // ---- OutputCodeIntf forwarding
231
232 void codify(const DString &s)
233 { foreach(&OutputCodeIntf::codify,s); }
234
235 void stripCodeComments(bool b)
236 { foreach(&OutputCodeIntf::stripCodeComments,b); }
237
240
243
244 void setStripIndentAmount(size_t amount)
245 { foreach(&OutputCodeIntf::setStripIndentAmount,amount); }
246
248 const DString &ref,const DString &file,
249 const DString &anchor,const DString &name,
250 const DString &tooltip)
251 { foreach(&OutputCodeIntf::writeCodeLink,type,ref,file,anchor,name,tooltip); }
252
253 void writeLineNumber(const DString &ref,const DString &file,const DString &anchor,
254 int lineNumber, bool writeLineAnchor)
255 { foreach(&OutputCodeIntf::writeLineNumber,ref,file,anchor,lineNumber,writeLineAnchor); }
256
257 void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl,
258 const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)
259 { foreach(&OutputCodeIntf::writeTooltip,id,docInfo,decl,desc,defInfo,declInfo); }
260
261 void startCodeLine(int lineNr)
262 { foreach(&OutputCodeIntf::startCodeLine,lineNr); }
263
265 { foreach(&OutputCodeIntf::endCodeLine); }
266
267 void startFontClass(const DString &c)
268 { foreach(&OutputCodeIntf::startFontClass,c); }
269
272
273 void writeCodeAnchor(const DString &name)
274 { foreach(&OutputCodeIntf::writeCodeAnchor,name); }
275
276 void startCodeFragment(const DString &style)
277 { foreach(&OutputCodeIntf::startCodeFragment,style); }
278
279 void endCodeFragment(const DString &style)
280 { foreach(&OutputCodeIntf::endCodeFragment,style); }
281
282 void startFold(int lineNr, const DString &startMarker, const DString &endMarker)
283 { foreach(&OutputCodeIntf::startFold,lineNr,startMarker,endMarker); }
284
285 void endFold()
286 { foreach(&OutputCodeIntf::endFold); }
287
288 private:
289 template<class... Ts, class... As>
290 void foreach(void (OutputCodeIntf::*methodPtr)(Ts...),As&&... args)
291 {
292 for (auto &e : m_outputCodeList)
293 {
294 if (e.enabled)
295 {
296 (e.intf.get()->*methodPtr)(std::forward<As>(args)...);
297 }
298 }
299 }
300
301 std::vector<OutputCodeElem> m_outputCodeList;
302 int m_id = -1;
303
304};
305
306//-------------------------------------------------------------------------------------------
307
308/** Class representing a list of output generators that are written to in parallel.
309 */
311{
312 public:
313 using OutputGenIntfPtr = std::unique_ptr<OutputGenIntf>;
314
315 private:
317 {
318 explicit OutputGenElem(OutputGenIntfPtr &&v) : intf(std::move(v)) {}
320 {
321 intf = other.intf->clone();
322 enabled = other.enabled;
323 }
325 {
326 if (&other!=this)
327 {
328 intf = other.intf->clone();
329 enabled = other.enabled;
330 }
331 return *this;
332 }
334 void setEnabled(bool e) { enabled = e && !enabledStack.empty() ? enabledStack.top() : e; }
335 bool enabled = true;
336 std::stack<bool> enabledStack;
337 };
338
339 public:
340 OutputList();
341 OutputList(const OutputList &ol);
342 OutputList &operator=(const OutputList &ol);
343 OutputList(OutputList &&) = delete;
345 ~OutputList() = default;
346
347 template<class DocGenerator>
348 void add()
349 {
350 m_outputGenList.emplace_back(std::make_unique<DocGenerator>());
352 }
353
354 const OutputCodeList &codeGenerators() const { return m_codeGenList; }
356
357 size_t size() const { return m_outputGenList.size(); }
358
359 void enableAll();
360 void disableAll();
361 void disable(OutputType o);
362 void enable(OutputType o);
363 bool isEnabled(OutputType o);
365 void pushGeneratorState();
366 void popGeneratorState();
367
368 void generateDoc(const DString &fileName,int startLine,
369 const Definition *ctx,const MemberDef *md,const DString &docStr,
370 const DocOptions &options);
371
372 void startFile(const DString &name, bool isSource,const DString &manName,const DString &title, int hierarchyLevel=0);
373 void parseText(const DString &textStr);
374
375 //////////////////////////////////////////////////
376 // OutputGenIntf implementation
377 //////////////////////////////////////////////////
378
379 void writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *md,int sectionLevel=-1)
380 { foreach(&OutputGenIntf::writeDoc,ast,ctx,md,m_id,sectionLevel); }
385 void writePageLink(const DString &name,bool first)
386 { foreach(&OutputGenIntf::writePageLink,name,first); }
391 void writeStyleInfo(int part)
392 { foreach(&OutputGenIntf::writeStyleInfo,part); }
395 void writeFooter(const DString &navPath)
396 { foreach(&OutputGenIntf::writeFooter,navPath); }
397 void endFile()
398 { foreach(&OutputGenIntf::endFile); }
399 void startTitleHead(const DString &fileName)
400 { foreach(&OutputGenIntf::startTitleHead,fileName); }
401 void endTitleHead(const DString &fileName,const DString &name)
402 { foreach(&OutputGenIntf::endTitleHead,fileName,name); }
403 void startParagraph(const DString &classDef=DString())
404 { foreach(&OutputGenIntf::startParagraph,classDef); }
406 { foreach(&OutputGenIntf::endParagraph); }
407 void writeString(const DString &text)
408 { foreach(&OutputGenIntf::writeString,text); }
416 { foreach(&OutputGenIntf::endIndexList); }
420 { foreach(&OutputGenIntf::endIndexKey); }
421 void startIndexValue(bool b)
422 { foreach(&OutputGenIntf::startIndexValue,b); }
423 void endIndexValue(const DString &name,bool b)
424 { foreach(&OutputGenIntf::endIndexValue,name,b); }
428 { foreach(&OutputGenIntf::endItemList); }
429 void startIndexItem(const DString &ref,const DString &file)
430 { foreach(&OutputGenIntf::startIndexItem,ref,file); }
431 void endIndexItem(const DString &ref,const DString &file)
432 { foreach(&OutputGenIntf::endIndexItem,ref,file); }
433 void docify(const DString &s)
434 { foreach(&OutputGenIntf::docify,s); }
435 void writeObjectLink(const DString &ref,const DString &file,
436 const DString &anchor, const DString &name)
437 { foreach(&OutputGenIntf::writeObjectLink,ref,file,anchor,name); }
438 void startTextLink(const DString &file,const DString &anchor)
439 { foreach(&OutputGenIntf::startTextLink,file,anchor); }
441 { foreach(&OutputGenIntf::endTextLink); }
442 void writeStartAnnoItem(const DString &type,const DString &file,
443 const DString &path,const DString &name)
444 { foreach(&OutputGenIntf::writeStartAnnoItem,type,file,path,name); }
449 void startGroupHeader(const DString &id=DString(),int extraLevels=0)
450 { foreach(&OutputGenIntf::startGroupHeader,id,extraLevels); }
451 void endGroupHeader(int extraLevels=0)
452 { foreach(&OutputGenIntf::endGroupHeader,extraLevels); }
465 void startMemberHeader(const DString &anchor, int typ = 2)
466 { foreach(&OutputGenIntf::startMemberHeader,anchor,typ); }
486 { foreach(&OutputGenIntf::startAnonTypeScope,i1); }
487 void endAnonTypeScope(int i1)
488 { foreach(&OutputGenIntf::endAnonTypeScope,i1); }
490 { foreach(&OutputGenIntf::startMemberItem,anchor,type,id); }
495 void endMemberTemplateParams(const DString &anchor,const DString &inheritId)
496 { foreach(&OutputGenIntf::endMemberTemplateParams,anchor,inheritId); }
501 void startMemberGroupHeader(const DString &id,bool b)
502 { foreach(&OutputGenIntf::startMemberGroupHeader,id,b); }
511 void endMemberGroup(bool last)
512 { foreach(&OutputGenIntf::endMemberGroup,last); }
513 void insertMemberAlign(bool templ=false)
514 { foreach(&OutputGenIntf::insertMemberAlign,templ); }
518 { foreach(&OutputGenIntf::writeRuler); }
519 void writeAnchor(const DString &fileName,const DString &name)
520 { foreach(&OutputGenIntf::writeAnchor,fileName,name); }
524 { foreach(&OutputGenIntf::endEmphasis); }
525 void writeChar(char c)
526 { foreach(&OutputGenIntf::writeChar,c); }
527 void startMemberDoc(const DString &clName,const DString &memName,
528 const DString &anchor,const DString &title,
529 int memCount,int memTotal,bool showInline)
530 { foreach(&OutputGenIntf::startMemberDoc,clName,memName,anchor,title,memCount,memTotal,showInline); }
531 void endMemberDoc(bool hasArgs)
532 { foreach(&OutputGenIntf::endMemberDoc,hasArgs); }
533 void startDoxyAnchor(const DString &fName,const DString &manName,
534 const DString &anchor, const DString &name,
535 const DString &args)
536 { foreach(&OutputGenIntf::startDoxyAnchor,fName,manName,anchor,name,args); }
537 void endDoxyAnchor(const DString &fn,const DString &anchor)
538 { foreach(&OutputGenIntf::endDoxyAnchor,fn,anchor); }
539 void addLabel(const DString &fName,const DString &anchor)
540 { foreach(&OutputGenIntf::addLabel,fName,anchor); }
548 { foreach(&OutputGenIntf::startCenter); }
550 { foreach(&OutputGenIntf::endCenter); }
552 { foreach(&OutputGenIntf::startSmall); }
553 void endSmall()
554 { foreach(&OutputGenIntf::endSmall); }
555 void lineBreak(const DString &style=DString())
556 { foreach(&OutputGenIntf::lineBreak,style); }
558 { foreach(&OutputGenIntf::startBold); }
559 void endBold()
560 { foreach(&OutputGenIntf::endBold); }
561 void startMemberDescription(const DString &anchor,const DString &inheritId=DString(), bool typ = false)
562 { foreach(&OutputGenIntf::startMemberDescription,anchor,inheritId, typ); }
567 void endMemberDeclaration(const DString &anchor,const DString &inheritId)
568 { foreach(&OutputGenIntf::endMemberDeclaration,anchor,inheritId); }
569 void writeInheritedSectionTitle(const DString &id, const DString &ref,
570 const DString &file, const DString &anchor,
571 const DString &title,const DString &name)
573 file,anchor,title,name); }
577 { foreach(&OutputGenIntf::endExamples); }
579 { foreach(&OutputGenIntf::startIndent); }
581 { foreach(&OutputGenIntf::endIndent); }
582 void startSection(const DString &lab,const DString &title,SectionType t)
583 { foreach(&OutputGenIntf::startSection,lab,title,t); }
584 void endSection(const DString &lab,SectionType t)
585 { foreach(&OutputGenIntf::endSection,lab,t); }
586 void addIndexItem(const DString &s1,const DString &s2)
587 { foreach(&OutputGenIntf::addIndexItem,s1,s2); }
592 void endClassDiagram(const ClassDiagram &d,const DString &f,const DString &n)
593 { foreach(&OutputGenIntf::endClassDiagram,d,f,n); }
595 { foreach(&OutputGenIntf::startPageRef); }
596 void endPageRef(const DString &c,const DString &a)
597 { foreach(&OutputGenIntf::endPageRef,c,a); }
602 void writeSplitBar(const DString &name,const DString &allMembersFile)
603 { foreach(&OutputGenIntf::writeSplitBar,name,allMembersFile); }
607 { foreach(&OutputGenIntf::writeLogo); }
608 void writeQuickLinks(HighlightedItem hli,const DString &file,bool extraTabs=false)
609 { foreach(&OutputGenIntf::writeQuickLinks,hli,file,extraTabs); }
610 void writeSummaryLink(const DString &file,const DString &anchor,const DString &title,bool first)
611 { foreach(&OutputGenIntf::writeSummaryLink,file,anchor,title,first); }
617 { foreach(&OutputGenIntf::endContents); }
618 void startPageDoc(const DString &pageTitle)
619 { foreach(&OutputGenIntf::startPageDoc, pageTitle); }
621 { foreach(&OutputGenIntf::endPageDoc); }
624 void startDescTable(const DString &title,const bool hasInits)
625 { foreach(&OutputGenIntf::startDescTable,title,hasInits); }
627 { foreach(&OutputGenIntf::endDescTable); }
666 void startTextBlock(bool dense=false)
667 { foreach(&OutputGenIntf::startTextBlock,dense); }
668 void endTextBlock(bool paraBreak=false)
669 { foreach(&OutputGenIntf::endTextBlock,paraBreak); }
676 void startMemberDocName(bool align)
677 { foreach(&OutputGenIntf::startMemberDocName,align); }
680 void startParameterType(bool first,const DString &key)
681 { foreach(&OutputGenIntf::startParameterType,first,key); }
684 void startParameterName(bool one)
685 { foreach(&OutputGenIntf::startParameterName,one); }
690 void endParameterExtra(bool last,bool one,bool bracket)
691 { foreach(&OutputGenIntf::endParameterExtra,last,one,bracket); }
692 void startParameterDefVal(const char *separator)
693 { foreach(&OutputGenIntf::startParameterDefVal,separator); }
696 void startParameterList(bool openBracket)
697 { foreach(&OutputGenIntf::startParameterList,openBracket); }
700 void exceptionEntry(const DString &prefix,bool closeBracket)
701 { foreach(&OutputGenIntf::exceptionEntry,prefix,closeBracket); }
702 void startConstraintList(const DString &header)
703 { foreach(&OutputGenIntf::startConstraintList,header); }
721 { foreach(&OutputGenIntf::endMemberDocSimple,b); }
735 { foreach(&OutputGenIntf::startLabels); }
736 void writeLabel(const DString &l,bool isLast)
737 { foreach(&OutputGenIntf::writeLabel,l,isLast); }
739 { foreach(&OutputGenIntf::endLabels); }
740 void startLocalToc(int level)
741 { foreach(&OutputGenIntf::startLocalToc,level); }
743 { foreach(&OutputGenIntf::endLocalToc); }
745 { foreach(&OutputGenIntf::startTocEntry,si); }
746 void endTocEntry(const SectionInfo *si)
747 { foreach(&OutputGenIntf::endTocEntry,si); }
748 void cleanup()
749 { foreach(&OutputGenIntf::cleanup); }
750 void startPlainFile(const DString &name)
751 { foreach(&OutputGenIntf::startPlainFile,name); }
753 { foreach(&OutputGenIntf::endPlainFile); }
754 void startEmbeddedDoc(size_t indent)
755 { foreach(&OutputGenIntf::startEmbeddedDoc,indent); }
758
759 private:
760 void newId();
761 void syncEnabled();
763
764 template<class... Ts, class... As>
765 void foreach(void (OutputGenIntf::*methodPtr)(Ts...),As&&... args)
766 {
767 for (auto &e : m_outputGenList)
768 {
769 if (e.enabled)
770 {
771 (e.intf.get()->*methodPtr)(std::forward<As>(args)...);
772 }
773 }
774 }
775
776 std::vector<OutputGenElem> m_outputGenList;
778 int m_id;
779
780};
781
782//-------------------------------------------------------------------------------------------
783
784/** Implements TextGeneratorIntf for an OutputDocInterface stream. */
786{
787 public:
789 void writeString(std::string_view s,bool keepSpaces) const override;
790 void writeBreak(int indent) const override;
791 void writeLink(const DString &extRef,const DString &file,
792 const DString &anchor,std::string_view text
793 ) const override;
794 private:
796};
797
798
799#endif
constexpr auto prefix
Definition anchor.cpp:44
Class representing a built-in class diagram.
Definition diagram.h:29
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
DString()=default
The common base class of all entity definitions found in the sources.
Definition definition.h:77
Representation of an call graph.
Representation of a class inheritance or dependency graph.
Representation of an directory dependency graph.
Definition dotdirdeps.h:27
Represents a graphical class hierarchy.
Representation of a group collaboration graph.
Representation of an include dependency graph.
opaque representation of the abstract syntax tree (AST)
Definition docparser.h:50
A model of a class/file/namespace member symbol.
Definition memberdef.h:45
Helper template class which defers all methods of OutputCodeIntf to an existing object of the templat...
Definition outputlist.h:44
void endSpecialComment() override
Definition outputlist.h:52
void endCodeLine() override
Definition outputlist.h:71
OutputCodeDefer(OutputCodeGen *codeGen)
Definition outputlist.h:46
void writeCodeLink(CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip) override
Definition outputlist.h:54
void endFold() override
Definition outputlist.h:92
void endFontClass() override
Definition outputlist.h:77
OutputType type() const override
Definition outputlist.h:47
void startFontClass(const DString &c) override
Definition outputlist.h:74
void writeLineNumber(const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor) override
Definition outputlist.h:60
void writeCodeAnchor(const DString &name) override
Definition outputlist.h:80
void startCodeLine(int lineNr) override
Definition outputlist.h:68
void stripCodeComments(bool b) override
Definition outputlist.h:50
std::unique_ptr< OutputCodeIntf > clone() override
Definition outputlist.h:48
void setStripIndentAmount(size_t amount) override
Definition outputlist.h:53
void startFold(int lineNr, const DString &startMarker, const DString &endMarker) override
Definition outputlist.h:89
void startSpecialComment() override
Definition outputlist.h:51
void codify(const DString &s) override
Definition outputlist.h:49
void endCodeFragment(const DString &style) override
Definition outputlist.h:86
void startCodeFragment(const DString &style) override
Definition outputlist.h:83
void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) override
Definition outputlist.h:64
Base class for code generators.
Definition outputgen.h:62
virtual void endFold()=0
virtual void startSpecialComment()=0
virtual void startFontClass(const DString &c)=0
virtual void startCodeLine(int lineNr)=0
virtual void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)=0
virtual void endCodeLine()=0
virtual void codify(const DString &s)=0
virtual void startFold(int lineNr, const DString &startMarker, const DString &endMarker)=0
virtual void endCodeFragment(const DString &style)=0
virtual void endSpecialComment()=0
virtual void writeLineNumber(const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor)=0
virtual void endFontClass()=0
virtual void startCodeFragment(const DString &style)=0
OutputCodeIntf()=default
virtual void stripCodeComments(bool b)=0
virtual void writeCodeAnchor(const DString &name)=0
virtual void writeCodeLink(CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip)=0
virtual void setStripIndentAmount(size_t)=0
Class representing a list of different code generators.
Definition outputlist.h:162
T * add(As &&... args)
Add a code generator to the list, using a syntax similar to std::make_unique<T>().
Definition outputlist.h:199
std::vector< OutputCodeElem > m_outputCodeList
Definition outputlist.h:301
void writeCodeAnchor(const DString &name)
Definition outputlist.h:273
void writeLineNumber(const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor)
Definition outputlist.h:253
void endCodeLine()
Definition outputlist.h:264
T * get(OutputType o)
Returns a pointer to a specific generator in the list.
Definition outputlist.h:207
void startCodeFragment(const DString &style)
Definition outputlist.h:276
void endSpecialComment()
Definition outputlist.h:241
void startFold(int lineNr, const DString &startMarker, const DString &endMarker)
Definition outputlist.h:282
void writeCodeLink(CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip)
Definition outputlist.h:247
void add(OutputCodeIntfPtr &&p)
Definition outputlist.h:192
void startSpecialComment()
Definition outputlist.h:238
int id() const
Definition outputlist.h:189
void setStripIndentAmount(size_t amount)
Definition outputlist.h:244
void endCodeFragment(const DString &style)
Definition outputlist.h:279
void endFontClass()
Definition outputlist.h:270
void startFontClass(const DString &c)
Definition outputlist.h:267
void startCodeLine(int lineNr)
Definition outputlist.h:261
void setEnabledFiltered(OutputType o, bool enabled)
Enable or disable a specific generator.
Definition outputlist.h:217
void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)
Definition outputlist.h:257
void setId(int id)
Definition outputlist.h:190
std::unique_ptr< OutputCodeIntf > OutputCodeIntfPtr
Definition outputlist.h:164
void stripCodeComments(bool b)
Definition outputlist.h:235
void codify(const DString &s)
Definition outputlist.h:232
Implementation that allows capturing calls made to the code interface to later invoke them on a Outpu...
Definition outputlist.h:110
std::unique_ptr< OutputCodeIntf > clone() override
Definition outputlist.h:118
void codify(const DString &s) override
void endFold() override
void startFold(int lineNr, const DString &startMarker, const DString &endMarker) override
void endCodeFragment(const DString &style) override
void stripCodeComments(bool) override
Definition outputlist.h:114
void writeCodeLink(CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip) override
void startNewLine(int lineNr)
void startCodeFragment(const DString &style) override
std::vector< size_t > m_lineOffset
Definition outputlist.h:151
void writeCodeAnchor(const DString &name) override
std::vector< CallInfo > m_calls
Definition outputlist.h:150
void replay(OutputCodeList &ol, int startLine, int endLine, bool showLineNumbers, bool stripComment, size_t stripIndentAmount)
void startSpecialComment() override
OutputType type() const override
Definition outputlist.h:112
void endSpecialComment() override
void writeLineNumber(const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor) override
void setStripIndentAmount(size_t) override
Definition outputlist.h:117
void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) override
Abstract interface for output generators.
Definition outputgen.h:124
virtual void endMemberSubtitle()=0
virtual void startPageDoc(const DString &pageTitle)=0
virtual void startMemberDocSimple(bool b)=0
virtual void writeSearchInfo()=0
virtual void startInlineMemberName()=0
virtual void addIndexItem(const DString &s1, const DString &s2)=0
virtual void startParameterType(bool first, const DString &key)=0
virtual void endMemberGroupDocs()=0
virtual void startInlineHeader()=0
virtual void endDescTableData()=0
virtual void startTextLink(const DString &file, const DString &anchor)=0
virtual void startMemberGroupHeader(const DString &id, bool b)=0
virtual void endItemList()=0
virtual void startDescTableData()=0
virtual void endCallGraph(DotCallGraph &g)=0
virtual void writeQuickLinks(HighlightedItem hli, const DString &file, bool extraTabs)=0
virtual void endIndexListItem()=0
virtual void lineBreak(const DString &style=DString())=0
virtual void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)=0
virtual void startParagraph(const DString &classDef=DString())=0
virtual void endMemberGroupHeader(bool b)=0
virtual void endTocEntry(const SectionInfo *si)=0
virtual void startIndexItem(const DString &ref, const DString &file)=0
virtual void endConstraintDocs()=0
virtual void startParameterName(bool one)=0
virtual void startConstraintType()=0
virtual void endMemberDocSimple(bool b)=0
virtual void endAnonTypeScope(int i1)=0
virtual void startMemberHeader(const DString &anchor, int typ=2)=0
virtual void writeStyleInfo(int part)=0
virtual void endDoxyAnchor(const DString &fn, const DString &anchor)=0
virtual void endTextBlock(bool paraBreak=false)=0
virtual void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())=0
virtual void writePageOutline()=0
virtual void startSection(const DString &lab, const DString &title, SectionType t)=0
virtual void endParameterDefVal()=0
virtual void startMemberGroup()=0
virtual void endEmbeddedDoc()=0
virtual void startAnonTypeScope(int i1)=0
virtual void endEmphasis()=0
virtual void endConstraintList()=0
virtual void startIndent()=0
virtual void endDescTableRow()=0
virtual void endDirDepGraph(DotDirDeps &g)=0
virtual void endPageDoc()=0
virtual void endTypewriter()=0
virtual void writeString(const DString &text)=0
virtual void startBold()=0
virtual void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int id, int sectionLevel)=0
virtual void endInlineMemberName()=0
virtual void startMemberDocList()=0
virtual void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)=0
virtual void writeRuler()=0
virtual void writeGraphicalHierarchy(DotGfxHierarchyTable &g)=0
virtual void startItemList()=0
virtual void startMemberDoc(const DString &clName, const DString &memName, const DString &anchor, const DString &title, int memCount, int memTotal, bool showInline)=0
virtual void writeAnchor(const DString &fileName, const DString &name)=0
virtual void endParameterType()=0
virtual void endPlainFile()=0
virtual void startMemberDocName(bool align)=0
virtual void startMemberSubtitle()=0
virtual void startMemberSections()=0
virtual void startQuickIndices()=0
virtual void startIndexKey()=0
virtual void endIndexItem(const DString &ref, const DString &file)=0
virtual void endParameterList()=0
virtual void endContents()=0
virtual void writeNavigationPath(const DString &s)=0
virtual void endTextLink()=0
virtual void endPageRef(const DString &c, const DString &a)=0
virtual void endMemberGroup(bool last)=0
virtual void startMemberDocPrefixItem()=0
virtual void endInlineHeader()=0
virtual void startDescForItem()=0
virtual void endMemberSections()=0
virtual void startInlineMemberType()=0
virtual void startGroupCollaboration()=0
virtual void endLabels()=0
virtual void endMemberHeader()=0
virtual void startIndexList()=0
virtual void startLocalToc(int level)=0
virtual void endParameterExtra(bool last, bool one, bool bracket)=0
virtual void writeSynopsis()=0
virtual void startDescTableRow()=0
virtual void insertMemberAlign(bool templ=false)=0
virtual void writeLatexSpacing()=0
virtual void lastIndexPage()=0
virtual void endSmall()=0
virtual void endQuickIndices()=0
virtual void startIndexValue(bool b)=0
virtual void writeFooter(const DString &navPath)=0
virtual void endLocalToc()=0
virtual void writeLabel(const DString &l, bool isLast)=0
virtual void endGroupHeader(int extraLevels=0)=0
virtual void endInclDepGraph(DotInclDepGraph &g)=0
virtual void endIndexList()=0
virtual void endInlineMemberType()=0
virtual void startConstraintDocs()=0
virtual void endMemberList()=0
virtual void startEmbeddedDoc(size_t)=0
virtual void cleanup()=0
virtual void endClassDiagram(const ClassDiagram &d, const DString &f, const DString &n)=0
virtual void startMemberTemplateParams()=0
virtual void endDotGraph(DotClassGraph &g)=0
virtual void endInlineMemberDoc()=0
virtual void startCenter()=0
virtual void startExamples()=0
virtual void startParameterList(bool openBracket)=0
virtual void startTextBlock(bool dense=false)=0
virtual void startTypewriter()=0
virtual void startInclDepGraph()=0
virtual void endDescTableTitle()=0
virtual void endParagraph()=0
virtual void startDescTable(const DString &title, const bool hasInits)=0
virtual void endIndexSection(IndexSection is)=0
virtual void startCompoundTemplateParams()=0
virtual void endMemberDocName()=0
virtual void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)=0
virtual void endSection(const DString &lab, SectionType t)=0
virtual void endParameterName()=0
virtual void startProjectNumber()=0
virtual void endMemberDescription()=0
virtual void startClassDiagram()=0
virtual void writeSplitBar(const DString &name, const DString &allMembersFile)=0
virtual void endHeaderSection()=0
virtual void endItemListItem()=0
virtual void endMemberDocList()=0
virtual void startSmall()=0
virtual void endConstraintParam()=0
virtual void endDescTable()=0
virtual void startTitleHead(const DString &fileName)=0
virtual void endMemberItem(OutputGenerator::MemberItemType type)=0
virtual void endGroupCollaboration(DotGroupCollaboration &g)=0
virtual void endMemberDocPrefixItem()=0
virtual void endTitleHead(const DString &fileName, const DString &name)=0
virtual void endConstraintType()=0
virtual void startDescTableTitle()=0
virtual void endMemberTemplateParams(const DString &anchor, const DString &inheritId)=0
virtual void startDescTableInit()=0
virtual void writeChar(char c)=0
virtual void startInlineMemberDoc()=0
virtual void endProjectNumber()=0
virtual void startDirDepGraph()=0
virtual void startMemberList()=0
virtual void startMemberDeclaration()=0
virtual void startMemberGroupDocs()=0
virtual void writeNonBreakableSpace(int num)=0
virtual void endDescForItem()=0
virtual void writeLogo()=0
virtual void startParameterExtra()=0
virtual void writeStartAnnoItem(const DString &type, const DString &file, const DString &path, const DString &name)=0
virtual void endMemberDeclaration(const DString &anchor, const DString &inheritId)=0
virtual void startDotGraph()=0
virtual void endExamples()=0
virtual void startGroupHeader(const DString &id, int extraLevels=0)=0
virtual void startConstraintList(const DString &header)=0
virtual void startParameterDefVal(const char *separator)=0
virtual void startPageRef()=0
virtual void writeInheritedSectionTitle(const DString &id, const DString &ref, const DString &file, const DString &anchor, const DString &title, const DString &name)=0
virtual void startLabels()=0
virtual void endDescTableInit()=0
virtual void startCallGraph()=0
virtual void startEmphasis()=0
virtual void endIndent()=0
virtual void endIndexValue(const DString &name, bool b)=0
virtual void docify(const DString &s)=0
virtual void endCompoundTemplateParams()=0
virtual void startContents()=0
virtual void writePageLink(const DString &name, bool first)=0
virtual void startIndexSection(IndexSection is)=0
virtual void startConstraintParam()=0
virtual void insertMemberAlignLeft(OutputGenerator::MemberItemType typ=OutputGenerator::MemberItemType::Normal, bool templ=false)=0
virtual void endBold()=0
virtual void endFile()=0
virtual void addLabel(const DString &fName, const DString &anchor)=0
virtual void startTocEntry(const SectionInfo *si)=0
virtual void startPlainFile(const DString &name)=0
virtual void startItemListItem()=0
virtual void exceptionEntry(const DString &prefix, bool closeBracket)=0
virtual void endIndexKey()=0
virtual void startHeaderSection()=0
virtual void endCenter()=0
virtual void startDoxyAnchor(const DString &fName, const DString &manName, const DString &anchor, const DString &name, const DString &args)=0
virtual void endMemberDoc(bool hasArgs)=0
virtual void startIndexListItem()=0
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:311
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
Definition outputlist.h:379
void writeNavigationPath(const DString &s)
Definition outputlist.h:604
bool isEnabled(OutputType o)
void writeFooter(const DString &navPath)
Definition outputlist.h:395
void endIndent()
Definition outputlist.h:580
void startTitleHead(const DString &fileName)
Definition outputlist.h:399
void startMemberDeclaration()
Definition outputlist.h:565
void parseText(const DString &textStr)
void endConstraintType()
Definition outputlist.h:710
void endDescTableRow()
Definition outputlist.h:630
void writeSearchInfo()
Definition outputlist.h:393
void startMemberDocName(bool align)
Definition outputlist.h:676
void endParameterExtra(bool last, bool one, bool bracket)
Definition outputlist.h:690
void startClassDiagram()
Definition outputlist.h:590
void startTocEntry(const SectionInfo *si)
Definition outputlist.h:744
void endTitleHead(const DString &fileName, const DString &name)
Definition outputlist.h:401
void startItemList()
Definition outputlist.h:425
void writeChar(char c)
Definition outputlist.h:525
void disable(OutputType o)
void startIndexKey()
Definition outputlist.h:417
void startParagraph(const DString &classDef=DString())
Definition outputlist.h:403
void writePageLink(const DString &name, bool first)
Definition outputlist.h:385
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
Definition outputlist.h:435
void endMemberDocName()
Definition outputlist.h:678
void startInclDepGraph()
Definition outputlist.h:648
OutputCodeList m_codeGenList
Definition outputlist.h:777
void endConstraintList()
Definition outputlist.h:716
void endMemberDoc(bool hasArgs)
Definition outputlist.h:531
void startDescTableInit()
Definition outputlist.h:636
void startCallGraph()
Definition outputlist.h:652
void addIndexItem(const DString &s1, const DString &s2)
Definition outputlist.h:586
void endDirDepGraph(DotDirDeps &g)
Definition outputlist.h:658
void writeRuler()
Definition outputlist.h:517
void endDescTable()
Definition outputlist.h:626
void startParameterExtra()
Definition outputlist.h:688
void endPageRef(const DString &c, const DString &a)
Definition outputlist.h:596
const OutputCodeList & codeGenerators() const
Definition outputlist.h:354
void endGroupCollaboration(DotGroupCollaboration &g)
Definition outputlist.h:662
void startParameterList(bool openBracket)
Definition outputlist.h:696
void writeLatexSpacing()
Definition outputlist.h:541
void startConstraintList(const DString &header)
Definition outputlist.h:702
void add()
Definition outputlist.h:348
void enable(OutputType o)
void endIndexItem(const DString &ref, const DString &file)
Definition outputlist.h:431
void endContents()
Definition outputlist.h:616
void endHeaderSection()
Definition outputlist.h:463
void endInlineMemberType()
Definition outputlist.h:724
std::vector< OutputGenElem > m_outputGenList
Definition outputlist.h:776
void endMemberDescription()
Definition outputlist.h:563
size_t size() const
Definition outputlist.h:357
void endInlineHeader()
Definition outputlist.h:483
void endTextBlock(bool paraBreak=false)
Definition outputlist.h:668
OutputList(OutputList &&)=delete
void endMemberGroupDocs()
Definition outputlist.h:507
void endMemberDeclaration(const DString &anchor, const DString &inheritId)
Definition outputlist.h:567
void startGroupCollaboration()
Definition outputlist.h:660
void startInlineMemberType()
Definition outputlist.h:722
void docify(const DString &s)
Definition outputlist.h:433
void startInlineMemberDoc()
Definition outputlist.h:730
OutputCodeList & codeGenerators()
Definition outputlist.h:355
void endMemberTemplateParams(const DString &anchor, const DString &inheritId)
Definition outputlist.h:495
void startMemberHeader(const DString &anchor, int typ=2)
Definition outputlist.h:465
void endCompoundTemplateParams()
Definition outputlist.h:499
void lineBreak(const DString &style=DString())
Definition outputlist.h:555
OutputList & operator=(const OutputList &ol)
void writeGraphicalHierarchy(DotGfxHierarchyTable &g)
Definition outputlist.h:664
void startMemberDoc(const DString &clName, const DString &memName, const DString &anchor, const DString &title, int memCount, int memTotal, bool showInline)
Definition outputlist.h:527
void endDescTableTitle()
Definition outputlist.h:634
void writeAnchor(const DString &fileName, const DString &name)
Definition outputlist.h:519
void endMemberGroupHeader(bool b)
Definition outputlist.h:503
void startHeaderSection()
Definition outputlist.h:461
void startConstraintParam()
Definition outputlist.h:704
void endIndexList()
Definition outputlist.h:415
void insertMemberAlign(bool templ=false)
Definition outputlist.h:513
void insertMemberAlignLeft(OutputGenerator::MemberItemType typ=OutputGenerator::MemberItemType::Normal, bool templ=false)
Definition outputlist.h:515
void endEmphasis()
Definition outputlist.h:523
void startIndent()
Definition outputlist.h:578
void endPageDoc()
Definition outputlist.h:620
void endIndexSection(IndexSection is)
Definition outputlist.h:383
void writeString(const DString &text)
Definition outputlist.h:407
void endFile()
Definition outputlist.h:397
void endIndexValue(const DString &name, bool b)
Definition outputlist.h:423
void endDescForItem()
Definition outputlist.h:545
void startConstraintDocs()
Definition outputlist.h:712
void startProjectNumber()
Definition outputlist.h:387
void endExamples()
Definition outputlist.h:576
void endSection(const DString &lab, SectionType t)
Definition outputlist.h:584
void endDoxyAnchor(const DString &fn, const DString &anchor)
Definition outputlist.h:537
void startDescTable(const DString &title, const bool hasInits)
Definition outputlist.h:624
void endParagraph()
Definition outputlist.h:405
void endMemberDocList()
Definition outputlist.h:475
void endDescTableData()
Definition outputlist.h:642
void newId()
void endIndexKey()
Definition outputlist.h:419
void disableAll()
void startDescTableTitle()
Definition outputlist.h:632
void startIndexItem(const DString &ref, const DString &file)
Definition outputlist.h:429
void startMemberGroup()
Definition outputlist.h:509
void startDirDepGraph()
Definition outputlist.h:656
void startPageRef()
Definition outputlist.h:594
void endInclDepGraph(DotInclDepGraph &g)
Definition outputlist.h:650
void startExamples()
Definition outputlist.h:574
void startMemberSections()
Definition outputlist.h:457
void startMemberGroupHeader(const DString &id, bool b)
Definition outputlist.h:501
void endInlineMemberDoc()
Definition outputlist.h:732
void endMemberDocPrefixItem()
Definition outputlist.h:674
void startConstraintType()
Definition outputlist.h:708
void startParameterDefVal(const char *separator)
Definition outputlist.h:692
void writeLogo()
Definition outputlist.h:606
void startMemberList()
Definition outputlist.h:477
void startQuickIndices()
Definition outputlist.h:598
void startAnonTypeScope(int i1)
Definition outputlist.h:485
void endTextLink()
Definition outputlist.h:440
void addLabel(const DString &fName, const DString &anchor)
Definition outputlist.h:539
void startItemListItem()
Definition outputlist.h:453
void endItemListItem()
Definition outputlist.h:455
void startBold()
Definition outputlist.h:557
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:491
void endMemberList()
Definition outputlist.h:479
void writeSynopsis()
Definition outputlist.h:588
void syncEnabled()
void endConstraintDocs()
Definition outputlist.h:714
void endSmall()
Definition outputlist.h:553
void endClassDiagram(const ClassDiagram &d, const DString &f, const DString &n)
Definition outputlist.h:592
void startTypewriter()
Definition outputlist.h:445
void writeStyleInfo(int part)
Definition outputlist.h:391
void startDescTableData()
Definition outputlist.h:640
void pushGeneratorState()
void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)
Definition outputlist.h:610
void startDescForItem()
Definition outputlist.h:543
void endParameterDefVal()
Definition outputlist.h:694
void startEmbeddedDoc(size_t indent)
Definition outputlist.h:754
void startInlineHeader()
Definition outputlist.h:481
void endLocalToc()
Definition outputlist.h:742
void disableAllBut(OutputType o)
void exceptionEntry(const DString &prefix, bool closeBracket)
Definition outputlist.h:700
void endParameterName()
Definition outputlist.h:686
void startTextBlock(bool dense=false)
Definition outputlist.h:666
void popGeneratorState()
void endConstraintParam()
Definition outputlist.h:706
void startPageDoc(const DString &pageTitle)
Definition outputlist.h:618
void lastIndexPage()
Definition outputlist.h:670
void startIndexValue(bool b)
Definition outputlist.h:421
void endEmbeddedDoc()
Definition outputlist.h:756
void startTextLink(const DString &file, const DString &anchor)
Definition outputlist.h:438
void writeInheritedSectionTitle(const DString &id, const DString &ref, const DString &file, const DString &anchor, const DString &title, const DString &name)
Definition outputlist.h:569
void endBold()
Definition outputlist.h:559
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:451
void writeLabel(const DString &l, bool isLast)
Definition outputlist.h:736
void endIndexListItem()
Definition outputlist.h:411
void endLabels()
Definition outputlist.h:738
void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())
Definition outputlist.h:489
void endQuickIndices()
Definition outputlist.h:600
void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)
Definition outputlist.h:561
void writeStartAnnoItem(const DString &type, const DString &file, const DString &path, const DString &name)
Definition outputlist.h:442
void endTocEntry(const SectionInfo *si)
Definition outputlist.h:746
void endParameterList()
Definition outputlist.h:698
std::unique_ptr< OutputGenIntf > OutputGenIntfPtr
Definition outputlist.h:313
void startEmphasis()
Definition outputlist.h:521
void writeSplitBar(const DString &name, const DString &allMembersFile)
Definition outputlist.h:602
void writePageOutline()
Definition outputlist.h:612
void endCallGraph(DotCallGraph &g)
Definition outputlist.h:654
void startInlineMemberName()
Definition outputlist.h:726
void endDotGraph(DotClassGraph &g)
Definition outputlist.h:646
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
void endMemberGroup(bool last)
Definition outputlist.h:511
void cleanup()
Definition outputlist.h:748
void endItemList()
Definition outputlist.h:427
void startDotGraph()
Definition outputlist.h:644
void startMemberGroupDocs()
Definition outputlist.h:505
void startLabels()
Definition outputlist.h:734
void startContents()
Definition outputlist.h:614
void startCompoundTemplateParams()
Definition outputlist.h:497
void startMemberDocSimple(bool b)
Definition outputlist.h:718
void startSection(const DString &lab, const DString &title, SectionType t)
Definition outputlist.h:582
void startGroupHeader(const DString &id=DString(), int extraLevels=0)
Definition outputlist.h:449
void endParameterType()
Definition outputlist.h:682
void startMemberDocPrefixItem()
Definition outputlist.h:672
void startCenter()
Definition outputlist.h:547
void endAnonTypeScope(int i1)
Definition outputlist.h:487
void startParameterName(bool one)
Definition outputlist.h:684
void startIndexList()
Definition outputlist.h:413
void startSmall()
Definition outputlist.h:551
void enableAll()
~OutputList()=default
void endMemberHeader()
Definition outputlist.h:467
void endProjectNumber()
Definition outputlist.h:389
void endCenter()
Definition outputlist.h:549
void endMemberSubtitle()
Definition outputlist.h:471
void startParameterType(bool first, const DString &key)
Definition outputlist.h:680
void endTypewriter()
Definition outputlist.h:447
void endInlineMemberName()
Definition outputlist.h:728
void startMemberDocList()
Definition outputlist.h:473
void endMemberDocSimple(bool b)
Definition outputlist.h:720
OutputList & operator=(OutputList &&)=delete
void startMemberSubtitle()
Definition outputlist.h:469
void startIndexListItem()
Definition outputlist.h:409
void refreshCodeGenerators()
void writeNonBreakableSpace(int num)
Definition outputlist.h:622
void writeQuickLinks(HighlightedItem hli, const DString &file, bool extraTabs=false)
Definition outputlist.h:608
void startIndexSection(IndexSection is)
Definition outputlist.h:381
void startDoxyAnchor(const DString &fName, const DString &manName, const DString &anchor, const DString &name, const DString &args)
Definition outputlist.h:533
void endDescTableInit()
Definition outputlist.h:638
void endPlainFile()
Definition outputlist.h:752
void startDescTableRow()
Definition outputlist.h:628
void startPlainFile(const DString &name)
Definition outputlist.h:750
void startMemberTemplateParams()
Definition outputlist.h:493
void startLocalToc(int level)
Definition outputlist.h:740
void endMemberSections()
Definition outputlist.h:459
class that provide information about a section.
Definition section.h:58
Abstract interface for a hyperlinked text fragment.
Definition linkifytext.h:30
TextGeneratorOLImpl(OutputList &ol)
void writeBreak(int indent) const override
void writeLink(const DString &extRef, const DString &file, const DString &anchor, std::string_view text) const override
OutputList & m_ol
Definition outputlist.h:795
void writeString(std::string_view s, bool keepSpaces) const override
static void endCodeLine(yyscan_t yyscanner)
Definition code.l:2490
static void startCodeLine(yyscan_t yyscanner)
Definition code.l:2421
static void startFontClass(yyscan_t yyscanner, const char *s, bool specialComment=false)
Definition code.l:3509
static void endFontClass(yyscan_t yyscanner, bool specialComment=false)
Definition code.l:3494
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)
Definition index.cpp:404
HighlightedItem
Definition index.h:58
IndexSection
Definition index.h:31
Definition dstring.h:917
OutputType
Definition outputgen.h:56
OutputCodeDefer< RTFCodeGenerator > RTFCodeGeneratorDefer
Definition outputlist.h:101
OutputCodeDefer< OutputCodeIntf > OutputCodeDeferExtension
Definition outputlist.h:104
OutputCodeDefer< LatexCodeGenerator > LatexCodeGeneratorDefer
Definition outputlist.h:100
OutputCodeDefer< HtmlCodeGenerator > HtmlCodeGeneratorDefer
Definition outputlist.h:99
OutputCodeDefer< DocbookCodeGenerator > DocbookCodeGeneratorDefer
Definition outputlist.h:103
OutputCodeDefer< ManCodeGenerator > ManCodeGeneratorDefer
Definition outputlist.h:102
Helper class to pass options when calling OutputList::generateDoc().
Definition docoptions.h:24
OutputCodeElem & operator=(const OutputCodeElem &other)
Definition outputlist.h:175
OutputCodeElem(const OutputCodeElem &other)
Definition outputlist.h:170
OutputCodeElem(OutputCodeIntfPtr &&p)
Definition outputlist.h:169
CallInfo(ConditionFunc &&c, OutputFunc &&f, bool ic)
Definition outputlist.h:144
std::function< bool()> ConditionFunc
Definition outputlist.h:142
std::function< void(OutputCodeList *)> OutputFunc
Definition outputlist.h:143
OutputGenIntfPtr intf
Definition outputlist.h:333
OutputGenElem(OutputGenIntfPtr &&v)
Definition outputlist.h:318
OutputGenElem & operator=(const OutputGenElem &other)
Definition outputlist.h:324
OutputGenElem(const OutputGenElem &other)
Definition outputlist.h:319
std::stack< bool > enabledStack
Definition outputlist.h:336
CodeSymbolType
Definition types.h:481