2014-07-10 21:05:51 -07:00
|
|
|
" Vim filetype plugin file
|
|
|
|
" Language: Verilog HDL
|
2017-11-06 19:16:52 -07:00
|
|
|
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
|
|
|
|
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
|
2024-01-15 03:12:32 -07:00
|
|
|
" 2024 Jan 14 by Vim Project (browsefilter)
|
2024-05-20 10:16:02 -07:00
|
|
|
" 2024 May 20 by Riley Bruins <ribru17@gmail.com> (commentstring)
|
2017-11-06 19:16:52 -07:00
|
|
|
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
|
|
|
|
"
|
|
|
|
" Credits:
|
|
|
|
" Suggestions for improvement, bug reports by
|
|
|
|
" Shao <shaominghai2005@163.com>
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
" Only do this when not done yet for this buffer
|
|
|
|
if exists("b:did_ftplugin")
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
|
|
|
" Don't load another plugin for this buffer
|
|
|
|
let b:did_ftplugin = 1
|
|
|
|
|
|
|
|
" Set 'cpoptions' to allow line continuations
|
|
|
|
let s:cpo_save = &cpo
|
|
|
|
set cpo&vim
|
|
|
|
|
|
|
|
" Undo the plugin effect
|
2024-05-20 10:16:02 -07:00
|
|
|
let b:undo_ftplugin = "setlocal fo< com< tw< cms<"
|
2014-07-10 21:05:51 -07:00
|
|
|
\ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"
|
|
|
|
|
|
|
|
" Set 'formatoptions' to break comment lines but not other lines,
|
|
|
|
" and insert the comment leader when hitting <CR> or using "o".
|
|
|
|
setlocal fo-=t fo+=croqlm1
|
|
|
|
|
|
|
|
" Set 'comments' to format dashed lists in comments.
|
|
|
|
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
2024-05-20 10:16:02 -07:00
|
|
|
setlocal commentstring=//\ %s
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
" Format comments to be up to 78 characters long
|
|
|
|
if &textwidth == 0
|
|
|
|
setlocal tw=78
|
|
|
|
endif
|
|
|
|
|
2024-01-15 03:12:32 -07:00
|
|
|
" Win32 and GTK can filter files in the browse dialog
|
|
|
|
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
|
|
|
let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n"
|
|
|
|
if has("win32")
|
|
|
|
let b:browsefilter .= "All Files (*.*)\t*\n"
|
|
|
|
else
|
|
|
|
let b:browsefilter .= "All Files (*)\t*\n"
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
" Let the matchit plugin know what items can be matched.
|
|
|
|
if exists("loaded_matchit")
|
|
|
|
let b:match_ignorecase=0
|
|
|
|
let b:match_words=
|
|
|
|
\ '\<begin\>:\<end\>,' .
|
|
|
|
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
|
|
|
|
\ '\<module\>:\<endmodule\>,' .
|
2017-11-06 19:16:52 -07:00
|
|
|
\ '\<if\>:`\@<!\<else\>,' .
|
2014-07-10 21:05:51 -07:00
|
|
|
\ '\<function\>:\<endfunction\>,' .
|
2017-11-06 19:16:52 -07:00
|
|
|
\ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
|
2014-07-10 21:05:51 -07:00
|
|
|
\ '\<task\>:\<endtask\>,' .
|
2017-11-06 19:16:52 -07:00
|
|
|
\ '\<specify\>:\<endspecify\>,' .
|
|
|
|
\ '\<config\>:\<endconfig\>,' .
|
|
|
|
\ '\<generate\>:\<endgenerate\>,' .
|
|
|
|
\ '\<fork\>:\<join\>,' .
|
|
|
|
\ '\<primitive\>:\<endprimitive\>,' .
|
|
|
|
\ '\<table\>:\<endtable\>'
|
2014-07-10 21:05:51 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
" Reset 'cpoptions' back to the user's setting
|
|
|
|
let &cpo = s:cpo_save
|
|
|
|
unlet s:cpo_save
|