ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
Text_Diff_Renderer Class Reference
+ Inheritance diagram for Text_Diff_Renderer:
+ Collaboration diagram for Text_Diff_Renderer:

Public Member Functions

 Text_Diff_Renderer ($params=array())
 Constructor. More...
 
 getParams ()
 Get any renderer parameters. More...
 
 render ($diff)
 Renders a diff. More...
 
 _block ($xbeg, $xlen, $ybeg, $ylen, &$edits)
 
 _startDiff ()
 
 _endDiff ()
 
 _blockHeader ($xbeg, $xlen, $ybeg, $ylen)
 
 _startBlock ($header)
 
 _endBlock ()
 
 _lines ($lines, $prefix=' ')
 
 _context ($lines)
 
 _added ($lines)
 
 _deleted ($lines)
 
 _changed ($orig, $final)
 

Data Fields

 $_leading_context_lines = 0
 Number of leading context "lines" to preserve. More...
 
 $_trailing_context_lines = 0
 Number of trailing context "lines" to preserve. More...
 

Detailed Description

Definition at line 12 of file Renderer.php.

Member Function Documentation

◆ _added()

Text_Diff_Renderer::_added (   $lines)

Definition at line 194 of file Renderer.php.

References _lines().

Referenced by _block(), and _changed().

195  {
196  return $this->_lines($lines, '>');
197  }
_lines($lines, $prefix=' ')
Definition: Renderer.php:184
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _block()

Text_Diff_Renderer::_block (   $xbeg,
  $xlen,
  $ybeg,
  $ylen,
$edits 
)

Definition at line 125 of file Renderer.php.

References _added(), _blockHeader(), _changed(), _context(), _deleted(), _endBlock(), and _startBlock().

Referenced by render().

126  {
127  $output = $this->_startBlock($this->_blockHeader($xbeg, $xlen, $ybeg, $ylen));
128 
129  foreach ($edits as $edit) {
130  switch (strtolower(get_class($edit))) {
131  case 'text_diff_op_copy':
132  $output .= $this->_context($edit->orig);
133  break;
134 
135  case 'text_diff_op_add':
136  $output .= $this->_added($edit->final);
137  break;
138 
139  case 'text_diff_op_delete':
140  $output .= $this->_deleted($edit->orig);
141  break;
142 
143  case 'text_diff_op_change':
144  $output .= $this->_changed($edit->orig, $edit->final);
145  break;
146  }
147  }
148 
149  return $output . $this->_endBlock();
150  }
_changed($orig, $final)
Definition: Renderer.php:204
_startBlock($header)
Definition: Renderer.php:174
_blockHeader($xbeg, $xlen, $ybeg, $ylen)
Definition: Renderer.php:162
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _blockHeader()

Text_Diff_Renderer::_blockHeader (   $xbeg,
  $xlen,
  $ybeg,
  $ylen 
)

Definition at line 162 of file Renderer.php.

Referenced by _block().

163  {
164  if ($xlen > 1) {
165  $xbeg .= ',' . ($xbeg + $xlen - 1);
166  }
167  if ($ylen > 1) {
168  $ybeg .= ',' . ($ybeg + $ylen - 1);
169  }
170 
171  return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg;
172  }
+ Here is the caller graph for this function:

◆ _changed()

Text_Diff_Renderer::_changed (   $orig,
  $final 
)

Definition at line 204 of file Renderer.php.

References _added(), and _deleted().

Referenced by _block().

