runtime(sgf): Include sgf syntax script

Commit: 
https://github.com/vim/vim/commit/bcb8dacb6d945e5bd9b1ad42cc79c02fdea317ff
Author: Borys Lykah <[email protected]>
Date:   Mon Jun 1 20:36:45 2026 +0000

    runtime(sgf): Include sgf syntax script
    
    closes: https://github.com/vim/vim/issues/20380
    
    Signed-off-by: Borys Lykah <[email protected]>
    Signed-off-by: Doug Kearns <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 58a8f9456..fb7ebddf0 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -678,6 +678,7 @@ runtime/syntax/scala.vim                            
@derekwyatt
 runtime/syntax/scheme.vim                              @evhan
 runtime/syntax/scss.vim                                        @tpope
 runtime/syntax/sed.vim                                 @dkearns
+runtime/syntax/sgf.vim                                 @lykahb
 runtime/syntax/shaderslang.vim                         @mTvare6
 runtime/syntax/shared/debversions.vim                  @jamessan
 runtime/syntax/shared/hgcommitDiff.vim                 @vegerot
diff --git a/runtime/syntax/sgf.vim b/runtime/syntax/sgf.vim
new file mode 100644
index 000000000..48ee1ba89
--- /dev/null
+++ b/runtime/syntax/sgf.vim
@@ -0,0 +1,41 @@
+" Vim syntax file
+" Language:    Smart Game Format
+" Maintainer:  Borys Lykah
+" Last Change: 2026 May 30
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+syn match sgfDelimiter "[();]"
+
+syn keyword sgfMoveProp B W nextgroup=sgfValue skipwhite
+syn keyword sgfSetupProp AB AE AW PL nextgroup=sgfValue skipwhite
+syn keyword sgfMarkupProp AR CR DD DM FG GB GW HO LB LN MA SL SQ TR UC VW 
nextgroup=sgfValue skipwhite
+syn keyword sgfRootProp AP CA FF GM ST SZ nextgroup=sgfValue skipwhite
+syn keyword sgfGameInfoProp AN BR BT CP DT EV GC GN HA KM ON OT PB PC PW RE RO 
RU SO TM US WR WT nextgroup=sgfValue skipwhite
+syn keyword sgfCommentProp C nextgroup=sgfCommentValue skipwhite
+
+syn match sgfProperty "\<[A-Za-z]\+\ze\s*\[" nextgroup=sgfValue skipwhite
+
+syn match sgfEscape "\." contained
+syn region sgfValue contained matchgroup=sgfBracket start="\[" end="\]" 
skip="\\\|\\]" contains=sgfEscape keepend nextgroup=sgfValue skipwhite
+syn region sgfCommentValue contained matchgroup=sgfBracket start="\[" end="\]" 
skip="\\\|\\]" contains=sgfEscape,@Spell keepend nextgroup=sgfCommentValue 
skipwhite
+
+hi def link sgfDelimiter Delimiter
+hi def link sgfMoveProp Statement
+hi def link sgfSetupProp Type
+hi def link sgfMarkupProp Identifier
+hi def link sgfRootProp PreProc
+hi def link sgfGameInfoProp Label
+hi def link sgfCommentProp Comment
+hi def link sgfProperty Identifier
+hi def link sgfBracket Delimiter
+hi def link sgfEscape SpecialChar
+hi def link sgfValue String
+hi def link sgfCommentValue Comment
+
+let b:current_syntax = "sgf"
+
+" vim: ts=8

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1wU9VR-000bVt-KV%40256bit.org.

Raspunde prin e-mail lui