mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 05:20:04 +08:00
181 lines
5.7 KiB
VimL
Vendored
181 lines
5.7 KiB
VimL
Vendored
"-----------------------------------------------------------------------
|
|
" 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:
|