mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 22:40:05 +08:00
181 lines
5.7 KiB
VimL
181 lines
5.7 KiB
VimL
|
"-----------------------------------------------------------------------
|
||
|
" 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:
|