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:
lucas-str
2023-05-06 02:02:07 +02:00
committed by GitHub
parent 61248e1453
commit 9fe9f11521
11 changed files with 223 additions and 0 deletions

View 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',
\ }

View 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"',
\ ' }',
\ ' ]',
\ ' }',
\ ' }',
\ '}',
\ ])

View 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'