Add support for AVRA linting (#3950)

* Add support for AVRA linting

* Add tests for AVRA linting and improve code

* Fix test

* Fix warning detection

* Fix test

* Fix test

* Add AVRA as a supported language in docs
This commit is contained in:
Utkarsh Verma
2021-11-15 16:11:03 +05:30
committed by GitHub
parent 76c2293e68
commit 1e0e76bf96
7 changed files with 121 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
Before:
runtime ale_linters/avra/avra.vim
After:
call ale#linter#Reset()
Execute(The avra handler should parse errors correctly):
AssertEqual
\ [
\ {
\ 'lnum': 3,
\ 'text': "Unknown device: atmega3228p",
\ 'type': 'E'
\ },
\ {
\ 'lnum': 12,
\ 'text': "Unknown directive: .EQ",
\ 'type': 'E'
\ }
\ ],
\ ale_linters#avra#avra#Handle(bufnr(''), [
\ "main.asm(3) : Error : Unknown device: atmega3228p",
\ "main.asm(12) : Error : Unknown directive: .EQ"
\ ])

View File

@@ -0,0 +1,29 @@
Before:
call ale#assert#SetUpLinterTest('avra', 'avra')
let b:command_tail = ' %t -o ' . g:ale#util#nul_file
let b:command_tail_opt = ' %t --max_errors 20 -o ' . g:ale#util#nul_file
After:
unlet! b:command_tail
unlet! b:command_tail_opt
call ale#assert#TearDownLinterTest()
Execute(The executable should be configurable):
AssertLinter 'avra', ale#Escape('avra') . b:command_tail,
let b:ale_avra_avra_executable = '~/avra'
AssertLinter '~/avra', ale#Escape('~/avra') . b:command_tail
Execute(The options should be configurable):
let b:ale_avra_avra_options = '--max_errors 20'
AssertLinter 'avra', ale#Escape('avra')
\ . ' %t --max_errors 20 -o ' . g:ale#util#nul_file
Execute(The options should be used in command):
let b:ale_avra_avra_options = '--max_errors 20'
AssertLinter 'avra', ale#Escape('avra') . b:command_tail_opt