summaryrefslogtreecommitdiffstats
path: root/runtime/ftplugin/freebasic.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ftplugin/freebasic.vim')
-rw-r--r--runtime/ftplugin/freebasic.vim32
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: