Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/parser/DifferentialChangesetParser.php
Show First 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | final class DifferentialChangesetParser extends Phobject { | ||||
private $rangeEnd; | private $rangeEnd; | ||||
private $mask; | private $mask; | ||||
private $linesOfContext = 8; | private $linesOfContext = 8; | ||||
private $highlightEngine; | private $highlightEngine; | ||||
private $viewer; | private $viewer; | ||||
private $viewState; | private $viewState; | ||||
private $availableDocumentEngines; | |||||
public function setRange($start, $end) { | public function setRange($start, $end) { | ||||
$this->rangeStart = $start; | $this->rangeStart = $start; | ||||
$this->rangeEnd = $end; | $this->rangeEnd = $end; | ||||
return $this; | return $this; | ||||
} | } | ||||
public function setMask(array $mask) { | public function setMask(array $mask) { | ||||
▲ Show 20 Lines • Show All 1,698 Lines • ▼ Show 20 Lines | private function newDocumentEngine() { | ||||
} | } | ||||
foreach ($shared_engines as $key => $shared_engine) { | foreach ($shared_engines as $key => $shared_engine) { | ||||
if (!$shared_engine->canDiffDocuments($old_ref, $new_ref)) { | if (!$shared_engine->canDiffDocuments($old_ref, $new_ref)) { | ||||
unset($shared_engines[$key]); | unset($shared_engines[$key]); | ||||
} | } | ||||
} | } | ||||
$this->availableDocumentEngines = $shared_engines; | |||||
$viewstate = $this->getViewState(); | $viewstate = $this->getViewState(); | ||||
$engine_key = $viewstate->getDocumentEngineKey(); | $engine_key = $viewstate->getDocumentEngineKey(); | ||||
if (strlen($engine_key)) { | if (strlen($engine_key)) { | ||||
if (isset($shared_engines[$engine_key])) { | if (isset($shared_engines[$engine_key])) { | ||||
$document_engine = $shared_engines[$engine_key]; | $document_engine = $shared_engines[$engine_key]; | ||||
} else { | } else { | ||||
$document_engine = null; | $document_engine = null; | ||||
▲ Show 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | public function newChangesetResponse() { | ||||
$document_engine = $renderer->getDocumentEngine(); | $document_engine = $renderer->getDocumentEngine(); | ||||
if ($document_engine) { | if ($document_engine) { | ||||
$document_engine_key = $document_engine->getDocumentEngineKey(); | $document_engine_key = $document_engine->getDocumentEngineKey(); | ||||
} else { | } else { | ||||
$document_engine_key = null; | $document_engine_key = null; | ||||
} | } | ||||
$available_keys = array(); | |||||
$engines = $this->availableDocumentEngines; | |||||
if (!$engines) { | |||||
$engines = array(); | |||||
} | |||||
$available_keys = mpull($engines, 'getDocumentEngineKey'); | |||||
// TODO: Always include "source" as a usable engine to default to | |||||
// the buitin rendering. This is kind of a hack and does not actually | |||||
// use the source engine. The source engine isn't a diff engine, so | |||||
// selecting it causes us to fall through and render with builtin | |||||
// behavior. For now, overall behavir is reasonable. | |||||
$available_keys[] = PhabricatorSourceDocumentEngine::ENGINEKEY; | |||||
$available_keys = array_fuse($available_keys); | |||||
$available_keys = array_values($available_keys); | |||||
$state = array( | $state = array( | ||||
'undoTemplates' => $undo_templates, | 'undoTemplates' => $undo_templates, | ||||
'rendererKey' => $renderer_key, | 'rendererKey' => $renderer_key, | ||||
'highlight' => $viewstate->getHighlightLanguage(), | 'highlight' => $viewstate->getHighlightLanguage(), | ||||
'characterEncoding' => $viewstate->getCharacterEncoding(), | 'characterEncoding' => $viewstate->getCharacterEncoding(), | ||||
'requestDocumentEngineKey' => $viewstate->getDocumentEngineKey(), | 'requestDocumentEngineKey' => $viewstate->getDocumentEngineKey(), | ||||
'responseDocumentEngineKey' => $document_engine_key, | 'responseDocumentEngineKey' => $document_engine_key, | ||||
'availableDocumentEngineKeys' => $available_keys, | |||||
'isHidden' => $viewstate->getHidden(), | 'isHidden' => $viewstate->getHidden(), | ||||
); | ); | ||||
return id(new PhabricatorChangesetResponse()) | return id(new PhabricatorChangesetResponse()) | ||||
->setRenderedChangeset($rendered_changeset) | ->setRenderedChangeset($rendered_changeset) | ||||
->setChangesetState($state); | ->setChangesetState($state); | ||||
} | } | ||||
Show All 21 Lines |