diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index f5a45c4..16b73fa 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -111,6 +111,7 @@
 runtime/ftplugin/eiffel.vim		@dkearns
 runtime/ftplugin/erlang.vim		@hcs42
 runtime/ftplugin/eruby.vim		@tpope @dkearns
+runtime/ftplugin/fetchmail.vim		@dkearns
 runtime/ftplugin/fpcmake.vim		@dkearns
 runtime/ftplugin/freebasic.vim		@dkearns
 runtime/ftplugin/fstab.vim		@rid9
@@ -298,8 +299,10 @@
 runtime/syntax/eruby.vim		@tpope @dkearns
 runtime/syntax/exports.vim		@cecamp
 runtime/syntax/falcon.vim		@steveno
+runtime/syntax/fetchmail.vim		@dkearns
 runtime/syntax/forth.vim		@jkotlinski
 runtime/syntax/fpcmake.vim		@dkearns
+runtime/syntax/freebasic.vim		@dkearns
 runtime/syntax/fstab.vim		@rid9
 runtime/syntax/git.vim			@tpope
 runtime/syntax/gitcommit.vim		@tpope
diff --git a/Filelist b/Filelist
index 78cab25..4dede18 100644
--- a/Filelist
+++ b/Filelist
@@ -15,7 +15,6 @@
 		.gitignore \
 		.hgignore \
 		.lgtm.yml \
-		.travis.yml \
 		.appveyor.yml \
 		.codecov.yml \
 		ci/appveyor.bat \
