1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-29 10:12:41 +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:
epriestley 2016-01-11 17:18:58 -08:00
parent aeb374b333
commit 05c12eb9d9

View file

@ -108,7 +108,8 @@
* not specified, defaults to the linted file. It is generally not necessary * 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 * to capture this unless the linter can raise messages in files other than
* the one it is linting. * 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. * - `char` (optional) The character offset of the message.
* - `offset` (optional) The byte offset of the message. If captured, this * - `offset` (optional) The byte offset of the message. If captured, this
* supersedes `line` and `char`. * 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. * Get the line and character of the message from the regex match.
* *
* @param dict Captured groups from regex. * @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 * @task parse
*/ */
@ -337,11 +338,14 @@ final class ArcanistScriptAndRegexLinter extends ArcanistLinter {
} }
$line = idx($match, 'line'); $line = idx($match, 'line');
if ($line) { if (strlen($line)) {
$line = (int)$line; $line = (int)$line;
} else { if (!$line) {
$line = 1; $line = 1;
} }
} else {
$line = null;
}
$char = idx($match, 'char'); $char = idx($match, 'char');
if ($char) { if ($char) {