Simplify project regex further
Summary: Fixes T16028 Test Plan: Assert that `#js-draw-lib` (or any other project name with one or two characters followed by a non-word) links correctly. It was previously parsed as `#js -draw-lib`. Repeat the test plan for D25838 and observe it still works Reviewers: aklapper, O1 Blessed Committers, bekay, valerio.bozzolan Reviewed By: O1 Blessed Committers, bekay, valerio.bozzolan Subscribers: mainframe98, bekay, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Maniphest Tasks: T16028 Differential Revision: https://we.phorge.it/D25959
This commit is contained in:
parent
7aee92b5e9
commit
4bd591e441
|
@ -40,12 +40,7 @@ final class ProjectRemarkupRule extends PhabricatorObjectRemarkupRule {
|
|||
$never_edge = '.';
|
||||
|
||||
return '(?:'.
|
||||
// Short project name with one or two characters not in $never_edge or
|
||||
'[^'.$never_edge.$never.']{1,2}|'.
|
||||
// A single character not in $never or $never_edge,
|
||||
// then any number of characters not in $never then a single character
|
||||
// not in $never or $never_edge
|
||||
'[^'.$never_edge.$never.'][^'.$never.']+[^'.$never_edge.$never.']'.
|
||||
'[^'.$never_edge.$never.'](?:[^'.$never.']*[^'.$never_edge.$never.'])?'.
|
||||
')';
|
||||
}
|
||||
|
||||
|
|
|
@ -135,6 +135,21 @@ final class ProjectRemarkupRuleTestCase extends PhabricatorTestCase {
|
|||
),
|
||||
),
|
||||
|
||||
// This test case failed in an old version of the regex
|
||||
'#js-draw' => array(
|
||||
'embed' => array(),
|
||||
'ref' => array(
|
||||
array(
|
||||
'offset' => 1,
|
||||
'id' => 'js-draw',
|
||||
),
|
||||
),
|
||||
),
|
||||
// Don't match leading dots for consistency with trailing ones
|
||||
'#.js' => array(
|
||||
'embed' => array(),
|
||||
'ref' => array(),
|
||||
),
|
||||
);
|
||||
|
||||
foreach ($cases as $input => $expect) {
|
||||
|
|
Loading…
Reference in a new issue