mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-27 01:02:42 +01:00
Add syntax highlighting options.
Test Plan: Quick view of each option in the web interface. Reviewers: epriestley, btrahan, chad Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T2255 Differential Revision: https://secure.phabricator.com/D4386
This commit is contained in:
parent
9aeebbbf58
commit
054f09fb50
2 changed files with 117 additions and 0 deletions
|
@ -1213,6 +1213,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorSubscriptionsUIEventListener' => 'applications/subscriptions/events/PhabricatorSubscriptionsUIEventListener.php',
|
'PhabricatorSubscriptionsUIEventListener' => 'applications/subscriptions/events/PhabricatorSubscriptionsUIEventListener.php',
|
||||||
'PhabricatorSymbolNameLinter' => 'infrastructure/lint/hook/PhabricatorSymbolNameLinter.php',
|
'PhabricatorSymbolNameLinter' => 'infrastructure/lint/hook/PhabricatorSymbolNameLinter.php',
|
||||||
'PhabricatorSyntaxHighlighter' => 'infrastructure/markup/PhabricatorSyntaxHighlighter.php',
|
'PhabricatorSyntaxHighlighter' => 'infrastructure/markup/PhabricatorSyntaxHighlighter.php',
|
||||||
|
'PhabricatorSyntaxHighlightingConfigOptions' => 'applications/config/option/PhabricatorSyntaxHighlightingConfigOptions.php',
|
||||||
'PhabricatorTagExample' => 'applications/uiexample/examples/PhabricatorTagExample.php',
|
'PhabricatorTagExample' => 'applications/uiexample/examples/PhabricatorTagExample.php',
|
||||||
'PhabricatorTagView' => 'view/layout/PhabricatorTagView.php',
|
'PhabricatorTagView' => 'view/layout/PhabricatorTagView.php',
|
||||||
'PhabricatorTaskmasterDaemon' => 'infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php',
|
'PhabricatorTaskmasterDaemon' => 'infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php',
|
||||||
|
@ -2527,6 +2528,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor',
|
'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor',
|
||||||
'PhabricatorSubscriptionsUIEventListener' => 'PhutilEventListener',
|
'PhabricatorSubscriptionsUIEventListener' => 'PhutilEventListener',
|
||||||
'PhabricatorSymbolNameLinter' => 'ArcanistXHPASTLintNamingHook',
|
'PhabricatorSymbolNameLinter' => 'ArcanistXHPASTLintNamingHook',
|
||||||
|
'PhabricatorSyntaxHighlightingConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||||
'PhabricatorTagExample' => 'PhabricatorUIExample',
|
'PhabricatorTagExample' => 'PhabricatorUIExample',
|
||||||
'PhabricatorTagView' => 'AphrontView',
|
'PhabricatorTagView' => 'AphrontView',
|
||||||
'PhabricatorTaskmasterDaemon' => 'PhabricatorDaemon',
|
'PhabricatorTaskmasterDaemon' => 'PhabricatorDaemon',
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class PhabricatorSyntaxHighlightingConfigOptions
|
||||||
|
extends PhabricatorApplicationConfigOptions {
|
||||||
|
|
||||||
|
public function getName() {
|
||||||
|
return pht("Syntax Highlighting");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescription() {
|
||||||
|
return pht("Options relating to syntax highlighting source code.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getOptions() {
|
||||||
|
return array(
|
||||||
|
$this->newOption(
|
||||||
|
'syntax-highlighter.engine',
|
||||||
|
'class',
|
||||||
|
'PhutilDefaultSyntaxHighlighterEngine')
|
||||||
|
->setBaseClass('PhutilSyntaxHighlighterEngine')
|
||||||
|
->setSummary(pht("Default non-pygments syntax highlighter engine."))
|
||||||
|
->setDescription(
|
||||||
|
pht(
|
||||||
|
"Phabricator can highlight PHP by default and use Pygments for ".
|
||||||
|
"other languages if enabled. You can provide a custom ".
|
||||||
|
"highlighter engine by extending class ".
|
||||||
|
"PhutilSyntaxHighlighterEngine.")),
|
||||||
|
$this->newOption('pygments.enabled', 'bool', false)
|
||||||
|
->setSummary(
|
||||||
|
pht("Should Phabricator shell out to Pygments to highlight code?"))
|
||||||
|
->setDescription(
|
||||||
|
pht(
|
||||||
|
"If you want syntax highlighting for other languages than PHP ".
|
||||||
|
"then you can install the python package 'Pygments', make sure ".
|
||||||
|
"the 'pygmentize' script is available in the \$PATH of the ".
|
||||||
|
"webserver, and then enable this.")),
|
||||||
|
$this->newOption(
|
||||||
|
'pygments.dropdown-choices',
|
||||||
|
'wild',
|
||||||
|
array(
|
||||||
|
'apacheconf' => 'Apache Configuration',
|
||||||
|
'bash' => 'Bash Scripting',
|
||||||
|
'brainfuck' => 'Brainf*ck',
|
||||||
|
'c' => 'C',
|
||||||
|
'cpp' => 'C++',
|
||||||
|
'css' => 'CSS',
|
||||||
|
'd' => 'D',
|
||||||
|
'diff' => 'Diff',
|
||||||
|
'django' => 'Django Templating',
|
||||||
|
'erb' => 'Embedded Ruby/ERB',
|
||||||
|
'erlang' => 'Erlang',
|
||||||
|
'haskell' => 'Haskell',
|
||||||
|
'html' => 'HTML',
|
||||||
|
'java' => 'Java',
|
||||||
|
'js' => 'Javascript',
|
||||||
|
'mysql' => 'MySQL',
|
||||||
|
'objc' => 'Objective-C',
|
||||||
|
'perl' => 'Perl',
|
||||||
|
'php' => 'PHP',
|
||||||
|
'rest' => 'reStructuredText',
|
||||||
|
'text' => 'Plain Text',
|
||||||
|
'python' => 'Python',
|
||||||
|
'rainbow' => 'Rainbow',
|
||||||
|
'remarkup' => 'Remarkup',
|
||||||
|
'ruby' => 'Ruby',
|
||||||
|
'xml' => 'XML',
|
||||||
|
))
|
||||||
|
->setSummary(
|
||||||
|
pht("Set the language list which appears in dropdowns."))
|
||||||
|
->setDescription(
|
||||||
|
pht(
|
||||||
|
"In places that we display a dropdown to syntax-highlight code, ".
|
||||||
|
"this is where that list is defined.")),
|
||||||
|
$this->newOption(
|
||||||
|
'syntax.filemap',
|
||||||
|
'wild',
|
||||||
|
array(
|
||||||
|
'@\.arcconfig$@' => 'js',
|
||||||
|
'@\.divinerconfig$@' => 'js',
|
||||||
|
))
|
||||||
|
->setSummary(
|
||||||
|
pht("Override what language files (based on filename) highlight as."))
|
||||||
|
->setDescription(
|
||||||
|
pht(
|
||||||
|
"This is an override list of regular expressions which allows ".
|
||||||
|
"you to choose what language files are highlighted as. If your ".
|
||||||
|
"projects have certain rules about filenames or use unusual or ".
|
||||||
|
"ambiguous language extensions, you can create a mapping here. ".
|
||||||
|
"This is an ordered dictionary of regular expressions which will ".
|
||||||
|
"be tested against the filename. They should map to either an ".
|
||||||
|
"explicit language as a string value, or a numeric index into ".
|
||||||
|
"the captured groups as an integer."))
|
||||||
|
->addExample('{"@\\.xyz$@": "php"}', pht('Highlight *.xyz as PHP.'))
|
||||||
|
->addExample(
|
||||||
|
'{"@/httpd\\.conf@": "apacheconf"}',
|
||||||
|
pht('Highlight httpd.conf as "apacheconf".'))
|
||||||
|
->addExample(
|
||||||
|
'{"@\\.([^.]+)\\.bak$@": 1}',
|
||||||
|
pht(
|
||||||
|
"Treat all '*.x.bak' file as '.x'. NOTE: We map to capturing group ".
|
||||||
|
"1 by specifying the mapping as '1'")),
|
||||||
|
$this->newOption(
|
||||||
|
'style.monospace',
|
||||||
|
'string',
|
||||||
|
'10px "Menlo", "Consolas", "Monaco", monospace')
|
||||||
|
->setSummary(
|
||||||
|
pht("Default monospace font."))
|
||||||
|
->setDescription(
|
||||||
|
pht(
|
||||||
|
"Set the default monospaced font style for users who haven't set ".
|
||||||
|
"a custom style.")),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue