mirror of
https://github.com/vim/vim.git
synced 2026-04-19 18:26:05 +02:00
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 <suki@tritarget.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
99ea2b5b06
commit
75decb4a8d
1
.github/MAINTAINERS
vendored
1
.github/MAINTAINERS
vendored
@@ -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
|
||||
|
||||
51
runtime/syntax/glimmer.vim
Normal file
51
runtime/syntax/glimmer.vim
Normal file
@@ -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="<template>" end="</template>"
|
||||
\ contains=@hbs
|
||||
\ keepend fold
|
||||
|
||||
let b:current_syntax = "javascript.glimmer"
|
||||
else
|
||||
" syntax/typescript.vim adds typescriptTypeCast which is in conflict with
|
||||
" <template> typescriptreact doesn't define it but we want to not include
|
||||
" the JSX syntax.
|
||||
syntax clear typescriptTypeCast
|
||||
|
||||
syntax region glimmerTemplateBlock
|
||||
\ start="<template>" end="</template>"
|
||||
\ contains=@hbs
|
||||
\ containedin=typescriptClassBlock,typescriptFuncCallArg
|
||||
\ keepend fold
|
||||
|
||||
let b:current_syntax = "typescript.glimmer"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
unlet! base_syntax
|
||||
Reference in New Issue
Block a user