mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-09 13:02:28 +08:00
Added NASM linter
Added NASM linter (for nasm filetype).
This commit is contained in:
52
test/command_callback/test_nasm_nasm_command_callbacks.vader
Normal file
52
test/command_callback/test_nasm_nasm_command_callbacks.vader
Normal file
@@ -0,0 +1,52 @@
|
||||
Before:
|
||||
Save g:ale_nasm_nasm_executable
|
||||
Save g:ale_nasm_nasm_options
|
||||
|
||||
unlet! g:ale_nasm_nasm_executable
|
||||
unlet! b:ale_nasm_nasm_executable
|
||||
unlet! g:ale_nasm_nasm_options
|
||||
unlet! b:ale_nasm_nasm_options
|
||||
|
||||
runtime ale_linters/nasm/nasm.vim
|
||||
|
||||
let b:command_tail =
|
||||
\ ' -X gnu -I ' . ale#Escape(getcwd() . '/') . ' %s'
|
||||
let b:command_tail_opt =
|
||||
\ ' -X gnu -I ' . ale#Escape(getcwd() . '/') . ' -w+orphan-labels %s'
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:command_tail
|
||||
unlet! b:command_tail_opt
|
||||
unlet! b:ale_nasm_nasm_executable
|
||||
unlet! b:ale_nasm_nasm_options
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
AssertEqual 'nasm', ale_linters#nasm#nasm#GetExecutable(bufnr(''))
|
||||
|
||||
let b:ale_nasm_nasm_executable = '/opt/nasm/nasm'
|
||||
|
||||
AssertEqual '/opt/nasm/nasm', ale_linters#nasm#nasm#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The executable should be used in the command):
|
||||
AssertEqual
|
||||
\ ale#Escape('nasm') . b:command_tail,
|
||||
\ ale_linters#nasm#nasm#GetCommand(bufnr(''))
|
||||
|
||||
let b:ale_nasm_nasm_executable = '~/nasm'
|
||||
|
||||
AssertEqual
|
||||
\ ale#Escape('~/nasm') . b:command_tail,
|
||||
\ ale_linters#nasm#nasm#GetCommand(bufnr(''))
|
||||
|
||||
Execute(The options should be configurable):
|
||||
AssertEqual '', ale_linters#nasm#nasm#GetOptions(bufnr(''))
|
||||
let b:ale_nasm_nasm_options = '-w-macro-params'
|
||||
AssertEqual '-w-macro-params', ale_linters#nasm#nasm#GetOptions(bufnr(''))
|
||||
|
||||
Execute(The options should be used in command):
|
||||
let b:ale_nasm_nasm_options = '-w+orphan-labels'
|
||||
AssertEqual
|
||||
\ ale#Escape('nasm') . b:command_tail_opt,
|
||||
\ ale_linters#nasm#nasm#GetCommand(bufnr(''))
|
||||
30
test/handler/test_nasm_handler.vader
Normal file
30
test/handler/test_nasm_handler.vader
Normal file
@@ -0,0 +1,30 @@
|
||||
Before:
|
||||
runtime ale_linters/nasm/nasm.vim
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The nasm handler should parse GCC style output from nasm correctly):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'lnum': 2,
|
||||
\ 'text': "label alone on a line without a colon might be in error",
|
||||
\ 'type': 'W',
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 4,
|
||||
\ 'text': "invalid combination of opcode and operands",
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 7,
|
||||
\ 'text': "unable to open include file `bar.asm'",
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#nasm#nasm#Handle(357, [
|
||||
\ "tmp.asm:2: warning: label alone on a line without a colon might be in error",
|
||||
\ "tmp.asm:4: error: invalid combination of opcode and operands",
|
||||
\ "tmp.asm:7: fatal: unable to open include file `bar.asm'"
|
||||
\ ])
|
||||
Reference in New Issue
Block a user