Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions after/syntax/javascript/graphql.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
15 changes: 14 additions & 1 deletion test/javascript/default.vader
Original file line number Diff line number Diff line change
Expand Up @@ -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}) {
Expand All @@ -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`;

Expand Down