mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-06 12:44:23 +08:00
Add support for npm-groovy-lint (#4495)
* Add support for npm-groovy-lint * Add doc and tests for npm-groovy-lint * Use ale#util#FuzzyJSONDecode instead of json_decode
This commit is contained in:
23
test/fixers/test_npmgroovylint_fixer_callback.vader
Normal file
23
test/fixers/test_npmgroovylint_fixer_callback.vader
Normal file
@@ -0,0 +1,23 @@
|
||||
Before:
|
||||
Save b:ale_groovy_npmgroovylint_fix_options
|
||||
|
||||
call ale#assert#SetUpFixerTest('groovy', 'npm-groovy-lint')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#assert#TearDownFixerTest()
|
||||
|
||||
Execute(The callback should return the correct default values):
|
||||
AssertFixer {
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': ale#Escape('npm-groovy-lint') . ' --fix %t',
|
||||
\ }
|
||||
|
||||
Execute(The callback should include custom options):
|
||||
let b:ale_groovy_npmgroovylint_fix_options = '--format'
|
||||
|
||||
AssertFixer {
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': ale#Escape('npm-groovy-lint') . ' --format %t',
|
||||
\ }
|
||||
63
test/handler/test_npmgroovylint_handler.vader
Normal file
63
test/handler/test_npmgroovylint_handler.vader
Normal file
@@ -0,0 +1,63 @@
|
||||
Before:
|
||||
runtime ale_linters/groovy/npmgroovylint.vim
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The npm-groovy-lint handler should parse JSON):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'col': 0,
|
||||
\ 'end_col': 1,
|
||||
\ 'end_lnum': 2,
|
||||
\ 'filename': 'test2.groovy',
|
||||
\ 'lnum': 2,
|
||||
\ 'text': 'Some error message',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'filename': 'test.groovy',
|
||||
\ 'lnum': 1,
|
||||
\ 'text': 'Some warning message',
|
||||
\ 'type': 'W',
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#groovy#npmgroovylint#Handle(bufnr(''), [
|
||||
\ '{',
|
||||
\ ' "files" : {',
|
||||
\ ' "test.groovy" : {',
|
||||
\ ' "errors" : [',
|
||||
\ ' {',
|
||||
\ ' "id" : 0,',
|
||||
\ ' "line" : 1,',
|
||||
\ ' "msg" : "Some warning message",',
|
||||
\ ' "rule" : "SomeRule",',
|
||||
\ ' "severity" : "warning"',
|
||||
\ ' }',
|
||||
\ ' ]',
|
||||
\ ' },',
|
||||
\ ' "test2.groovy": {',
|
||||
\ ' "errors": [',
|
||||
\ ' {',
|
||||
\ ' "id" : 1,',
|
||||
\ ' "line" : 2,',
|
||||
\ ' "msg" : "Some error message",',
|
||||
\ ' "range" : {',
|
||||
\ ' "end" : {',
|
||||
\ ' "character" : 1,',
|
||||
\ ' "line" : 2',
|
||||
\ ' },',
|
||||
\ ' "start" : {',
|
||||
\ ' "character" : 0,',
|
||||
\ ' "line" : 2',
|
||||
\ ' }',
|
||||
\ ' },',
|
||||
\ ' "rule" : "SomeOtherRule",',
|
||||
\ ' "severity" : "error"',
|
||||
\ ' }',
|
||||
\ ' ]',
|
||||
\ ' }',
|
||||
\ ' }',
|
||||
\ '}',
|
||||
\ ])
|
||||
20
test/linter/test_npmgroovylit.vader
Normal file
20
test/linter/test_npmgroovylit.vader
Normal file
@@ -0,0 +1,20 @@
|
||||
Before:
|
||||
Save b:ale_groovy_npmgroovylint_options
|
||||
|
||||
call ale#assert#SetUpLinterTest('groovy', 'npmgroovylint')
|
||||
call ale#test#SetFilename('test.groovy')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default npm-groovy-lint command should be correct):
|
||||
AssertLinter 'npm-groovy-lint',
|
||||
\ ale#Escape('npm-groovy-lint') . ' --failon none --output json --loglevel warning %t'
|
||||
|
||||
Execute(Default options should be configurable):
|
||||
let b:ale_groovy_npmgroovylint_options = '--loglevel info'
|
||||
|
||||
AssertLinter 'npm-groovy-lint',
|
||||
\ ale#Escape('npm-groovy-lint') . ' --failon none --output json --loglevel info %t'
|
||||
Reference in New Issue
Block a user