runtime(yaml): fix wrong order of undo_ftplugin suboptions

This commit fixes the following error message:
```
Compiler not supported: make inc< sw< sts<
```

1. orginal value: `setl com< cms< et< fo<| compiler make inc< sw< sts<`
2. correct value: `setl com< cms< et< fo< inc< sw< sts< | compiler make`

While at it, let's also document the g:yaml_recommended_style variable.

closes: #17179

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Vincent Law <vlaw@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 77bf5f3..018dbca 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*	For Vim version 9.1.  Last change: 2025 Apr 19
+*filetype.txt*	For Vim version 9.1.  Last change: 2025 Apr 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1043,6 +1043,13 @@
 The mappings can be disabled with: >
 	let g:no_vim_maps = 1
 
+YAML							*ft-yaml-plugin*
+By default, the YAML filetype plugin enables the following options: >
+	setlocal shiftwidth=2 softtabstop=2
+
+To disable this, set the following variable: >
+	let g:yaml_recommended_style = 0
+
 
 ZIG							*ft-zig-plugin*
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index d51afbf..6369770 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7531,6 +7531,7 @@
 ft-xml-syntax	syntax.txt	/*ft-xml-syntax*
 ft-xpm-syntax	syntax.txt	/*ft-xpm-syntax*
 ft-yaml-indent	indent.txt	/*ft-yaml-indent*
+ft-yaml-plugin	filetype.txt	/*ft-yaml-plugin*
 ft-yaml-syntax	syntax.txt	/*ft-yaml-syntax*
 ft-zig-plugin	filetype.txt	/*ft-zig-plugin*
 ft-zimbu-plugin	filetype.txt	/*ft-zimbu-plugin*
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index 4e12350..12036a8 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,7 +1,8 @@
 " Vim filetype plugin file
 " Language:             YAML (YAML Ain't Markup Language)
 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se> (inactive)
-" Last Change:  2024 Oct 04
+" Last Change:          2024 Oct 04
+" 2025 Apr 22 by Vim project re-order b:undo_ftplugin (#17179)
 
 if exists("b:did_ftplugin")
   finish
@@ -16,20 +17,25 @@
 setlocal comments=:# commentstring=#\ %s expandtab
 setlocal formatoptions-=t formatoptions+=croql
 
-" rime input method engine uses `*.custom.yaml` as its config files
-if expand('%:r:e') ==# 'custom'
-  if !exists('current_compiler')
-    compiler rime_deployer
-    let b:undo_ftplugin ..= "| compiler make"
-  endif
-  setlocal include=__include:\\s*
-  let b:undo_ftplugin ..= " inc<"
-endif
-
-if !exists("g:yaml_recommended_style") || g:yaml_recommended_style != 0
+if get(g:, "yaml_recommended_style",1)
   let b:undo_ftplugin ..= " sw< sts<"
   setlocal shiftwidth=2 softtabstop=2
 endif
 
+" rime input method engine(https://rime.im/)
+" uses `*.custom.yaml` as its config files
+if expand('%:r:e') ==# 'custom'
+  " `__include` command in `*.custom.yaml`
+  " see: https://github.com/rime/home/wiki/Configuration#%E5%8C%85%E5%90%AB
+  setlocal include=__include:\\s*
+  let b:undo_ftplugin ..= " inc<"
+
+  if !exists('current_compiler')
+    compiler rime_deployer
+    let b:undo_ftplugin ..= " | compiler make"
+  endif
+endif
+
+
 let &cpo = s:cpo_save
 unlet s:cpo_save