xref: /vim-8.2.3635/runtime/ftplugin/vb.vim (revision 582fd85b)
1*071d4279SBram Moolenaar" Vim filetype plugin file
2*071d4279SBram Moolenaar" Language:	VisualBasic (ft=vb)
3*071d4279SBram Moolenaar" Maintainer:	Johannes Zellner <[email protected]>
4*071d4279SBram Moolenaar" Last Change:	Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
5*071d4279SBram Moolenaar
6*071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif
7*071d4279SBram Moolenaarlet b:did_ftplugin = 1
8*071d4279SBram Moolenaar
9*071d4279SBram Moolenaarsetlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
10*071d4279SBram Moolenaar
11*071d4279SBram Moolenaar" we need this wrapper, as call doesn't allow a count
12*071d4279SBram Moolenaarfun! <SID>VbSearch(pattern, flags)
13*071d4279SBram Moolenaar    let cnt = v:count1
14*071d4279SBram Moolenaar    while cnt > 0
15*071d4279SBram Moolenaar	call search(a:pattern, a:flags)
16*071d4279SBram Moolenaar	let cnt = cnt - 1
17*071d4279SBram Moolenaar    endwhile
18*071d4279SBram Moolenaarendfun
19*071d4279SBram Moolenaar
20*071d4279SBram Moolenaarlet s:cpo_save = &cpo
21*071d4279SBram Moolenaarset cpo&vim
22*071d4279SBram Moolenaar
23*071d4279SBram Moolenaar" NOTE the double escaping \\|
24*071d4279SBram Moolenaarnnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
25*071d4279SBram Moolenaarnnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
26*071d4279SBram Moolenaarnnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
27*071d4279SBram Moolenaarnnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
28*071d4279SBram Moolenaar
29*071d4279SBram Moolenaar" matchit support
30*071d4279SBram Moolenaarif exists("loaded_matchit")
31*071d4279SBram Moolenaar    let b:match_ignorecase=1
32*071d4279SBram Moolenaar    let b:match_words=
33*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
34*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
35*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
36*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
37*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
38*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
39*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
40*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
41*071d4279SBram Moolenaar    \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
42*071d4279SBram Moolenaarendif
43*071d4279SBram Moolenaar
44*071d4279SBram Moolenaarlet &cpo = s:cpo_save
45*071d4279SBram Moolenaarunlet s:cpo_save
46