Commit: runtime(sml): add filetype plugin, move options from indent to ftplugin

2 views
Skip to first unread message

Christian Brabandt

unread,
Nov 5, 2025, 5:14:38 PMNov 5
to vim...@googlegroups.com
runtime(sml): add filetype plugin, move options from indent to ftplugin

Commit: https://github.com/vim/vim/commit/7dfdc7f6cb802d5283e2e0eedb87932b9cd2cb33
Author: tocariimaa <tocar...@pissmail.com>
Date: Wed Nov 5 20:49:26 2025 +0000

runtime(sml): add filetype plugin, move options from indent to ftplugin

closes: https://github.com/vim/vim/issues/18680

Signed-off-by: tocariimaa <tocar...@pissmail.com>
Signed-off-by: Doug Kearns <dougk...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index d904e1c95..b7e22e202 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -286,6 +286,7 @@ runtime/ftplugin/sed.vim @dkearns
runtime/ftplugin/sh.vim @dkearns
runtime/ftplugin/shaderslang.vim @mTvare6
runtime/ftplugin/slint.vim @ribru17
+runtime/ftplugin/sml.vim @tocariimaa
runtime/ftplugin/snakemake.vim @ribru17
runtime/ftplugin/solidity.vim @coti-z
runtime/ftplugin/solution.vim @dkearns
diff --git a/runtime/ftplugin/sml.vim b/runtime/ftplugin/sml.vim
new file mode 100644
index 000000000..f4a2f4ecd
--- /dev/null
+++ b/runtime/ftplugin/sml.vim
@@ -0,0 +1,39 @@
+" Vim filetype plugin file
+" Language: SML
+" Filenames: *.sml *.sig
+" Maintainer: tocariimaa <tocar...@firemail.cc>
+" Last Change: 2025 Nov 04
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = 'setl com< cms< fo<'
+
+setlocal formatoptions+=croql formatoptions-=t
+setlocal commentstring=(*\ %s\ *)
+setlocal comments=sr:(*,mb:*,ex:*)
+
+if exists('loaded_matchit')
+ let b:match_ignorecase = 0
+ let b:match_words = '\<\%(abstype\|let\|local\|sig\|struct\)\>:\<\%(in\|with\)\>:\<end\>'
+ let b:undo_ftplugin ..= ' | unlet! b:match_ignorecase b:match_words'
+endif
+
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "SML Source Files (*.sml) *.sml
" ..
+ \ "SML Signature Files (*.sig) *.sig
"
+ if has("win32")
+ let b:browsefilter ..= "All Files (*.*) *
"
+ else
+ let b:browsefilter ..= "All Files (*) *
"
+ endif
+ let b:undo_ftplugin ..= " | unlet! b:browsefilter"
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/indent/sml.vim b/runtime/indent/sml.vim
index a0b0c3e91..189452f47 100644
--- a/runtime/indent/sml.vim
+++ b/runtime/indent/sml.vim
@@ -1,17 +1,18 @@
" Vim indent file
" Language: SML
-" Maintainer: Saikat Guha <sg...@cornell.edu>
-" Hubert Chao <hc...@cornell.edu>
+" Maintainer: Saikat Guha <sg...@cornell.edu>
+" Hubert Chao <hc...@cornell.edu>
" Original OCaml Version:
-" Jean-Francois Yuen <jfy...@ifrance.com>
+" Jean-Francois Yuen <jfy...@ifrance.com>
" Mike Leary <le...@nwlink.com>
" Markus Mottl <mar...@oefai.at>
" OCaml URL: http://www.oefai.at/~markus/vim/indent/ocaml.vim
" Last Change: 2022 Apr 06
-" 2002 Nov 06 - Some fixes (JY)
+" 2002 Nov 06 - Some fixes (JY)
" 2002 Oct 28 - Fixed bug with indentation of ']' (MM)
" 2002 Oct 22 - Major rewrite (JY)
-" 2022 April: b:undo_indent added by Doug Kearns
+" 2022 Apr 08 - b:undo_indent added by Doug Kearns
+" 2025 Nov 04 - Move comments and formatoptions to ftplugin

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -29,12 +30,6 @@ setlocal shiftwidth=2

let b:undo_indent = "setl et< inde< indk< lisp< si< sw< tw<"

-" Comment formatting
-if (has("comments"))
- set comments=sr:(*,mb:*,ex:*)
- set fo=cqort
-endif
-
" Only define the function once.
"if exists("*GetSMLIndent")
"finish
Reply all
Reply to author
Forward
0 new messages