Differential D12946 Diff 31236 src/applications/differential/controller/DifferentialRevisionViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/controller/DifferentialRevisionViewController.php
Show First 20 Lines • Show All 255 Lines • ▼ Show 20 Lines | public function processRequest() { | ||||
$actions = $this->getRevisionActions($revision); | $actions = $this->getRevisionActions($revision); | ||||
$whitespace = $request->getStr( | $whitespace = $request->getStr( | ||||
'whitespace', | 'whitespace', | ||||
DifferentialChangesetParser::WHITESPACE_IGNORE_MOST); | DifferentialChangesetParser::WHITESPACE_IGNORE_MOST); | ||||
$repository = $revision->getRepository(); | $repository = $revision->getRepository(); | ||||
if ($repository) { | if ($repository) { | ||||
list($symbol_indexes, $repository_phids) = $this->buildSymbolIndexes( | $symbol_indexes = $this->buildSymbolIndexes( | ||||
$repository, | $repository, | ||||
$visible_changesets); | $visible_changesets); | ||||
} else { | } else { | ||||
$symbol_indexes = array(); | $symbol_indexes = array(); | ||||
$repository_phids = null; | |||||
} | } | ||||
$revision_detail->setActions($actions); | $revision_detail->setActions($actions); | ||||
$revision_detail->setUser($user); | $revision_detail->setUser($user); | ||||
$revision_detail_box = $revision_detail->render(); | $revision_detail_box = $revision_detail->render(); | ||||
$revision_warnings = $this->buildRevisionWarnings( | $revision_warnings = $this->buildRevisionWarnings( | ||||
Show All 23 Lines | public function processRequest() { | ||||
$wrap_id = celerity_generate_unique_node_id(); | $wrap_id = celerity_generate_unique_node_id(); | ||||
$comment_view = phutil_tag( | $comment_view = phutil_tag( | ||||
'div', | 'div', | ||||
array( | array( | ||||
'id' => $wrap_id, | 'id' => $wrap_id, | ||||
), | ), | ||||
$comment_view); | $comment_view); | ||||
if ($repository) { | |||||
Javelin::initBehavior( | |||||
'repository-crossreference', | |||||
array( | |||||
'section' => $wrap_id, | |||||
'repositories' => $repository_phids, | |||||
)); | |||||
} | |||||
avivey: I was somewhat surprised to learn that this doesn't do anything; Actual active code is in `php… | |||||
$changeset_view = new DifferentialChangesetListView(); | $changeset_view = new DifferentialChangesetListView(); | ||||
$changeset_view->setChangesets($changesets); | $changeset_view->setChangesets($changesets); | ||||
$changeset_view->setVisibleChangesets($visible_changesets); | $changeset_view->setVisibleChangesets($visible_changesets); | ||||
if (!$viewer_is_anonymous) { | if (!$viewer_is_anonymous) { | ||||
$changeset_view->setInlineCommentControllerURI( | $changeset_view->setInlineCommentControllerURI( | ||||
'/differential/comment/inline/edit/'.$revision->getID().'/'); | '/differential/comment/inline/edit/'.$revision->getID().'/'); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 427 Lines • ▼ Show 20 Lines | private function buildSymbolIndexes( | ||||
array $visible_changesets) { | array $visible_changesets) { | ||||
assert_instances_of($visible_changesets, 'DifferentialChangeset'); | assert_instances_of($visible_changesets, 'DifferentialChangeset'); | ||||
$engine = PhabricatorSyntaxHighlighter::newEngine(); | $engine = PhabricatorSyntaxHighlighter::newEngine(); | ||||
$langs = $repository->getSymbolLanguages(); | $langs = $repository->getSymbolLanguages(); | ||||
$langs = nonempty($langs, array()); | $langs = nonempty($langs, array()); | ||||
$sources = $repository->getSymbolSources(); | |||||
$sources = nonempty($sources, array()); | |||||
$symbol_indexes = array(); | $symbol_indexes = array(); | ||||
if ($langs && $sources) { | |||||
$have_symbols = id(new DiffusionSymbolQuery()) | |||||
->existsSymbolsInRepository($repository->getPHID()); | |||||
if (!$have_symbols) { | |||||
return $symbol_indexes; | |||||
} | |||||
} | |||||
$repository_phids = array_merge( | $repository_phids = array_merge( | ||||
array($repository->getPHID()), | array($repository->getPHID()), | ||||
nonempty($repository->getSymbolSources(), array())); | $sources); | ||||
$indexed_langs = array_fill_keys($langs, true); | $indexed_langs = array_fill_keys($langs, true); | ||||
foreach ($visible_changesets as $key => $changeset) { | foreach ($visible_changesets as $key => $changeset) { | ||||
$lang = $engine->getLanguageFromFilename($changeset->getFilename()); | $lang = $engine->getLanguageFromFilename($changeset->getFilename()); | ||||
if (empty($indexed_langs) || isset($indexed_langs[$lang])) { | if (empty($indexed_langs) || isset($indexed_langs[$lang])) { | ||||
$symbol_indexes[$key] = array( | $symbol_indexes[$key] = array( | ||||
'lang' => $lang, | 'lang' => $lang, | ||||
'repositories' => $repository_phids, | 'repositories' => $repository_phids, | ||||
); | ); | ||||
} | } | ||||
} | } | ||||
return array($symbol_indexes, $repository_phids); | return $symbol_indexes; | ||||
} | } | ||||
private function loadOtherRevisions( | private function loadOtherRevisions( | ||||
array $changesets, | array $changesets, | ||||
DifferentialDiff $target, | DifferentialDiff $target, | ||||
PhabricatorRepository $repository) { | PhabricatorRepository $repository) { | ||||
assert_instances_of($changesets, 'DifferentialChangeset'); | assert_instances_of($changesets, 'DifferentialChangeset'); | ||||
▲ Show 20 Lines • Show All 189 Lines • Show Last 20 Lines |
I was somewhat surprised to learn that this doesn't do anything; Actual active code is in php DifferentialChangesetDetailView.
Without this section, symbols keep working even for code in comments.