Path: blob/master/src/applications/differential/render/DifferentialChangesetTestRenderer.php
12256 views
<?php12abstract class DifferentialChangesetTestRenderer3extends DifferentialChangesetRenderer {45protected function renderChangeTypeHeader($force) {6$changeset = $this->getChangeset();78$old = nonempty($changeset->getOldFile(), '-');9$current = nonempty($changeset->getFilename(), '-');10$away = nonempty(implode(', ', $changeset->getAwayPaths()), '-');1112$ctype = $changeset->getChangeType();13$ftype = $changeset->getFileType();14$force = ($force ? '(forced)' : '(unforced)');1516return "CTYPE {$ctype} {$ftype} {$force}\n".17"{$old}\n".18"{$current}\n".19"{$away}\n";20}2122protected function renderUndershieldHeader() {23return null;24}2526public function renderShield($message, $force = 'default') {27return "SHIELD ({$force}) {$message}\n";28}2930protected function renderPropertyChangeHeader() {31$changeset = $this->getChangeset();32list($old, $new) = $this->getChangesetProperties($changeset);3334foreach (array_keys($old) as $key) {35if ($old[$key] === idx($new, $key)) {36unset($old[$key]);37unset($new[$key]);38}39}4041if (!$old && !$new) {42return null;43}4445$props = '';46foreach ($old as $key => $value) {47$props .= "P - {$key} {$value}~\n";48}49foreach ($new as $key => $value) {50$props .= "P + {$key} {$value}~\n";51}5253return "PROPERTIES\n".$props;54}5556public function renderTextChange(57$range_start,58$range_len,59$rows) {6061$out = array();6263$any_old = false;64$any_new = false;65$primitives = $this->buildPrimitives($range_start, $range_len);66foreach ($primitives as $p) {67$type = $p['type'];68switch ($type) {69case 'old':70case 'new':71if ($type == 'old') {72$any_old = true;73}74if ($type == 'new') {75$any_new = true;76}77$num = nonempty($p['line'], '-');78$render = (string)$p['render'];79$htype = nonempty($p['htype'], '.');8081// TODO: This should probably happen earlier, whenever we deal with82// \r and \t normalization?83$render = str_replace(84array(85"\r",86"\n",87),88array(89'\\r',90'\\n',91),92$render);9394$render = str_replace(95array(96'<span class="bright">',97'</span>',98'<span class="depth-out">',99'<span class="depth-in">',100),101array(102'{(',103')}',104'{<',105'{>',106),107$render);108109$render = html_entity_decode($render, ENT_QUOTES);110111$t = ($type == 'old') ? 'O' : 'N';112113$out[] = "{$t} {$num} {$htype} {$render}~";114break;115case 'no-context':116$out[] = 'X <MISSING-CONTEXT>';117break;118default:119$out[] = $type;120break;121}122}123124if (!$any_old) {125$out[] = 'O X <EMPTY>';126}127128if (!$any_new) {129$out[] = 'N X <EMPTY>';130}131132$out = implode("\n", $out)."\n";133return phutil_safe_html($out);134}135136}137138139