diff --git a/README.md b/README.md index 8444a3c..cf25e51 100644 --- a/README.md +++ b/README.md @@ -68,8 +68,8 @@ const query = gql` The list of recognized tag names is defined by the `g:graphql_javascript_tags` variable, which defaults to `["gql", "graphql", "Relay.QL"]`. -You can also add a `# gql` comment at the start of a template string to -indicate that its contents should be considered GraphQL syntax. +You can also add a `# gql` or `# graphql` comment at the start of a template +string to indicate that its contents should be considered GraphQL syntax. ```javascript const query = `# gql diff --git a/after/syntax/javascript/graphql.vim b/after/syntax/javascript/graphql.vim index 84526e0..b894e62 100644 --- a/after/syntax/javascript/graphql.vim +++ b/after/syntax/javascript/graphql.vim @@ -42,7 +42,7 @@ if graphql#has_syntax_group('jsTemplateExpression') exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString' syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend - syntax region graphqlTemplateString matchgroup=jsTemplateString start=+`#\s\{,4\}gql\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend + syntax region graphqlTemplateString matchgroup=jsTemplateString start=+`#\s\{,4\}\(gql\|graphql\)\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend hi def link graphqlTemplateString jsTemplateString hi def link graphqlTaggedTemplate jsTaggedTemplate @@ -56,7 +56,7 @@ elseif graphql#has_syntax_group('javaScriptStringT') exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString' syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=@javaScriptEmbededExpr containedin=graphqlFold keepend - syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+`#\s\{,4\}gql\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend + syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+`#\s\{,4\}\(gql\|graphql\)\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend hi def link graphqlTemplateString javaScriptStringT hi def link graphqlTaggedTemplate javaScriptEmbed diff --git a/test/javascript/default.vader b/test/javascript/default.vader index e652d10..f51a3e5 100644 --- a/test/javascript/default.vader +++ b/test/javascript/default.vader @@ -40,7 +40,7 @@ Expect (propertly indented): } `; -Given javascript (Template literal with comment): +Given javascript (Template literal with `# gql` comment): const query = `# gql { user(id: ${uid}) { @@ -53,6 +53,19 @@ Given javascript (Template literal with comment): Execute (Syntax assertions): AssertEqual 'graphqlName', SyntaxOf('user') +Given javascript (Template literal with `# graphql` comment): + const query = `# graphql + { + user(id: ${uid}) { + firstName + lastName + } + } + `; + +Execute (Syntax assertions): + AssertEqual 'graphqlName', SyntaxOf('user') + Given javascript (Template literal): const s = `text`;