Line data Source code
1 : #ifndef TABLEFORMATTER_H
2 : #define TABLEFORMATTER_H
3 :
4 : #include "Formatter.h"
5 :
6 : namespace wikidiff2 {
7 :
8 : class TableFormatter: public Formatter {
9 : public:
10 : const char * getName() override;
11 :
12 : void printAdd(const String& line, int leftLine, int rightLine, int offsetFrom, int offsetTo) override;
13 : void printDelete(const String& line, int leftLine, int rightLine, int offsetFrom, int offsetTo) override;
14 :
15 : void printWordDiff(
16 : const WordDiff & wordDiff,
17 : int leftLine, int rightLine,
18 : int offsetFrom, int offsetTo,
19 : bool printLeft = true, bool printRight = true,
20 : const String & srcAnchor = "", const String & dstAnchor = "",
21 : bool moveDirectionDownwards = false) override;
22 :
23 : void printConcatDiff(
24 : const WordDiff & wordDiff,
25 : int leftLine, int rightLine,
26 : int offsetFrom, int offsetTo) override;
27 :
28 : void printBlockHeader(int leftLine, int rightLine) override;
29 : void printContext(const String& input, int leftLine, int rightLine, int offsetFrom, int offsetTo) override;
30 :
31 : private:
32 : void printTextWithDiv(const String& input);
33 :
34 78 : void printWordDiffSide(const WordDiff& worddiff, bool added) {
35 78 : printWordDiffSegment(worddiff, 0, added);
36 78 : }
37 :
38 : size_t printWordDiffSegment(const WordDiff &worddiff, size_t offset, bool added);
39 : };
40 :
41 : } // namespace wikidiff2
42 :
43 : #endif
|