90 if (e.intf->type()!=o) e.setEnabled(
false);
120 if (e.intf->type()==o) e.setEnabled(
false);
130 if (e.intf->type()==o) e.setEnabled(
true);
139 if (e.intf->type()==o) {
return e.enabled; }
149 e.enabledStack.push(e.enabled);
159 if (!e.enabledStack.empty())
161 e.enabled = e.enabledStack.top();
162 e.enabledStack.pop();
170 const QCString &docStr,
bool indexWords,
171 bool isExample,
const QCString &exampleName,
172 bool singleLine,
bool linkFromIndex,
173 bool markdownSupport)
178 [](
const auto &e) { return e.enabled; });
186 ctx,md,docStr,indexWords,isExample,exampleName,
187 singleLine,linkFromIndex,markdownSupport) };
188 if (ast && count>0)
writeDoc(ast.get(),ctx,md);
202 [](
const auto &e) { return e.enabled; });
211 if (ast && count>0)
writeDoc(ast.get(),
nullptr,
nullptr);
222 for (
int i=orgSize;i<lineNr;i++)
232 m_calls.emplace_back([]() {
return true; },
233 [=](OutputCodeList *ol) { ol->codify(s); },
241 m_calls.emplace_back([]() {
return true; },
242 [=](OutputCodeList *ol) { ol->startSpecialComment(); },
249 m_calls.emplace_back([]() {
return true; },
250 [=](OutputCodeList *ol) { ol->endSpecialComment(); },
261 m_calls.emplace_back([](){
return true; },
262 [=](OutputCodeList *ol) { ol->writeCodeLink(
type,ref,file,anchor,name,tooltip); },
268 int lineNumber,
bool writeLineAnchor)
272 [=](OutputCodeList *ol) { ol->writeLineNumber(ref,file,anchor,lineNumber,writeLineAnchor); },
280 m_calls.emplace_back([](){
return true; },
281 [=](OutputCodeList *ol) { ol->writeTooltip(
id,docInfo,decl,desc,defInfo,declInfo); },
289 m_calls.emplace_back([](){
return true; },
290 [=](OutputCodeList *ol) { ol->startCodeLine(lineNr); },
297 m_calls.emplace_back([](){
return true; },
298 [=](OutputCodeList *ol) { ol->endCodeLine(); },
305 m_calls.emplace_back([]() {
return true; },
306 [=](OutputCodeList *ol) { ol->startFontClass(c); },
313 m_calls.emplace_back([]() {
return true; },
314 [=](OutputCodeList *ol){ ol->endFontClass(); },
321 m_calls.emplace_back([]() {
return true; },
322 [=](OutputCodeList *ol){ ol->writeCodeAnchor(name); },
337 m_calls.emplace_back([]() {
return true; },
338 [=](OutputCodeList *ol) { ol->startFold(lineNr,startMarker,endMarker); },
345 m_calls.emplace_back([]() {
return true; },
346 [=](OutputCodeList *ol) { ol->endFold(); },
363 bool insideSpecialComment =
false;
365 if (startIndex<endIndex &&
m_calls[startIndex].insideSpecialComment)
368 insideSpecialComment =
true;
372 for (
size_t i=startIndex; i<endIndex; i++)
376 insideSpecialComment =
m_calls[i].insideSpecialComment;
383 if (insideSpecialComment)
The common base class of all entity definitions found in the sources.
A model of a class/file/namespace member symbol.
Class representing a list of different code generators.
void startSpecialComment()
void setStripIndentAmount(size_t amount)
void stripCodeComments(bool b)
void startFontClass(const QCString &c) override
void startFold(int lineNr, const QCString &startMarker, const QCString &endMarker) override
void writeTooltip(const QCString &id, const DocLinkInfo &docInfo, const QCString &decl, const QCString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) override
void startCodeFragment(const QCString &style) override
void startCodeLine(int) override
void stripCodeComments(bool) override
void endFontClass() override
void startNewLine(int lineNr)
bool m_insideSpecialComment
void writeCodeLink(CodeSymbolType type, const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name, const QCString &tooltip) override
void codify(const QCString &s) override
std::vector< size_t > m_lineOffset
std::vector< CallInfo > m_calls
void replay(OutputCodeList &ol, int startLine, int endLine, bool showLineNumbers, bool stripComment, size_t stripIndentAmount)
void startSpecialComment() override
OutputType type() const override
void writeCodeAnchor(const QCString &name) override
void endSpecialComment() override
void endCodeFragment(const QCString &style) override
void endCodeLine() override
void writeLineNumber(const QCString &ref, const QCString &file, const QCString &anchor, int lineNumber, bool writeLineAnchor) override
virtual void startFile(const QCString &name, const QCString &manName, const QCString &title, int id, int hierarchyLevel)=0
bool isEnabled(OutputType o)
void disable(OutputType o)
OutputCodeList m_codeGenList
void enable(OutputType o)
std::vector< OutputGenElem > m_outputGenList
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md)
OutputList & operator=(const OutputList &ol)
void startFile(const QCString &name, const QCString &manName, const QCString &title, int hierarchyLevel=0)
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 disableAllBut(OutputType o)
void parseText(const QCString &textStr)
void refreshCodeGenerators()
This is an alternative implementation of QCString.
bool isEmpty() const
Returns TRUE iff the string is empty.
IDocNodeASTPtr validatingParseText(IDocParser &parserIntf, const QCString &input)
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)