blob: d70db89273dedb74c1dff1f854b53502b1e10da4 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim filetype plugin file
2" Language: VisualBasic (ft=vb)
3" Maintainer: Johannes Zellner <johannes@zellner.org>
4" Last Change: Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
5
6if exists("b:did_ftplugin") | finish | endif
7let b:did_ftplugin = 1
8
Bram Moolenaar071d4272004-06-13 20:20:40 +00009setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
10
11" we need this wrapper, as call doesn't allow a count
12fun! <SID>VbSearch(pattern, flags)
13 let cnt = v:count1
14 while cnt > 0
15 call search(a:pattern, a:flags)
16 let cnt = cnt - 1
17 endwhile
18endfun
19
20let s:cpo_save = &cpo
21set cpo&vim
22
23" NOTE the double escaping \\|
24nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
25nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
26nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
27nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
28
29" matchit support
30if exists("loaded_matchit")
31 let b:match_ignorecase=1
32 let b:match_words=
33 \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
34 \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
35 \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
36 \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
37 \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
38 \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
39 \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
40 \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
41 \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
42endif
43
44let &cpo = s:cpo_save
45unlet s:cpo_save