diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index 6173d8b..43f2eb6 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -1,52 +1,54 @@
-" Script to define the syntax menu in synmenu.vim
-" Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2019 Dec 07
+vim9script
 
-" This is used by "make menu" in the src directory.
+# Script to define the syntax menu in synmenu.vim
+# Maintainer:	Bram Moolenaar <Bram@vim.org>
+# Last Change:	2022 Feb 04
+
+# This is used by "make menu" in the src directory.
 edit <sfile>:p:h/synmenu.vim
 
-/The Start Of The Syntax Menu/+1,/The End Of The Syntax Menu/-1d
-let s:lnum = line(".") - 1
-call append(s:lnum, "")
-let s:lnum = s:lnum + 1
+:/The Start Of The Syntax Menu/+1,/The End Of The Syntax Menu/-1d
+var lnum = line(".") - 1
+call append(lnum, "")
+lnum += 1
 
-" Use the SynMenu command and function to define all menu entries
-command! -nargs=* SynMenu call <SID>Syn(<q-args>)
+# Use the SynMenu command and function to define all menu entries
+command! -nargs=* SynMenu call Syn(<q-args>)
 
-let s:cur_menu_name = ""
-let s:cur_menu_nr = 0
-let s:cur_menu_item = 0
-let s:cur_menu_char = ""
+var cur_menu_name = ""
+var cur_menu_nr = 0
+var cur_menu_item = 0
+var cur_menu_char = ""
 
-fun! <SID>Syn(arg)
-  " isolate menu name: until the first dot
-  let i = match(a:arg, '\.')
-  let menu_name = strpart(a:arg, 0, i)
-  let r = strpart(a:arg, i + 1, 999)
-  " isolate submenu name: until the colon
-  let i = match(r, ":")
-  let submenu_name = strpart(r, 0, i)
-  " after the colon is the syntax name
-  let syntax_name = strpart(r, i + 1, 999)
+def Syn(arg: string)
+  # isolate menu name: until the first dot
+  var i = match(arg, '\.')
+  var menu_name = strpart(arg, 0, i)
+  var r = strpart(arg, i + 1, 999)
+  # isolate submenu name: until the colon
+  i = match(r, ":")
+  var submenu_name = strpart(r, 0, i)
+  # after the colon is the syntax name
+  var syntax_name = strpart(r, i + 1, 999)
 
-  if s:cur_menu_name != menu_name
-    let s:cur_menu_name = menu_name
-    let s:cur_menu_nr = s:cur_menu_nr + 10
-    let s:cur_menu_item = 100
-    let s:cur_menu_char = submenu_name[0]
+  if cur_menu_name != menu_name
+    cur_menu_name = menu_name
+    cur_menu_nr += 10
+    cur_menu_item = 100
+    cur_menu_char = submenu_name[0]
   else
-    " When starting a new letter, insert a menu separator.
-    let c = submenu_name[0]
+    # When starting a new letter, insert a menu separator.
+    var c = submenu_name[0]
     if c != s:cur_menu_char
-      exe 'an 50.' . s:cur_menu_nr . '.' . s:cur_menu_item . ' &Syntax.' . menu_name . ".-" . c . '- <nul>'
-      let s:cur_menu_item = s:cur_menu_item + 10
-      let s:cur_menu_char = c
+      exe 'an 50.' .. s:cur_menu_nr .. '.' .. s:cur_menu_item .. ' &Syntax.' .. menu_name .. ".-" .. c .. '- <nul>'
+      cur_menu_item += 10
+      cur_menu_char = c
     endif
   endif
-  call append(s:lnum, 'an 50.' . s:cur_menu_nr . '.' . s:cur_menu_item . ' &Syntax.' . menu_name . "." . submenu_name . ' :cal SetSyn("' . syntax_name . '")<CR>')
-  let s:cur_menu_item = s:cur_menu_item + 10
-  let s:lnum = s:lnum + 1
-endfun
+  append(lnum, 'an 50.' .. s:cur_menu_nr .. '.' .. s:cur_menu_item .. ' &Syntax.' .. menu_name .. "." .. submenu_name .. ' :cal SetSyn("' .. syntax_name .. '")<CR>')
+  cur_menu_item += 10
+  lnum += 1
+enddef
 
 SynMenu AB.A2ps\ config:a2ps
 SynMenu AB.Aap:aap
@@ -676,6 +678,6 @@
 SynMenu WXYZ.Yacc:yacc
 SynMenu WXYZ.Zimbu:zimbu
 
-call append(s:lnum, "")
+append(lnum, "")
 
 wq
