blob: c20be25865ed9891b91ae99a15a1e90e90fcf811 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim filetype plugin file
2" Language: Verilog HDL
Bram Moolenaarc572da52017-08-27 16:52:01 +02003" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
4" Last Change: 2017 Aug 25 by Chih-Tsun Huang
Doug Kearns93197fd2024-01-14 20:59:02 +01005" 2024 Jan 14 by Vim Project (browsefilter)
Riley Bruins69dff002024-05-20 18:14:25 +02006" 2024 May 20 by Riley Bruins <ribru17@gmail.com> (commentstring)
Bram Moolenaarc572da52017-08-27 16:52:01 +02007" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
8"
9" Credits:
10" Suggestions for improvement, bug reports by
11" Shao <shaominghai2005@163.com>
Bram Moolenaar071d4272004-06-13 20:20:40 +000012
13" Only do this when not done yet for this buffer
14if exists("b:did_ftplugin")
15 finish
16endif
17
18" Don't load another plugin for this buffer
19let b:did_ftplugin = 1
20
Bram Moolenaar5c736222010-01-06 20:54:52 +010021" Set 'cpoptions' to allow line continuations
22let s:cpo_save = &cpo
23set cpo&vim
24
Bram Moolenaar92d640f2005-09-05 22:11:52 +000025" Undo the plugin effect
Riley Bruins69dff002024-05-20 18:14:25 +020026let b:undo_ftplugin = "setlocal fo< com< tw< cms<"
Bram Moolenaard68071d2006-05-02 22:08:30 +000027 \ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"
Bram Moolenaar92d640f2005-09-05 22:11:52 +000028
Bram Moolenaar071d4272004-06-13 20:20:40 +000029" Set 'formatoptions' to break comment lines but not other lines,
30" and insert the comment leader when hitting <CR> or using "o".
31setlocal fo-=t fo+=croqlm1
32
33" Set 'comments' to format dashed lists in comments.
34setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
Riley Bruins69dff002024-05-20 18:14:25 +020035setlocal commentstring=//\ %s
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
37" Format comments to be up to 78 characters long
Bram Moolenaar92d640f2005-09-05 22:11:52 +000038if &textwidth == 0
39 setlocal tw=78
40endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000041
Doug Kearns93197fd2024-01-14 20:59:02 +010042" Win32 and GTK can filter files in the browse dialog
43if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
44 let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n"
45 if has("win32")
46 let b:browsefilter .= "All Files (*.*)\t*\n"
47 else
48 let b:browsefilter .= "All Files (*)\t*\n"
49 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000050endif
51
52" Let the matchit plugin know what items can be matched.
53if exists("loaded_matchit")
54 let b:match_ignorecase=0
55 let b:match_words=
56 \ '\<begin\>:\<end\>,' .
57 \ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
58 \ '\<module\>:\<endmodule\>,' .
Bram Moolenaarc572da52017-08-27 16:52:01 +020059 \ '\<if\>:`\@<!\<else\>,' .
Bram Moolenaar071d4272004-06-13 20:20:40 +000060 \ '\<function\>:\<endfunction\>,' .
Bram Moolenaarc572da52017-08-27 16:52:01 +020061 \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
Bram Moolenaar071d4272004-06-13 20:20:40 +000062 \ '\<task\>:\<endtask\>,' .
Bram Moolenaarc572da52017-08-27 16:52:01 +020063 \ '\<specify\>:\<endspecify\>,' .
64 \ '\<config\>:\<endconfig\>,' .
65 \ '\<generate\>:\<endgenerate\>,' .
66 \ '\<fork\>:\<join\>,' .
67 \ '\<primitive\>:\<endprimitive\>,' .
68 \ '\<table\>:\<endtable\>'
Bram Moolenaar071d4272004-06-13 20:20:40 +000069endif
Bram Moolenaar5c736222010-01-06 20:54:52 +010070
71" Reset 'cpoptions' back to the user's setting
72let &cpo = s:cpo_save
73unlet s:cpo_save