runtime(plsql): move fold option from syntax to filetype plugin

closes: #16838

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Lee Lindley <lee.lindley@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index f47bbbb..27c52f5 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -250,6 +250,7 @@
 runtime/ftplugin/pdf.vim		@tpope
 runtime/ftplugin/perl.vim		@petdance @dkearns
 runtime/ftplugin/php.vim		@dkearns
+runtime/ftplugin/plsql.vim		@lee-lindley
 runtime/ftplugin/pod.vim		@petdance @dkearns
 runtime/ftplugin/poefilter.vim		@ObserverOfTime
 runtime/ftplugin/postscr.vim		@mrdubya
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index a2c757f..39402ee 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 Feb 25
+*filetype.txt*	For Vim version 9.1.  Last change: 2025 Mar 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -874,6 +874,12 @@
 
 These maps can be disabled with >
 	:let g:no_pdf_maps = 1
+
+PLSQL							*ft-plsql-plugin*
+
+To enable syntax folding in PL/SQL filetypes, set the following variable: >
+
+	:let g:plsql_fold = 1
 <
 
 PYTHON						*ft-python-plugin* *PEP8*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 6aee799..9c6c9e1 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7419,6 +7419,7 @@
 ft-php3-syntax	syntax.txt	/*ft-php3-syntax*
 ft-phtml-syntax	syntax.txt	/*ft-phtml-syntax*
 ft-plaintex-syntax	syntax.txt	/*ft-plaintex-syntax*
+ft-plsql-plugin	filetype.txt	/*ft-plsql-plugin*
 ft-posix-syntax	syntax.txt	/*ft-posix-syntax*
 ft-postscr-syntax	syntax.txt	/*ft-postscr-syntax*
 ft-ppwiz-syntax	syntax.txt	/*ft-ppwiz-syntax*
diff --git a/runtime/ftplugin/plsql.vim b/runtime/ftplugin/plsql.vim
new file mode 100755
index 0000000..7fcc5d7
--- /dev/null
+++ b/runtime/ftplugin/plsql.vim
@@ -0,0 +1,17 @@
+" Vim ftplugin file
+" Language: Oracle Procedural SQL (PL/SQL)
+" Maintainer: Lee Lindley (lee dot lindley at gmail dot com)
+" Previous Maintainer: Jeff Lanzarotta (jefflanzarotta at yahoo dot com)
+" Previous Maintainer: C. Laurence Gonsalves (clgonsal@kami.com)
+" URL: https://github.com/lee-lindley/vim_plsql_syntax
+" Last Change: Feb 19, 2025
+" History:  Enno Konfekt move handling of optional syntax folding from syntax
+"               file to ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+if get(g:,"plsql_fold",0) == 1
+    setlocal foldmethod=syntax
+    let b:undo_ftplugin = "setl fdm< "
+endif
diff --git a/runtime/syntax/plsql.vim b/runtime/syntax/plsql.vim
index 9b4df09..7e44e83 100644
--- a/runtime/syntax/plsql.vim
+++ b/runtime/syntax/plsql.vim
@@ -4,7 +4,7 @@
 " Previous Maintainer: Jeff Lanzarotta (jefflanzarotta at yahoo dot com)
 " Previous Maintainer: C. Laurence Gonsalves (clgonsal@kami.com)
 " URL: https://github.com/lee-lindley/vim_plsql_syntax
-" Last Change: Sep 19, 2022   
+" Last Change: Mar 09, 2025   
 " History  Carsten Czarski (carsten dot czarski at oracle com)
 "               add handling for typical SQL*Plus commands (rem, start, host, set, etc)
 "               add error highlight for non-breaking space
@@ -694,7 +694,6 @@
 syn region plsqlSqlPlusRunFile  start="^\(@\|@@\)" skip="\\$" end="$" keepend extend
 
 if get(g:,"plsql_fold",0) == 1
-    setlocal foldmethod=syntax
     syn sync fromstart
 
     syn cluster plsqlProcedureGroup contains=plsqlProcedure