mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-24 06:20:56 +01:00
Tune project hashtags a little more
Summary: Fixes T7738. Improves handling of question marks and quotation marks. Test Plan: Unit tests. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T7738 Differential Revision: https://secure.phabricator.com/D12265
This commit is contained in:
parent
7e0c516276
commit
d8ab19a166
2 changed files with 45 additions and 1 deletions
|
@ -30,7 +30,21 @@ final class ProjectRemarkupRule extends PhabricatorObjectRemarkupRule {
|
|||
// In other contexts, the PhabricatorProjectProjectPHIDType pattern is
|
||||
// controlling and these names should parse correctly.
|
||||
|
||||
return '[^\s.\d!,:;{}#\(\)]+(?:[^\s!,:;{}#\(\)]*[^\s.!,:;{}#\(\)]+)*';
|
||||
// These characters may never appear anywhere in a hashtag.
|
||||
$never = '\s?!,:;{}#\\(\\)"\'';
|
||||
|
||||
// These characters may not appear at the beginning.
|
||||
$never_first = '.\d';
|
||||
|
||||
// These characters may not appear at the end.
|
||||
$never_last = '.';
|
||||
|
||||
return
|
||||
'[^'.$never_first.$never.']+'.
|
||||
'(?:'.
|
||||
'[^'.$never.']*'.
|
||||
'[^'.$never_last.$never.']+'.
|
||||
')*';
|
||||
}
|
||||
|
||||
protected function loadObjects(array $ids) {
|
||||
|
|
|
@ -81,6 +81,36 @@ final class ProjectRemarkupRuleTestCase extends PhabricatorTestCase {
|
|||
),
|
||||
),
|
||||
|
||||
'Is this #urgent?' => array(
|
||||
'embed' => array(),
|
||||
'ref' => array(
|
||||
array(
|
||||
'offset' => 9,
|
||||
'id' => 'urgent',
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
'This is "#urgent".' => array(
|
||||
'embed' => array(),
|
||||
'ref' => array(
|
||||
array(
|
||||
'offset' => 10,
|
||||
'id' => 'urgent',
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
'This is \'#urgent\'.' => array(
|
||||
'embed' => array(),
|
||||
'ref' => array(
|
||||
array(
|
||||
'offset' => 10,
|
||||
'id' => 'urgent',
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
foreach ($cases as $input => $expect) {
|
||||
|
|
Loading…
Reference in a new issue