" Vim syntax file " Language: graphql " Maintainer: Jon Parise <jon@indelible.org> " Filenames: *.graphql *.graphqls *.gql " URL: https://github.com/jparise/vim-graphql " License: MIT <https://opensource.org/license/mit> " Last Change: 2024 Dec 21 if !exists('main_syntax') if exists('b:current_syntax') finish endif let main_syntax = 'graphql' endif syn case match syn match graphqlComment "#.*$" contains=@Spell syn match graphqlOperator "=" display syn match graphqlOperator "!" display syn match graphqlOperator "|" display syn match graphqlOperator "&" display syn match graphqlOperator "\M..." display syn keyword graphqlBoolean true false syn keyword graphqlNull null syn match graphqlNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" display syn region graphqlString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ syn region graphqlString start=+"""+ skip=+\\"""+ end=+"""+ syn keyword graphqlKeyword repeatable nextgroup=graphqlKeyword skipwhite syn keyword graphqlKeyword on nextgroup=graphqlType,graphqlDirectiveLocation skipwhite syn keyword graphqlStructure enum scalar type union nextgroup=graphqlType skipwhite syn keyword graphqlStructure input interface subscription nextgroup=graphqlType skipwhite syn keyword graphqlStructure implements nextgroup=graphqlType skipwhite syn keyword graphqlStructure query mutation fragment nextgroup=graphqlName skipwhite syn keyword graphqlStructure directive nextgroup=graphqlDirective skipwhite syn keyword graphqlStructure extend nextgroup=graphqlStructure skipwhite syn keyword graphqlStructure schema nextgroup=graphqlFold skipwhite syn match graphqlDirective "\<@\h\w*\>" display syn match graphqlVariable "\<\$\h\w*\>" display syn match graphqlName "\<\h\w*\>" display syn match graphqlType "\<_*\u\w*\>" display " https://spec.graphql.org/October2021/#ExecutableDirectiveLocation syn keyword graphqlDirectiveLocation QUERY MUTATION SUBSCRIPTION FIELD syn keyword graphqlDirectiveLocation FRAGMENT_DEFINITION FRAGMENT_SPREAD syn keyword graphqlDirectiveLocation INLINE_FRAGMENT VARIABLE_DEFINITION " https://spec.graphql.org/October2021/#TypeSystemDirectiveLocation syn keyword graphqlDirectiveLocation SCHEMA SCALAR OBJECT FIELD_DEFINITION syn keyword graphqlDirectiveLocation ARGUMENT_DEFINITION INTERFACE UNION syn keyword graphqlDirectiveLocation ENUM ENUM_VALUE INPUT_OBJECT syn keyword graphqlDirectiveLocation INPUT_FIELD_DEFINITION syn keyword graphqlMetaFields __schema __type __typename syn region graphqlFold matchgroup=graphqlBraces start="{" end="}" transparent fold contains=ALLBUT,graphqlStructure syn region graphqlList matchgroup=graphqlBraces start="\[" end="]" transparent contains=ALLBUT,graphqlDirective,graphqlStructure if main_syntax ==# 'graphql' syn sync minlines=500 endif hi def link graphqlComment Comment hi def link graphqlOperator Operator hi def link graphqlBraces Delimiter hi def link graphqlBoolean Boolean hi def link graphqlNull Keyword hi def link graphqlNumber Number hi def link graphqlString String hi def link graphqlDirective PreProc hi def link graphqlDirectiveLocation Special hi def link graphqlName Identifier hi def link graphqlMetaFields Special hi def link graphqlKeyword Keyword hi def link graphqlStructure Structure hi def link graphqlType Type hi def link graphqlVariable Identifier let b:current_syntax = 'graphql' if main_syntax ==# 'graphql' unlet main_syntax endif