205  {
206  return $this->_deleted($orig) . "---\n" . $this->_added($final);
207  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _context()

Text_Diff_Renderer::_context (   $lines)

Definition at line 189 of file Renderer.php.

References _lines().

Referenced by _block().

190  {
191  return $this->_lines($lines);
192  }
_lines($lines, $prefix=' ')
Definition: Renderer.php:184
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _deleted()

Text_Diff_Renderer::_deleted (   $lines)

Definition at line 199 of file Renderer.php.

References _lines().

Referenced by _block(), and _changed().

200  {
201  return $this->_lines($lines, '<');
202  }
_lines($lines, $prefix=' ')
Definition: Renderer.php:184
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _endBlock()

Text_Diff_Renderer::_endBlock ( )

Definition at line 179 of file Renderer.php.

Referenced by _block().

180  {
181  return '';
182  }
+ Here is the caller graph for this function:

◆ _endDiff()

Text_Diff_Renderer::_endDiff ( )

Definition at line 157 of file Renderer.php.

Referenced by render().

158  {
159  return '';
160  }
+ Here is the caller graph for this function:

◆ _lines()

Text_Diff_Renderer::_lines (   $lines,
  $prefix = ' ' 
)

Definition at line 184 of file Renderer.php.

Referenced by Text_Diff_Renderer_unified\_added(), _added(), _context(), Text_Diff_Renderer_unified\_deleted(), and _deleted().

185  {
186  return $prefix . implode("\n$prefix", $lines) . "\n";
187  }
+ Here is the caller graph for this function:

◆ _startBlock()

Text_Diff_Renderer::_startBlock (   $header)

Definition at line 174 of file Renderer.php.

Referenced by _block().

175  {
176  return $header . "\n";
177  }
+ Here is the caller graph for this function:

◆ _startDiff()

Text_Diff_Renderer::_startDiff ( )

Definition at line 152 of file Renderer.php.

Referenced by render().

153  {
154  return '';
155  }
+ Here is the caller graph for this function:

◆ getParams()

Text_Diff_Renderer::getParams ( )

Get any renderer parameters.

Returns
array All parameters of this renderer object.

Definition at line 48 of file Renderer.php.

49  {
50  $params = array();
51  foreach (get_object_vars($this) as $k => $v) {
52  if ($k{0} == '_') {
53  $params[substr($k, 1)] = $v;
54  }
55  }
56 
57  return $params;
58  }

◆ render()

Text_Diff_Renderer::render (   $diff)

Renders a diff.

Parameters
Text_Diff$diffA Text_Diff object.
Returns
string The formatted output.

Definition at line 67 of file Renderer.php.

References $_leading_context_lines, $_trailing_context_lines, _block(), _endDiff(), and _startDiff().

68  {
69  $xi = $yi = 1;
70  $block = false;
71  $context = array();
72 
75 
76  $output = $this->_startDiff();
77 
78  foreach ($diff->getDiff() as $edit) {
79  if ($edit instanceof Text_Diff_Op_copy) {
80  if (is_array($block)) {
81  if (count($edit->orig) <= $nlead + $ntrail) {
82  $block[] = $edit;
83  } else {
84  if ($ntrail) {
85  $context = array_slice($edit->orig, 0, $ntrail);
86  $block[] = new Text_Diff_Op_copy($context);
87  }
88  $output .= $this->_block($x0, $ntrail + $xi - $x0,
89  $y0, $ntrail + $yi - $y0,
90  $block);
91  $block = false;
92  }
93  }
94  $context = $edit->orig;
95  } else {
96  if (!is_array($block)) {
97  $context = array_slice($context, count($context) - $nlead);
98  $x0 = $xi - count($context);
99  $y0 = $yi - count($context);
100  $block = array();
101  if ($context) {
102  $block[] = new Text_Diff_Op_copy($context);
103  }
104  }
105  $block[] = $edit;
106  }
107 
108  if ($edit->orig) {
109  $xi += count($edit->orig);
110  }
111  if ($edit->final) {
112  $yi += count($edit->final);
113  }
114  }
115 
116  if (is_array($block)) {
117  $output .= $this->_block($x0, $xi - $x0,
118  $y0, $yi - $y0,
119  $block);
120  }
121 
122  return $output . $this->_endDiff();
123  }
$_trailing_context_lines
Number of trailing context "lines" to preserve.
Definition: Renderer.php:28
$_leading_context_lines
Number of leading context "lines" to preserve.
Definition: Renderer.php:20
_block($xbeg, $xlen, $ybeg, $ylen, &$edits)
Definition: Renderer.php:125
+ Here is the call graph for this function:

◆ Text_Diff_Renderer()

Text_Diff_Renderer::Text_Diff_Renderer (   $params = array())

Constructor.

Definition at line 33 of file Renderer.php.

34  {
35  foreach ($params as $param => $value) {
36  $v = '_' . $param;
37  if (isset($this->$v)) {
38  $this->$v = $value;
39  }
40  }
41  }

Field Documentation

◆ $_leading_context_lines

Text_Diff_Renderer::$_leading_context_lines = 0

Number of leading context "lines" to preserve.

This should be left at zero for this class, but subclasses may want to set this to other values.

Definition at line 20 of file Renderer.php.

Referenced by render().

◆ $_trailing_context_lines

Text_Diff_Renderer::$_trailing_context_lines = 0

Number of trailing context "lines" to preserve.

This should be left at zero for this class, but subclasses may want to set this to other values.

Definition at line 28 of file Renderer.php.

Referenced by render().


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