@@ -1017,6 +1016,7 @@
 		runtime/spell/??/*.diff \
 		runtime/spell/??/main.aap \
 		runtime/spell/sr/README_sr.txt \
+		runtime/spell/sr/convert.vim \
 		runtime/spell/tet/*.diff \
 		runtime/spell/tet/main.aap \
 		runtime/spell/check/main.aap \
diff --git a/README.md b/README.md
index 214bedf..2a78adc 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 [![Vim Logo](https://github.com/vim/vim/raw/master/runtime/vimlogo.gif)](https://www.vim.org)
 
-[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [![Travis Build Status](https://travis-ci.com/vim/vim.svg?branch=master)](https://travis-ci.com/github/vim/vim) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim) [![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) [![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) [![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp) [![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) [![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) [![Fossies codespell report](https://fossies.org/linux/test/vim-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
+[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim) [![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) [![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) [![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp) [![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) [![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) [![Fossies codespell report](https://fossies.org/linux/test/vim-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
 
 <sub>For translations of this README see the end.</sub>
 
diff --git a/runtime/autoload/freebasic.vim b/runtime/autoload/freebasic.vim
index 428cf13..6c94cd3 100644
--- a/runtime/autoload/freebasic.vim
+++ b/runtime/autoload/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 June 24
 
 " Dialects can be one of fb, qb, fblite, or deprecated
 " Precedence is forcelang > #lang > lang
@@ -18,17 +18,16 @@
 
   " override with #lang directive or metacommand
 
-  let skip = "has('syntax_items') && synIDattr(synID(line('.'), col('.'), 1), 'name') =~ 'Comment$'"
   let pat = '\c^\s*\%(#\s*lang\s\+\|''\s*$lang\s*:\s*\)"\([^"]*\)"'
 
   let save_cursor = getcurpos()
   call cursor(1, 1)
-  let lnum = search(pat, 'n', '', '', skip)
+  let lnum = search(pat, 'cn')
   call setpos('.', save_cursor)
 
   if lnum
     let word = matchlist(getline(lnum), pat)[1]
-    if word =~? '\%(fb\|deprecated\|fblite\|qb\)'
+    if word =~? '\<\%(fb\|deprecated\|fblite\|qb\)\>'
       let dialect = word
     else
       echomsg "freebasic#GetDialect: Invalid lang, found '" .. word .. "' at line " .. lnum .. " " .. getline(lnum)
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 90ae3e7..d04e4ac 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -556,12 +556,30 @@
 detection of source format see |ft-fortran-syntax|.
 
 
+FREEBASIC						*ft-freebasic-plugin*
+
+This plugin aims to treat the four FreeBASIC dialects, "fb", "qb", "fblite"
+and "deprecated", as distinct languages.
+
+The dialect will be set to the first name found in g:freebasic_forcelang, any
+#lang directive or $lang metacommand in the file being edited, or finally
+g:freebasic_lang.  These global variables conceptually map to the fbc options
+-forcelang and -lang.  If no dialect is explicitly specified "fb" will be
+used.
+
+For example, to set the dialect to a default of "fblite" but still allow for
+any #lang directive overrides, use the following command: >
+
+     let g:freebasic_lang = "fblite"
+
+
 GIT COMMIT                                              *ft-gitcommit-plugin*
 
 One command, :DiffGitCached, is provided to show a diff of the current commit
 in the preview window.  It is equivalent to calling "git diff --cached" plus
 any arguments given to the command.
 
+
 GPROF							*ft-gprof-plugin*
 
 The gprof filetype plugin defines a mapping <C-]> to jump from a function
@@ -571,6 +589,7 @@
 The mapping can be disabled with: >
 	let g:no_gprof_maps = 1
 
+
 MAIL							*ft-mail-plugin*
 
 Options:
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 0db6407..6794785 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -568,6 +568,9 @@
 The |:Lfilter| command does the same as |:Cfilter| but operates on the current
 location list.
 
+The current quickfix/location list is not modified by these commands, so you
+can go back to the unfiltered list using the |:colder|/|:lolder| command.
+
 =============================================================================
 2. The error window					*quickfix-window*
 
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 1229b19..86e7edd 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1694,6 +1694,21 @@
 For further information related to fortran, see |ft-fortran-indent| and
 |ft-fortran-plugin|.
 
+FREEBASIC				*freebasic.vim* *ft-freebasic-syntax*
+
+FreeBASIC files will be highlighted differently for each of the four available
+dialects, "fb", "qb", "fblite" and "deprecated".  See |ft-freebasic-plugin|
+for how to select the correct dialect.
+
+Highlighting is further configurable via the following variables.
+
+Variable			Highlight ~
+*freebasic_no_comment_fold*	disable multiline comment folding
+*freebasic_operators*		non-alpha operators
+*freebasic_space_errors*	trailing white space and spaces before a <Tab>
+*freebasic_type_suffixes*	QuickBASIC style type suffixes
+
+
 
 FVWM CONFIGURATION FILES			*fvwm.vim* *ft-fvwm-syntax*
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index b3b44e2..c08a834 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -988,6 +988,7 @@
 't_Co'	term.txt	/*'t_Co'*
 't_Cs'	term.txt	/*'t_Cs'*
 't_DL'	term.txt	/*'t_DL'*
+'t_Ds'	term.txt	/*'t_Ds'*
 't_EC'	term.txt	/*'t_EC'*
 't_EI'	term.txt	/*'t_EI'*
 't_F1'	term.txt	/*'t_F1'*
@@ -1044,6 +1045,7 @@
 't_TI'	term.txt	/*'t_TI'*
 't_Te'	term.txt	/*'t_Te'*
 't_Ts'	term.txt	/*'t_Ts'*
+'t_Us'	term.txt	/*'t_Us'*
 't_VS'	term.txt	/*'t_VS'*
 't_WP'	term.txt	/*'t_WP'*
 't_WS'	term.txt	/*'t_WS'*
@@ -1059,6 +1061,7 @@
 't_da'	term.txt	/*'t_da'*
 't_db'	term.txt	/*'t_db'*
 't_dl'	term.txt	/*'t_dl'*
+'t_ds'	term.txt	/*'t_ds'*
 't_fd'	term.txt	/*'t_fd'*
 't_fe'	term.txt	/*'t_fe'*
 't_fs'	term.txt	/*'t_fs'*
@@ -6875,6 +6878,11 @@
 formatting	change.txt	/*formatting*
 forth.vim	syntax.txt	/*forth.vim*
 fortran.vim	syntax.txt	/*fortran.vim*
+freebasic.vim	syntax.txt	/*freebasic.vim*
+freebasic_no_comment_fold	syntax.txt	/*freebasic_no_comment_fold*
+freebasic_operators	syntax.txt	/*freebasic_operators*
+freebasic_space_errors	syntax.txt	/*freebasic_space_errors*
+freebasic_type_suffixes	syntax.txt	/*freebasic_type_suffixes*
 friendship	intro.txt	/*friendship*
 frombook	usr_01.txt	/*frombook*
 ft-abel-syntax	syntax.txt	/*ft-abel-syntax*
@@ -6931,6 +6939,8 @@
 ft-fortran-indent	indent.txt	/*ft-fortran-indent*
 ft-fortran-plugin	filetype.txt	/*ft-fortran-plugin*
 ft-fortran-syntax	syntax.txt	/*ft-fortran-syntax*
+ft-freebasic-plugin	filetype.txt	/*ft-freebasic-plugin*
+ft-freebasic-syntax	syntax.txt	/*ft-freebasic-syntax*
 ft-fvwm-syntax	syntax.txt	/*ft-fvwm-syntax*
 ft-gitcommit-plugin	filetype.txt	/*ft-gitcommit-plugin*
 ft-gprof-plugin	filetype.txt	/*ft-gprof-plugin*
@@ -9726,6 +9736,7 @@
 t_Co	term.txt	/*t_Co*
 t_Cs	term.txt	/*t_Cs*
 t_DL	term.txt	/*t_DL*
+t_Ds	term.txt	/*t_Ds*
 t_EC	term.txt	/*t_EC*
 t_EI	term.txt	/*t_EI*
 t_F1	term.txt	/*t_F1*
@@ -9782,6 +9793,7 @@
 t_TI	term.txt	/*t_TI*
 t_Te	term.txt	/*t_Te*
 t_Ts	term.txt	/*t_Ts*
+t_Us	term.txt	/*t_Us*
 t_VS	term.txt	/*t_VS*
 t_WP	term.txt	/*t_WP*
 t_WS	term.txt	/*t_WS*
@@ -9808,6 +9820,7 @@
 t_db	term.txt	/*t_db*
 t_dict-variable	eval.txt	/*t_dict-variable*
 t_dl	term.txt	/*t_dl*
+t_ds	term.txt	/*t_ds*
 t_ed	version4.txt	/*t_ed*
 t_el	version4.txt	/*t_el*
 t_f1	version4.txt	/*t_f1*
@@ -10204,7 +10217,11 @@
 uganda	uganda.txt	/*uganda*
 uganda.txt	uganda.txt	/*uganda.txt*
 undercurl	syntax.txt	/*undercurl*
+underdashed	syntax.txt	/*underdashed*
+underdotted	syntax.txt	/*underdotted*
+underdouble	syntax.txt	/*underdouble*
 underline	syntax.txt	/*underline*
+underline-codes	syntax.txt	/*underline-codes*
 undo	undo.txt	/*undo*
 undo-blocks	undo.txt	/*undo-blocks*
 undo-branches	undo.txt	/*undo-branches*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 896be45..736340a 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,9 +38,6 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Prepare for the Vim 9.0 release:
-- Update version number in help
-
 Further Vim9 improvements, possibly after launch:
 - Use Vim9 for more runtime files.
 - Check performance with callgrind and kcachegrind.
@@ -201,19 +198,11 @@
   conversions.
 
 Patches considered for including:
-- make functions static if possible, add a few tests. #10612
-- use ngettext() in a few more places #10606
-- move f_hasmapto() to map.c  #10611
+- Add "-n" option to xxd. #10599  needs a test
 - allow for nesting of timeout, sketch in #10595
-- Add "-n" option to xxd. #10599
-- Add support for "underdouble", "underdot" and "underdash". #9553
 - Patch to implement the vimtutor with a plugin: #6414
   Was originally written by Felipe Morales.
 - Patch to make fillchars global-local. (#5206)
-- Version of getchar() that does not move the cursor - #10603
-  Use a separate argument for the new flag.
-- Improved VB filetype detection. (Doug Kearns, June 26)
-- Improved FreeBasic runtime files (and a second one). (Doug Kearns, June 26)
 
 Autoconf: must use autoconf 2.69, later version generates lots of warnings
 - try using autoconf 2.71 and fix all "obsolete" warnings
@@ -236,6 +225,8 @@
 
 Can "CSI nr X" be used instead of outputting spaces?  Is it faster?  #8002
 
+Typed keys invisible after calling interrupt() from a timer. #10631
+
 With a window height of 6 and 'scrolloff' set to 3, using "j" does not scroll
 evenly. (#10545)  Need to handle this in scroll_cursor_bot().
 
@@ -254,6 +245,9 @@
 
 MS-Windows: did path modifier :p:8 stop working?  #8600
 
+Version of getchar() that does not move the cursor - #10603 Use a separate
+argument for the new flag.
+
 test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
 
 Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
@@ -295,6 +289,8 @@
 
 globpath() does not use 'wildignorecase' at all? (related to #8350)
 
+mksession uses :buffer instead of :edit in one place but not another. #10629
+
 Add 'termguiattr' option, use "gui=" attributes in the terminal?  Would work
 with 'termguicolors'. #1740
 
@@ -4423,6 +4419,8 @@
 
 
 Autocommands:
+9   Add WinNewPre - before creating a new window. #10635
+9   When triggering WinNew provide the window ID somehow.  #10633
 9   Rework the code from FEAT_OSFILETYPE for autocmd-osfiletypes to use
     'filetype'.  Only for when the current buffer is known.
 -   Put autocommand event names in a hashtable for faster lookup?
diff --git a/runtime/doc/xxd.man b/runtime/doc/xxd.man
index 26d89e5..3eae32a 100644
--- a/runtime/doc/xxd.man
+++ b/runtime/doc/xxd.man
@@ -46,7 +46,7 @@
               long line of output.
 
        -C | -capitalize
-              Capitalize variable names in C include file  style,  when  using
+              Capitalize  variable  names  in C include file style, when using
               -i.
 
        -E | -EBCDIC
@@ -57,28 +57,32 @@
        -e     Switch to little-endian hexdump.  This option treats byte groups
               as words in little-endian byte order.  The default grouping of 4
               bytes may be changed using -g.  This option only applies to hex‐
-              dump, leaving the ASCII (or  EBCDIC)  representation  unchanged.
+              dump,  leaving  the  ASCII (or EBCDIC) representation unchanged.
               The command line switches -r, -p, -i do not work with this mode.
 
        -g bytes | -groupsize bytes
-              Separate  the  output of every <bytes> bytes (two hex characters
+              Separate the output of every <bytes> bytes (two  hex  characters
               or eight bit-digits each) by a whitespace.  Specify -g 0 to sup‐
               press grouping.  <Bytes> defaults to 2 in normal mode, 4 in lit‐
-              tle-endian mode and 1 in bits mode.  Grouping does not apply  to
+              tle-endian  mode and 1 in bits mode.  Grouping does not apply to
               postscript or include style.
 
        -h | -help
-              Print  a summary of available commands and exit.  No hex dumping
+              Print a summary of available commands and exit.  No hex  dumping
               is performed.
 
        -i | -include
-              Output in C include file style. A complete static array  defini‐
-              tion  is  written (named after the input file), unless xxd reads
+              Output  in C include file style. A complete static array defini‐
+              tion is written (named after the input file), unless  xxd  reads
               from stdin.
 
        -l len | -len len
               Stop after writing <len> octets.
 
+       -n name  |  -name name
+              Override  the variable name output when -i is used. The array is
+              named name and the length is named name_len.
+
        -o offset
               Add <offset> to the displayed file position.
 
@@ -91,8 +95,8 @@
               not writing to stdout, xxd writes into its output  file  without
               truncating it. Use the combination -r -p to read plain hexadeci‐
               mal dumps without line number information and without a particu‐
-              lar  column  layout.  Additional  Whitespace and line-breaks are
-              allowed anywhere.
+              lar column layout. Additional Whitespace and line-breaks are al‐
+              lowed anywhere.
 
        -seek offset
               When used after -r: revert with <offset> added to file positions
@@ -209,8 +213,8 @@
        *
        000fffc: 0000 0000 40                   ....A
 
-       Create  a  1  byte  file containing a single 'A' character.  The number
-       after '-r -s' adds to the linenumbers found in the file; in effect, the
+       Create a 1 byte file containing a single 'A' character.  The number af‐
+       ter '-r -s' adds to the linenumbers found in the file; in  effect,  the
        leading bytes are suppressed.
        % echo "010000: 41" | xxd -r -s -0x10000 > file
 
diff --git a/runtime/ftplugin/basic.vim b/runtime/ftplugin/basic.vim
index a8f6b08..4399fbf 100644
--- a/runtime/ftplugin/basic.vim
+++ b/runtime/ftplugin/basic.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	BASIC (QuickBASIC 4.5)
 " Maintainer:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:	2021 Mar 16
+" Last Change:	2022 Jun 22
 
 if exists("b:did_ftplugin")
   finish
@@ -15,6 +15,8 @@
 setlocal commentstring='\ %s
 setlocal formatoptions-=t formatoptions+=croql
 
+let b:undo_ftplugin = "setl fo< com< cms<"
+
 " TODO: support exit ... as middle matches?
 if exists("loaded_matchit") && !exists("b:match_words")
   let s:line_start	= '\%(^\s*\)\@<='
@@ -33,10 +35,11 @@
 		\     '\<while\>:\<wend\>,' ..
 		\     s:line_start .. 'if\%(.*\<then\s*\%($\|''\)\)\@=:\<\%(' .. s:line_start .. 'else\|elseif\)\>:\<end\s\+if\>,' ..
 		\     '\<lock\>:\<unlock\>'
-
   let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string" || ' ..
 		\    'strpart(getline("."), 0, col(".") ) =~? "\\<exit\\s\\+"'
 
+  let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_skip b:match_words"
+
   unlet s:line_start s:not_end s:not_end_or_exit
 endif
 
@@ -44,12 +47,10 @@
   let b:browsefilter = "BASIC Source Files (*.bas)\t*.bas\n" ..
 		\      "BASIC Include Files (*.bi, *.bm)\t*.bi;*.bm\n" ..
 		\      "All Files (*.*)\t*.*\n"
+  let b:basic_set_browsefilter = 1
+  let b:undo_ftplugin ..= " | unlet! b:browsefilter b:basic_set_browsefilter"
 endif
 
-let b:undo_ftplugin = "setl fo< com< cms<" ..
-		\     " | unlet! b:match_ignorecase b:match_skip b:match_words" ..
-		\     " | unlet! b:browsefilter"
-
 let &cpo = s:cpo_save
 unlet s:cpo_save
 
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index 33bb417..032f661 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,19 +1,16 @@
 " Vim filetype plugin file
-" Language:             fetchmail(1) RC File
-" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:      2008-07-09
+" Language:		fetchmail(1) RC File
+" Maintainer:		Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
+" Latest Revision:	2022 Jun 30
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
-let s:cpo_save = &cpo
-set cpo&vim
+setlocal comments=:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
 
 let b:undo_ftplugin = "setl com< cms< fo<"
 
-setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
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:
diff --git a/runtime/ftplugin/vue.vim b/runtime/ftplugin/vue.vim
new file mode 100644
index 0000000..e883374
--- /dev/null
+++ b/runtime/ftplugin/vue.vim
@@ -0,0 +1,24 @@
+" Vim filetype plugin file
+" Language:	vue
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Copied from ftplugin/html.vim
+" Original thanks to Johannes Zellner and Benji Fisher.
+if exists("loaded_matchit")
+  let b:match_ignorecase = 1
+  let b:match_words = '<:>,'
+	\ .. '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,'
+	\ .. '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,'
+	\ .. '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
+endif
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim b/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim
index fe4455f..7a65630 100644
--- a/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim
+++ b/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim
@@ -1,62 +1,72 @@
-" cfilter.vim: Plugin to filter entries from a quickfix/location list
-" Last Change: Aug 23, 2018
-" Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
-" Version: 1.1
-"
-" Commands to filter the quickfix list:
-"   :Cfilter[!] /{pat}/
-"       Create a new quickfix list from entries matching {pat} in the current
-"       quickfix list. Both the file name and the text of the entries are
-"       matched against {pat}. If ! is supplied, then entries not matching
-"       {pat} are used. The pattern can be optionally enclosed using one of
-"       the following characters: ', ", /. If the pattern is empty, then the
-"       last used search pattern is used.
-"   :Lfilter[!] /{pat}/
-"       Same as :Cfilter but operates on the current location list.
-"
-if exists("loaded_cfilter")
-    finish
-endif
-let loaded_cfilter = 1
+vim9script
 
-func s:Qf_filter(qf, searchpat, bang)
-    if a:qf
-	let Xgetlist = function('getqflist')
-	let Xsetlist = function('setqflist')
-	let cmd = ':Cfilter' . a:bang
-    else
-	let Xgetlist = function('getloclist', [0])
-	let Xsetlist = function('setloclist', [0])
-	let cmd = ':Lfilter' . a:bang
-    endif
+# cfilter.vim: Plugin to filter entries from a quickfix/location list
+# Last Change: Jun 30, 2022
+# Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
+# Version: 2.0
+#
+# Commands to filter the quickfix list:
+#   :Cfilter[!] /{pat}/
+#       Create a new quickfix list from entries matching {pat} in the current
+#       quickfix list. Both the file name and the text of the entries are
+#       matched against {pat}. If ! is supplied, then entries not matching
+#       {pat} are used. The pattern can be optionally enclosed using one of
+#       the following characters: ', ", /. If the pattern is empty, then the
+#       last used search pattern is used.
+#   :Lfilter[!] /{pat}/
+#       Same as :Cfilter but operates on the current location list.
+#
 
-    let firstchar = a:searchpat[0]
-    let lastchar = a:searchpat[-1:]
-    if firstchar == lastchar &&
-		\ (firstchar == '/' || firstchar == '"' || firstchar == "'")
-	let pat = a:searchpat[1:-2]
-	if pat == ''
-	    " Use the last search pattern
-	    let pat = @/
-	endif
-    else
-	let pat = a:searchpat
-    endif
+def Qf_filter(qf: bool, searchpat: string, bang: string)
+  var Xgetlist: func
+  var Xsetlist: func
+  var cmd: string
+  var firstchar: string
+  var lastchar: string
+  var pat: string
+  var title: string
+  var Cond: func
+  var items: list<any>
 
+  if qf
+    Xgetlist = function('getqflist')
+    Xsetlist = function('setqflist')
+    cmd = ':Cfilter' .. bang
+  else
+    Xgetlist = function('getloclist', [0])
+    Xsetlist = function('setloclist', [0])
+    cmd = ':Lfilter' .. bang
+  endif
+
+  firstchar = searchpat[0]
+  lastchar = searchpat[-1 :]
+  if firstchar == lastchar &&
+              (firstchar == '/' || firstchar == '"' || firstchar == "'")
+    pat = searchpat[1 : -2]
     if pat == ''
-	return
+      # Use the last search pattern
+      pat = @/
     endif
+  else
+    pat = searchpat
+  endif
 
-    if a:bang == '!'
-	let cond = 'v:val.text !~# pat && bufname(v:val.bufnr) !~# pat'
-    else
-	let cond = 'v:val.text =~# pat || bufname(v:val.bufnr) =~# pat'
-    endif
+  if pat == ''
+    return
+  endif
 
-    let items = filter(Xgetlist(), cond)
-    let title = cmd . ' /' . pat . '/'
-    call Xsetlist([], ' ', {'title' : title, 'items' : items})
-endfunc
+  if bang == '!'
+    Cond = (_, val) => val.text !~# pat && bufname(val.bufnr) !~# pat
+  else
+    Cond = (_, val) => val.text =~# pat || bufname(val.bufnr) =~# pat
+  endif
 
-com! -nargs=+ -bang Cfilter call s:Qf_filter(1, <q-args>, <q-bang>)
-com! -nargs=+ -bang Lfilter call s:Qf_filter(0, <q-args>, <q-bang>)
+  items = filter(Xgetlist(), Cond)
+  title = cmd .. ' /' .. pat .. '/'
+  Xsetlist([], ' ', {title: title, items: items})
+enddef
+
+command! -nargs=+ -bang Cfilter Qf_filter(true, <q-args>, <q-bang>)
+command! -nargs=+ -bang Lfilter Qf_filter(false, <q-args>, <q-bang>)
+
+# vim: shiftwidth=2 sts=2 expandtab
diff --git a/runtime/spell/sr/README_sr.txt b/runtime/spell/sr/README_sr.txt
index 8f7c908..6a3b10a 100644
--- a/runtime/spell/sr/README_sr.txt
+++ b/runtime/spell/sr/README_sr.txt
@@ -40,6 +40,20 @@
 A couple of words in cyrillic dict used a latin codepoints for 'a' and 'e',
 that was also corrected.
 
+You should be able to reproduce this with these steps:
+  * Save the existing sr.aff and sr.dic files, if you have them, they will be
+    overwritten.
+  * Create a subfolder "new".
+  * Put 4 files downloaded from LibreOffice dictionaries GitHub repository in
+    it: sr.aff, sr-Latn.aff, sr.dic and sr-Latn.dic
+  * Open Vim and cd into "new"
+  * Execute:  :so ../convert.vim
+  * The resulting sr.aff and sr.dic are created in the parent spell folder
+    (here).
+  * Now one can generate spl file as usual using the merged dic and aff
+    files:
+        env LANG=sr_RS.UTF-8 vim -u NONE -e -c "set enc=utf-8" -c "mkspell! ../sr sr" -c q
+
 
 Ivan Pešić
 28.06.2022.
diff --git a/runtime/spell/sr/convert.vim b/runtime/spell/sr/convert.vim
new file mode 100644
index 0000000..731986e
--- /dev/null
+++ b/runtime/spell/sr/convert.vim
@@ -0,0 +1,30 @@
+:e sr.aff
+:normal gg
+:normal wgu$
+:3d
+:4d
+:normal G
+:normal o
+:r sr-Latn.aff
+:%s#^\(SFX\|PFX\).*[а-џa-ž]\zs$# .#g
+:normal G
+?SET
+:.,+5d
+:.,$s#^\(SFX\|PFX\) \zs\(\d\+\)#\= eval(submatch(2) .. ' + 1903')#
+:w ../sr.aff
+:bd!
+:e sr.dic
+:%s#a#а#g
+:%s#e#е#g
+:normal G
+:normal o
+:r sr-Latn.dic
+:normal 201dd
+:.,$s#/\zs\(\d\+\)\(,\(\d\+\)\)\?$#\=(submatch(2) == '') ? eval(submatch(1) + '1903') : eval(submatch(1) + '1903') .. ',' .. eval(submatch(3) + '1903')#
+:normal {
+:normal dd
+:normal gg
+:normal C502898
+:w ../sr.dic
+:bd!
+:q!
diff --git a/runtime/syntax/basic.vim b/runtime/syntax/basic.vim
index 7fe411a..b6bf23a 100644
--- a/runtime/syntax/basic.vim
+++ b/runtime/syntax/basic.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer:	Allan Kelly <allan@fruitloaf.co.uk>
 " Contributors:		Thilo Six
-" Last Change:		2021 Aug 08
+" Last Change:		2022 Jun 22
 
 " First version based on Micro$soft QBASIC circa 1989, as documented in
 " 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
@@ -344,7 +344,7 @@
 hi def link basicDataString	    basicString
 hi def link basicFilenumber	    basicTypeSuffix " TODO: better group
 hi def link basicFloat		    Float
-hi def link basicFunction	    Identifier
+hi def link basicFunction	    Function
 hi def link basicKeyword	    Keyword
 hi def link basicLineIdentifier	    LineNr
 hi def link basicLineContinuation   Special
diff --git a/runtime/syntax/fetchmail.vim b/runtime/syntax/fetchmail.vim
index 7a42105..f9c8e01 100644
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -1,7 +1,10 @@
 " Vim syntax file
-" Language:             fetchmail(1) RC File
-" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:      2006-04-19
+" Language:		fetchmail(1) RC File
+" Maintainer:		Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
+" Latest Revision:	2022 Jun 30
+
+" Version 6.4.3
 
 if exists("b:current_syntax")
   finish
@@ -10,64 +13,69 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn keyword fetchmailTodo       contained FIXME TODO XXX NOTE
+syn keyword fetchmailTodo	contained FIXME TODO XXX NOTE
 
-syn region  fetchmailComment    start='#' end='$' contains=fetchmailTodo,@Spell
+syn region  fetchmailComment	start='#' end='$' contains=fetchmailTodo,@Spell
 
-syn match   fetchmailNumber     display '\<\d\+\>'
+syn match   fetchmailNumber	display '\<\d\+\>'
 
-syn region  fetchmailString     start=+"+ skip=+\\\\\|\\"+ end=+"+
-                                \ contains=fetchmailStringEsc
-syn region  fetchmailString     start=+'+ skip=+\\\\\|\\'+ end=+'+
-                                \ contains=fetchmailStringEsc
+syn region  fetchmailString	start=+"+ skip=+\\\\\|\\"+ end=+"+
+				\ contains=fetchmailStringEsc
+syn region  fetchmailString	start=+'+ skip=+\\\\\|\\'+ end=+'+
+				\ contains=fetchmailStringEsc
 
-syn match   fetchmailStringEsc  contained '\\\([ntb]\|0\d*\|x\x\+\)'
+syn match   fetchmailStringEsc	contained '\\\([ntb]\|0\d*\|x\x\+\)'
 
-syn region  fetchmailKeyword    transparent matchgroup=fetchmailKeyword
-                                \ start='\<poll\|skip\|defaults\>'
-                                \ end='\<poll\|skip\|defaults\>'
-                                \ contains=ALLBUT,fetchmailOptions,fetchmailSet
+syn region  fetchmailKeyword	transparent matchgroup=fetchmailKeyword
+				\ start='\<poll\|skip\|defaults\>'
+				\ end='\<poll\|skip\|defaults\>'
+				\ contains=ALLBUT,fetchmailOptions,fetchmailSet
 
 syn keyword fetchmailServerOpts contained via proto[col] local[domains] port
-                                \ auth[enticate] timeout envelope qvirtual aka
-                                \ interface monitor plugin plugout dns
-                                \ checkalias uidl interval netsec principal
-                                \ esmtpname esmtppassword
-                                \ sslcertck sslcertpath sslfingerprint
+				\ service auth[enticate] timeout envelope
+				\ qvirtual aka interface monitor plugin plugout
+				\ dns checkalias uidl interval tracepolls
+				\ principal esmtpname esmtppassword
+" removed in 6.3.0
+syn keyword fetchmailServerOpts contained netsec
+syn match   fetchmailServerOpts contained '\<bad-header\>'
 syn match   fetchmailServerOpts contained '\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)'
 
-syn keyword fetchmailUserOpts   contained user[name] is to pass[word] ssl
-                                \ sslcert sslkey sslproto folder smtphost
-                                \ fetchdomains smtpaddress smtpname antispam
-                                \ mda bsmtp preconnect postconnect keep flush
-                                \ fetchall rewrite stripcr forcecr pass8bits
-                                \ dropstatus dropdelivered mimedecode idle
-                                \ limit warnings batchlimit fetchlimit expunge
-                                \ tracepolls properties
-syn match   fetchmailUserOpts   contained '\<no\_s\+\(keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|noidle\)'
+syn keyword fetchmailUserOpts	contained user[name] is to pass[word] ssl
+				\ sslcert sslcertck sslcertfile sslcertpath
+				\ sslfingerprint sslkey sslproto folder
+				\ smtphost fetchdomains smtpaddress smtpname
+				\ antispam mda bsmtp preconnect postconnect
+				\ keep flush limitflush fetchall rewrite
+				\ stripcr forcecr pass8bits dropstatus
+				\ dropdelivered mimedecode idle limit warnings
+				\ batchlimit fetchlimit fetchsizelimit
+				\ fastuidl expunge properties
+				\ sslcommonname
+syn match   fetchmailUserOpts	contained '\<no\_s\+\(sslcertck\|keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|idle\)'
 
-syn keyword fetchmailSpecial    contained here there
+syn keyword fetchmailSpecial	contained here there
 
-syn keyword fetchmailNoise      and with has wants options
-syn match   fetchmailNoise      display '[:;,]'
+syn keyword fetchmailNoise	and with has wants options
+syn match   fetchmailNoise	display '[:;,]'
 
-syn keyword fetchmailSet        nextgroup=fetchmailOptions skipwhite skipnl set
+syn keyword fetchmailSet	nextgroup=fetchmailOptions skipwhite skipnl set
 
-syn keyword fetchmailOptions    daemon postmaster bouncemail spambounce logfile
-                                \ idfile syslog nosyslog properties
-syn match   fetchmailOptions    '\<no\_s\+\(bouncemail\|spambounce\)'
+syn keyword fetchmailOptions	daemon postmaster bouncemail spambounce
+				\ softbounce logfile idfile syslog properties
+syn match   fetchmailOptions	'\<no\_s\+\(bouncemail\|spambounce\|softbounce\|syslog\)'
 
-hi def link fetchmailComment    Comment
-hi def link fetchmailTodo       Todo
-hi def link fetchmailNumber     Number
-hi def link fetchmailString     String
-hi def link fetchmailStringEsc  SpecialChar
-hi def link fetchmailKeyword    Keyword
+hi def link fetchmailComment	Comment
+hi def link fetchmailTodo	Todo
+hi def link fetchmailNumber	Number
+hi def link fetchmailString	String
+hi def link fetchmailStringEsc	SpecialChar
+hi def link fetchmailKeyword	Keyword
 hi def link fetchmailServerOpts Identifier
-hi def link fetchmailUserOpts   Identifier
-hi def link fetchmailSpecial    Special
-hi def link fetchmailSet        Keyword
-hi def link fetchmailOptions    Identifier
+hi def link fetchmailUserOpts	Identifier
+hi def link fetchmailSpecial	Special
+hi def link fetchmailSet	Keyword
+hi def link fetchmailOptions	Identifier
 
 let b:current_syntax = "fetchmail"
 
diff --git a/runtime/syntax/freebasic.vim b/runtime/syntax/freebasic.vim
index 68e838f..7549d02 100644
--- a/runtime/syntax/freebasic.vim
+++ b/runtime/syntax/freebasic.vim
@@ -1,14 +1,14 @@
 " Vim syntax file
-" Language:    FreeBasic
-" Maintainer:  Mark Manning <markem@sim1.us>
-" Updated:     10/9/2019
-" Version:		7.0b
+" Language:		FreeBASIC
+" Maintainer:		Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer:	Mark Manning <markem@sim1.us>
+" Last Change:		2022 Jun 26
 "
 " Description:
 "
 "	Based originally on the work done by Allan Kelly <Allan.Kelly@ed.ac.uk>
 "	Updated by Mark Manning <markem@sim1.us>
-"	Applied FreeBasic support to the already excellent support
+"	Applied FreeBASIC support to the already excellent support
 "	for standard basic syntax (like QB).
 "
 "	First version based on Micro$soft QBASIC circa
@@ -17,215 +17,595 @@
 "	not a complete implementation yet.  Send suggestions to
 "	the maintainer.
 "
+"	TODO: split this into separate dialect-based files, possibly with a common base
+"
 "	Quit when a (custom) syntax file was already loaded (Taken from c.vim)
 "
 if exists("b:current_syntax")
   finish
 endif
 "
+"	Dialect detection
+"
+let s:lang = freebasic#GetDialect()
+"
+"	Whitespace Errors
+"
+if exists("freebasic_space_errors")
+  if !exists("freebasic_no_trail_space_error")
+    syn match freebasicSpaceError display excludenl "\s\+$"
+  endif
+  if !exists("freebasic_no_tab_space_error")
+    syn match freebasicSpaceError display " \+\t"me=e-1
+  endif
+endif
+"
 "	Be sure to turn on the "case ignore" since current versions
 "	of freebasic support both upper as well as lowercase
 "	letters. - MEM 10/1/2006
 "
 syn case ignore
 "
-"	This list of keywords is taken directly from the FreeBasic
-"	user's guide as presented by the FreeBasic online site.
-"
-syn keyword	freebasicArrays			ERASE LBOUND REDIM PRESERVE UBOUND
-
-syn keyword	freebasicBitManipulation	BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD SHL SHR
-
-syn keyword	freebasicCompilerSwitches	DEFBYTE DEFDBL DEFINT DEFLNG DEFLNGINT DEFSHORT DEFSNG DEFSTR
-syn keyword	freebasicCompilerSwitches	DEFUBYTE DEFUINT DEFULNGINT DEFUSHORT
-syn match	freebasicCompilerSwitches	"\<option\s+\(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|NOKEYWORD\)\>"
-syn match	freebasicCompilerSwitches	"\<option\s+\(PRIVATE\|STATIC\)\>"
-
-syn region	freebasicConditional		start="\son\s+" skip=".*" end="gosub"
-syn region	freebasicConditional		start="\son\s+" skip=".*" end="goto"
-syn match	freebasicConditional		"\<select\s+case\>"
-syn keyword	freebasicConditional		if iif then case else elseif with
-
-syn match	freebasicConsole		"\<open\s+\(CONS\|ERR\|PIPE\|SCRN\)\>"
-syn keyword	freebasicConsole		BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB VIEW WIDTH
-
-syn keyword	freebasicDataTypes		BYTE AS DIM CONST DOUBLE ENUM INTEGER LONG LONGINT SHARED SHORT STRING
-syn keyword	freebasicDataTypes		SINGLE TYPE UBYTE UINTEGER ULONGINT UNION UNSIGNED USHORT WSTRING ZSTRING
-
-syn keyword	freebasicDateTime		DATE DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR MINUTE
-syn keyword	freebasicDateTime		MONTH MONTHNAME NOW SECOND SETDATE SETTIME TIME TIMESERIAL TIMEVALUE
-syn keyword	freebasicDateTime		TIMER YEAR WEEKDAY WEEKDAYNAME
-
-syn keyword	freebasicDebug			ASSERT STOP
-
-syn keyword	freebasicErrorHandling		ERR ERL ERROR LOCAL RESUME
-syn match	freebasicErrorHandling		"\<resume\s+next\>"
-syn match	freebasicErrorHandling		"\<on\s+error\>"
-
-syn match	freebasicFiles			"\<get\s+#\>"
-syn match	freebasicFiles			"\<input\s+#\>"
-syn match	freebasicFiles			"\<line\s+input\s+#\>"
-syn match	freebasicFiles			"\<put\s+#\>"
-syn keyword	freebasicFiles			ACCESS APPEND BINARY BLOAD BSAVE CLOSE EOF FREEFILE INPUT LOC
-syn keyword	freebasicFiles			LOCK LOF OPEN OUTPUT RANDOM RESET SEEK UNLOCK WRITE
-
-syn keyword	freebasicFunctions		ALIAS ANY BYREF BYVAL CALL CDECL CONSTRUCTOR DESTRUCTOR
-syn keyword	freebasicFunctions		DECLARE FUNCTION LIB OVERLOAD PASCAL STATIC SUB STDCALL
-syn keyword	freebasicFunctions		VA_ARG VA_FIRST VA_NEXT
-
-syn match	freebasicGraphics		"\<palette\s+get\>"
-syn keyword	freebasicGraphics		ALPHA CIRCLE CLS COLOR CUSTOM DRAW FLIP GET
-syn keyword	freebasicGraphics		IMAGECREATE IMAGEDESTROY LINE PAINT PALETTE PCOPY PMAP POINT
-syn keyword	freebasicGraphics		PRESET PSET PUT RGB RGBA SCREEN SCREENCOPY SCREENINFO SCREENLIST
-syn keyword	freebasicGraphics		SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC SCREENUNLOCK
-syn keyword	freebasicGraphics		TRANS USING VIEW WINDOW
-
-syn match	freebasicHardware		"\<open\s+com\>"
-syn keyword	freebasicHardware		INP OUT WAIT LPT LPOS LPRINT
-
-syn keyword	freebasicLogical		AND EQV IMP OR NOT XOR
-
-syn keyword	freebasicMath			ABS ACOS ASIN ATAN2 ATN COS EXP FIX INT LOG MOD RANDOMIZE
-syn keyword	freebasicMath			RND SGN SIN SQR TAN
-
-syn keyword	freebasicMemory			ALLOCATE CALLOCATE CLEAR DEALLOCATE FIELD FRE PEEK POKE REALLOCATE
-
-syn keyword	freebasicMisc			ASM DATA LET TO READ RESTORE SIZEOF SWAP OFFSETOF
-
-syn keyword	freebasicModularizing		CHAIN COMMON EXPORT EXTERN DYLIBFREE DYLIBLOAD DYLIBSYMBOL
-syn keyword	freebasicModularizing		PRIVATE PUBLIC
-
-syn keyword	freebasicMultithreading		MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT
-
-syn keyword	freebasicShell			CHDIR DIR COMMAND ENVIRON EXEC EXEPATH KILL NAME MKDIR RMDIR RUN
-
-syn keyword	freebasicEnviron		SHELL SYSTEM WINDOWTITLE POINTERS
-
-syn keyword	freebasicLoops			FOR LOOP WHILE WEND DO CONTINUE STEP UNTIL next
-
-syn match	freebasicInclude		"\<#\s*\(inclib\|include\)\>"
-syn match	freebasicInclude		"\<\$\s*include\>"
-
-syn keyword	freebasicPointer		PROCPTR PTR SADD STRPTR VARPTR
-
-syn keyword	freebasicPredefined		__DATE__ __FB_DOS__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__
-syn keyword	freebasicPredefined		__FB_SIGNATURE__ __FB_VERSION__ __FB_WIN32__ __FB_VER_MAJOR__
-syn keyword	freebasicPredefined		__FB_VER_MINOR__ __FB_VER_PATCH__ __FILE__ __FUNCTION__
-syn keyword	freebasicPredefined		__LINE__ __TIME__
-
-syn match	freebasicPreProcessor		"\<^#\s*\(define\|undef\)\>"
-syn match	freebasicPreProcessor		"\<^#\s*\(ifdef\|ifndef\|else\|elseif\|endif\|if\)\>"
-syn match	freebasicPreProcessor		"\<#\s*error\>"
-syn match	freebasicPreProcessor		"\<#\s*\(print\|dynamic\|static\)\>"
-syn keyword	freebasicPreProcessor		DEFINED ONCE
-
-syn keyword	freebasicProgramFlow		END EXIT GOSUB GOTO
-syn keyword	freebasicProgramFlow		IS RETURN SCOPE SLEEP
-
-syn keyword	freebasicString			INSTR LCASE LEFT LEN LSET LTRIM MID RIGHT RSET RTRIM
-syn keyword	freebasicString			SPACE STRING TRIM UCASE ASC BIN CHR CVD CVI CVL CVLONGINT
-syn keyword	freebasicString			CVS CVSHORT FORMAT HEX MKD MKI MKL MKLONGINT MKS MKSHORT
-syn keyword	freebasicString			OCT STR VAL VALLNG VALINT VALUINT VALULNG
-
-syn keyword	freebasicTypeCasting		CAST CBYTE CDBL CINT CLNG CLNGINT CPTR CSHORT CSIGN CSNG
-syn keyword	freebasicTypeCasting		CUBYTE CUINT CULNGINT CUNSG CURDIR CUSHORT
-
-syn match	freebasicUserInput		"\<line\s+input\>"
-syn keyword	freebasicUserInput		GETJOYSTICK GETKEY GETMOUSE INKEY INPUT MULTIKEY SETMOUSE
-"
 "	Do the Basic variables names first.  This is because it
 "	is the most inclusive of the tests.  Later on we change
 "	this so the identifiers are split up into the various
 "	types of identifiers like functions, basic commands and
 "	such. MEM 9/9/2006
 "
-syn match	freebasicIdentifier			"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
-syn match	freebasicGenericFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
+if s:lang =~# '\<\%(qb\|fblite\)\>'
+  syn iskeyword @,48-57,_,192-255,.
+  syn match	freebasicIdentifier		"\<\h\%(\w\|\.\)*\>"
+  syn match	freebasicGenericFunction	"\<\h\%(\w\|\.\)*\>\ze\s*("
+else
+  syn iskeyword @,48-57,_,192-255
+  syn match	freebasicIdentifier		"\<\h\w*\>"
+  syn match	freebasicGenericFunction	"\<\h\w*\>\ze\s*("
+endif
 "
-"	Function list
+"	This list of keywords is taken directly from the FreeBASIC
+"	user's guide as presented by the FreeBASIC online site.
 "
-syn keyword	freebasicTodo		contained TODO
+syn keyword	freebasicArrays			ERASE LBOUND PRESERVE REDIM UBOUND
+
+" array.bi
+syn keyword	freebasicArrays			ARRAYLEN ARRAYSIZE
+if s:lang == "fb"
+  syn keyword	freebasicArrays			ArrayConstDescriptorPtr ArrayDescriptorPtr FBARRAY
+endif
+
+if s:lang == "qb"
+  syn keyword	freebasicAsm			__ASM
+  syn match	freebasicAsm			"\<end\s\+__asm\>"
+else
+  syn keyword	freebasicAsm			ASM
+  syn match	freebasicAsm			"\<end\s\+asm\>"
+endif
+
+if s:lang == "qb"
+  syn keyword	freebasicBitManipulation	__BIT __BITRESET __BITSET __HIBYTE __HIWORD __LOBYTE __LOWORD
+else
+  syn keyword	freebasicBitManipulation	BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD
+endif
+
+if s:lang != "fb"
+  syn keyword	freebasicCompilerSwitches	DEFDBL DEFINT DEFLNG DEFSNG DEFSTR
+endif
+if s:lang == "qb"
+  syn keyword	freebasicCompilerSwitches	__DEFBYTE __DEFLONGINT __DEFSHORT __DEFUBYTE __DEFUINT __DEFULONGINT __DEFUSHORT
+elseif s:lang == "fblite" || s:lang == "deprecated"
+  syn keyword	freebasicCompilerSwitches	DEFBYTE DEFLONGINT DEFSHORT DEFUBYTE DEFUINT DEFUILONGINT DEFUSHORT
+endif
+
+syn match	freebasicCompilerSwitches	"\<option\s\+\%(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|GOSUB\|NOGOSUB\)\>"
+syn match	freebasicCompilerSwitches	"\<option\s\+\%(NOKEYWORD\|PRIVATE\|STATIC\)\>"
+
+syn keyword	freebasicData			DATA READ RESTORE
+
+syn keyword	freebasicProgramFlow		EXIT GOTO RETURN SLEEP
+syn match	freebasicProgramFlow		"\<end\>"
+if s:lang == "qb"
+  syn keyword	freebasicProgramFlow		__SLEEP
+endif
+if s:lang == "fblite" || s:lang == "qb"
+  syn keyword	freebasicProgramFlow		GOSUB
+endif
+if s:lang == "fb" || s:lang == "deprecated"
+  syn keyword	freebasicProgramFlow		SCOPE
+  syn match	freebasicProgramFlow		"\<end\s\+scope\>"
+endif
+
+if s:lang == "fblite" || s:lang == "qb"
+  syn region	freebasicConditional		matchgroup=freebasicConditional start="\<on\>" end="\<gosub\>" transparent
+  syn region	freebasicConditional		matchgroup=freebasicConditional start="\<on\>" end="\<goto\>"  transparent
+endif
+syn keyword	freebasicConditional		IF THEN ELSE ELSEIF
+if s:lang == "qb"
+  syn keyword	freebasicConditional		__IIF __WITH
+  syn match	freebasicConditional		"\<end\s\+__with\>"
+else
+  syn keyword	freebasicConditional		IIF WITH
+  syn match	freebasicConditional		"\<end\s\+with\>"
+endif
+syn match	freebasicConditional		"\<end\s\+if\>"
+syn match	freebasicConditional		"\<select\s\+case\>"
+syn match	freebasicConditional		"\<case\>"
+syn match	freebasicConditional		"\<case\s\+is\>"
+syn match	freebasicConditional		"\<end\s\+select\>"
+
+syn keyword	freebasicConsole		BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB USING VIEW WIDTH
+syn match	freebasicConsole		"?"
+
+syn keyword	freebasicDataTypes		SINGLE DOUBLE INTEGER LONG
+syn match	freebasicDataTypes		"\<string\>"
+syn keyword	freebasicDataTypes		AS DIM CONST ENUM SHARED TYPE
+syn match	freebasicDataTypes		"\<end\s\+enum\>"
+syn match	freebasicDataTypes		"\<end\s\+type\>"
+if s:lang == "qb"
+  syn keyword	freebasicDataTypes		__BOOLEAN __BYTE __LONGINT __SHORT __UBYTE __UINTEGER __ULONG __ULONGINT __UNSIGNED __USHORT __ZSTRING
+  syn match	freebasicDataTypes		"\<__WSTRING\>"
+  syn keyword	freebasicDataTypes		__EXPLICIT __EXTENDS __IMPLEMENTS __OBJECT __POINTER __PTR __SIZEOF __TYPEOF
+  syn keyword	freebasicDataTypes		__UNION
+  syn match	freebasicDataTypes		"\<end\s\+__union\>"
+else
+  syn keyword	freebasicDataTypes		BOOLEAN BYTE LONGINT SHORT UBYTE UINTEGER ULONG ULONGINT UNSIGNED USHORT ZSTRING
+  syn match	freebasicDataTypes		"\<WSTRING\>"
+  syn keyword	freebasicDataTypes		EXPLICIT EXTENDS IMPLEMENTS OBJECT POINTER PTR SIZEOF TYPEOF
+  syn keyword	freebasicDataTypes		UNION
+  syn match	freebasicDataTypes		"\<end\s\+union\>"
+endif
+if s:lang == "fb"
+  syn keyword	freebasicDataTypes		BASE CLASS THIS VAR
+endif
+
+if s:lang == "qb"
+  syn match	freebasicDateTime		"\<\%(date\|time\)\$"
+elseif s:lang == "fblite" || s:lang == "deprecated"
+  syn match	freebasicDateTime		"\<\%(date\|time\)\>\$\="
+else " fb
+  syn keyword	freebasicDateTime		DATE TIME
+endif
+syn keyword	freebasicDateTime		SETDATE SETTIME
+
+" datetime.bi
+syn keyword	freebasicDateTime		DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR ISDATE MINUTE
+syn keyword	freebasicDateTime		MONTH MONTHNAME NOW SECOND TIMESERIAL TIMEVALUE
+syn keyword	freebasicDateTime		TIMER YEAR WEEKDAY WEEKDAYNAME
+
+syn keyword	freebasicDebug			STOP
+if s:lang == "qb"
+  syn keyword	freebasicDebug			__ASSERT __ASSERTWARN
+else
+  syn keyword	freebasicDebug			ASSERT ASSERTWARN
+endif
+
+syn keyword	freebasicErrorHandling		ERR ERL ERROR
+if s:lang == "qb"
+  syn keyword	freebasicErrorHandling		__ERFN __ERMN
+  syn match	freebasicErrorHandling		"\<on\s\+error\>"
+else
+  syn keyword	freebasicErrorHandling		ERFN ERMN
+  syn match	freebasicErrorHandling		"\<on\s\+\%(local\s\+\)\=error\>"
+endif
+if s:lang != "fb"
+  syn match	freebasicErrorHandling		"\<resume\%(\s\+next\)\=\>"
+endif
+
+syn match	freebasicFiles			"\<get\s\+#\>"
+syn match	freebasicFiles			"\<input\s\+#\>"
+syn match	freebasicFiles			"\<line\s\+input\s\+#\>"
+syn match	freebasicFiles			"\<put\s\+#\>"
+syn keyword	freebasicFiles			ACCESS APPEND BINARY CLOSE EOF FREEFILE INPUT LOC
+syn keyword	freebasicFiles			LOCK LOF OUTPUT RANDOM RESET SEEK UNLOCK WRITE
+syn match	freebasicFiles			"\<open\>"
+if s:lang == "qb"
+  syn keyword	freebasicFiles			__ENCODING
+else
+  syn keyword	freebasicFiles			ENCODING WINPUT
+  syn match	freebasicFiles			"\<open\s\+\%(cons\|err\|pipe\|scrn\)\>"
+endif
+
+" file.bi
+syn keyword	freebasicFiles			FILEATTR FILECOPY FILEDATETIME FILEEXISTS FILEFLUSH FILELEN FILESETEOF
+
+syn keyword	freebasicFunctions		ALIAS BYREF BYVAL CDECL DECLARE LIB NAKED PASCAL STATIC STDCALL
+syn match	freebasicFunctions		"\<option\ze\s*("
+
+if s:lang == "qb"
+  syn keyword	freebasicFunctions		__CVA_ARG __CVA_COPY __CVA_END __CVA_LIST __CVA_START
+  syn keyword	freebasicFunctions		__VA_ARG __VA_FIRST __VA_NEXT
+else
+  syn keyword	freebasicFunctions		CVA_ARG CVA_COPY CVA_END CVA_LIST CVA_START
+  syn keyword	freebasicFunctions		VA_ARG VA_FIRST VA_NEXT
+  syn keyword	freebasicFunctions		ANY OVERLOAD
+endif
+
+syn keyword	freebasicFunctions		FUNCTION SUB
+syn match	freebasicFunctions		"\<end\s\+function\>"
+syn match	freebasicFunctions		"\<end\s\+sub\>"
+
+if s:lang == "fb"
+  syn keyword	freebasicFunctions		ABSTRACT OVERRIDE VIRTUAL __THISCALL
+  syn keyword	freebasicFunctions		CONSTRUCTOR DESTRUCTOR OPERATOR PROPERTY
+  syn match	freebasicFunctions		"\<end\s\+constructor\>"
+  syn match	freebasicFunctions		"\<end\s\+destructor\>"
+  syn match	freebasicFunctions		"\<end\s\+operator\>"
+  syn match	freebasicFunctions		"\<end\s\+property\>"
+else
+  syn keyword	freebasicFunctions		CALL
+endif
+
+syn match	freebasicGraphics		"\<palette\s\+get\>"
+syn keyword	freebasicGraphics		ADD ALPHA BLOAD BSAVE CIRCLE CLS COLOR DRAW GET
+syn keyword	freebasicGraphics		LINE PAINT PALETTE PCOPY PMAP POINT
+syn keyword	freebasicGraphics		PRESET PSET PUT SCREEN
+syn keyword	freebasicGraphics		TRANS WINDOW
+if s:lang == "qb"
+  syn keyword	freebasicGraphics		__FLIP __IMAGECONVERTROW __IMAGECREATE __IMAGEDESTROY __IMAGEINFO __POINTCOORD
+  syn keyword	freebasicGraphics		__RGB __RGBA __SCREENCOPY __SCREENCONTROL __SCREENEVENT __SCREENGLPROC __SCREENINFO
+  syn keyword	freebasicGraphics		__SCREENLIST __SCREENLOCK __SCREENPTR __SCREENRES __SCREENSET __SCREENSYNC
+  syn keyword	freebasicGraphics		__SCREENUNLOCK __WINDOWTITLE
+else
+  syn keyword	freebasicGraphics		CUSTOM
+  syn keyword	freebasicGraphics		FLIP IMAGECONVERTROW IMAGECREATE IMAGEDESTROY IMAGEINFO POINTCOORD
+  syn keyword	freebasicGraphics		RGB RGBA SCREENCOPY SCREENCONTROL SCREENEVENT SCREENGLPROC SCREENINFO
+  syn keyword	freebasicGraphics		SCREENLIST SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC
+  syn keyword	freebasicGraphics		SCREENUNLOCK WINDOWTITLE
+endif
+
+if s:lang != "qb"
+  syn match	freebasicHardware		"\<open\s\+\%(com\|lpt\)\>"
+endif
+syn keyword	freebasicHardware		INP OUT WAIT LPOS LPRINT
+
+syn keyword	freebasicMath			ABS ATN COS EXP FIX FRAC INT LOG MOD RANDOMIZE RND SGN SIN SQR TAN
+
+if s:lang == "qb"
+  syn keyword	freebasicMath			__ACOS __ASIN __ATAN2
+else
+  syn keyword	freebasicMath			ACOS ASIN ATAN2
+endif
+
+if s:lang == "qb"
+  syn keyword	freebasicMemory			__ALLOCATE __CALLOCATE __DEALLOCATE __REALLOCATE
+else
+  syn keyword	freebasicMemory			ALLOCATE CALLOCATE DEALLOCATE REALLOCATE
+  syn keyword	freebasicMemory			PEEK POKE CLEAR FB_MEMCOPY FB_MEMCOPYCLEAR FB_MEMMOVE SWAP SADD
+  syn keyword	freebasicMemory			FIELD FRE
+endif
+
+syn keyword	freebasicMisc			LET TO
+if s:lang == "qb"
+  syn keyword freebasicMisc			__OFFSETOF
+else
+  syn keyword freebasicMisc			OFFSETOF
+endif
+
+syn keyword	freebasicModularizing		CHAIN COMMON
+if s:lang == "fb"
+  syn keyword	freebasicModularizing		EXTERN
+  syn match	freebasicModularizing		"\<end\s\+extern\>"
+  syn keyword	freebasicModularizing		PROTECTED
+endif
+if s:lang == "qb"
+  syn keyword	freebasicModularizing		__EXPORT __IMPORT __DYLIBFREE __DYLIBLOAD __DYLIBSYMBOL
+else
+  syn keyword	freebasicModularizing		EXPORT IMPORT DYLIBFREE DYLIBLOAD DYLIBSYMBOL
+  syn keyword	freebasicModularizing		PRIVATE PUBLIC
+  syn keyword	freebasicModularizing		NAMESPACE
+  syn match	freebasicModularizing		"\<end\s\+namespace\>"
+endif
+
+if s:lang != "qb"
+  syn keyword	freebasicMultithreading		MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT
+  syn keyword	freebasicMultithreading		CONDBROADCAST CONDCREATE CONDDESTROY CONDSIGNAL CONDWAIT
+  syn keyword	freebasicMultithreading		THREADCALL THREADDETACH THREADSELF
+endif
+
+syn keyword	freebasicShell			CHDIR KILL NAME MKDIR RMDIR RUN SETENVIRON
+if s:lang == "qb"
+  syn keyword	freebasicShell			__CURDIR __DIR __EXEC __EXEPATH
+  syn match	freebasicString			"\<\%(command\|environ\)\$"
+else
+  " fbio.bi
+  syn keyword	freebasicShell			ISREDIRECTED
+  syn keyword	freebasicShell			CURDIR DIR EXEC EXEPATH
+  syn match	freebasicString			"\<\%(command\|environ\)\>\$\="
+endif
+
+syn keyword	freebasicEnviron		SHELL SYSTEM
+
+syn keyword	freebasicLoops			FOR LOOP WHILE WEND DO STEP UNTIL NEXT
+if s:lang == "qb"
+  syn keyword	freebasicLoops			__CONTINUE
+else
+  syn keyword	freebasicLoops			CONTINUE
+endif
+"
+"	File numbers
+"
+syn match	freebasicFilenumber		"#\d\+"
+syn match	freebasicFilenumber		"#\a[[:alpha:].]*[%&!#]\="
+
+syn match	freebasicMetacommand		"$\s*\%(dynamic\|static\)"
+syn match	freebasicMetacommand		"$\s*include\s*\%(once\)\=\s*:\s*'[^']\+'"
+syn match	freebasicMetacommand		'$\s*include\s*\%(once\)\=\s*:\s*"[^"]\+"'
+syn match	freebasicMetacommand		'$\s*lang\s*:\s*"[^"]\+"'
+"
+"	Intrinsic defines
+"
+syn keyword	freebasicPredefined		__DATE__ __DATE_ISO__
+syn keyword	freebasicPredefined		__FB_64BIT__ __FB_ARGC__ __FB_ARG_COUNT__ __FB_ARG_EXTRACT__ __FB_ARG_LEFTOF__
+syn keyword	freebasicPredefined		__FB_ARG_RIGHTOF__ __FB_ARGV__ __FB_ARM__ __FB_ASM__ __FB_BACKEND__
+syn keyword	freebasicPredefined		__FB_BIGENDIAN__ __FB_BUILD_DATE__ __FB_BUILD_DATE_ISO__ __FB_BUILD_SHA1__
+syn keyword	freebasicPredefined		__FB_CYGWIN__ __FB_DARWIN__ __FB_DEBUG__ __FB_DOS__ __FB_ERR__ __FB_EVAL__
+syn keyword	freebasicPredefined		__FB_FPMODE__ __FB_FPU__ __FB_FREEBSD__ __FB_GCC__ __FB_GUI__ __FB_JOIN__
+syn keyword	freebasicPredefined		__FB_LANG__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__ __FB_MT__ __FB_NETBSD__
+syn keyword	freebasicPredefined		__FB_OPENBSD__ __FB_OPTIMIZE__ __FB_OPTION_BYVAL__ __FB_OPTION_DYNAMIC__
+syn keyword	freebasicPredefined		__FB_OPTION_ESCAPE__ __FB_OPTION_EXPLICIT__ __FB_OPTION_GOSUB__
+syn keyword	freebasicPredefined		__FB_OPTION_PRIVATE__ __FB_OUT_DLL__ __FB_OUT_EXE__ __FB_OUT_LIB__ __FB_OUT_OBJ__
+syn keyword	freebasicPredefined		__FB_PCOS__ __FB_PPC__ __FB_QUOTE__ __FB_SIGNATURE__ __FB_SSE__ __FB_UNIQUEID__
+syn keyword	freebasicPredefined		__FB_UNIQUEID_POP__ __FB_UNIQUEID_PUSH__ __FB_UNIX__ __FB_UNQUOTE__
+syn keyword	freebasicPredefined		__FB_VECTORIZE__ __FB_VER_MAJOR__ __FB_VER_MINOR__ __FB_VER_PATCH__ __FB_VERSION__
+syn keyword	freebasicPredefined		__FB_WIN32__ __FB_X86__ __FB_XBOX__
+syn keyword	freebasicPredefined		__FILE__ __FILE_NQ__ __FUNCTION__ __FUNCTION_NQ__
+syn keyword	freebasicPredefined		__LINE__ __PATH__ __TIME__
+"
+"	Preprocessor directives
+"
+syn match	freebasicInclude		"#\s*\%(inclib\|include\%(\s\+once\)\=\|libpath\)\>"
+
+syn match	freebasicPreProcessor		"#\s*assert\>"
+syn match	freebasicPreProcessor		"#\s*cmdline\>"
+syn match	freebasicPreProcessor		"#\s*\%(define\|undef\)\>"
+syn match	freebasicPreProcessor		"#\s*\%(if\|ifdef\|ifndef\|else\|elseif\|endif\)\>"
+syn match	freebasicPreProcessor		"#\s*\%(macro\|endmacro\)\>"
+syn match	freebasicPreProcessor		"#\s*error\>"
+syn match	freebasicPreProcessor		"#\s*lang\>"
+syn match	freebasicPreProcessor		"#\s*line\>"
+syn match	freebasicPreProcessor		"#\s*pragma\%(\s\+reserve\)\=\>"
+syn match	freebasicPreProcessor		"#\s*\%(print\|dynamic\|static\)\>"
+syn keyword	freebasicPreProcessor		DEFINED
+
+syn keyword	freebasicString			LEN
+syn keyword	freebasicString			ASC
+" string.bi
+syn keyword	freebasicString			FORMAT
+syn keyword	freebasicString			VAL
+syn keyword	freebasicString			CVD CVI CVL CVS
+syn keyword	freebasicString			INSTR
+syn keyword	freebasicString			LSET RSET
+
+if s:lang == "qb"
+  syn match	freebasicString			"\<string\$\ze\s*("
+  syn match	freebasicString			"\<__wstring\ze\s*("
+  syn match	freebasicString			"\<space\$"
+  syn keyword	freebasicString			__WSPACE
+  syn match	freebasicString			"\<chr\$"
+  syn keyword	freebasicString			__WCHR
+  syn keyword	freebasicString			__WBIN __WHEX __WOCT __WSTR
+  syn match	freebasicString			"\<\%(bin\|hex\|oct\|str\)\$"
+  syn keyword	freebasicString			__VALLNG __VALINT __VALUINT __VALULNG
+  syn match	freebasicString			"\<\%(mkd\|mki\|mkl\|mks\)\$"
+  syn keyword	freebasicString			__MKLONGINT __MKSHORT
+  syn keyword	freebasicString			__CVLONGINT __CVSHORT
+  syn match	freebasicString			"\<\%(left\|mid\|right\|lcase\|ucase\|ltrim\|rtrim\)\$"
+  syn keyword	freebasicString			__TRIM
+  syn keyword	freebasicString			__INSTRREV
+else
+  syn match	freebasicString			"\<string\$\=\ze\s*("
+  syn match	freebasicString			"\<wstring\ze\s*("
+  syn match	freebasicString			"\<space\>\$\="
+  syn keyword	freebasicString			WSPACE
+  syn match	freebasicString			"\<chr\>\$\="
+  syn keyword	freebasicString			WCHR
+  syn keyword	freebasicString			WBIN WHEX WOCT WSTR
+  syn match	freebasicString			"\<\%(bin\|hex\|oct\|str\)\>\$\="
+  syn keyword	freebasicString			VALLNG VALINT VALUINT VALULNG
+  syn match	freebasicString			"\<\%(mkd\|mki\|mkl\|mks\)\>\$\="
+  syn match	freebasicString			"\<\%(mklongint\|mkshort\)\>\$\="
+  syn keyword	freebasicString			CVLONGINT CVSHORT
+  syn match	freebasicString			"\<\%(left\|mid\|right\|lcase\|ucase\|ltrim\|rtrim\)\>\$\="
+  syn match	freebasicString			"\<trim\>\$\="
+  syn keyword	freebasicString			INSTRREV
+endif
+
+syn keyword	freebasicTypeCasting		CDBL CINT CLNG CSNG
+if s:lang == "qb"
+  syn keyword	freebasicTypeCasting		__CAST __CBOOL __CBYTE __CLNGINT __CPTR __CSHORT __CSIGN __CYBTE __CUINT __CULNG
+  syn keyword	freebasicTypeCasting		__CULNGINT __CUNSG __CUSHORT
+else
+  syn keyword	freebasicTypeCasting		CAST CBOOL CBYTE CLNGINT CPTR CSHORT CSIGN CUBYTE CUINT CULNG CULNGINT CUNSG CUSHORT
+endif
+
+syn match	freebasicUserInput		"\<line\s\+input\>"
+syn keyword	freebasicUserInput		INKEY INPUT
+if s:lang == "qb"
+  syn keyword	freebasicUserInput		__GETJOYSTICK __GETKEY __GETMOUSE __MULTIKEY __SETMOUSE STICK STRIG
+else
+  syn keyword	freebasicUserInput		GETJOYSTICK GETKEY GETMOUSE MULTIKEY SETMOUSE
+endif
+"
+"	Operators
+"
+" TODO: make these context sensitive to remove the overlap of common operators
+"     : alpha operators should probably always be highlighted
+"     -- DJK 20/11/19
+if s:lang == "qb"
+  syn match	freebasicArithmeticOperator	"\<\%(MOD\|__SHL\|__SHR\)\>"
+else
+  syn match	freebasicArithmeticOperator	"\<\%(MOD\|SHL\|SHR\)\>"
+endif
+syn match	freebasicBitwiseOperator	"\<\%(AND\|EQV\|IMP\|NOT\|OR\|XOR\)\>" " freebaseLogical?
+if s:lang == "qb"
+  syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|__SHL\|__SHR\)=\@=" " exclude trailing '='
+else
+  syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|SHL\|SHR\)=\@="
+endif
+syn match	freebasicShortcircuitOperator	"\<\%(ANDALSO\|ORELSE\)\>"
+if s:lang == "fb"
+  syn match	freebasicMemoryOperator		'\<\%(new\|delete\)\>'
+endif
+syn keyword	freebasicPointerOperator	STRPTR VARPTR
+if s:lang == "qb"
+  syn keyword	freebasicPointerOperator	__PROCPTR
+else
+  syn keyword	freebasicPointerOperator	PROCPTR
+endif
+syn match	freebasicTypeOperator		'\<is\>'
+syn match	freebasicTypeOperator		'\.' nextgroup=freebasicIdentifier skipwhite
+if s:lang == "fb"
+  syn match	freebasicTypeOperator		'->' nextgroup=freebasicIdentifier skipwhite
+endif
+
+if exists("freebasic_operators")
+  syn match	freebasicAssignmentOperator	"=>\=\|[-+&/\\*^]="
+  if s:lang == "qb"
+    syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|__SHL\|__SHR\)=" " include trailing '='
+  else
+    syn match	freebasicAssignmentOperator	"\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|SHL\|SHR\)="
+  endif
+  syn match	freebasicArithmeticOperator	"[-+&/\\*^]"
+  " syn match	freebasicIndexingOperator	"[[\]()]" " FIXME
+  syn match	freebasicRelationalOperator	"=\|<>\|<=\|<\|>=\|>"
+  syn match	freebasicPreprocessorOperator	'\%(^\s*\)\@<!\%(##\|#\)\|[$!]"\@='
+  syn match	freebasicPointerOperator	'[@*]'
+  syn match	freebasicTypeOperator		'\.' nextgroup=freebasicIdentifier skipwhite
+  if s:lang == "fb"
+    syn match	freebasicTypeOperator		'->' nextgroup=freebasicIdentifier skipwhite
+  endif
+endif
+
+syn cluster	freebasicOperator		contains=freebasic.*Operator
 "
 "	Catch errors caused by wrong parenthesis
 "
-syn region	freebasicParen		transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
-syn match	freebasicParenError	")"
-syn match	freebasicInParen	contained "[{}]"
-syn cluster	freebasicParenGroup	contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
+" syn region	freebasicParen		transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
+" syn match	freebasicParenError	")"
+" syn match	freebasicInParen	contained "[{}]"
+" syn cluster	freebasicParenGroup	contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
 "
-"	Integer number, or floating point number without a dot and with "f".
+"	Integer number
 "
-syn region	freebasicHex			start="&h" end="\W"
-syn region	freebasicHexError		start="&h\x*[g-zG-Z]" end="\W"
-syn region	freebasicOctal			start="&o" end="\W"
-syn region	freebasicOctalError		start="&o[0-7]*[89a-zA-Z]" end="\W"
-syn region	freebasicBinary			start="&b" end="\W"
-syn region	freebasicBinaryError	start="&b[01]*[2-9a-zA-Z]" end="\W"
-syn match	freebasicInteger		"\<\d\+\(u\=l\=\|lu\|f\)\>"
+syn match	freebasicHexError	"&h\w*\>"
+syn match	freebasicOctalError	"&o\w*\>"
+syn match	freebasicBinaryError	"&b\w*\>"
+syn match	freebasicHex		"&h\x\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
+syn match	freebasicOctal		"&o\o\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
+syn match	freebasicBinary		"&b[10]\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
+syn match	freebasicInteger	"\<\d\+\%([%L&U]\|UL\|LL\|ULL\)\=\>"
 "
-"	Floating point number, with dot, optional exponent
+"	Floating point
+"	See: https://www.freebasic.net/forum/viewtopic.php?t=20323
 "
-syn match	freebasicFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
+"	Floating point number, with dot, optional exponent, optional suffix
 "
-"	Floating point number, starting with a dot, optional exponent
+syn match	freebasicFloat		"\<\d\+\.\d*\%([de][-+]\=\d*\)\=[f!#]\="
 "
-syn match	freebasicFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+"	Floating point number, starting with a dot, optional exponent, optional suffix
 "
-"	Floating point number, without dot, with exponent
+syn match	freebasicFloat		"\.\d\+\%([de][-+]\=\d*\)\=[f!#]\="
 "
-syn match	freebasicFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
+"	Floating point number, without dot, with optional exponent, optional suffix
 "
-"	Octal number
+syn match	freebasicFloat		"\<\d\+\%([de][-+]\=\d*\)[f!#]\="
 "
-syn case match
-syn match	freebasicOctal2			"\<0\o*\>"
-syn match	freebasicOctal2Error	"\<0\o*[89a-zA-Z]"
+"	Floating point number, without dot, without exponent, with suffix
 "
-"	String and Character contstants
-"
-syn region	freebasicString		start='"' end='"' contains=freebasicSpecial,freebasicTodo
-syn region	freebasicString		start="'" end="'" contains=freebasicSpecial,freebasicTodo
-"
-"	Comments
-"
-syn match	freebasicSpecial	contained "\\\\."
-syn region	freebasicComment	start="^rem" end="$" contains=freebasicSpecial,freebasicTodo
-syn region	freebasicComment	start=":\s*rem" end="$" contains=freebasicSpecial,freebasicTodo
-syn region	freebasicComment	start="\s*'" end="$" contains=freebasicSpecial,freebasicTodo
-syn region	freebasicComment	start="^'" end="$" contains=freebasicSpecial,freebasicTodo
-"
-"	Now do the comments and labels
-"
-syn match	freebasicLabel		"^\d"
-syn match	freebasicLabel		"\<^\w+:\>"
-syn region	freebasicLineNumber	start="^\d" end="\s"
+syn match	freebasicFloat		"\<\d\+[f!#]"
 "
 "	Create the clusters
 "
-syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicOctal2,freebasicBinary,freebasicInteger,freebasicFloat
-syn cluster	freebasicError		contains=freebasicHexError,freebasicOctalError,freebasicOctal2,freebasicBinary
+syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicBinary,freebasicInteger,freebasicFloat
+syn cluster	freebasicNumberError	contains=freebasicHexError,freebasicOctalError,freebasicBinaryError
 "
-"	Used with OPEN statement
+"	Booleans
 "
-syn match	freebasicFilenumber		"#\d\+"
-syn match	freebasicMathOperator	"[\+\-\=\|\*\/\>\<\%\()[\]]" contains=freebasicParen
+if s:lang != "qb"
+  syn keyword	freebasicBoolean	TRUE FALSE
+endif
+"
+"
+"	String and escape sequences
+"
+syn match	freebasicSpecial	contained "\\."
+syn match	freebasicSpecial	contained "\\\d\{1,3}"
+syn match	freebasicSpecial	contained "\\&h\x\{1,2}"
+syn match	freebasicSpecial	contained "\\&o\o\{1,3}"
+syn match	freebasicSpecial	contained "\\&b[01]\{1,8}"
+syn match	freebasicSpecial	contained "\\u\x\{1,4}"
+syn region	freebasicString		start='"'     end='"' " TODO: Toggle contains on Option Escape in fblite and qb? -- DJK 20/11/19
+syn region	freebasicString		start='!\zs"' end='"' contains=freebasicSpecial
+syn region	freebasicString		start='$\zs"' end='"'
+"
+"	Line labels
+"
+if s:lang =~# '\<\%(qb\|fblite\)\>'
+  syn match	freebasicLineLabel	"^\s*\zs\h\%(\w\|\.\)*\ze\s*:"
+else
+  syn match	freebasicLineLabel	"^\s*\zs\h\w*\ze\s*:"
+endif
+syn match	freebasicLineNumber	"^\s*\zs\d\+"
+"
+"	Line continuations
+"
+" syn match	freebasicLineContinuation	"\<_\>"	nextgroup=freebasicComment,freebasicPostLineContinuation skipwhite
+syn keyword	freebasicLineContinuation	_	nextgroup=freebasicComment,freebasicPostLineContinuation skipwhite
+syn match	freebasicPostLineContinuation	".*"	contained
+"
+"
+" Type suffixes
+if exists("freebasic_type_suffixes") && s:lang =~# '\<\%(qb\|fblite\)\>'
+  syn match freebasicTypeSuffix "\h\%(\w\|.\)*\zs[$%&!#]"
+endif
+"
+"	Comments
+"
+syn keyword	freebasicTodo			TODO FIXME XXX NOTE      contained
+syn region	freebasicComment		start="\<rem\>" end="$"  contains=freebasicTodo,@Spell,freebasicMetacommand
+syn region	freebasicComment		start="'"	end="$"  contains=freebasicTodo,@Spell,freebasicMetacommand
+syn region	freebasicDoubleComment		start="''"	end="$"  contains=freebasicTodo,@Spell
+
+if !exists("freebasic_no_comment_fold")
+  syn region	freebasicMultilineComment	start="/'"	end="'/" contains=freebasicTodo,@Spell,freeBasicMultilineComment fold keepend extend
+  syn region	freebasicMultilineComment2	start="^\s*'.*\n\%(\s*'\)\@=" end="^\s*'.*\n\%(\s*'\)\@!" contains=freebasicComment,freebasicDoubleComment keepend fold
+else
+  syn region	freebasicMultilineComment	start="/'"	end="'/" contains=freebasicTodo,@Spell,freeBasicMultilineComment
+endif
+
+syn case match
+
+syn sync linebreaks=1
+
 "
 "	The default methods for highlighting.  Can be overridden later
 "
 hi def link freebasicArrays		StorageClass
+hi def link freebasicAsm		Special
 hi def link freebasicBitManipulation	Operator
-hi def link freebasicCompilerSwitches	PreCondit
+hi def link freebasicBoolean		Boolean
+if s:lang == "fb"
+  hi def link freebasicCompilerSwitches	freebasicUnsupportedError
+else
+  hi def link freebasicCompilerSwitches	PreCondit
+endif
 hi def link freebasicConsole		Special
+hi def link freebasicData		Special
 hi def link freebasicDataTypes		Type
 hi def link freebasicDateTime		Type
 hi def link freebasicDebug		Special
 hi def link freebasicErrorHandling	Special
+hi def link freebasicFilenumber		Special
 hi def link freebasicFiles		Special
 hi def link freebasicFunctions		Function
 hi def link freebasicGraphics		Function
 hi def link freebasicHardware		Special
-hi def link freebasicLogical		Conditional
+hi def link freebasicLoops		Repeat
 hi def link freebasicMath		Function
+if s:lang == "fb"
+  hi def link freebasicMetacommand	freebasicUnsupportedError
+else
+  hi def link freebasicMetacommand	SpecialComment
+endif
 hi def link freebasicMemory		Function
 hi def link freebasicMisc		Special
 hi def link freebasicModularizing	Special
@@ -240,18 +620,55 @@
 hi def link freebasicTypeCasting	Type
 hi def link freebasicUserInput		Statement
 hi def link freebasicComment		Comment
+hi def link freebasicDoubleComment	Comment
+hi def link freebasicMultilineComment	Comment
 hi def link freebasicConditional	Conditional
 hi def link freebasicError		Error
 hi def link freebasicIdentifier		Identifier
 hi def link freebasicInclude		Include
 hi def link freebasicGenericFunction	Function
-hi def link freebasicLabel		Label
-hi def link freebasicLineNumber		Label
+hi def link freebasicLineContinuation	Special
+hi def link freebasicLineLabel		LineNr
+if s:lang == "fb"
+  hi def link freebasicLineNumber	freebasicUnsupportedError
+else
+  hi def link freebasicLineNumber	LineNr
+endif
 hi def link freebasicMathOperator	Operator
-hi def link freebasicNumber		Number
+
+hi def link freebasicHex		Number
+hi def link freebasicOctal		Number
+hi def link freebasicBinary		Number
+hi def link freebasicInteger		Number
+hi def link freebasicFloat		Float
+
+hi def link freebasicHexError		Error
+hi def link freebasicOctalError		Error
+hi def link freebasicBinaryError	Error
+
+hi def link freebasicAssignmentOperator		Operator
+hi def link freebasicArithmeticOperator		Operator
+hi def link freebasicIndexingOperator		Operator
+hi def link freebasicRelationalOperator		Operator
+hi def link freebasicBitwiseOperator		Operator
+hi def link freebasicShortcircuitOperator	Operator
+hi def link freebasicPreprocessorOperator	Operator
+hi def link freebasicPointerOperator		Operator
+if exists("freebasic_operators")
+  hi def link freebasicTypeOperator		Operator
+endif
+hi def link freebasicMemoryOperator		Operator
+
+hi def link freebasicSpaceError			Error
+
 hi def link freebasicSpecial		Special
 hi def link freebasicTodo		Todo
 
+hi def link freebasicUnsupported	freebasicUnsupportedError
+hi def link freebasicUnsupportedError	Error
+
+unlet s:lang
+
 let b:current_syntax = "freebasic"
 
-" vim: ts=8
+" vim: ts=8 tw=132 fdm=marker
