runtime(gleam): Update ftplugin, use recommended_style config variable

Wrap the setting of basic whitespace formatting options in a conditional
block, following the de facto standard.

Setting 'et', 'sts' and 'sw' can be disabled by setting
"gleam_recommended_style" to false.

Follow up to PR #17086.

closes: #17128

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 761d667..c0bf1e6 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 15
+*filetype.txt*	For Vim version 9.1.  Last change: 2025 Apr 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -662,6 +662,16 @@
 The `:Cycle` command is also mapped to the CTRL-A and CTRL-X keys.
 For details, see `git-rebase --help`.
 
+GLEAM						*ft-gleam-plugin*
+
+By default the following options are set for the recommended gleam style: >
+
+	setlocal expandtab shiftwidth=2 softtabstop=2
+
+To disable this behavior, set the following variable in your vimrc: >
+
+	let g:gleam_recommended_style = 0
+
 GO							*ft-go-plugin*
 
 By default the following options are set, based on Golang official docs: >
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 415b675..961bde3 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7388,6 +7388,7 @@
 ft-gdscript-plugin	filetype.txt	/*ft-gdscript-plugin*
 ft-gitcommit-plugin	filetype.txt	/*ft-gitcommit-plugin*
 ft-gitrebase-plugin	filetype.txt	/*ft-gitrebase-plugin*
+ft-gleam-plugin	filetype.txt	/*ft-gleam-plugin*
 ft-go-plugin	filetype.txt	/*ft-go-plugin*
 ft-gprof-plugin	filetype.txt	/*ft-gprof-plugin*
 ft-groff-syntax	syntax.txt	/*ft-groff-syntax*
diff --git a/runtime/ftplugin/gleam.vim b/runtime/ftplugin/gleam.vim
index 5187d4d..70958c7 100644
--- a/runtime/ftplugin/gleam.vim
+++ b/runtime/ftplugin/gleam.vim
@@ -2,7 +2,7 @@
 " Language:            Gleam
 " Maintainer:          Kirill Morozov <kirill@robotix.pro>
 " Previous Maintainer: Trilowy (https://github.com/trilowy)
-" Last Change:         2025-04-12
+" Last Change:         2025 Apr 16
 
 if exists('b:did_ftplugin')
   finish
@@ -11,11 +11,15 @@
 
 setlocal comments=://,:///,:////
 setlocal commentstring=//\ %s
-setlocal expandtab
 setlocal formatprg=gleam\ format\ --stdin
-setlocal shiftwidth=2
-setlocal softtabstop=2
 
-let b:undo_ftplugin = "setlocal com< cms< fp< et< sw< sts<"
+let b:undo_ftplugin = "setlocal com< cms< fp<"
+
+if get(g:, "gleam_recommended_style", 1)
+  setlocal expandtab
+  setlocal shiftwidth=2
+  setlocal softtabstop=2
+  let b:undo_ftplugin ..= " | setlocal et< sw< sts<"
+endif
 
 " vim: sw=2 sts=2 et