diff options
Diffstat (limited to 'runtime/ftplugin/freebasic.vim')
-rw-r--r-- | runtime/ftplugin/freebasic.vim | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/runtime/ftplugin/freebasic.vim b/runtime/ftplugin/freebasic.vim index 58c2b4c9e2..1680e84c9c 100644 --- a/runtime/ftplugin/freebasic.vim +++ b/runtime/ftplugin/freebasic.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: FreeBASIC " Maintainer: Doug Kearns <dougkearns@gmail.com> -" Last Change: 2021 Mar 16 +" Last Change: 2022 Jun 24 " Setup {{{1 if exists("b:did_ftplugin") @@ -21,7 +21,8 @@ let &l:comments = "sO:*\ -,mO:*\ \ ,exO:*/,s1:/',mb:',ex:'/,:''," .. &l:comments " Match words {{{1 if exists("loaded_matchit") - let s:not_end = '\%(end\s\+\)\@<!' + let s:line_start = '\%(^\s*\)\@<=' + let s:not_end = '\%(end\s\+\)\@<!' let b:match_words ..= ',' @@ -49,17 +50,32 @@ if exists("loaded_matchit") endif let b:match_words ..= s:not_end .. '\<enum\>:\<end\s\+enum\>,' .. - \ '^#\s*\%(if\|ifdef\|ifndef\)\>:^#\s*\%(else\|elseif\)\>:^#\s*endif\>,' .. - \ '^#\s*macro\>:^#\s*endmacro\>' + \ s:line_start .. '#\s*\%(if\|ifdef\|ifndef\)\>:' .. + \ s:line_start .. '#\s*\%(else\|elseif\)\>:' .. + \ s:line_start .. '#\s*endif\>,' .. + \ s:line_start .. '#\s*macro\>:' .. s:line_start .. '#\s*endmacro\>,' .. + \ "/':'/" - " skip "function = <retval>" - let b:match_skip ..= '|| strpart(getline("."), col(".") - 1) =~? "^\\<function\\s\\+="' + " skip "function = <retval>" and "continue { do | for | while }" + if s:dialect == "qb" + let s:continue = "__continue" + else + let s:continue = "continue" + endif + let b:match_skip ..= ' || strpart(getline("."), col(".") - 1) =~? "^\\<function\\s\\+="' .. + \ ' || strpart(getline("."), 0, col(".") ) =~? "\\<' .. s:continue .. '\\s\\+"' + + unlet s:not_end s:line_start +endif - unlet s:not_end +if (has("gui_win32") || has("gui_gtk")) && exists("b:basic_set_browsefilter") + let b:browsefilter = "FreeBASIC Source Files (*.bas)\t*.bas\n" .. + \ "FreeBASIC Header Files (*.bi)\t*.bi\n" .. + \ "All Files (*.*)\t*.*\n" endif " Cleanup {{{1 let &cpo = s:cpo_save -unlet s:cpo_save +unlet s:cpo_save s:dialect " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: |