Doxygen
Loading...
Searching...
No Matches
DocInclude Class Referencefinal

Node representing an included text block from file. More...

#include <src/docnode.h>

Inheritance diagram for DocInclude:
Collaboration diagram for DocInclude:

Public Types

enum  Type {
  Include , DontInclude , VerbInclude , HtmlInclude ,
  LatexInclude , IncWithLines , Snippet , SnippetWithLines ,
  DontIncWithLines , RtfInclude , ManInclude , DocbookInclude ,
  XmlInclude
}

Public Member Functions

 DocInclude (DocParser *parser, DocNodeVariant *parent, const DString &file, const DString &context, Type t, bool stripCodeComments, bool isExample, const DString &exampleFile, const DString &blockId, bool isBlock, bool trimLeft)
DString file () const
DString extension () const
Type type () const
DString text () const
DString context () const
DString blockId () const
bool stripCodeComments () const
bool isExample () const
DString exampleFile () const
bool isBlock () const
bool trimLeft () const
void parse ()
Public Member Functions inherited from DocNode
 DocNode (DocParser *parser, DocNodeVariant *parent)
 ~DocNode ()=default
DocNodeVariantparent ()
const DocNodeVariantparent () const
DocNodeVariantthisVariant ()
const DocNodeVariantthisVariant () const
void setThisVariant (DocNodeVariant *thisVariant)
DocParserparser ()
const DocParserparser () const
void setParent (DocNodeVariant *parent)
bool isPreformatted () const

Private Attributes

DString m_file
DString m_context
DString m_text
Type m_type
bool m_stripCodeComments
bool m_isExample
bool m_isBlock
bool m_trimLeft
DString m_exampleFile
DString m_blockId

Additional Inherited Members

Protected Types inherited from DocNode
enum  RefType {
  Unknown , Anchor , Section , Table ,
  Requirement
}
Protected Member Functions inherited from DocNode
void setInsidePreformatted (bool p)

Detailed Description

Node representing an included text block from file.

Definition at line 434 of file docnode.h.

Member Enumeration Documentation

◆ Type

Enumerator
Include 
DontInclude 
VerbInclude 
HtmlInclude 
LatexInclude 
IncWithLines 
Snippet 
SnippetWithLines 
DontIncWithLines 
RtfInclude 
ManInclude 
DocbookInclude 
XmlInclude 

Definition at line 437 of file docnode.h.

Constructor & Destructor Documentation

◆ DocInclude()

DocInclude::DocInclude ( DocParser * parser,
DocNodeVariant * parent,
const DString & file,
const DString & context,
Type t,
bool stripCodeComments,
bool isExample,
const DString & exampleFile,
const DString & blockId,
bool isBlock,
bool trimLeft )
inline

Definition at line 441 of file docnode.h.

bool m_trimLeft
Definition docnode.h:470
bool isBlock() const
Definition docnode.h:458
DString m_file
Definition docnode.h:463
Type m_type
Definition docnode.h:466
bool m_isExample
Definition docnode.h:468
bool m_isBlock
Definition docnode.h:469
DString m_exampleFile
Definition docnode.h:471
bool stripCodeComments() const
Definition docnode.h:455
DString blockId() const
Definition docnode.h:454
DString context() const
Definition docnode.h:453
DString exampleFile() const
Definition docnode.h:457
bool m_stripCodeComments
Definition docnode.h:467
DString file() const
Definition docnode.h:449
DString m_context
Definition docnode.h:464
bool trimLeft() const
Definition docnode.h:459
bool isExample() const
Definition docnode.h:456
DString m_blockId
Definition docnode.h:472
DocNode(DocParser *parser, DocNodeVariant *parent)
Definition docnode.h:85
DocParser * parser()
Definition docnode.h:98
DocNodeVariant * parent()
Definition docnode.h:90

References blockId(), context(), DocNode::DocNode(), exampleFile(), file(), isBlock(), isExample(), m_blockId, m_context, m_exampleFile, m_file, m_isBlock, m_isExample, m_stripCodeComments, m_trimLeft, m_type, DocNode::parent(), DocNode::parser(), stripCodeComments(), and trimLeft().

Member Function Documentation

◆ blockId()

◆ context()

◆ exampleFile()

◆ extension()

DString DocInclude::extension ( ) const
inline

Definition at line 450 of file docnode.h.

450{ size_t i=m_file.rfind('.'); return i!=DString::npos ? m_file.mid(i) : DString(); }
DString()=default
size_t rfind(char c, size_t pos=npos) const
Definition dstring.h:249
DString mid(size_t index, size_t len=npos) const
Definition dstring.h:323
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
Definition dstring.h:183

References DString::DString(), m_file, DString::mid(), DString::npos, and DString::rfind().

Referenced by DocbookDocVisitor::operator()(), HtmlDocVisitor::operator()(), LatexDocVisitor::operator()(), ManDocVisitor::operator()(), RTFDocVisitor::operator()(), and XmlDocVisitor::operator()().

