diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/GraphQLParser.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/GraphQLParser.java index b0a91de..ca58fe0 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/GraphQLParser.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/GraphQLParser.java @@ -808,25 +808,32 @@ public static boolean floatValue(PsiBuilder builder, int level) { } /* ********************************************************** */ - // 'fragment' fragmentName typeCondition directives? selectionSet + // description? 'fragment' fragmentName typeCondition directives? selectionSet public static boolean fragmentDefinition(PsiBuilder builder, int level) { if (!recursion_guard_(builder, level, "fragmentDefinition")) return false; - if (!nextTokenIs(builder, FRAGMENT_KEYWORD)) return false; boolean result, pinned; - Marker marker = enter_section_(builder, level, _NONE_, FRAGMENT_DEFINITION, null); - result = consumeToken(builder, FRAGMENT_KEYWORD); - pinned = result; // pin = 1 + Marker marker = enter_section_(builder, level, _NONE_, FRAGMENT_DEFINITION, ""); + result = fragmentDefinition_0(builder, level + 1); + result = result && consumeToken(builder, FRAGMENT_KEYWORD); + pinned = result; // pin = 2 result = result && report_error_(builder, fragmentName(builder, level + 1)); result = pinned && report_error_(builder, typeCondition(builder, level + 1)) && result; - result = pinned && report_error_(builder, fragmentDefinition_3(builder, level + 1)) && result; + result = pinned && report_error_(builder, fragmentDefinition_4(builder, level + 1)) && result; result = pinned && selectionSet(builder, level + 1) && result; exit_section_(builder, level, marker, result, pinned, null); return result || pinned; } + // description? + private static boolean fragmentDefinition_0(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "fragmentDefinition_0")) return false; + description(builder, level + 1); + return true; + } + // directives? - private static boolean fragmentDefinition_3(PsiBuilder builder, int level) { - if (!recursion_guard_(builder, level, "fragmentDefinition_3")) return false; + private static boolean fragmentDefinition_4(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "fragmentDefinition_4")) return false; directives(builder, level + 1); return true; } @@ -2037,38 +2044,46 @@ public static boolean typeSystemDefinition(PsiBuilder builder, int level) { } /* ********************************************************** */ - // operationType identifier? variableDefinitions? directives? selectionSet + // description? operationType identifier? variableDefinitions? directives? selectionSet public static boolean typedOperationDefinition(PsiBuilder builder, int level) { if (!recursion_guard_(builder, level, "typedOperationDefinition")) return false; boolean result, pinned; Marker marker = enter_section_(builder, level, _NONE_, TYPED_OPERATION_DEFINITION, ""); - result = operationType(builder, level + 1); - pinned = result; // pin = 1 - result = result && report_error_(builder, typedOperationDefinition_1(builder, level + 1)); - result = pinned && report_error_(builder, typedOperationDefinition_2(builder, level + 1)) && result; + result = typedOperationDefinition_0(builder, level + 1); + result = result && operationType(builder, level + 1); + pinned = result; // pin = 2 + result = result && report_error_(builder, typedOperationDefinition_2(builder, level + 1)); result = pinned && report_error_(builder, typedOperationDefinition_3(builder, level + 1)) && result; + result = pinned && report_error_(builder, typedOperationDefinition_4(builder, level + 1)) && result; result = pinned && selectionSet(builder, level + 1) && result; exit_section_(builder, level, marker, result, pinned, null); return result || pinned; } + // description? + private static boolean typedOperationDefinition_0(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "typedOperationDefinition_0")) return false; + description(builder, level + 1); + return true; + } + // identifier? - private static boolean typedOperationDefinition_1(PsiBuilder builder, int level) { - if (!recursion_guard_(builder, level, "typedOperationDefinition_1")) return false; + private static boolean typedOperationDefinition_2(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "typedOperationDefinition_2")) return false; identifier(builder, level + 1); return true; } // variableDefinitions? - private static boolean typedOperationDefinition_2(PsiBuilder builder, int level) { - if (!recursion_guard_(builder, level, "typedOperationDefinition_2")) return false; + private static boolean typedOperationDefinition_3(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "typedOperationDefinition_3")) return false; variableDefinitions(builder, level + 1); return true; } // directives? - private static boolean typedOperationDefinition_3(PsiBuilder builder, int level) { - if (!recursion_guard_(builder, level, "typedOperationDefinition_3")) return false; + private static boolean typedOperationDefinition_4(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "typedOperationDefinition_4")) return false; directives(builder, level + 1); return true; } @@ -2227,31 +2242,39 @@ public static boolean variable(PsiBuilder builder, int level) { } /* ********************************************************** */ - // variable ':' type defaultValue? directives? + // description? variable ':' type defaultValue? directives? public static boolean variableDefinition(PsiBuilder builder, int level) { if (!recursion_guard_(builder, level, "variableDefinition")) return false; boolean result, pinned; Marker marker = enter_section_(builder, level, _NONE_, VARIABLE_DEFINITION, ""); - result = variable(builder, level + 1); - pinned = result; // pin = 1 + result = variableDefinition_0(builder, level + 1); + result = result && variable(builder, level + 1); + pinned = result; // pin = 2 result = result && report_error_(builder, consumeToken(builder, COLON)); result = pinned && report_error_(builder, type(builder, level + 1)) && result; - result = pinned && report_error_(builder, variableDefinition_3(builder, level + 1)) && result; - result = pinned && variableDefinition_4(builder, level + 1) && result; + result = pinned && report_error_(builder, variableDefinition_4(builder, level + 1)) && result; + result = pinned && variableDefinition_5(builder, level + 1) && result; exit_section_(builder, level, marker, result, pinned, GraphQLParser::variableDefinition_recover); return result || pinned; } + // description? + private static boolean variableDefinition_0(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "variableDefinition_0")) return false; + description(builder, level + 1); + return true; + } + // defaultValue? - private static boolean variableDefinition_3(PsiBuilder builder, int level) { - if (!recursion_guard_(builder, level, "variableDefinition_3")) return false; + private static boolean variableDefinition_4(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "variableDefinition_4")) return false; defaultValue(builder, level + 1); return true; } // directives? - private static boolean variableDefinition_4(PsiBuilder builder, int level) { - if (!recursion_guard_(builder, level, "variableDefinition_4")) return false; + private static boolean variableDefinition_5(PsiBuilder builder, int level) { + if (!recursion_guard_(builder, level, "variableDefinition_5")) return false; directives(builder, level + 1); return true; } diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLFragmentDefinition.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLFragmentDefinition.java index 570fb63..74bad52 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLFragmentDefinition.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLFragmentDefinition.java @@ -7,6 +7,9 @@ public interface GraphQLFragmentDefinition extends GraphQLDefinition, GraphQLDirectivesAware, GraphQLNamedElement, GraphQLTypeScopeProvider { + @Nullable + GraphQLDescription getDescription(); + @Nullable GraphQLSelectionSet getSelectionSet(); diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLTypedOperationDefinition.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLTypedOperationDefinition.java index 10200e8..2bf076d 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLTypedOperationDefinition.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLTypedOperationDefinition.java @@ -7,6 +7,9 @@ public interface GraphQLTypedOperationDefinition extends GraphQLOperationDefinition, GraphQLDirectivesAware, GraphQLTypeScopeProvider { + @Nullable + GraphQLDescription getDescription(); + @NotNull GraphQLOperationType getOperationType(); diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLVariableDefinition.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLVariableDefinition.java index a7ebe1c..a23e9ba 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLVariableDefinition.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/GraphQLVariableDefinition.java @@ -10,6 +10,9 @@ public interface GraphQLVariableDefinition extends GraphQLDirectivesAware, Graph @Nullable GraphQLDefaultValue getDefaultValue(); + @Nullable + GraphQLDescription getDescription(); + @Nullable GraphQLType getType(); diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLFragmentDefinitionImpl.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLFragmentDefinitionImpl.java index 4198642..06b872a 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLFragmentDefinitionImpl.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLFragmentDefinitionImpl.java @@ -26,6 +26,12 @@ public void accept(@NotNull PsiElementVisitor visitor) { else super.accept(visitor); } + @Override + @Nullable + public GraphQLDescription getDescription() { + return findChildByClass(GraphQLDescription.class); + } + @Override @Nullable public GraphQLSelectionSet getSelectionSet() { diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLTypedOperationDefinitionImpl.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLTypedOperationDefinitionImpl.java index 05f16b0..3f5610e 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLTypedOperationDefinitionImpl.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLTypedOperationDefinitionImpl.java @@ -26,6 +26,12 @@ public void accept(@NotNull PsiElementVisitor visitor) { else super.accept(visitor); } + @Override + @Nullable + public GraphQLDescription getDescription() { + return findChildByClass(GraphQLDescription.class); + } + @Override @NotNull public GraphQLOperationType getOperationType() { diff --git a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLVariableDefinitionImpl.java b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLVariableDefinitionImpl.java index e4a9d0c..b857649 100644 --- a/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLVariableDefinitionImpl.java +++ b/jsgraphql/src/main/gen/com/intellij/lang/jsgraphql/psi/impl/GraphQLVariableDefinitionImpl.java @@ -32,6 +32,12 @@ public GraphQLDefaultValue getDefaultValue() { return findChildByClass(GraphQLDefaultValue.class); } + @Override + @Nullable + public GraphQLDescription getDescription() { + return findChildByClass(GraphQLDescription.class); + } + @Override @Nullable public GraphQLType getType() { diff --git a/jsgraphql/src/main/grammars/GraphQLParser.bnf b/jsgraphql/src/main/grammars/GraphQLParser.bnf index c867b9b..f797387 100644 --- a/jsgraphql/src/main/grammars/GraphQLParser.bnf +++ b/jsgraphql/src/main/grammars/GraphQLParser.bnf @@ -208,8 +208,8 @@ selectionSetOperationDefinition ::= selectionSet { mixin="com.intellij.lang.jsgraphql.psi.impl.GraphQLSelectionSetOperationDefinitionMixin" } -typedOperationDefinition ::= operationType identifier? variableDefinitions? directives? selectionSet { - pin=1 +typedOperationDefinition ::= description? operationType identifier? variableDefinitions? directives? selectionSet { + pin=2 extends=operationDefinition methods=[directives="directive" nameIdentifier="identifier"] implements="com.intellij.lang.jsgraphql.psi.GraphQLDirectivesAware" @@ -218,8 +218,8 @@ typedOperationDefinition ::= operationType identifier? variableDefinitions? dire variableDefinitions ::= '(' variableDefinition+ ')' {pin=1 methods=[variableDefinitions="variableDefinition"]} -variableDefinition ::= variable ':' type defaultValue? directives? { - pin=1 +variableDefinition ::= description? variable ':' type defaultValue? directives? { + pin=2 recoverWhile=variableDefinition_recover methods=[directives="directive"] implements="com.intellij.lang.jsgraphql.psi.GraphQLDirectivesAware" @@ -266,8 +266,8 @@ inlineFragment ::= typeCondition? directives? selectionSet { mixin="com.intellij.lang.jsgraphql.psi.impl.GraphQLInlineFragmentMixin" } -fragmentDefinition ::= 'fragment' fragmentName typeCondition directives? selectionSet { - pin=1 +fragmentDefinition ::= description? 'fragment' fragmentName typeCondition directives? selectionSet { + pin=2 extends=definition implements="com.intellij.lang.jsgraphql.psi.GraphQLDirectivesAware" methods=[directives="directive" nameIdentifier="identifier"]