mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
If the Script-and-Regex linter captures no "line" text, treat the message as affecting the entire file
Summary: Fixes T10124. Test Plan: Added this "linter" to `.arclint`: ``` "thing": { "type": "script-and-regex", "script-and-regex.script": "echo every file is very bad #", "script-and-regex.regex": "/^(?P<message>.*)/" } ``` ...to produce this diff. Also made a variant of it which matches lines to make sure that still works. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10124 Differential Revision: https://secure.phabricator.com/D15000
This commit is contained in:
parent
aeb374b333
commit
05c12eb9d9
1 changed files with 8 additions and 4 deletions
|
@ -108,7 +108,8 @@
|
|||
* not specified, defaults to the linted file. It is generally not necessary
|
||||
* to capture this unless the linter can raise messages in files other than
|
||||
* the one it is linting.
|
||||
* - `line` (optional) The line number of the message.
|
||||
* - `line` (optional) The line number of the message. If no text is
|
||||
* captured, the message is assumed to affect the entire file.
|
||||
* - `char` (optional) The character offset of the message.
|
||||
* - `offset` (optional) The byte offset of the message. If captured, this
|
||||
* supersedes `line` and `char`.
|
||||
|
@ -324,7 +325,7 @@ final class ArcanistScriptAndRegexLinter extends ArcanistLinter {
|
|||
* Get the line and character of the message from the regex match.
|
||||
*
|
||||
* @param dict Captured groups from regex.
|
||||
* @return pair<int,int|null> Line and character of the message.
|
||||
* @return pair<int|null,int|null> Line and character of the message.
|
||||
*
|
||||
* @task parse
|
||||
*/
|
||||
|
@ -337,11 +338,14 @@ final class ArcanistScriptAndRegexLinter extends ArcanistLinter {
|
|||
}
|
||||
|
||||
$line = idx($match, 'line');
|
||||
if ($line) {
|
||||
if (strlen($line)) {
|
||||
$line = (int)$line;
|
||||
} else {
|
||||
if (!$line) {
|
||||
$line = 1;
|
||||
}
|
||||
} else {
|
||||
$line = null;
|
||||
}
|
||||
|
||||
$char = idx($match, 'char');
|
||||
if ($char) {
|
||||
|
|
Loading…
Reference in a new issue