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

#include <src/xmlgen.h>

Inheritance diagram for XMLCodeGenerator:
Collaboration diagram for XMLCodeGenerator:

Public Member Functions

 XMLCodeGenerator (TextStream *t)
OutputType type () const override
void codify (const DString &text) override
 Generator for producing XML formatted source code.
void stripCodeComments (bool b) override
void startSpecialComment () override
void endSpecialComment () override
void setStripIndentAmount (size_t amount) override
std::unique_ptr< OutputCodeIntfclone () override
void writeCodeLink (CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip) override
void writeTooltip (const DString &, const DocLinkInfo &, const DString &, const DString &, const SourceLinkInfo &, const SourceLinkInfo &) override
void startCodeLine (int) override
void endCodeLine () override
void startFontClass (const DString &colorClass) override
void endFontClass () override
void writeCodeAnchor (const DString &) override
void writeLineNumber (const DString &extRef, const DString &compId, const DString &anchorId, int l, bool writeLineAnchor) override
void startCodeFragment (const DString &) override
void endCodeFragment (const DString &) override
void startFold (int, const DString &, const DString &) override
void endFold () override
Public Member Functions inherited from OutputCodeIntf
 OutputCodeIntf ()=default

Private Attributes

TextStreamm_t
DString m_refId
DString m_external
int m_lineNumber = -1
bool m_isMemberRef = false
size_t m_col = 0
bool m_insideCodeLine = false
bool m_normalHLNeedStartTag = true
bool m_insideSpecialHL = false
bool m_stripCodeComments = false
bool m_hide = false
size_t m_stripIndentAmount = 0

Detailed Description

Definition at line 24 of file xmlgen.h.

Constructor & Destructor Documentation

◆ XMLCodeGenerator()

XMLCodeGenerator::XMLCodeGenerator ( TextStream * t)

Definition at line 207 of file xmlgen.cpp.

207 : m_t(t)
208{
209}
TextStream * m_t
Definition xmlgen.h:57

References m_t.

Member Function Documentation

◆ clone()

std::unique_ptr< OutputCodeIntf > XMLCodeGenerator::clone ( )
inlineoverridevirtual

Implements OutputCodeIntf.

Definition at line 36 of file xmlgen.h.

36{ return std::make_unique<XMLCodeGenerator>(*this); }

◆ codify()

void XMLCodeGenerator::codify ( const DString & text)
overridevirtual

Generator for producing XML formatted source code.

Implements OutputCodeIntf.

Definition at line 212 of file xmlgen.cpp.

213{
214 XML_DB(("(codify \"%s\")\n",qPrint(text)));
216 {
217 *m_t << "<highlight class=\"normal\">";
219 }
221}
bool m_insideSpecialHL
Definition xmlgen.h:66
size_t m_stripIndentAmount
Definition xmlgen.h:69
bool m_normalHLNeedStartTag
Definition xmlgen.h:65
bool m_insideCodeLine
Definition xmlgen.h:64
size_t m_col
Definition xmlgen.h:62
const char * qPrint(const char *s)
Definition dstring.h:787
void writeXMLCodeString(bool hide, TextStream &t, const DString &str, size_t &col, size_t stripIndentAmount)
Definition xmlgen.cpp:81
#define XML_DB(x)
Definition xmlgen.cpp:57

References m_col, m_hide, m_insideCodeLine, m_insideSpecialHL, m_normalHLNeedStartTag, m_stripIndentAmount, m_t, qPrint(), writeXMLCodeString(), and XML_DB.

◆ endCodeFragment()

void XMLCodeGenerator::endCodeFragment ( const DString & )
overridevirtual

Implements OutputCodeIntf.

Definition at line 367 of file xmlgen.cpp.

368{
369 XML_DB(("(endCodeFragment)\n"));
370 *m_t << " </programlisting>\n";
371}

References m_t, and XML_DB.

◆ endCodeLine()

void XMLCodeGenerator::endCodeLine ( )
overridevirtual

Implements OutputCodeIntf.

Definition at line 298 of file xmlgen.cpp.

299{
300 if (m_hide) return;
301 XML_DB(("(endCodeLine)\n"));
303 {
304 *m_t << "</highlight>";
306 }
308 {
309 *m_t << "</codeline>\n";
310 }
311 m_lineNumber = -1;
312 m_refId.clear();
314 m_insideCodeLine=false;
315}
void clear()
Definition dstring.h:218
DString m_external
Definition xmlgen.h:59
DString m_refId
Definition xmlgen.h:58

References DString::clear(), m_external, m_hide, m_insideCodeLine, m_insideSpecialHL, m_lineNumber, m_normalHLNeedStartTag, m_refId, m_t, and XML_DB.

