Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply v2 to master #232

Merged
merged 146 commits into from
Apr 6, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
e8c6493
Initial v2 commit
jimkyndemeyer Jun 16, 2018
21379ec
Added GrammarKit parser and lexer compatible with latest GraphQL draf…
jimkyndemeyer Jun 16, 2018
355c746
Made plugin compatible with IntelliJ Community Edition and Android St…
jimkyndemeyer Jun 18, 2018
1e6fda0
Added 2.0.0-alpha-1 release and updatePlugins.xml for use with custom…
jimkyndemeyer Jun 18, 2018
863cd62
Updated plugin URL
jimkyndemeyer Jun 18, 2018
e0b40a4
Updated plugin URL
jimkyndemeyer Jun 18, 2018
3bad7c0
Added 2.0.0-alpha-2 (#164)
jimkyndemeyer Jun 18, 2018
2267c2a
Improved service directive tooling (#164)
jimkyndemeyer Jun 20, 2018
771636d
Added support for graphql-config (#125 and #164)
jimkyndemeyer Jun 30, 2018
1e92316
Added tools for introspection (#164)
jimkyndemeyer Jul 1, 2018
2ca1d82
Add alpha-3 release to releases plugin versions (#164)
jimkyndemeyer Jul 1, 2018
8f3629b
Anonymous operation definitions with variable definitions do not pars…
jimkyndemeyer Jul 2, 2018
240c8d0
Improved error handling of graphql-config introspection, fixed line m…
jimkyndemeyer Jul 3, 2018
8c03248
Fixed return statement that ignored additional directive locations in…
jimkyndemeyer Jul 10, 2018
75c4386
Feature additions for v2 (#164)
jimkyndemeyer Nov 8, 2018
e92a8d1
Feature additions for v2 (#164)
jimkyndemeyer Nov 10, 2018
b72bc5c
Added support for scratch files including schema and endpoint discove…
jimkyndemeyer Nov 11, 2018
e61732b
Recognize .graphqls as a GraphQL files (v1 had separate extensions gi…
jimkyndemeyer Nov 11, 2018
3830ab1
Added structure view and element icons provider (#164)
jimkyndemeyer Nov 11, 2018
2e1fd8b
Add documentation provider with support for MarkDown (#164, #185)
jimkyndemeyer Jan 17, 2019
ae37742
Constrained method parameters to align with instanceof checks (#164, …
jimkyndemeyer Jan 17, 2019
0a3fa45
Added schema discovery for GraphQL Endpoint Language (#164)
jimmeyer-els Jan 4, 2019
a086500
Initial stab at caching the schema for better perf in V2 (#164)
jimmeyer-els Jan 18, 2019
e3a3454
Various performance improvements (#164):
jimkyndemeyer Jan 19, 2019
73733cf
Added initial round of tests for v2 parser and completion (#164)
jimkyndemeyer Jan 19, 2019
b7658bd
Additional round of tests for completion in query and fragment contex…
jimkyndemeyer Jan 20, 2019
a52e48c
Add alpha-4 release to releases plugin versions (#164)
jimkyndemeyer Jan 20, 2019
2e3cb6f
Catch schema type registry merge exceptions and report as schema erro…
jimmeyer-els Jan 25, 2019
a0f4305
Adjust source locations in graphql-java document based on injection t…
jimmeyer-els Jan 25, 2019
40a30a0
Simplified schema discovery to only support graphql-config and introd…
jimkyndemeyer Jan 27, 2019
0355029
Adopted query result viewer fixes from v1 branch (#164)
jimkyndemeyer Jan 27, 2019
901739d
Fixed wrong auto-imports to ensure WebStorm compatibility (#164)
jimkyndemeyer Jan 27, 2019
b99dc0b
Add alpha-5 release to releases plugin versions (#164)
jimkyndemeyer Jan 27, 2019
828e7c2
Added support for schemas based on .json files containing GraphQL Int…
jimkyndemeyer Feb 2, 2019
0becf12
Ensure only schemaPath JSON files are included in schema scopes, fixe…
jimkyndemeyer Feb 3, 2019
768c9d9
Only enumerate potential introspection JSON files when scope is limit…
jimkyndemeyer Feb 10, 2019
7840f28
- Added migration of graphql.config.json to .graphqlconfig (#164)
jimkyndemeyer Feb 10, 2019
f5844cb
Include "introspect" field in default config to make it more discover…
jimkyndemeyer Feb 11, 2019
f163cf5
Added Relay Modern 2.0 Experimental Directives (#164)
jimkyndemeyer Feb 11, 2019
a9c1fe3
Excluded graphql-java production endpoint dependencies (#164)
jimkyndemeyer Feb 11, 2019
d1fc282
Use bulk VFS listener to track configuration files changes reliably, …
jimkyndemeyer Feb 12, 2019
d6f41e6
- Added toolbar action to edit .graphqlconfig file for the selected s…
jimkyndemeyer Feb 13, 2019
0de4bf0
Bumped memory allocation in build settings
jimkyndemeyer Feb 20, 2019
cedfc02
Form code-behind updated by IntelliJ GUI designer
jimkyndemeyer Feb 20, 2019
2ebd09b
Upgraded graphql-java to 11.0 (#164)
jimkyndemeyer Feb 20, 2019
d370829
Clean up the schema discovery caches during testing with multiple sch…
jimkyndemeyer Feb 24, 2019
d56c472
Upgraded gradle-grammar-kit-plugin to 2018.3 (#164)
jimkyndemeyer Feb 24, 2019
83908ca
Upgraded minimatch-nashorn to 1.0.1 to mitigate https://github.com/ji…
jimkyndemeyer Feb 24, 2019
fab40a2
Improved "projects" support in .graphqlconfig (#164)
jimkyndemeyer Feb 24, 2019
eda630c
Published the alpha-6 release (#164)
jimkyndemeyer Feb 24, 2019
12a4b64
Removed use of .shiftLeft due to version 173 requirement (#164)
jimkyndemeyer Feb 24, 2019
492958d
Handle indexing exception, e.g. during project startup (#164)
jimkyndemeyer Feb 24, 2019
54448a0
Ensure that the schemas tree view handles indexing updates aka "enter…
jimkyndemeyer Feb 26, 2019
79ad4a4
Pass file to header component directly since FileEditor.getFile requi…
jimkyndemeyer Feb 26, 2019
ebc171a
Increased the minimum IDE version to match results from running the "…
jimkyndemeyer Feb 26, 2019
72857fd
Removed unnecessary Disposer.register of the Query result editor sinc…
jimkyndemeyer Feb 27, 2019
3e7933b
Updated to latest intellij gradle plugin (#164)
jimkyndemeyer Feb 27, 2019
0b678ad
Don't show the .graphqlconfig "not included" editor notification befo…
jimkyndemeyer Feb 27, 2019
4ba8dba
Migrated Endpoint Language schema discovery to use new .graphqlconfig…
jimkyndemeyer Mar 1, 2019
648af46
Re-enabled "Create GraphQL Endpoint file" action based on whether End…
jimkyndemeyer Mar 2, 2019
a784387
Various improvements to introspection dev workflow (#164)
jimkyndemeyer Mar 2, 2019
1c694c9
Include __typename in field completion (#164)
jimkyndemeyer Mar 2, 2019
9339433
Ensured scalar SDL printing includes all scalars, fixed enum and unio…
jimkyndemeyer Mar 3, 2019
21e0b97
Published the alpha-7 release (#164)
jimkyndemeyer Mar 3, 2019
bf25557
Fixed source locations and navigation for injected GraphQL, e.g. in g…
jimkyndemeyer Mar 4, 2019
c5018e0
Update graphql configuration in response to "mark as excluded/cancel …
jimkyndemeyer Mar 4, 2019
1e04ee3
Fixed race condition in registering JavaScript file types (#164)
jimkyndemeyer Mar 5, 2019
002195c
Various fixes and improvements to configuration management (#164)
jimkyndemeyer Mar 5, 2019
9539f63
- Added ReentrantReadWriteLock to config manager cache to ensure cons…
jimkyndemeyer Mar 5, 2019
ce9eb29
Tweaked multi-threading behaviour (#164)
jimkyndemeyer Mar 6, 2019
b16fa14
Add error annotations to identifiers instead of on descriptions (#164)
jimkyndemeyer Mar 6, 2019
f11491f
Fixed test errors in GraphQL Endpoint language due to completion file…
jimkyndemeyer Mar 6, 2019
997f39b
Fixed .graphqlconfig aware include/exclude test after making GraphQLC…
jimkyndemeyer Mar 6, 2019
5244857
Added support for associating scratch files with specific projects in…
jimkyndemeyer Mar 7, 2019
cb7c553
Added support for associating scratch files with specific projects in…
jimkyndemeyer Mar 8, 2019
2e61d45
Added support for associating scratch files with specific projects in…
jimkyndemeyer Mar 8, 2019
a92ed1b
Made introspection schema building more robust (#164, #216, #217)
jimkyndemeyer Mar 9, 2019
2eb5921
Fixed typo in settings form (#164)
jimkyndemeyer Mar 9, 2019
c9e5514
Refactored completion providers into separate methods, ensure type na…
jimkyndemeyer Mar 9, 2019
76b3b82
Fixed typo in settings form (#164)
jimkyndemeyer Mar 9, 2019
8a71faf
Added completion of enum value names inside list literals (#164)
jimkyndemeyer Mar 9, 2019
7ece717
Added completion of variable names (#164)
jimkyndemeyer Mar 9, 2019
bbfb15c
Ensure only the name is matched against when resolving field referenc…
jimkyndemeyer Mar 9, 2019
3e3470f
Ensured that argument highlighting removes keyword font style if the …
jimkyndemeyer Mar 9, 2019
8dd1d89
Ensured that argument highlighting removes keyword font style if the …
jimkyndemeyer Mar 10, 2019
075f238
Improvements and fixes to JSON introspection schema build (#164, #216…
jimkyndemeyer Mar 10, 2019
55b8b2e
Ignore "sub selection required" validation errors for fields annotate…
jimkyndemeyer Mar 10, 2019
cc0daa7
Improvements and fixes to JSON introspection schema build (#164, #216…
jimkyndemeyer Mar 10, 2019
42bf5a2
Added intentions to add new missing types when authoring schemas as S…
jimkyndemeyer Mar 10, 2019
67bab51
Delay schema panel refresh to after inspections run (300ms) (#164)
jimkyndemeyer Mar 10, 2019
720aefe
Fixed non-null parameter on sentinel NULL_REFERENCE value (#164)
jimkyndemeyer Mar 10, 2019
1386749
Published the alpha-8 release (#164)
jimkyndemeyer Mar 10, 2019
4886cf0
Use completion "intellijidearulezz" token to enable completion of fra…
jimkyndemeyer Mar 12, 2019
126f50f
Include the current scratch file while resolving fragment references …
jimkyndemeyer Mar 13, 2019
ff2a35e
Report graphql-java internal assert exceptions as schema errors (#164)
jimkyndemeyer Mar 13, 2019
748ca80
Added missing syntax highlighting to fields of input objects (#164)
jimkyndemeyer Mar 13, 2019
2e760f5
Ensured that all exceptions thrown during schema construction are cau…
jimkyndemeyer Mar 13, 2019
8a480a0
Ensured that JSON reformat occurs even though the content type header…
jimkyndemeyer Mar 14, 2019
59439d6
Ensured that schemaScope is correct for the in-memory SDL files deriv…
jimkyndemeyer Mar 14, 2019
06810c8
Only show potential schema errors in the Schemas panel when the plugi…
jimkyndemeyer Mar 16, 2019
019ba95
Removed unused v1 code (#164)
jimkyndemeyer Mar 16, 2019
0549565
Don't queue a configuration update when the project is disposed, e.g.…
jimkyndemeyer Mar 16, 2019
4b06708
Added support for "Edit GraphQL fragment" which creates a separate ed…
jimkyndemeyer Mar 16, 2019
6935f9f
Bumped version in preparation for beta-1 release (#164)
jimkyndemeyer Mar 16, 2019
75006a0
Added gradle files (#164)
jimkyndemeyer Mar 16, 2019
bf2db2f
Reverted updatePlugins.xml back to 2.0.0-alpha-8 (#164)
jimkyndemeyer Mar 17, 2019
92d526e
Merge remote-tracking branch 'origin/master' into v2
jimkyndemeyer Mar 17, 2019
0ed9f03
v2 branch up-to-date with master (#164)
jimkyndemeyer Mar 17, 2019
e738c96
Updated gradle org.jetbrains.intellij plugin to address JetBrains JRE…
jimkyndemeyer Mar 17, 2019
352ca5f
Published the beta-1 release (#164)
jimkyndemeyer Mar 17, 2019
858332a
svg icons
denofevil Mar 18, 2019
cd298bf
Merge pull request #222 from denofevil/v2
jimkyndemeyer Mar 19, 2019
50dc152
fix leaking tree and editor
denofevil Mar 20, 2019
d2f530f
Merge pull request #224 from denofevil/v2
jimkyndemeyer Mar 20, 2019
74a4687
Various Icon updates (#164)
jimkyndemeyer Mar 20, 2019
97d6847
Added plugin icon and updated plugin description to match v2 (#164)
jimkyndemeyer Mar 20, 2019
ba5dc3b
updated documentation provider to match new style
denofevil Mar 21, 2019
5cf6afa
use DocumentationMarkup
denofevil Mar 21, 2019
ab568f0
Merge pull request #226 from denofevil/v2
jimkyndemeyer Mar 21, 2019
ad13524
Ensure that JSHighlighter is initialize before looking up editor colo…
jimmeyer-els Mar 25, 2019
77351af
Included JS files and their dialects in looking up an Endpoint Langua…
jimmeyer-els Mar 25, 2019
30e461f
Removed deprecated SERVICE field from PsiSearchHelper service lookup …
jimmeyer-els Mar 25, 2019
1f2755b
Added reference resolvers for object fields and enum values in Endpoi…
jimmeyer-els Mar 25, 2019
aafd612
Simplified schema icon (#164)
jimkyndemeyer Mar 25, 2019
9aa891d
Added missing Endpoint Language scalar definitions to schema registry…
jimkyndemeyer Mar 25, 2019
bd80921
Updated schema panel refresh to use IDE idle status to reduce editor …
jimmeyer-els Mar 26, 2019
c35be0f
Fixed type scope for object values inside arrays on arguments (#164)
jimmeyer-els Mar 26, 2019
a57aa61
Return unmodified type as type scope for object values inside arrays …
jimmeyer-els Mar 26, 2019
12be5d2
Bumped plugin version requirement based on inspection of PsiSearchHel…
jimkyndemeyer Mar 26, 2019
6773041
Performance improvements to Schema and Project Structure panel tree v…
jimmeyer-els Mar 27, 2019
53f98cf
Introduced GraphQLIdentifierIndex to improve identifier lookup perfor…
jimkyndemeyer Mar 28, 2019
dfa4f0b
Added dedicated index of files that contain fragment definitions to p…
jimmeyer-els Mar 28, 2019
4f4a1f8
Remove idle listener when project is disposed (#164)
jimkyndemeyer Mar 28, 2019
3ee9a8d
Ensured that the introspection schema registry follows spec and doesn…
jimkyndemeyer Mar 28, 2019
86e0b5e
Updated help action to link to the plugin GitHub repository (#164)
jimkyndemeyer Mar 31, 2019
c51d9f8
Include fragments defined in the currently edited scratch files in fr…
jimkyndemeyer Mar 31, 2019
84bbb7f
Use original Endpoint Language file to get a non-null virtual file du…
jimkyndemeyer Mar 31, 2019
ebac462
Published the beta-2 release (#164)
jimkyndemeyer Mar 31, 2019
e1958fc
Initial commit of documentation website (#164)
jimkyndemeyer Mar 31, 2019
4488951
Updated Algolia API key for docs search (#164)
jimkyndemeyer Apr 6, 2019
3f0e947
Merge remote-tracking branch 'origin/master' into v2
jimkyndemeyer Apr 6, 2019
9ff824b
Ensured that the Endpoint Language test uses the sync method for buil…
jimkyndemeyer Apr 6, 2019
2d0b8ad
Ensured that only one GraphQL configuration scan background task is q…
jimkyndemeyer Apr 6, 2019
de0a780
Updated introspection comment to not include the current date to avoi…
jimkyndemeyer Apr 6, 2019
ee2d660
Updated readme and changelog for the 2.0.0 release (#164)
jimkyndemeyer Apr 6, 2019
693fadf
Published last 2.0 beta (#164)
jimkyndemeyer Apr 6, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 12 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,15 @@ $RECYCLE.BIN/

# Windows shortcuts
*.lnk
.idea/dictionaries/*
.idea/workspace.xml
.idea/uiDesigner.xml
.idea/vcs.xml
.idea/pure-run-config-templates.xml
resources/META-INF/dist/
.idea
resources/META-INF/dist/

.gradle
build

# documentation website
website/translated_docs
website/build/
website/yarn.lock
website/node_modules
website/i18n/*
1 change: 0 additions & 1 deletion .idea/.name

This file was deleted.

22 changes: 5 additions & 17 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 0 additions & 3 deletions .idea/copyright/profiles_settings.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/encodings.xml

This file was deleted.

9 changes: 0 additions & 9 deletions .idea/libraries/commons_io_2_5.xml

This file was deleted.

18 changes: 4 additions & 14 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 2.0.0 (2019-04-06)

Changes:

- 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)

## 1.7.4 (2019-04-03)

Fixes:
Expand Down
102 changes: 20 additions & 82 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,105 +2,43 @@

# JS GraphQL IntelliJ Plugin

__Note:__ V2.0 is in active development. See the [v2 branch](https://github.com/jimkyndemeyer/js-graphql-intellij-plugin/tree/v2) and [#164]( https://github.com/jimkyndemeyer/js-graphql-intellij-plugin/issues/164)
GraphQL language support for WebStorm, IntelliJ IDEA and other IDEs based on the IntelliJ Platform.

GraphQL language support including Relay.QL tagged templates in JavaScript and TypeScript.

It provides the following features in IntelliJ IDEA, WebStorm, RubyMine, PhpStorm, and PyCharm:
## Features overview

- Full language support for the June 2018 GraphQL Specification including the Type System Definition Language (SDL)
- The plugin discovers your local schema on the fly. Remote schemas are easily fetched using introspection
- Schema discovery is configured using [graphql-config](https://github.com/prisma/graphql-config) files, including support for multi-schema projects
- Built-in support for Relay and Apollo projects: `graphql` and `gql` tagged template literals in JavaScript and TypeScript are automatically recognized as GraphQL
- Execute queries using variables against configurable endpoints, including support for custom headers and environment variables
- Schema-aware completion, error highlighting, and documentation
- Syntax highlighting, code-formatting, folding, commenter, and brace-matching
- 'Find Usages' and 'Go to Declaration' for schema types and fields
- Schema viewer and 'Go to Implementation' for schema interfaces
- 'Structure view' to navigate GraphQL and GraphQL Schema files
- Configurable GraphQL schema retrieval and reloading based on a local file or a url using 'then-request'
- Execute queries with variables against configurable endpoints

V1.x depends on [js-graphql-language-service](https://github.com/jimkyndemeyer/js-graphql-language-service) that it manages using a Node.js process handler.

## Installation
1. Install Node JS
```
# Ubuntu
sudo apt install nodejs

# Mac OS
brew install node
```

2. Install Node JS and JS GraphQL Plugin in IntelliJ
```
1. File | Settings | Plugins
2. Search for: nodejs and graphql
3. Install both plugins and Restart
```

3. Set Node JS Interpreter in IntelliJ
```
1. File | Settings | Languages & Frameworks | Node.js and NPM Node interpreter
2. Add... (search for nodejs bin path in your system)

# Ubuntu
whereis nodejs
/usr/bin/nodejs

# Mac OS
which node

# Windows
where node
```
At this point JS GraphQL will recognize your `.graphql` files. However, if you wish to customize your schema, follow the FAQ.
- 'Find Usages' and 'Go to Declaration' for schema types, fields, and fragments
- 'Structure view' to navigate GraphQL files

## Documentation

The plugin uses a `graphql.config.json` file in the project root to configure the location of your GraphQL schema.

To get started, please see the [FAQ](#faq).

## Features demo

**Schema setup, completion, error highlighting, documentation**
![](docs/js-graphql-webstorm-demo.gif)

**Find usages, schema viewer, structure view**
![](docs/js-graphql-webstorm-usages-structure-demo.gif)

## FAQ

**How do I configure the plugin in a project**

The plugin is activated as soon as you view or edit GraphQL in the editor. This includes GraphQL inside `Relay.QL` and `gql` templates in JavaScript and TypeScript. You can also use `.graphql` physical files and scratch files. These files allow you to query your endpoint directly from your IDE.

An editor notification bar should prompt you to "Create a graphql.config.json". Accept and edit this config file to point the plugin at your local `schema.json` or your endpoint for introspection. The plugin uses the schema to provide completion and error highlighting.

**How do I reload a GraphQL Schema that was loaded from a URL?**

In the the GraphQL tool window, select the "Current Errors" tab and click the "Restart JS GraphQL Language Service" button.

**I clicked "No thanks" when asked to create a graphql.config.json. Now what?**

Download [graphql.config.json](https://github.com/jimkyndemeyer/js-graphql-intellij-plugin/blob/master/resources/META-INF/graphql.config.json) from this repository and place it in your project root (next to your package.json for JS projects). Re-open the project and edit `graphql.config.json` to point the plugin at your schema.
The main documentation site is available at https://jimkyndemeyer.github.io/js-graphql-intellij-plugin/

**Fields are shown as errors with "Cannot query field..." messages**
## Which IDEs are compatible with the plugin?

Make sure you've edited your `graphql.config.json` to point it at your schema. This enables the plugin to properly recognize the available types and their fields.
The plugin is compatible with version 2018.2+ (182.711 or later) of all IDEs based on the IntelliJ Platform, including but not limited to WebStorm, IntelliJ IDEA, Android Studio, RubyMine, PhpStorm, and PyCharm.

**Which IDEs are compatible with the plugin?**
## Where can I get the plugin?

The plugin is compatible with version 143+ of IntelliJ IDEA, WebStorm, RubyMine, PhpStorm, and PyCharm.
The plugin is published to the [JetBrains Plugin Repository](https://plugins.jetbrains.com/plugin/8097?pr=).

PyCharm CE is not supported since the plugin depends on two other plugins: NodeJS and JavaScript.
To install it, open your IDE "Settings", "Plugins", "Marketplace" and search for "GraphQL".

Experimental support for Android Studio is available in the [`android-studio`](https://github.com/jimkyndemeyer/js-graphql-intellij-plugin/tree/android-studio) branch. Download it from there.
## Acknowledgements

**Where can I get the plugin?**
This plugin was heavily inspired by [GraphiQL](https://github.com/graphql/graphiql) from Facebook.

The plugin is available from the JetBrains Plugin Repository at https://plugins.jetbrains.com/plugin/8097?pr=
A number of language features such as query and schema validation are powered by [graphql-java](https://github.com/graphql-java/graphql-java).

To install it, open "Settings", "Plugins", "Browse repositories..." and search for "GraphQL".
A thanks also goes out to the [Apollo](https://github.com/apollographql) and [Prisma](https://github.com/prisma) teams for their continued efforts to improve the GraphQL Developer Experience.

**Note**: The experimental version in the `android-studio` branch is not available from the JetBrains Plugin Repository.
And finally, a thank you to the [JetBrains WebStorm team](https://twitter.com/WebStormIDE) and the Alpha/Beta testers for all their help in getting the 2.0 release across the finish line.

## License
MIT
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-1.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-2.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-3.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-4.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-5.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-6.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-7.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-alpha-8.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-beta-1.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-beta-2.zip
Binary file not shown.
Binary file added alpha-releases/JS GraphQL-2.0.0-end-of-beta.zip
Binary file not shown.
3 changes: 3 additions & 0 deletions alpha-releases/updatePlugins.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<plugins>
<plugin id="com.intellij.lang.jsgraphql" url="https://github.com/jimkyndemeyer/js-graphql-intellij-plugin/blob/v2/alpha-releases/JS%20GraphQL-2.0.0-end-of-beta.zip?raw=true" version="2.0.0-end-of-beta"/>
</plugins>
137 changes: 137 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
buildscript {
repositories {
maven { url 'https://jitpack.io'}
}
dependencies{
classpath "com.github.JetBrains:gradle-grammar-kit-plugin:2018.3"
}
}

plugins {
id 'org.jetbrains.intellij' version '0.4.4'
id "de.undercouch.download" version "3.4.3"
id "com.github.ManifestClasspath" version "0.1.0-RELEASE"
}

group 'com.intellij.lang.jsgraphql'
version '2.0.0'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
mavenCentral()
}

dependencies {
compile ("com.graphql-java:graphql-java:11.0") {
exclude group: "org.reactivestreams", module: "reactive-streams"
exclude group: "com.graphql-java", module: "java-dataloader"
exclude group: "org.slf4j", module: "slf4j-api"
}
compile "commons-io:commons-io:2.6"
compile "com.atlassian.commonmark:commonmark:0.12.1"
compile group: 'org.yaml', name: 'snakeyaml', version: '1.21'

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

intellij {
version '2018.2'
type 'IU'
updateSinceUntilBuild = false
pluginName 'JS GraphQL'
plugins = ['JavaScriptLanguage', 'CSS']
ideaDependencyCachePath = project.buildDir
}

runIde {
jvmArgs '-Xmx2G'
}

patchPluginXml {

}

sourceSets {

main.java.srcDirs = ['src/main', 'gen']
main.resources.srcDir 'resources'

test.java.srcDirs = ['src/test']
test.resources.srcDir 'test-resources'

}

apply plugin: 'org.jetbrains.grammarkit'

// import is optional to make task creation easier
import org.jetbrains.grammarkit.tasks.*

// GraphQL Parser and Lexer
task generateGraphQLLexer(type: GenerateLexer) {
source 'src/grammars/GraphQLLexer.flex'
targetDir 'gen/com/intellij/lang/jsgraphql/'
targetClass 'GraphQLLexer'
purgeOldFiles = true
}

task generateGraphQLParser(type: GenerateParser) {
source "src/grammars/GraphQLParser.bnf"
targetRoot = 'gen/'
purgeOldFiles = true
pathToParser = 'com/intellij/lang/jsgraphql/GraphQLParser'
pathToPsiRoot = 'com/intellij/lang/jsgraphql/psi'
}

// GraphQL Endpoint Parser and Lexer
task generateGraphQLEndpointLexer(type: GenerateLexer) {
source 'src/grammars/JSGraphQLEndpointLexer.flex'
targetDir 'gen/com/intellij/lang/jsgraphql/endpoint/lexer/'
targetClass 'JSGraphQLEndpointLexer'
purgeOldFiles = true
}

task generateGraphQLEndpointParser(type: GenerateParser) {
source "src/grammars/JSGraphQLEndpointParser.bnf"
targetRoot = 'gen/'
purgeOldFiles = true
pathToParser = 'com/intellij/lang/jsgraphql/endpoint/parser/JSGraphQLEndpointParser'
pathToPsiRoot = 'com/intellij/lang/jsgraphql/endpoint/psi'
}


// GraphQL Endpoint Doc Parser and Lexer
task generateGraphQLEndpointDocLexer(type: GenerateLexer) {
source 'src/grammars/JSGraphQLEndpointDocLexer.flex'
targetDir 'gen/com/intellij/lang/jsgraphql/endpoint/doc/lexer/'
targetClass 'GraphQLLexer'
purgeOldFiles = true
}

task generateGraphQLEndpointDocParser(type: GenerateParser) {
source "src/grammars/JSGraphQLEndpointDocParser.bnf"
targetRoot = 'gen/'
purgeOldFiles = true
pathToParser = 'com/intellij/lang/jsgraphql/endpoint/doc/JSGraphQLEndpointDocParser'
pathToPsiRoot = 'com/intellij/lang/jsgraphql/endpoint/doc/psi'
}

task downloadMinimatchNashorn(type: Download) {
src 'https://raw.githubusercontent.com/jimkyndemeyer/minimatch-nashorn/1.0.1/dist/minimatch-nashorn.js'
dest 'resources/META-INF'
overwrite false
}

compileJava {
dependsOn downloadMinimatchNashorn
dependsOn generateGraphQLEndpointLexer
dependsOn generateGraphQLEndpointParser
dependsOn generateGraphQLEndpointDocLexer
dependsOn generateGraphQLEndpointDocParser
dependsOn generateGraphQLLexer
dependsOn generateGraphQLParser
}

compileJava.options.encoding = 'UTF-8'
Binary file added docs/assets/graphql-config-introspect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/installation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/introspect-endpoint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/introspect-re-run.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/introspect-startup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading