Update runtime files
diff --git a/runtime/ftplugin/freebasic.vim b/runtime/ftplugin/freebasic.vim
index 58c2b4c..1680e84 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 @@
 
 " 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 @@
   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
+  unlet s:not_end s:line_start
+endif
+
+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: