Skip to content

2.0.0-alpha-2: Language support for GraphQL draft spec as of June 2018

Pre-release
Pre-release
Compare
Choose a tag to compare
@jimkyndemeyer jimkyndemeyer released this 18 Jun 19:33

This is the first alpha release of version 2, which features:

  • Language support for the GraphQL draft spec as of June 2018
  • First-class support for the Schema Definition Language, including completion, go to definitions, find usages, error highlighting etc.
  • No longer depends on a Node.js language service, opening up support for IntelliJ IDEA Community Edition and Android Studio
  • In place of the previous Node.js based language service, the plugin makes use of the graphql-java project.

Getting and installing the alpha releases

The alpha releases will be published directly in this repository and is added to your IDE using a custom plugin repository URL:

  • In your IDE, click "Settings" > "Plugins" > "Browse repositories..." > "Manage repositories..."
  • In the "Custom Plugin Repositories" dialog that opens, add the following url: https://github.com/jimkyndemeyer/js-graphql-intellij-plugin/raw/v2/alpha-releases/updatePlugins.xml
  • Once added, click "Ok" to return to the "Browse repositories" dialog.
  • You should now see a "Repository: All" dropdown. Select this alpha repository that you just added.
  • You should now see the GraphQL alpha plugin listed.

As new alpahas are released, you should get plugin update notifications as per ususal.

Reporting issues

Please add a [v2] prefix when reporting issues for the alpha. See the known issues and limitations below.

The main issue for tracking the v2 road map is #164

Known issues and limitations

This release is not feature complete, and changes will be made as development continues.

At this time there following limitations are present:

  • Schemas are represented using the Schema Definition Language (SDL). If you only have a schema.json with the introspection result, or use a URL from which the introspection should be pulled, you will need a script to print the introspection result as SDL. See https://graphql.org/graphql-js/utilities/ Note that this functionality will be added to the plugin in one of the following alphas.
  • Related to the above, the graphql.config.json file currently only configures endpoints for queries, and has no bearing on the discovered schema types.

Pending features:

  • Configurable scopes for multi-schema projects
  • Documentation view
  • Structure view
  • Performance improvements through PSI caching
  • Proper handling of placeholders in tagged templates

Known issues:

  • The plugin currently uses the scopes configured in "Settings" > "Appearance & Behavior" > "Scopes" to separate schemas for multi-schema projects. If you use this scopes feature for other use cases, it may interfere with the schema-driven GraphQL language features.
  • Placeholders in tagged templates are not transformed before being validated by graphql-java. This can break Relay Classic and certain Apollo projects that use placeholders instead of the newer and recommended static queries and fragments