- GraphQL settings configurable exception.
- Plugin configuration in Rider since 2023.1 #659
- Query variables editor visibility since 2023.1 #658
- Find usages of fragments #656
- Shared schemas between projects #661
- Request only required variables before executing a query #663
- Completion for arguments inside GraphQL injections and scratch files #662
- GraphQL config v3 support. For more details check the documentation.
- The modern configuration format is supported for .yml, .json, .js and .ts files. Multiple different file names can be used, introspection requests vie line markers should be available inside the editor only for YAML and JSON files. Configuration in package.json and .toml files is not supported, but you can open an issue if you really need it.
- You don't need to use the
endpoints
extension to introspect your remote GraphQL schemas. While still supported, it's only useful if you want to store an introspection schema within your project sources. Instead, simply point an entry in theschema
section to a valid URL and run the introspection query. Automatic schema fetching by a specified time frame will be implemented later. - Validation of configuration files and code completion are enabled through the use of JSON schema.
- Legacy configuration formats will be supported to ease the transition process.
- An editor notification action could automatically convert configuration files to a new format when they are opened. It is important to note that during the migration of configuration files, the format of variables has also been changed.
- The glob matching functionality in configs has been reworked and now should only include schema files that strictly match.
- Local JSON introspection files have been reworked. Now, their corresponding GraphQL SDLs are stored on disk and indexed as regular project files. This should prevent them from being the source of different exceptions and memory leaks. If generating SDL based on the GraphQL introspection result fails, the editor will display error details.
- Configuration change tracking has been improved. It is now possible to change a configuration file and consistently see an updated state of the IDE without significant delays.
- The comment format for GraphQL Scratch files has been updated to better suit modern configuration options. However, the legacy format is still supported, so existing files should function as they did before.
- The external API for contributing GraphQL configuration is now available. This allows third-party plugins to override the project structure and guide the plugin on which sources should be included in the schema and in which directory.
- Fragments are resolved in Vue and other HTML-like files.
- The support for search in language injections has been reworked, allowing us to add it for more languages. However, we still need to rethink how language injections work, as the current implementation has its own limitations. Stay tuned 😉.
- The search algorithm for .env files has been improved. Previously, it only looked for an .env file in the config folder or project root. Now, it scans all directories from the configuration file up to the project root.
- Manually provided environment variables are stored per configuration file, rather than being set globally for the entire project. You can
set them up from the context menu in the configuration file (accessed via the menu item named
Edit GraphQL Environment Variables
), via a new button in the editor toolbar, or by usingFind Action > Edit GraphQL Environment Variables
. - It is now possible to perform an introspection query directly from the header of the GraphQL editor. Simply use
the
Run Introspection Query
action on the toolbar. To open an introspection file saved on disk, use the adjacentOpen Introspection Result
action. - The GraphQL Tool Window has been updated, so it should no longer throw a deprecation exception when opened.
- Compatibility with 2023.1.
- Updated Federation 2 schema.
- Updated Apollo Kotlin schema.
- Deprecation of input values and arguments (#507).
- Renamed
specifiedBy
tospecifiedByURL
(#554). - Fixed interface implementation inspection for overridden fields with more specific types (#563).
- Increased a default request timeout.
- Support for built-in HTTP proxy settings.
- Reading global environment variables in GraphQL config files.
- Highlighting for keywords used as field names.
- Parsing a
repeatable
keyword as an identifier. - Compatibility with 2022.3.
- Missing Relay type definitions.
- Apollo Kotlin type definitions.
- Compatibility with EAP 2022.2.
- Unresolved built-in GraphQL definitions after plugin reinstall.
- Compatibility with EAP 2022.1.
- java.lang.NullPointerException at com.intellij.lang.jsgraphql.ide.introspection.GraphQLIntrospectionService.getSecurityConfig().
- java.lang.Throwable: Read access is allowed from inside read-action at GraphQLUIProjectService.runQuery().
- Exception: SchemaProblem{errors=['onOperation' tried to use an undeclared directive 'deprecated'}.
- Exception: com.intellij.lang.jsgraphql.types.AssertException: queryType expected.
- java.lang.Throwable: Read access is allowed from inside read-action (or EDT) only.
- Replaced GitHub error reporter with Sentry.
- To download or update the plugin, an IDE reload is now required.
- More filenames are supported for .env files:
.env.dev
,.env.dev.local
. - Spell-checking for string literals.
- GitHub error reporter for plugin exceptions. Additional logging has also been implemented, so feel free to report an error!
- Type definitions for the Apollo Federation. Can be enabled in the settings.
- Type definitions discovery in JAR libraries for the Netflix's DGS framework.
- A new option that prevents opening the editor with the result after an introspection request.
- Colors for the built-in Monokai editor scheme.
- Schema directives introspection. Support for the "repeatable" directives is disabled by default and can be enabled in the settings.
- Automatic insertion of curly braces for fields without arguments in code completion.
- Fixed introspection schemas in JSON format. Previously, when the schema had the JSON format, all fields could be marked as unresolved.
- Fixed .graphqlconfig file type association which led to a lack of highlighting and missing line markers.
- Minor improvements in the formatting of introspection results.
- Added separate configurable inspections for existing schema and query validation rules, e.g. Unresolved reference, Type redefinition, Member redefinition, Duplicate argument, Duplicate directive, and many more.
- Added support for repeatable directives.
- Added support for
extend schema
syntax. - Added support for schema descriptions.
- Added support for subscription directives.
- Added several Relay built-in directives.
- Supported suppression of inspections with comment for the definition or the whole file.
- Changing the file highlight level in the editor prevents any inspections from being displayed.
- Load variables from .env files. Supported file names:
.env.local
,.env.development.local
,.env.development
,.env
. - Injections using
#graphql
and/* GraphQL */
comments. - Enabled ESLint support for GraphQL.
- Improved completion for variables in queries.
- Improved readability of error messages.
- Emojis in the end-of-line comments.
- Fixed resolve for directive arguments.
- Fixed resolve for default object argument fields.
- Fixed displaying Apollo
@client
fields as errors.
- SSL certificate check could be disabled (#435)
- GZip response handling (#427)
- Startup exception caused by Relay detection (#431)
- Search for configuration through the whole project root hierarchy (#423)
- Loading env variables from .env file (#426)
- Executing a single selected query (#418)
- Compatibility with 2021.1
- Possible cause of the broken auto-complete
- Fixed semantic highlighting when errors are in the same range (#383)
- Compatibility with 2020.3
- Exception when using default parameter values (#412)
- @required, @inline and @preloadable directives for Relay
- Support for .gql file types
- Basic support for schema splitting with GraphQL Modules and similar tools (#374)
- Improved error handling for introspection queries
- Updated for compatibility with IntelliJ IDEA 2020.2
- Allow introspection query results with empty errors in the response (#272)
- Fix incorrect escaping of characters in scalar descriptions (#358)
- Fix wrong line separators error (#347)
- Fix escaping of GraphQL query variables (#364)
- Fix query execution and config creation for GraphQL fragments editor (#365, #356)
- Fix UI freeze during a request for a large introspection schema
- Upgraded to graphql-java 15.0 (#341)
- Interfaces can implement other interfaces
- Directive support on variable definitions
- New specifiedBy scalar
- Allow nullable arguments to be introduced on fields from interfaces when implemented in types (#338)
- Allow keywords to be used as field names (#239) (#264)
- Upgraded graphql-java to 14.0 (graphql-java/graphql-java#1523)
- Refactored breaking changes from graphql-java 12.0 to 14.0
- Fix for Incompatible API changes in the upcoming IntelliJ Platform 2020.1 (#303)
- Fix for Nashorn deprecation warning (#287)
- Fix for Go to Definition always scrolls to the top of the schema (#289)
- Handle escaped backticks in gql tagged template literals (#279)
- Fixed assertion error when clicking settings tool button in injected GraphQL fragment editor window (#275)
- Added Code Style settings page to control indentation (#258, #92)
- Fixed: Enum value of TRUE breaks schema (#244)
- Add support for generics in TypeScript GraphQL tagged template literals (#200)
- Store caret position for contextual queries when it changes to avoid using the Editor UI from non-UI thread in query context highlighter (#256)
- Recognize JSON files with top-level __schema field as GraphQL introspection result in GraphQLIdentifierIndex (#242)
- Compatibility fixes for 2019.2 EAP (#256, #259)
- Upgraded to graphql-java 12.0 to improve performance in very large schemas (#238)
- Reintroduced contextual queries and automatically include referenced fragments across files (#243, #43, #94)
- Detect manual injections using language=GraphQL comment to discover schema types and fragments (#235)
- Don't clear the variables editor when the variables window is closed (#83)
- Support for the June 2018 GraphQL specification including SDL (#118, #133, #137, #129, #141, #144, #150, #164)
- Support for multiple schemas using graphql-config (#84, #125, #140, #145, #164)
- Replaced Node.js based language service with native parser, lexer, and graphql-java to be compatible with all IDEs based on the IntelliJ Platform (#62, #164)
- Fixed "DisposalException: Double release of editor" (#211)
- Fixed missing syntax highlighting colors due to uninitialized JavaScript colors being referenced from GraphQL (#158)
- Set default charset to UTF-8 in query result viewer to align with JSON spec (#181)
- Query result viewer doesn't always reformat the response JSON (#209)
- Make the Query result viewer work with windows line endings in JSON responses (#191)
- Restore whitespace tokens for top level fragment placeholders in Apollo to preserve them during format lines (#162)
- Node.js outputs deprecation warnings using the error console, so silence them on order to be able to detect real errors when creating the process handler (#153)
- Fixed indentation issue with strongly typed placeholders by sending the current GraphQL environment to the language service (#130)
- Removed 400 px large svg GraphQL and Relay logos used by Rider for the line marker (#147)
- Language Service 1.5.1: Support for strongly typed variable placeholders in GraphQL tagged templates (#130)
- Support for declaring annotations in Endpoint language (#15)
- Editor tab loaded on background thread during startup causes dispatch thread assertion error (#124)
- 'Editor > Code Style' never loads In WebStorm 2017.3 (#120)
- Resolve fragment references under progress in annotator to ensure WebStorm 2017.3 compatibility (#115)
- 2017.3 compatibility (#105)
- Support for Relay Modern fragments (#74)
- Language Service 1.5.0: Support for loading the schema from .graphql file (Relay Modern projects)
- Fix 'Find Usages' dialog for non-GraphQL entities (#93)
- Fix case where the annotator would attempt to access an editor that is already disposed (#75)
- Show a notification when the Node.js process fails to start (#100)
- Remove Schema IDL warnings in .graphql files since this is the file extension Facebook uses to print schemas in Relay Modern (#85)
- Only show the error console automatically on the first error in the project (#80) (#90)
- Send the variables editor text as-is since Gson always deserializes a JSON number as a Double (This turns a variable value of 1 into 1.0, making the value incompatible with the Int schema type) (#86)
- Auto-import is not placed on a new line in JS files with GraphQL templates (#91)
- Support Relay Modern graphql.experimental tag (#74)
- Pass "variables" in payload to GraphQL server as JSON. (#64)
- 2017.1 EAP Not detecting Relay.QL usage (#60)
- Language Service 1.4.0 based on graphql 0.9.1 and codemirror-graphql 0.6.2
- Experimental support for GraphQL Endpoint Language (#15)
- Full PSI support for arguments (#35, #51)
- Support for top level Apollo fragments template placeholders (#44)
- Keyboard shortcut can now be assigned to the restart language service action (#49)
- Assertion failed: Caret model is in its update process. All requests are illegal at this point. (#42)
- Add GraphQL configuration page for indentation (#29)
- Language Service 1.3.2: Object literal for variables in getFragment closes Relay.QL template expression.
- Language Service 1.3.1: Support __schema root in schema.json (compatible with graphene)
- Fixes formatting exception when using ".if" live template in JSFile with injected GraphQL (#26)
- Support for gql tagged templates used by Apollo and Lokka GraphQL Clients (#25)
- Language Service 1.3.0 with Lokka and Apollo gql support (#25)
- Persist endpoint selection to project configuration
- Fixes false Error in Relay Mutation (#23)
- Language Service 1.2.0 based on graphql 0.7.0 and codemirror-graphql 0.5.4 (#22)
- Basic editor support for GraphQL Schema files (.graphqls) (#22)
- Fixes compatibility issue with IDEA 2016.2.2 (#18)
- Remove GraphQL schema from scratch file formats (#14)
- JSLanguageCompilerToolWindowManager: NoClassDefFoundError in WebStorm 2016.2 EAP (#13)
- Language Service 1.1.2 increases maximum size of JSON schema from 100kb to 32mb
- Support for GraphQL scratch files
- Invoke reformat code action on query result
- Contextual query support: Execute buffer, selection, or named operations at the caret position in the GraphQL editor
- Completion after ... fragment spread operator. (#4)
- Language Service 1.1.1 based on graphql 0.4.16 and codemirror-graphql 0.2.2
- Support for GraphQL Schema Language
- Initial release.