◆ file()

◆ isBlock()

bool DocInclude::isBlock ( ) const
inline

Definition at line 458 of file docnode.h.

458{ return m_isBlock; }

References m_isBlock.

Referenced by DocInclude(), HtmlDocVisitor::operator()(), PrintDocVisitor::operator()(), and XmlDocVisitor::operator()().

◆ isExample()

◆ parse()

void DocInclude::parse ( )

Definition at line 272 of file docnode.cpp.

273{
274 AUTO_TRACE("file={} text={}",m_file,Trace::trunc(m_text));
275 switch(m_type)
276 {
277 case DontIncWithLines:
278 // fall through
279 case IncWithLines:
280 // fall through
281 case Include:
282 // fall through
283 case DontInclude:
292 //printf("parser->context.includeFile=<<%s>>\n",qPrint(parser->context.includeFileText));
293 break;
294 case VerbInclude:
295 // fall through
296 case HtmlInclude:
297 case LatexInclude:
303 break;
304 case Snippet:
305 case SnippetWithLines:
307 // check here for the existence of the blockId inside the file, so we
308 // only generate the warning once.
309 int count = 0;
310 if (!m_blockId.empty() && (count=m_text.contains(m_blockId.data()))!=2)
311 {
312 warn_doc_error(parser()->context.fileName,
313 parser()->tokenizer.getLineNr(),
314 "block marked with {} for \\snippet should appear twice in file {}, found it {:d} times",
315 m_blockId,m_file,count);
316 }
317 break;
318 }
319}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:153
int contains(char c, bool cs=true) const
Definition dstring.cpp:80
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
Definition dstring.h:162
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:156
DString m_text
Definition docnode.h:465
void readTextFileByName(const DString &file, DString &text)
DocParserContext context
#define AUTO_TRACE(...)
Definition docnode.cpp:50
#define warn_doc_error(file, line, fmt,...)
Definition message.h:112
DString trunc(const DString &s, size_t numChars=15)
Definition trace.h:56
bool includeFileShowLineNo
Definition docparser_p.h:92
size_t includeFileLength
Definition docparser_p.h:90
DString includeFileText
Definition docparser_p.h:88
DString includeFileName
Definition docparser_p.h:87
size_t includeFileOffset
Definition docparser_p.h:89

References AUTO_TRACE, DString::contains(), context(), DocParser::context, DString::data(), DocbookInclude, DontInclude, DontIncWithLines, DString::empty(), HtmlInclude, Include, DocParserContext::includeFileLength, DocParserContext::includeFileLine, DocParserContext::includeFileName, DocParserContext::includeFileOffset, DocParserContext::includeFileShowLineNo, DocParserContext::includeFileText, IncWithLines, LatexInclude, DString::length(), m_blockId, m_file, m_stripCodeComments, m_text, m_type, ManInclude, DocNode::parser(), DocParser::readTextFileByName(), RtfInclude, Snippet, SnippetWithLines, DocParserContext::stripCodeComments, Trace::trunc(), VerbInclude, warn_doc_error, and XmlInclude.

◆ stripCodeComments()

◆ text()

◆ trimLeft()

◆ type()

Member Data Documentation

◆ m_blockId

DString DocInclude::m_blockId
private

Definition at line 472 of file docnode.h.

Referenced by blockId(), DocInclude(), and parse().

◆ m_context

DString DocInclude::m_context
private

Definition at line 464 of file docnode.h.

Referenced by context(), and DocInclude().

◆ m_exampleFile

DString DocInclude::m_exampleFile
private

Definition at line 471 of file docnode.h.

Referenced by DocInclude(), and exampleFile().

◆ m_file

DString DocInclude::m_file
private

Definition at line 463 of file docnode.h.

Referenced by DocInclude(), extension(), file(), and parse().

◆ m_isBlock

bool DocInclude::m_isBlock
private

Definition at line 469 of file docnode.h.

Referenced by DocInclude(), and isBlock().

◆ m_isExample

bool DocInclude::m_isExample
private

Definition at line 468 of file docnode.h.

Referenced by DocInclude(), and isExample().

◆ m_stripCodeComments

bool DocInclude::m_stripCodeComments
private

Definition at line 467 of file docnode.h.

Referenced by DocInclude(), parse(), and stripCodeComments().

◆ m_text

DString DocInclude::m_text
private

Definition at line 465 of file docnode.h.

Referenced by parse(), and text().

◆ m_trimLeft

bool DocInclude::m_trimLeft
private

Definition at line 470 of file docnode.h.

Referenced by DocInclude(), and trimLeft().

◆ m_type

Type DocInclude::m_type
private

Definition at line 466 of file docnode.h.

Referenced by DocInclude(), parse(), and type().


The documentation for this class was generated from the following files: