+Before:
+ runtime ale_linters/solidity/solhint.vim
+
+After:
+ call ale#linter#Reset()
+
+Execute(The solhint handler should parse linter error messages correctly):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 1,
+ \ 'col': 17,
+ \ 'text': 'Compiler version must be fixed',
+ \ 'code': 'compiler-fixed',
+ \ 'type': 'W',
+ \ },
+ \ {
+ \ 'lnum': 4,
+ \ 'col': 8,
+ \ 'text': 'Use double quotes for string literals',
+ \ 'code': 'quotes',
+ \ 'type': 'E',
+ \ },
+ \ {
+ \ 'lnum': 5,
+ \ 'col': 8,
+ \ 'text': 'Use double quotes for string literals',
+ \ 'code': 'quotes',
+ \ 'type': 'E',
+ \ },
+ \ {
+ \ 'lnum': 13,
+ \ 'col': 3,
+ \ 'text': 'Expected indentation of 4 spaces but found 2',
+ \ 'code': 'indent',
+ \ 'type': 'E',
+ \ },
+ \ {
+ \ 'lnum': 14,
+ \ 'col': 3,
+ \ 'text': 'Expected indentation of 4 spaces but found 2',
+ \ 'code': 'indent',
+ \ 'type': 'E',
+ \ },
+ \ {
+ \ 'lnum': 47,
+ \ 'col': 3,
+ \ 'text': 'Function order is incorrect, public function can not go after internal function.',
+ \ 'code': 'func-order',
+ \ 'type': 'E',
+ \ },
+ \ ],
+ \ ale_linters#solidity#solhint#Handle(bufnr(''), [
+ \ 'contracts/Bounty.sol:1:17: Compiler version must be fixed [Warning/compiler-fixed]',
+ \ 'contracts/Bounty.sol:4:8: Use double quotes for string literals [Error/quotes]',
+ \ 'contracts/Bounty.sol:5:8: Use double quotes for string literals [Error/quotes]',
+ \ 'contracts/Bounty.sol:13:3: Expected indentation of 4 spaces but found 2 [Error/indent]',
+ \ 'contracts/Bounty.sol:14:3: Expected indentation of 4 spaces but found 2 [Error/indent]',
+ \ 'contracts/Bounty.sol:47:3: Function order is incorrect, public function can not go after internal function. [Error/func-order]',
+ \ ])
+
+Execute(The solhint handler should parse syntax error messages correctly):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 30,
+ \ 'col': 4,
+ \ 'text': "missing ';' at 'uint248'",
+ \ 'code': 'Parse error',
+ \ 'type': 'E',
+ \ },
+ \ {
+ \ 'lnum': 203,
+ \ 'col': 4,
+ \ 'text': "no viable alternative at input '_loserStakeMultiplier}'",
+ \ 'code': 'Parse error',
+ \ 'type': 'E',
+ \ },
+ \ ],
+ \ ale_linters#solidity#solhint#Handle(bufnr(''), [
+ \ "contracts/Bounty.sol:30:4: Parse error: missing ';' at 'uint248' [Error]",
+ \ "contracts/Bounty.sol:203:4: Parse error: no viable alternative at input '_loserStakeMultiplier}' [Error]",
+ \ ])