runtime(compiler): add vimdoc

closes: #14459

https://github.com/google/vimdoc generates vim help files from vimscript files

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/compiler/vimdoc.vim b/runtime/compiler/vimdoc.vim
new file mode 100644
index 0000000..d83b924
--- /dev/null
+++ b/runtime/compiler/vimdoc.vim
@@ -0,0 +1,19 @@
+" Vim Compiler File
+" Language:             vimdoc
+" Maintainer:           Wu, Zhenyu <wuzhenyu@ustc.edu>
+" Latest Revision:      2024-04-09
+"
+" you can get it by `pip install vimdoc` or the package manager of your distribution.
+
+if exists('b:current_compiler')
+  finish
+endif
+let b:current_compiler = 'vimdoc'
+
+let s:save_cpoptions = &cpoptions
+set cpoptions&vim
+
+CompilerSet makeprg=vimdoc
+
+let &cpoptions = s:save_cpoptions
+unlet s:save_cpoptions
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index a8636f4..e28beb9 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -15,6 +15,8 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
+compiler vimdoc
+
 if !exists('*VimFtpluginUndo')
   func VimFtpluginUndo()
     setl fo< isk< com< tw< commentstring< include< define<