mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-21 14:22:40 +01:00
Improve array comma rule
Summary: Improve `ArcanistXHPASTLinter::LINT_ARRAY_SEPARATOR` in handling multi-line arrays, see D12280 and D12281 for example. Depends on D12295. Test Plan: Updated unit tests. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Differential Revision: https://secure.phabricator.com/D12296
This commit is contained in:
parent
4b2d8e3f69
commit
3a5ffdc2fd
2 changed files with 37 additions and 5 deletions
|
@ -2951,11 +2951,23 @@ final class ArcanistXHPASTLinter extends ArcanistBaseXHPASTLinter {
|
|||
continue;
|
||||
}
|
||||
|
||||
$this->raiseLintAtNode(
|
||||
$value,
|
||||
list($before, $after) = $value->getSurroundingNonsemanticTokens();
|
||||
$after = implode('', mpull($after, 'getValue'));
|
||||
|
||||
$original = $value->getConcreteString();
|
||||
$replacement = $value->getConcreteString().',';
|
||||
|
||||
if (strpos($after, "\n") === false) {
|
||||
$original .= $after;
|
||||
$replacement .= rtrim($after)."\n".$array->getIndentation();
|
||||
}
|
||||
|
||||
$this->raiseLintAtOffset(
|
||||
$value->getOffset(),
|
||||
self::LINT_ARRAY_SEPARATOR,
|
||||
pht('Multi-lined arrays should have trailing commas.'),
|
||||
$value->getConcreteString().',');
|
||||
$original,
|
||||
$replacement);
|
||||
} else if (!$multiline && $after && $after->getValue() == ',') {
|
||||
$this->raiseLintAtToken(
|
||||
$after,
|
||||
|
|
|
@ -9,7 +9,7 @@ array(
|
|||
array(
|
||||
1,
|
||||
2,
|
||||
3
|
||||
3 // comment
|
||||
);
|
||||
array(
|
||||
'foo',
|
||||
|
@ -20,10 +20,20 @@ array(
|
|||
This is some heredoc text.
|
||||
EOTEXT
|
||||
);
|
||||
array(
|
||||
1,
|
||||
2,
|
||||
3);
|
||||
array(
|
||||
1,
|
||||
2,
|
||||
3 /* comment */ );
|
||||
~~~~~~~~~~
|
||||
advice:3:14
|
||||
advice:12:3
|
||||
advice:16:3
|
||||
advice:26:3
|
||||
advice:30:3
|
||||
~~~~~~~~~~
|
||||
<?php
|
||||
array(1, 2, 3);
|
||||
|
@ -36,7 +46,7 @@ array(
|
|||
array(
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
3, // comment
|
||||
);
|
||||
array(
|
||||
'foo',
|
||||
|
@ -47,3 +57,13 @@ array(
|
|||
This is some heredoc text.
|
||||
EOTEXT
|
||||
);
|
||||
array(
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
);
|
||||
array(
|
||||
1,
|
||||
2,
|
||||
3, /* comment */
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue