From: Devin Weaver Date: Thu, 5 Mar 2026 20:07:50 +0000 (+0000) Subject: runtime(glimmer): add syntax support for glimmer files X-Git-Tag: v9.2.0111~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75decb4a8d10c2e529add1f0e7e0a545576de2ea;p=thirdparty%2Fvim.git runtime(glimmer): add syntax support for glimmer files In commit cdf717283 ("patch 8.2.4424: ".gts" and ".gjs" files are not recognized", 2022-02-19) support for the glimmer file types were added. Problem: Syntax hilighting suppoprt was missing. Solution: Added a glimmer syntax file that will leverage the base syntaxs (javascript/typescript) and include handlebars syntax for .gjs/.gts files. closes: #19569 Signed-off-by: Devin Weaver Signed-off-by: Christian Brabandt --- diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS index 92e9e6025e..6d51dea175 100644 --- a/.github/MAINTAINERS +++ b/.github/MAINTAINERS @@ -542,6 +542,7 @@ runtime/syntax/gitignore.vim @ObserverOfTime runtime/syntax/gitolite.vim @sitaramc runtime/syntax/gitrebase.vim @tpope runtime/syntax/gleam.vim @kirillmorozov +runtime/syntax/glimmer.vim @sukima runtime/syntax/glsl.vim @gpanders runtime/syntax/go.vim @bhcleek runtime/syntax/goaccess.vim @meonkeys diff --git a/runtime/syntax/glimmer.vim b/runtime/syntax/glimmer.vim new file mode 100644 index 0000000000..67555db857 --- /dev/null +++ b/runtime/syntax/glimmer.vim @@ -0,0 +1,51 @@ +" Vim syntax file +" Language: Glimmer +" Maintainer: Devin Weaver +" Last Change: 2026 Feb 20 +" Origin: https://github.com/joukevandermaas/vim-ember-hbs +" Credits: Jouke van der Maas +" License: Same as Vim + +" Vim detects GJS/GTS files as {java,type}script.glimmer +" Vim will read the javascript/typescript syntax files first and set +" b:current_syntax accordingly then it will read the glimmer syntax file. +" This is why we use b:current_syntax to make sure we are in the correct state +" to continue. + +if exists('b:current_syntax') && b:current_syntax !~# '\v%(type|java)script' + finish +endif + +let base_syntax = b:current_syntax +unlet! b:current_syntax + +let s:cpo_save = &cpo +set cpo&vim + +syntax include @hbs syntax/handlebars.vim + +if base_syntax == "javascript" + syntax region glimmerTemplateBlock + \ start="" + \ contains=@hbs + \ keepend fold + + let b:current_syntax = "javascript.glimmer" +else + " syntax/typescript.vim adds typescriptTypeCast which is in conflict with + "