Skip to content

Commit 2e1fd8b

Browse files
committed
Add documentation provider with support for MarkDown (#164, #185)
1 parent 3830ab1 commit 2e1fd8b

24 files changed

+611
-55
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ repositories {
2626
dependencies {
2727
compile "com.graphql-java:graphql-java:9.0"
2828
compile "commons-io:commons-io:2.6"
29-
compile "fr.opensagres.js:minimatch.java:1.1.0"
29+
compile "com.atlassian.commonmark:commonmark:0.12.1"
3030
compile group: 'org.yaml', name: 'snakeyaml', version: '1.21'
3131

3232
testCompile group: 'junit', name: 'junit', version: '4.12'

gen/com/intellij/lang/jsgraphql/psi/GraphQLEnumTypeDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLEnumTypeExtensionDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLInputObjectTypeDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLInputObjectTypeExtensionDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLInterfaceTypeDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLInterfaceTypeExtensionDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLObjectTypeDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLObjectTypeExtensionDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLScalarTypeDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLScalarTypeExtensionDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLUnionTypeDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLUnionTypeExtensionDefinition.java

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/com/intellij/lang/jsgraphql/psi/GraphQLVisitor.java

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/META-INF/plugin.xml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,10 @@
248248

249249

250250
<!-- Schema documentation -->
251-
<!--
252-
<lang.documentationProvider language="GraphQL" implementationClass="JSGraphQLDocumentationProvider" />
253-
<lang.documentationProvider language="GraphQL Schema" implementationClass="JSGraphQLDocumentationProvider" />
251+
<lang.documentationProvider language="GraphQL" implementationClass="com.intellij.lang.jsgraphql.ide.documentation.GraphQLDocumentationProvider" />
254252
-->
255253
<!-- Note: JSX/TSX documentation providers are registered in their base language (JS), so we do the same to not take over the entire doc impl -->
256-
<!--
257-
<lang.documentationProvider language="JavaScript" implementationClass="JSGraphQLDocumentationProvider" />
258-
-->
254+
<lang.documentationProvider language="JavaScript" implementationClass="com.intellij.lang.jsgraphql.ide.documentation.GraphQLDocumentationProvider" />
259255

260256

261257
<!-- Editor notification bars and markers -->

src/grammars/GraphQLParser.bnf

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -258,13 +258,13 @@ typeExtension ::=
258258

259259

260260

261-
scalarTypeDefinition ::= description? 'scalar' typeNameDefinition directives? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"]}
261+
scalarTypeDefinition ::= description? 'scalar' typeNameDefinition directives? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameDefinitionOwnerPsiElement" methods=[description="quotedString" directives="directive"]}
262262

263-
scalarTypeExtensionDefinition ::= 'extend' 'scalar' typeName directives? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[directives="directive"]}
263+
scalarTypeExtensionDefinition ::= 'extend' 'scalar' typeName directives? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameExtensionOwnerPsiElement" methods=[directives="directive"]}
264264

265-
objectTypeDefinition ::= description? 'type' typeNameDefinition implementsInterfaces? directives? fieldsDefinition? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"]}
265+
objectTypeDefinition ::= description? 'type' typeNameDefinition implementsInterfaces? directives? fieldsDefinition? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameDefinitionOwnerPsiElement" methods=[description="quotedString" directives="directive"]}
266266

267-
objectTypeExtensionDefinition ::= 'extend' 'type' typeName implementsInterfaces? directives? fieldsDefinition? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[directives="directive"]}
267+
objectTypeExtensionDefinition ::= 'extend' 'type' typeName implementsInterfaces? directives? fieldsDefinition? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameExtensionOwnerPsiElement" methods=[directives="directive"]}
268268

269269
implementsInterfaces ::= 'implements' ampTypeName ampTypeName* {pin=1}
270270

@@ -282,34 +282,34 @@ inputValueDefinition ::= description? identifier ':' type defaultValue? directiv
282282

283283
private inputValueDefinition_recover ::= !(')' | '}' | inputValueDefinition)
284284

285-
interfaceTypeDefinition ::= description? 'interface' typeNameDefinition directives? fieldsDefinition? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"]}
285+
interfaceTypeDefinition ::= description? 'interface' typeNameDefinition directives? fieldsDefinition? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameDefinitionOwnerPsiElement" methods=[description="quotedString" directives="directive"]}
286286

287-
interfaceTypeExtensionDefinition ::= 'extend' 'interface' typeName directives? fieldsDefinition? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[directives="directive"]}
287+
interfaceTypeExtensionDefinition ::= 'extend' 'interface' typeName directives? fieldsDefinition? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameExtensionOwnerPsiElement" methods=[directives="directive"]}
288288

289289

290-
unionTypeDefinition ::= description? 'union' typeNameDefinition directives? unionMembership? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"]}
290+
unionTypeDefinition ::= description? 'union' typeNameDefinition directives? unionMembership? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameDefinitionOwnerPsiElement" methods=[description="quotedString" directives="directive"]}
291291

292-
unionTypeExtensionDefinition ::= 'extend' 'union' typeName directives? unionMembership? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[directives="directive"]}
292+
unionTypeExtensionDefinition ::= 'extend' 'union' typeName directives? unionMembership? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameExtensionOwnerPsiElement" methods=[directives="directive"]}
293293

294294
unionMembership ::= '=' unionMembers {pin=1}
295295

296296
unionMembers::= '|'? typeName pipeUnionMember*
297297

298298
private pipeUnionMember ::= '|' typeName {pin=1}
299299

300-
enumTypeDefinition ::= description? 'enum' typeNameDefinition directives? enumValueDefinitions? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"]}
300+
enumTypeDefinition ::= description? 'enum' typeNameDefinition directives? enumValueDefinitions? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameDefinitionOwnerPsiElement" methods=[description="quotedString" directives="directive"]}
301301

302-
enumTypeExtensionDefinition ::= 'extend' 'enum' typeName directives? enumValueDefinitions? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[directives="directive"]}
302+
enumTypeExtensionDefinition ::= 'extend' 'enum' typeName directives? enumValueDefinitions? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameExtensionOwnerPsiElement" methods=[directives="directive"]}
303303

304304
enumValueDefinitions ::= '{' enumValueDefinition+ '}' {pin=1}
305305

306306
enumValueDefinition ::= description? enumValue directives? {pin=2 implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"] recoverWhile=enumValueDefinition_recover}
307307

308308
private enumValueDefinition_recover ::= !('}' | enumValueDefinition | root_tokens)
309309

310-
inputObjectTypeDefinition ::= description? 'input' typeNameDefinition directives? inputObjectValueDefinitions? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[description="quotedString" directives="directive"]}
310+
inputObjectTypeDefinition ::= description? 'input' typeNameDefinition directives? inputObjectValueDefinitions? {pin=2 extends=typeDefinition implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameDefinitionOwnerPsiElement" methods=[description="quotedString" directives="directive"]}
311311

312-
inputObjectTypeExtensionDefinition ::= 'extend' 'input' typeName directives? inputObjectValueDefinitions? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware" methods=[directives="directive"]}
312+
inputObjectTypeExtensionDefinition ::= 'extend' 'input' typeName directives? inputObjectValueDefinitions? {pin=2 extends=typeExtension implements="com.intellij.lang.jsgraphql.psi.impl.GraphQLDirectivesAware, com.intellij.lang.jsgraphql.psi.impl.GraphQLTypeNameExtensionOwnerPsiElement" methods=[directives="directive"]}
313313

314314
inputObjectValueDefinitions ::= '{' inputValueDefinition+ '}' {pin=1}
315315

0 commit comments

Comments
 (0)