◆ endFold()

void XMLCodeGenerator::endFold ( )
inlineoverridevirtual

Implements OutputCodeIntf.

Definition at line 54 of file xmlgen.h.

54{}

◆ endFontClass()

void XMLCodeGenerator::endFontClass ( )
overridevirtual

Implements OutputCodeIntf.

Definition at line 330 of file xmlgen.cpp.

331{
332 if (m_hide) return;
333 XML_DB(("(endFontClass)\n"));
334 *m_t << "</highlight>"; // non DocBook
335 m_insideSpecialHL=false;
336}

References m_hide, m_insideSpecialHL, m_t, and XML_DB.

◆ endSpecialComment()

void XMLCodeGenerator::endSpecialComment ( )
overridevirtual

Implements OutputCodeIntf.

Definition at line 228 of file xmlgen.cpp.

229{
230 m_hide = false;
231}

References m_hide.

◆ setStripIndentAmount()

void XMLCodeGenerator::setStripIndentAmount ( size_t amount)
overridevirtual

Implements OutputCodeIntf.

Definition at line 238 of file xmlgen.cpp.

239{
240 m_stripIndentAmount = amount;
241}

References m_stripIndentAmount.

◆ startCodeFragment()

void XMLCodeGenerator::startCodeFragment ( const DString & )
overridevirtual

Implements OutputCodeIntf.

Definition at line 361 of file xmlgen.cpp.

362{
363 XML_DB(("(startCodeFragment)\n"));
364 *m_t << " <programlisting>\n";
365}

References m_t, and XML_DB.

◆ startCodeLine()

void XMLCodeGenerator::startCodeLine ( int )
overridevirtual

Implements OutputCodeIntf.

Definition at line 267 of file xmlgen.cpp.

268{
269 m_col=0;
270 if (m_hide) return;
271 XML_DB(("(startCodeLine)\n"));
272 *m_t << "<codeline";
273 if (m_lineNumber!=-1)
274 {
275 *m_t << " lineno=\"" << m_lineNumber << "\"";
276 if (!m_refId.empty())
277 {
278 *m_t << " refid=\"" << m_refId << "\"";
279 if (m_isMemberRef)
280 {
281 *m_t << " refkind=\"member\"";
282 }
283 else
284 {
285 *m_t << " refkind=\"compound\"";
286 }
287 }
288 if (!m_external.empty())
289 {
290 *m_t << " external=\"" << m_external << "\"";
291 }
292 }
293 *m_t << ">";
294 m_insideCodeLine=true;
295 m_col=0;
296}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:152
bool m_isMemberRef
Definition xmlgen.h:61

References DString::empty(), m_col, m_external, m_hide, m_insideCodeLine, m_isMemberRef, m_lineNumber, m_refId, m_t, and XML_DB.

◆ startFold()

void XMLCodeGenerator::startFold ( int ,
const DString & ,
const DString &  )
inlineoverridevirtual

Implements OutputCodeIntf.

Definition at line 53 of file xmlgen.h.

53{}

◆ startFontClass()

void XMLCodeGenerator::startFontClass ( const DString & colorClass)
overridevirtual

Implements OutputCodeIntf.

Definition at line 317 of file xmlgen.cpp.

318{
319 if (m_hide) return;
320 XML_DB(("(startFontClass)\n"));
322 {
323 *m_t << "</highlight>";
325 }
326 *m_t << "<highlight class=\"" << colorClass << "\">"; // non DocBook
328}

References m_hide, m_insideCodeLine, m_insideSpecialHL, m_normalHLNeedStartTag, m_t, and XML_DB.

◆ startSpecialComment()

void XMLCodeGenerator::startSpecialComment ( )
overridevirtual

Implements OutputCodeIntf.

Definition at line 233 of file xmlgen.cpp.

234{
236}
bool m_stripCodeComments
Definition xmlgen.h:67

References m_hide, and m_stripCodeComments.

◆ stripCodeComments()

void XMLCodeGenerator::stripCodeComments ( bool b)
overridevirtual

Implements OutputCodeIntf.

Definition at line 223 of file xmlgen.cpp.

224{
226}

References m_stripCodeComments.

◆ type()

OutputType XMLCodeGenerator::type ( ) const
inlineoverridevirtual

Implements OutputCodeIntf.

Definition at line 29 of file xmlgen.h.

29{ return OutputType::XML; }

References XML.

◆ writeCodeAnchor()

void XMLCodeGenerator::writeCodeAnchor ( const DString & )
overridevirtual

Implements OutputCodeIntf.

Definition at line 338 of file xmlgen.cpp.

339{
340 if (m_hide) return;
341 XML_DB(("(writeCodeAnchor)\n"));
342}

