"----------------------------------------------------------------------- " Global configurations "----------------------------------------------------------------------- " Configure custom syntax let g:verilog_syntax_custom = { \ 'spyglass' : [{ \ 'match_start' : '\/\/\s*spyglass\s\+disable_block\s\+\z(\(\w\|-\)\+\(\s\+\(\w\|-\)\+\)*\)', \ 'match_end' : '\/\/\s*spyglass\s\+enable_block\s\+\z1', \ 'syn_argument': 'transparent keepend', \ }], \ } "----------------------------------------------------------------------- " Syntax folding test "----------------------------------------------------------------------- function! RunTestFold() let test_result=0 " Enable all syntax folding let g:verilog_syntax_fold_lst="all" set foldmethod=syntax set noautochdir " Open syntax fold test file in read-only mode silent view test/folding.v " Verify folding let test_result=TestFold(0) || test_result echo '' " Test with "block_nested" let g:verilog_syntax_fold_lst="all,block_nested" silent view! let test_result=TestFold(1) || test_result echo '' " Test with "block_named" let g:verilog_syntax_fold_lst="all,block_named" silent view! let test_result=TestFold(2) || test_result echo '' " Check test results and exit accordingly if test_result cquit else qall! endif endfunction "----------------------------------------------------------------------- " Syntax indent test "----------------------------------------------------------------------- function! RunTestIndent() let g:verilog_disable_indent_lst = "module,eos" let test_result=0 " Open syntax indent test file silent edit test/indent.sv " Verify indent let test_result=TestIndent() || test_result echo '' silent edit! " Test again with 'ignorecase' enabled setlocal ignorecase let test_result=TestIndent() || test_result echo '' silent edit! " Make file read-only to guarantee that vim quits with exit status 0 silent view! " Check test results and exit accordingly if test_result cquit else qall! endif endfunction "----------------------------------------------------------------------- " Error format test "----------------------------------------------------------------------- function! RunTestEfm() let test_result=0 set nomore "Disable pager to avoid issues with Travis let g:verilog_efm_quickfix_clean = 1 for check_uvm in [0, 1] if check_uvm let g:verilog_efm_uvm_lst = 'all' else unlet! g:verilog_efm_uvm_lst endif let test_result = TestEfm('iverilog', 1, check_uvm) || test_result let test_result = TestEfm('verilator', 1, check_uvm) || test_result let test_result = TestEfm('verilator', 3, check_uvm) || test_result let test_result = TestEfm('ncverilog', 1, check_uvm) || test_result let test_result = TestEfm('ncverilog', 3, check_uvm) || test_result let test_result = TestEfm('spyglass', 1, check_uvm) || test_result endfor " Check test results and exit accordingly if test_result cquit else qall! endif endfunction "----------------------------------------------------------------------- " Syntax test "----------------------------------------------------------------------- function! RunTestSyntax() let test_result=0 set nomore "Disable pager to avoid issues with Travis set foldmethod=syntax set foldlevel=99 " Run syntax test for various folding configurations let g:verilog_syntax_fold_lst='' let test_result = TestSyntax('syntax.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all' let test_result = TestSyntax('syntax.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,block_nested' let test_result = TestSyntax('syntax.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,block_named' let test_result = TestSyntax('syntax.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,instance' let test_result = TestSyntax('syntax.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='' let test_result = TestSyntax('folding.v', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all' let test_result = TestSyntax('folding.v', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,block_nested' let test_result = TestSyntax('folding.v', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,block_named' let test_result = TestSyntax('folding.v', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,instance' let test_result = TestSyntax('folding.v', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='' let test_result = TestSyntax('indent.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all' let test_result = TestSyntax('indent.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,block_nested' let test_result = TestSyntax('indent.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,block_named' let test_result = TestSyntax('indent.sv', g:verilog_syntax_fold_lst) || test_result let g:verilog_syntax_fold_lst='all,instance' let test_result = TestSyntax('indent.sv', g:verilog_syntax_fold_lst) || test_result " Check test results and exit accordingly if test_result cquit else qall! endif endfunction " vi: set expandtab softtabstop=4 shiftwidth=4: