Clean up Phabricator interface to syntax highlighting

Summary: Reduce the amount of code duplication here and allow for an override
configuration on the filename.map stuff.
Test Plan: Checked paste, diffusion and differential syntax highlighting and
everything appeared reasonable.
Reviewed By: codeblock
Reviewers: tuomaspelkonen, codeblock, jungejason, aran
CC: aran, codeblock, epriestley
Differential Revision: 601
This commit is contained in:
epriestley
2011-07-06 12:12:17 -07:00
parent 70cd8b1b34
commit 85b34c23f9
10 changed files with 103 additions and 33 deletions

View File

@@ -89,23 +89,19 @@ class PhabricatorPasteViewController extends PhabricatorPasteController {
require_celerity_resource('diffusion-source-css');
require_celerity_resource('syntax-highlighting-css');
$highlight_engine = new PhutilDefaultSyntaxHighlighterEngine();
$highlight_engine->setConfig(
'pygments.enabled',
PhabricatorEnv::getEnvConfig('pygments.enabled'));
$language = $paste->getLanguage();
$source = $file->loadFileData();
if (empty($language)) {
$language = $highlight_engine->getLanguageFromFilename(
$paste->getTitle());
$source = PhabricatorSyntaxHighlighter::highlightWithFilename(
$paste->getTitle(),
$source);
} else {
$source = PhabricatorSyntaxHighlighter::highlightWithLanguage(
$language,
$source);
}
$text_list = explode(
"\n",
$highlight_engine->highlightSource(
$language,
$file->loadFileData()));
$text_list = explode("\n", $source);
$rows = $this->buildDisplayRows($text_list);