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 | |||||