Updated solhint linter to be able to use a local installation (#3682)

* fix: added support for local solhint executable

* feat: added support for matching parse errors

* test: added test for solhint command callback and handler

* chore: removed command callback test

* refactor: made solhint handler structure closer to eslint
This commit is contained in:
Henrique Barcelos
2021-04-14 21:01:18 -03:00
committed by GitHub
parent 1cd0c0c33b
commit 1c90d8c018
8 changed files with 159 additions and 26 deletions

View File

@@ -0,0 +1,28 @@
Before:
call ale#assert#SetUpLinterTest('solidity', 'solhint')
runtime autoload/ale/handlers/solhint.vim
let b:args = ' --formatter compact %s'
After:
unlet! b:args
unlet! b:executable
call ale#assert#TearDownLinterTest()
Execute(The default command should be correct):
AssertLinterCwd ''
AssertLinter 'solhint', ale#Escape('solhint') . b:args
Execute(The options should be configurable):
let g:ale_solidity_solhint_options = '--foobar'
AssertLinter 'solhint', ale#Escape('solhint') . ' --foobar' . b:args
Execute(solhint should be run from a containing project with solhint executable):
call ale#test#SetFilename('../test-files/solhint/Contract.sol')
let b:executable = ale#path#Simplify(g:dir . '/../test-files/solhint/node_modules/.bin/solhint')
AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/solhint')
AssertLinter b:executable, ale#Escape(b:executable) . b:args