From: Borys Lykah Date: Mon, 1 Jun 2026 20:36:45 +0000 (+0000) Subject: runtime(sgf): Include sgf syntax script X-Git-Tag: v9.2.0585~1 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=bcb8dacb6d945e5bd9b1ad42cc79c02fdea317ff;p=thirdparty%2Fvim.git runtime(sgf): Include sgf syntax script closes: #20380 Signed-off-by: Borys Lykah Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS index 58a8f94562..fb7ebddf0c 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 0000000000..48ee1ba89e --- /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