At the moment, Arcanist linters work by defining a lint map like so:
public function getLintNameMap() { return array( self::VSA_WARNING => pht('Build Warning'), self::VSA_ERROR => pht('Build Error'), ); }
The problem is that this requires the PHP code to know about all possible lint names ahead of time. In my case, the linter codes are coming from an external utility, and there's no way to know all possible linter codes ahead of time (people might add or remove them in that external tool at any time).
I'd like to override getLintMessageName on ArcanistLinter to bypass this map, but I can't because it's marked as final.