1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-23 15:22:41 +01:00

Multiline Highlighting in Diffusion

Summary:
I added multiline highlighting with the syntax:

  http://site/path/to/file$from-to

NOTE: you can reverse the from and to

Test Plan: Open a file in diffusion and attempt to highlight multiple lines

Reviewers: epriestley

CC: aran, epriestley

Differential Revision: https://secure.phabricator.com/D1693
This commit is contained in:
Korvin Szanto 2012-02-25 11:45:51 -08:00
parent ecc81ca9dc
commit e24a6acf58
2 changed files with 20 additions and 5 deletions

View file

@ -265,7 +265,7 @@ class AphrontDefaultApplicationConfiguration
'browse/'.
'(?P<path>.*?)'.
'(?:[;](?P<commit>[a-z0-9]+))?'.
'(?:[$](?P<line>\d+))?'.
'(?:[$](?P<line>\d+(?:-\d+)?))?'.
'$'
=> 'DiffusionBrowseController',
'diff/'.

View file

@ -313,6 +313,19 @@ class DiffusionBrowseFileController extends DiffusionController {
$range = 1;
}
$targ = '';
$min_line = 0;
$line = $drequest->getLine();
if (strpos($line,'-') !== false) {
list($min,$max) = explode('-',$line,2);
$min_line = min($min, $max);
$max_line = max($min, $max);
} else if (strlen($line)) {
$min_line = $line;
$max_line = $line;
}
foreach ($text_list as $k => $line) {
if ($needs_blame) {
// If the line's rev is same as the line above, show empty content
@ -370,11 +383,13 @@ class DiffusionBrowseFileController extends DiffusionController {
}
// Highlight the line of interest if needed.
if ($n == $drequest->getLine()) {
if ($min_line > 0 && ($n >= $min_line && $n <= $max_line)) {
$tr = '<tr style="background: #ffff00;">';
$targ = '<a id="scroll_target"></a>';
Javelin::initBehavior('diffusion-jump-to',
array('target' => 'scroll_target'));
if ($targ == '') {
$targ = '<a id="scroll_target"></a>';
Javelin::initBehavior('diffusion-jump-to',
array('target' => 'scroll_target'));
}
} else {
$tr = '<tr>';
$targ = null;