diff options
author | Tarik Graba <tarikgraba@users.noreply.github.com> | 2017-06-29 10:15:52 +0200 |
---|---|---|
committer | w0rp <w0rp@users.noreply.github.com> | 2017-06-29 09:15:52 +0100 |
commit | 01ecf2a75f60fff8884ad7858da44b3c5f71bc11 (patch) | |
tree | e22a78c39ecf0a71612ee71e4c10f9ed99e249d9 | |
parent | 7eec1f2efc01b0674ccc96baaa4f529d803ddf55 (diff) | |
download | ale-01ecf2a75f60fff8884ad7858da44b3c5f71bc11.zip |
Adds an option to pass additional arguments to the verilog/verilator … (#698)
* Adds an option to pass additional arguments to the verilog/verilator linter
The new otion is g:ale_verilog_verilator_options
+ doc
* Spell check verilog linter doc file
* Add entries to the verilog linters in the doc table of content
* Vader test for verilog/verilator linter args option verilog_verilator_options
-rw-r--r-- | ale_linters/verilog/verilator.vim | 9 | ||||
-rw-r--r-- | doc/ale-verilog.txt | 43 | ||||
-rw-r--r-- | doc/ale.txt | 3 | ||||
-rw-r--r-- | test/test_verilog_verilator_options.vader | 25 |
4 files changed, 79 insertions, 1 deletions
diff --git a/ale_linters/verilog/verilator.vim b/ale_linters/verilog/verilator.vim index b44731c7..aa5e7047 100644 --- a/ale_linters/verilog/verilator.vim +++ b/ale_linters/verilog/verilator.vim @@ -1,6 +1,11 @@ " Author: Masahiro H https://github.com/mshr-h " Description: verilator for verilog files +" Set this option to change Verilator lint options +if !exists('g:ale_verilog_verilator_options') + let g:ale_verilog_verilator_options = '' +endif + function! ale_linters#verilog#verilator#GetCommand(buffer) abort let l:filename = tempname() . '_verilator_linted.v' @@ -8,7 +13,9 @@ function! ale_linters#verilog#verilator#GetCommand(buffer) abort call ale#engine#ManageFile(a:buffer, l:filename) call writefile(getbufline(a:buffer, 1, '$'), l:filename) - return 'verilator --lint-only -Wall -Wno-DECLFILENAME ' . ale#Escape(l:filename) + return 'verilator --lint-only -Wall -Wno-DECLFILENAME ' + \ . ale#Var(a:buffer, 'verilog_verilator_options') .' ' + \ . ale#Escape(l:filename) endfunction function! ale_linters#verilog#verilator#Handle(buffer, lines) abort diff --git a/doc/ale-verilog.txt b/doc/ale-verilog.txt new file mode 100644 index 00000000..6566ad42 --- /dev/null +++ b/doc/ale-verilog.txt @@ -0,0 +1,43 @@ +=============================================================================== +ALE Verilog/SystemVerilog Integration *ale-verilog-options* + + +------------------------------------------------------------------------------- +ALE can use two different linters for Verilog HDL: + + iverilog: + Using `iverilog -t null -Wall` + + verilator + Using `verilator --lint-only -Wall` + +By default, both 'verilog' and 'systemverilog' filetypes are checked. + +You can limit 'systemverilog' files to be checked using only 'verilator' by +defining 'g:ale_linters' variable: +> + au FileType systemverilog + \ let g:ale_linters = {'systemverilog' : ['verilator'],} +< + +------------------------------------------------------------------------------- +iverilog *ale-verilog-iverilog* + + No additional options + + +------------------------------------------------------------------------------- +verilator *ale-verilog-verilator* + +g:ale_verilog_verilator_options *g:ale_verilog_verilator_options* + *b:ale_verilog_verilator_options* + Type: |String| + Default: `''` + + This variable can be changed to modify 'verilator' command arguments + + For example `'-sv --default-language "1800-2012"'` if you want to enable + SystemVerilog parsing and select the 2012 version of the language. + +------------------------------------------------------------------------------- + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale.txt b/doc/ale.txt index 0c2ecbb7..f9532fc4 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -101,6 +101,9 @@ CONTENTS *ale-contents* eslint..............................|ale-typescript-eslint| tslint..............................|ale-typescript-tslint| tsserver............................|ale-typescript-tsserver| + verilog/systemverilog.................|ale-verilog-options| + iverilog............................|ale-verilog-iverilog| + verilator...........................|ale-verilog-verilator| vim...................................|ale-vim-options| vint................................|ale-vim-vint| xml...................................|ale-xml-options| diff --git a/test/test_verilog_verilator_options.vader b/test/test_verilog_verilator_options.vader new file mode 100644 index 00000000..561786ee --- /dev/null +++ b/test/test_verilog_verilator_options.vader @@ -0,0 +1,25 @@ +Before: + Save g:ale_verilog_verilator_options + let g:ale_verilog_verilator_options = '' + +After: + Restore + call ale#linter#Reset() + +Execute(Set Verilog Verilator linter additional options to `-sv --default-language "1800-2012"`): + runtime! ale_linters/verilog/verilator.vim + + " Additional args for the linter + let g:ale_verilog_verilator_options = '-sv --default-language "1800-2012"' + + call ale#Lint() + + let g:run_cmd = ale_linters#verilog#verilator#GetCommand(bufnr('')) + let g:matched = match(g:run_cmd, '\s' . g:ale_verilog_verilator_options . '\s') + + " match returns -1 if not found + AssertNotEqual + \ g:matched , + \ -1 , + \ 'Additionnal arguments not found in the run command' + |