patch 9.1.0013: Modula2 filetype support lacking

Problem:  Modula2 filetype support lacking
Solution: Improve the Modula-2 runtime support, add additional modula2
          dialects, add compiler plugin, update syntax highlighting,
          include syntax tests, update Makefiles (Doug Kearns)

closes: #6796
closes: #8115

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Benjamin Kowarsch <trijezdci@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/autoload/modula2.vim b/runtime/autoload/modula2.vim
new file mode 100644
index 0000000..284dc27
--- /dev/null
+++ b/runtime/autoload/modula2.vim
@@ -0,0 +1,31 @@
+" Vim filetype plugin file
+" Language:	Modula-2
+" Maintainer:	Doug Kearns <dougkearns@gmail.com>
+" Last Change:	2024 Jan 04
+
+" Dialect can be one of pim, iso, r10
+function modula2#GetDialect() abort
+
+  if exists("b:modula2.dialect")
+    return b:modula2.dialect
+  endif
+
+  if exists("g:modula2_default_dialect")
+    let dialect = g:modula2_default_dialect
+  else
+    let dialect = "pim"
+  endif
+
+  return dialect
+endfunction
+
+function modula2#SetDialect(dialect, extension = "") abort
+  if exists("b:modula2")
+    unlockvar! b:modula2
+  endif
+
+  let b:modula2 = #{ dialect: a:dialect, extension: a:extension }
+  lockvar! b:modula2
+endfunction
+
+" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: