예제 #1
0
 public function renderDiffToMarkdown()
 {
     $in_offset = 0;
     ob_start();
     foreach ($this->edits as $edit) {
         $n = $edit->getFromLen();
         if ($edit instanceof FineDiffCopyOp) {
             FineDiff::renderDiffToMarkDownFromOpcode('c', $this->from_text, $in_offset, $n);
         } else {
             if ($edit instanceof FineDiffDeleteOp) {
                 FineDiff::renderDiffToMarkDownFromOpcode('d', $this->from_text, $in_offset, $n);
             } else {
                 if ($edit instanceof FineDiffInsertOp) {
                     FineDiff::renderDiffToMarkDownFromOpcode('i', $edit->getText(), 0, $edit->getToLen());
                 } else {
                     FineDiff::renderDiffToMarkDownFromOpcode('d', $this->from_text, $in_offset, $n);
                     FineDiff::renderDiffToMarkDownFromOpcode('i', $edit->getText(), 0, $edit->getToLen());
                 }
             }
         }
         $in_offset += $n;
     }
     return ob_get_clean();
 }