References m_hide, and XML_DB.

◆ writeCodeLink()

void XMLCodeGenerator::writeCodeLink ( CodeSymbolType type,
const DString & ref,
const DString & file,
const DString & anchor,
const DString & name,
const DString & tooltip )
overridevirtual

Implements OutputCodeIntf.

Definition at line 243 of file xmlgen.cpp.

247{
248 if (m_hide) return;
249 XML_DB(("(writeCodeLink)\n"));
251 {
252 *m_t << "<highlight class=\"normal\">";
254 }
255 writeXMLLink(*m_t,ref,file,anchor,name,tooltip);
256 m_col+=name.length();
257}
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:155
void writeXMLLink(TextStream &t, const DString &extRef, const DString &compoundId, const DString &anchorId, const DString &text, const DString &tooltip)
Definition xmlgen.cpp:170

References DString::length(), m_col, m_hide, m_insideCodeLine, m_insideSpecialHL, m_normalHLNeedStartTag, m_t, writeXMLLink(), and XML_DB.

◆ writeLineNumber()

void XMLCodeGenerator::writeLineNumber ( const DString & extRef,
const DString & compId,
const DString & anchorId,
int l,
bool writeLineAnchor )
overridevirtual

Implements OutputCodeIntf.

Definition at line 344 of file xmlgen.cpp.

346{
347 if (m_hide) return;
348 XML_DB(("(writeLineNumber)\n"));
349 // we remember the information provided here to use it
350 // at the <codeline> start tag.
351 m_lineNumber = l;
352 if (!compId.empty())
353 {
354 m_refId=compId;
355 if (!anchorId.empty()) m_refId+=DString("_1")+anchorId;
356 m_isMemberRef = anchorId!=nullptr;
357 if (!extRef.empty()) m_external=extRef;
358 }
359}
DString()=default

References DString::DString(), DString::empty(), m_external, m_hide, m_isMemberRef, m_lineNumber, m_refId, and XML_DB.

◆ writeTooltip()

void XMLCodeGenerator::writeTooltip ( const DString & ,
const DocLinkInfo & ,
const DString & ,
const DString & ,
const SourceLinkInfo & ,
const SourceLinkInfo &  )
overridevirtual

Implements OutputCodeIntf.

Definition at line 259 of file xmlgen.cpp.

262{
263 if (m_hide) return;
264 XML_DB(("(writeToolTip)\n"));
265}

References m_hide, and XML_DB.

Member Data Documentation

◆ m_col

size_t XMLCodeGenerator::m_col = 0
private

Definition at line 62 of file xmlgen.h.

Referenced by codify(), startCodeLine(), and writeCodeLink().

◆ m_external

DString XMLCodeGenerator::m_external
private

Definition at line 59 of file xmlgen.h.

Referenced by endCodeLine(), startCodeLine(), and writeLineNumber().

◆ m_hide

◆ m_insideCodeLine

bool XMLCodeGenerator::m_insideCodeLine = false
private

Definition at line 64 of file xmlgen.h.

Referenced by codify(), endCodeLine(), startCodeLine(), startFontClass(), and writeCodeLink().

◆ m_insideSpecialHL

bool XMLCodeGenerator::m_insideSpecialHL = false
private

Definition at line 66 of file xmlgen.h.

Referenced by codify(), endCodeLine(), endFontClass(), startFontClass(), and writeCodeLink().

◆ m_isMemberRef

bool XMLCodeGenerator::m_isMemberRef = false
private

Definition at line 61 of file xmlgen.h.

Referenced by startCodeLine(), and writeLineNumber().

◆ m_lineNumber

int XMLCodeGenerator::m_lineNumber = -1
private

Definition at line 60 of file xmlgen.h.

Referenced by endCodeLine(), startCodeLine(), and writeLineNumber().

◆ m_normalHLNeedStartTag

bool XMLCodeGenerator::m_normalHLNeedStartTag = true
private

Definition at line 65 of file xmlgen.h.

Referenced by codify(), endCodeLine(), startFontClass(), and writeCodeLink().

◆ m_refId

DString XMLCodeGenerator::m_refId
private

Definition at line 58 of file xmlgen.h.

Referenced by endCodeLine(), startCodeLine(), and writeLineNumber().

◆ m_stripCodeComments

bool XMLCodeGenerator::m_stripCodeComments = false
private

Definition at line 67 of file xmlgen.h.

Referenced by startSpecialComment(), and stripCodeComments().

◆ m_stripIndentAmount

size_t XMLCodeGenerator::m_stripIndentAmount = 0
private

Definition at line 69 of file xmlgen.h.

Referenced by codify(), and setStripIndentAmount().

◆ m_t


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