summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/verilog/iverilog.vim10
-rw-r--r--test/test_verilog_iverilog_options.vader18
2 files changed, 27 insertions, 1 deletions
diff --git a/ale_linters/verilog/iverilog.vim b/ale_linters/verilog/iverilog.vim
index 18769d56..c64a3be6 100644
--- a/ale_linters/verilog/iverilog.vim
+++ b/ale_linters/verilog/iverilog.vim
@@ -1,6 +1,14 @@
" Author: Masahiro H https://github.com/mshr-h
" Description: iverilog for verilog files
+call ale#Set('verilog_iverilog_options', '')
+
+function! ale_linters#verilog#iverilog#GetCommand(buffer) abort
+ return 'iverilog -t null -Wall '
+ \ . ale#Var(a:buffer, 'verilog_iverilog_options')
+ \ . ' %t'
+endfunction
+
function! ale_linters#verilog#iverilog#Handle(buffer, lines) abort
" Look for lines like the following.
"
@@ -30,6 +38,6 @@ call ale#linter#Define('verilog', {
\ 'name': 'iverilog',
\ 'output_stream': 'stderr',
\ 'executable': 'iverilog',
-\ 'command': 'iverilog -t null -Wall %t',
+\ 'command_callback': 'ale_linters#verilog#iverilog#GetCommand',
\ 'callback': 'ale_linters#verilog#iverilog#Handle',
\})
diff --git a/test/test_verilog_iverilog_options.vader b/test/test_verilog_iverilog_options.vader
new file mode 100644
index 00000000..1fbaea21
--- /dev/null
+++ b/test/test_verilog_iverilog_options.vader
@@ -0,0 +1,18 @@
+Before:
+ Save g:ale_verilog_iverilog_options
+ let g:ale_verilog_iverilog_options = ''
+
+After:
+ Restore
+ call ale#linter#Reset()
+
+Execute(Set Verilog iverilog linter additional options to `-y.`):
+ runtime! ale_linters/verilog/iverilog.vim
+
+ " Additional args for the linter
+ let g:ale_verilog_iverilog_options = '-y.'
+
+ call ale#Lint()
+
+ let g:cmd = ale_linters#verilog#iverilog#GetCommand(bufnr(''))
+ AssertEqual g:cmd, 'iverilog -t null -Wall -y. %t'