" Fallback BAML syntax. The baml LSP's semantic tokens take over once attached. if exists("b:current_syntax") | finish | endif syn keyword bamlKeyword class enum interface implements function type client test testset syn keyword bamlKeyword let if else match for in while return throw throws catch catch_all syn keyword bamlKeyword spawn await defer with is generator retry_policy syn keyword bamlBoolean true false null syn keyword bamlType string int float bool image audio pdf video map self syn match bamlAttribute "@@\?\k\+" syn match bamlDecl "\<\%(class\|enum\|interface\|function\|type\|client\)\s\+\zs\k\+" syn match bamlComment "//.*$" contains=@Spell syn region bamlString start=+"+ skip=+\\"+ end=+"+ syn region bamlTemplate start=+`+ skip=+\\`+ end=+`+ contains=bamlInterp syn match bamlInterp "\${[^}]*}" contained syn match bamlNumber "\<\d\+\%(\.\d\+\)\?\>" hi def link bamlKeyword Keyword hi def link bamlBoolean Boolean hi def link bamlType Type hi def link bamlDecl Function hi def link bamlAttribute PreProc hi def link bamlComment Comment hi def link bamlString String hi def link bamlTemplate String hi def link bamlInterp Special hi def link bamlNumber Number let b:current_syntax = "baml"