{"name":"GraphQL","scopeName":"source.graphql","patterns":[{"include":"#graphql"}],"repository":{"graphql":{"patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-fragment-definition"},{"include":"#graphql-directive-definition"},{"include":"#graphql-type-interface"},{"include":"#graphql-enum"},{"include":"#graphql-scalar"},{"include":"#graphql-union"},{"include":"#graphql-schema"},{"include":"#graphql-operation-def"},{"include":"#literal-quasi-embedded"}]},"graphql-ampersand":{"match":"\\s*(\u0026)","captures":{"1":{"name":"keyword.operator.logical.graphql"}}},"graphql-arguments":{"name":"meta.arguments.graphql","begin":"\\s*(\\()","end":"\\s*(\\))","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"begin":"\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(:))","end":"(?=\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\s*(:))|\\)))|\\s*(,)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-value"},{"include":"#graphql-skip-newlines"}],"beginCaptures":{"1":{"name":"variable.parameter.graphql"},"2":{"name":"punctuation.colon.graphql"}},"endCaptures":{"3":{"name":"punctuation.comma.graphql"}}},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"meta.brace.round.directive.graphql"}},"endCaptures":{"1":{"name":"meta.brace.round.directive.graphql"}}},"graphql-boolean-value":{"match":"\\s*\\b(true|false)\\b","captures":{"1":{"name":"constant.language.boolean.graphql"}}},"graphql-colon":{"match":"\\s*(:)","captures":{"1":{"name":"punctuation.colon.graphql"}}},"graphql-comma":{"match":"\\s*(,)","captures":{"1":{"name":"punctuation.comma.graphql"}}},"graphql-comment":{"patterns":[{"name":"comment.line.graphql.js","match":"(\\s*)(#).*","captures":{"1":{"name":"punctuation.whitespace.comment.leading.graphql"}}},{"name":"comment.line.graphql.js","begin":"(\"\"\")","end":"(\"\"\")","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.graphql"}}},{"name":"comment.line.graphql.js","begin":"(\")","end":"(\")","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.graphql"}}}]},"graphql-description-docstring":{"name":"comment.block.graphql","begin":"\"\"\"","end":"\"\"\""},"graphql-description-singleline":{"name":"comment.line.number-sign.graphql","match":"#(?=([^\"]*\"[^\"]*\")*[^\"]*$).*$"},"graphql-directive":{"begin":"\\s*((@)\\s*([_A-Za-z][_0-9A-Za-z]*))","end":"(?=.)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-arguments"},{"include":"#literal-quasi-embedded"},{"include":"#graphql-skip-newlines"}],"beginCaptures":{"1":{"name":"entity.name.function.directive.graphql"}},"applyEndPatternLast":true},"graphql-directive-definition":{"begin":"\\s*(\\bdirective\\b)\\s*(@[_A-Za-z][_0-9A-Za-z]*)","end":"(?=.)","patterns":[{"include":"#graphql-variable-definitions"},{"begin":"\\s*(\\bon\\b)\\s*([_A-Za-z]*)","end":"(?=.)","patterns":[{"include":"#graphql-skip-newlines"},{"include":"#graphql-comment"},{"include":"#literal-quasi-embedded"},{"match":"\\s*(\\|)\\s*([_A-Za-z]*)","captures":{"2":{"name":"support.type.location.graphql"}}}],"beginCaptures":{"1":{"name":"keyword.on.graphql"},"2":{"name":"support.type.location.graphql"}},"applyEndPatternLast":true},{"include":"#graphql-skip-newlines"},{"include":"#graphql-comment"},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"keyword.directive.graphql"},"2":{"name":"entity.name.function.directive.graphql"},"3":{"name":"keyword.on.graphql"},"4":{"name":"support.type.graphql"}},"applyEndPatternLast":true},"graphql-enum":{"name":"meta.enum.graphql","begin":"\\s*+\\b(enum)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)","end":"(?\u003c=})","patterns":[{"name":"meta.type.object.graphql","begin":"\\s*({)","end":"\\s*(})","patterns":[{"include":"#graphql-object-type"},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-enum-value"},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"punctuation.operation.graphql"}},"endCaptures":{"1":{"name":"punctuation.operation.graphql"}}},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"}],"beginCaptures":{"1":{"name":"keyword.enum.graphql"},"2":{"name":"support.type.enum.graphql"}}},"graphql-enum-value":{"name":"constant.character.enum.graphql","match":"\\s*(?!=\\b(true|false|null)\\b)([_A-Za-z][_0-9A-Za-z]*)"},"graphql-field":{"patterns":[{"match":"\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(:)","captures":{"1":{"name":"string.unquoted.alias.graphql"},"2":{"name":"punctuation.colon.graphql"}}},{"match":"\\s*([_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"variable.graphql"}}},{"include":"#graphql-arguments"},{"include":"#graphql-directive"},{"include":"#graphql-selection-set"},{"include":"#literal-quasi-embedded"},{"include":"#graphql-skip-newlines"}]},"graphql-float-value":{"match":"\\s*(-?(0|[1-9][0-9]*)(\\.[0-9]+)?((e|E)(\\+|-)?[0-9]+)?)","captures":{"1":{"name":"constant.numeric.float.graphql"}}},"graphql-fragment-definition":{"name":"meta.fragment.graphql","begin":"\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))","end":"(?\u003c=})","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-selection-set"},{"include":"#graphql-directive"},{"include":"#graphql-skip-newlines"},{"include":"#literal-quasi-embedded"}],"captures":{"1":{"name":"keyword.fragment.graphql"},"2":{"name":"entity.name.fragment.graphql"},"3":{"name":"keyword.on.graphql"},"4":{"name":"support.type.graphql"}}},"graphql-fragment-spread":{"begin":"\\s*(\\.\\.\\.)\\s*(?!\\bon\\b)([_A-Za-z][_0-9A-Za-z]*)","end":"(?=.)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-selection-set"},{"include":"#graphql-directive"},{"include":"#literal-quasi-embedded"},{"include":"#graphql-skip-newlines"}],"captures":{"1":{"name":"keyword.operator.spread.graphql"},"2":{"name":"variable.fragment.graphql"}},"applyEndPatternLast":true},"graphql-ignore-spaces":{"match":"\\s*"},"graphql-inline-fragment":{"begin":"\\s*(\\.\\.\\.)\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*))?","end":"(?=.)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-selection-set"},{"include":"#graphql-directive"},{"include":"#graphql-skip-newlines"},{"include":"#literal-quasi-embedded"}],"captures":{"1":{"name":"keyword.operator.spread.graphql"},"2":{"name":"keyword.on.graphql"},"3":{"name":"support.type.graphql"}},"applyEndPatternLast":true},"graphql-input-types":{"patterns":[{"include":"#graphql-scalar-type"},{"match":"\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(!))?","captures":{"1":{"name":"support.type.graphql"},"2":{"name":"keyword.operator.nulltype.graphql"}}},{"name":"meta.type.list.graphql","begin":"\\s*(\\[)","end":"\\s*(\\])(?:\\s*(!))?","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-input-types"},{"include":"#graphql-comma"},{"include":"#literal-quasi-embedded"}],"captures":{"1":{"name":"meta.brace.square.graphql"},"2":{"name":"keyword.operator.nulltype.graphql"}}}]},"graphql-list-value":{"patterns":[{"name":"meta.listvalues.graphql","begin":"\\s*+(\\[)","end":"\\s*(\\])","patterns":[{"include":"#graphql-value"}],"beginCaptures":{"1":{"name":"meta.brace.square.graphql"}},"endCaptures":{"1":{"name":"meta.brace.square.graphql"}}}]},"graphql-name":{"match":"\\s*([_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"entity.name.function.graphql"}}},"graphql-null-value":{"match":"\\s*\\b(null)\\b","captures":{"1":{"name":"constant.language.null.graphql"}}},"graphql-object-field":{"match":"\\s*(([_A-Za-z][_0-9A-Za-z]*))\\s*(:)","captures":{"1":{"name":"constant.object.key.graphql"},"2":{"name":"string.unquoted.graphql"},"3":{"name":"punctuation.graphql"}}},"graphql-object-value":{"patterns":[{"name":"meta.objectvalues.graphql","begin":"\\s*+({)","end":"\\s*(})","patterns":[{"include":"#graphql-object-field"},{"include":"#graphql-value"}],"beginCaptures":{"1":{"name":"meta.brace.curly.graphql"}},"endCaptures":{"1":{"name":"meta.brace.curly.graphql"}}}]},"graphql-operation-def":{"patterns":[{"include":"#graphql-query-mutation"},{"include":"#graphql-name"},{"include":"#graphql-variable-definitions"},{"include":"#graphql-directive"},{"include":"#graphql-selection-set"}]},"graphql-query-mutation":{"match":"\\s*\\b(query|mutation)\\b","captures":{"1":{"name":"keyword.operation.graphql"}}},"graphql-scalar":{"match":"\\s*\\b(scalar)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"keyword.scalar.graphql"},"2":{"name":"entity.scalar.graphql"}}},"graphql-scalar-type":{"match":"\\s*\\b(Int|Float|String|Boolean|ID)\\b(?:\\s*(!))?","captures":{"1":{"name":"support.type.builtin.graphql"},"2":{"name":"keyword.operator.nulltype.graphql"}}},"graphql-schema":{"begin":"\\s*\\b(schema)\\b","end":"(?\u003c=})","patterns":[{"begin":"\\s*({)","end":"\\s*(})","patterns":[{"begin":"\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)","end":"(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)","patterns":[{"match":"\\s*([_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"support.type.graphql"}}},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-colon"},{"include":"#graphql-skip-newlines"}],"beginCaptures":{"1":{"name":"variable.arguments.graphql"}},"endCaptures":{"5":{"name":"punctuation.comma.graphql"}}},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-skip-newlines"}],"beginCaptures":{"1":{"name":"punctuation.operation.graphql"}},"endCaptures":{"1":{"name":"punctuation.operation.graphql"}}},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-skip-newlines"}],"beginCaptures":{"1":{"name":"keyword.schema.graphql"}}},"graphql-selection-set":{"name":"meta.selectionset.graphql","begin":"\\s*({)","end":"\\s*(})","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-field"},{"include":"#graphql-fragment-spread"},{"include":"#graphql-inline-fragment"},{"include":"#graphql-comma"},{"include":"#native-interpolation"},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"punctuation.operation.graphql"}},"endCaptures":{"1":{"name":"punctuation.operation.graphql"}}},"graphql-skip-newlines":{"match":"\\s*\n"},"graphql-string-content":{"patterns":[{"name":"constant.character.escape.graphql","match":"\\\\[/'\"\\\\nrtbf]"},{"name":"constant.character.escape.graphql","match":"\\\\u([0-9a-fA-F]{4})"}]},"graphql-string-value":{"contentName":"string.quoted.double.graphql","begin":"\\s*+((\"))","end":"\\s*+(?:((\"))|(\n))","patterns":[{"include":"#graphql-string-content"},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"string.quoted.double.graphql"},"2":{"name":"punctuation.definition.string.begin.graphql"}},"endCaptures":{"1":{"name":"string.quoted.double.graphql"},"2":{"name":"punctuation.definition.string.end.graphql"},"3":{"name":"invalid.illegal.newline.graphql"}}},"graphql-type-definition":{"begin":"\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)","end":"(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-variable-definitions"},{"include":"#graphql-type-object"},{"include":"#graphql-colon"},{"include":"#graphql-input-types"},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"variable.graphql"}},"endCaptures":{"5":{"name":"punctuation.comma.graphql"}}},"graphql-type-interface":{"name":"meta.type.interface.graphql","begin":"\\s*\\b(?:(extends?)?\\b\\s*\\b(type)|(interface)|(input))\\b\\s*([_A-Za-z][_0-9A-Za-z]*)?","end":"(?=.)","patterns":[{"begin":"\\s*\\b(implements)\\b\\s*","end":"\\s*(?={)","patterns":[{"match":"\\s*([_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"support.type.graphql"}}},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-ampersand"},{"include":"#graphql-comma"}],"beginCaptures":{"1":{"name":"keyword.implements.graphql"}}},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-type-object"},{"include":"#literal-quasi-embedded"},{"include":"#graphql-ignore-spaces"}],"captures":{"1":{"name":"keyword.type.graphql"},"2":{"name":"keyword.type.graphql"},"3":{"name":"keyword.interface.graphql"},"4":{"name":"keyword.input.graphql"},"5":{"name":"support.type.graphql"}},"applyEndPatternLast":true},"graphql-type-object":{"name":"meta.type.object.graphql","begin":"\\s*({)","end":"\\s*(})","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-object-type"},{"include":"#graphql-type-definition"},{"include":"#literal-quasi-embedded"}],"beginCaptures":{"1":{"name":"punctuation.operation.graphql"}},"endCaptures":{"1":{"name":"punctuation.operation.graphql"}}},"graphql-union":{"begin":"\\s*\\b(union)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)","end":"(?=.)","patterns":[{"begin":"\\s*(=)\\s*([_A-Za-z][_0-9A-Za-z]*)","end":"(?=.)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-skip-newlines"},{"include":"#literal-quasi-embedded"},{"match":"\\s*(\\|)\\s*([_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"punctuation.or.graphql"},"2":{"name":"support.type.graphql"}}}],"captures":{"1":{"name":"punctuation.assignment.graphql"},"2":{"name":"support.type.graphql"}},"applyEndPatternLast":true},{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-skip-newlines"},{"include":"#literal-quasi-embedded"}],"captures":{"1":{"name":"keyword.union.graphql"},"2":{"name":"support.type.graphql"}},"applyEndPatternLast":true},"graphql-union-mark":{"match":"\\s*(\\|)","captures":{"1":{"name":"punctuation.union.graphql"}}},"graphql-value":{"patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-variable-name"},{"include":"#graphql-float-value"},{"include":"#graphql-string-value"},{"include":"#graphql-boolean-value"},{"include":"#graphql-null-value"},{"include":"#graphql-enum-value"},{"include":"#graphql-list-value"},{"include":"#graphql-object-value"},{"include":"#literal-quasi-embedded"}]},"graphql-variable-assignment":{"begin":"\\s(=)","end":"(?=[\n,)])","patterns":[{"include":"#graphql-value"}],"beginCaptures":{"1":{"name":"punctuation.assignment.graphql"}},"applyEndPatternLast":true},"graphql-variable-definition":{"name":"meta.variables.graphql","begin":"\\s*(\\$?[_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)","end":"(?=\\s*((\\$?[_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(}|\\))))|\\s*(,)","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-directive"},{"include":"#graphql-colon"},{"include":"#graphql-input-types"},{"include":"#graphql-variable-assignment"},{"include":"#literal-quasi-embedded"},{"include":"#graphql-skip-newlines"}],"beginCaptures":{"1":{"name":"variable.parameter.graphql"}},"endCaptures":{"5":{"name":"punctuation.comma.graphql"}}},"graphql-variable-definitions":{"begin":"\\s*(\\()","end":"\\s*(\\))","patterns":[{"include":"#graphql-comment"},{"include":"#graphql-description-docstring"},{"include":"#graphql-description-singleline"},{"include":"#graphql-variable-definition"},{"include":"#literal-quasi-embedded"}],"captures":{"1":{"name":"meta.brace.round.graphql"}}},"graphql-variable-name":{"match":"\\s*(\\$[_A-Za-z][_0-9A-Za-z]*)","captures":{"1":{"name":"variable.graphql"}}},"native-interpolation":{"name":"native.interpolation","begin":"\\s*(\\${)","end":"(})","patterns":[{"include":"source.js"},{"include":"source.ts"},{},{"include":"source.tsx"}],"beginCaptures":{"1":{"name":"keyword.other.substitution.begin"}},"endCaptures":{"1":{"name":"keyword.other.substitution.end"}}}}}