-
Notifications
You must be signed in to change notification settings - Fork 96
Description
This is somewhat the extended discussion from graphql/graphql-language-service#4. cc @martijnwalraven
@jimkyndemeyer I wanted to open an issue to keep you updated with my current progress, as well as to seek some advice from you about the next steps. As I mentioned I've noticed that this plugin isn't compatible with IntelliJ IDEA Community Edition - a tl;dr; version of this issue is that I was wondering if we could work together on providing a support for Community Edition users. This will focus on supporting Java/Android client developers who don't work with JavaScript applications day-to-day.
The most notable difference from both editions is JavaScript/NodeJS-related plugin support, which means that if we decide to develop a Community Edition plugin, we won't have support for Relay/Apollo/NodeIntepreter out of the box. I'm thinking this is okay at least in the beginning, and we can figure out writing a customized parser that can recognize syntaxes for beginning a GraphQL query within JavaScript files, if users choose to open them (e.g. graphql
| gql
| Relay.QL
).
As per the progress on hooking up graphql-language-service
repository to this library, I spent some time to see if forking a process by purely using OSProcessHandler
was possible, and was able to successfully send/receive messages back and forth without using NodeInterpreter
.
Like I mentioned of my plan in graphql/graphql-language-service#4, my initial inclination to tackle this problem was to incorporate what I worked on to this library. Unfortunately, because I failed to locate these constraints on time, that plan no longer seems sufficient to support Community Edition users, but I think I can at least contribute with integrating Martijn's Grammar-Kit implementation to the basic GraphQL PSI support in this library.
I think a short-term plan for myself would be:
- Have https://github.com/apollographql/intellij-graphql/ communicate with
graphql-language-service
- Improve PSI to match the current capabilities that this library has, and add it to this library.
- Work on substituting the message signatures in this library to match Language Server Protocol
Lastly, just to reiterate again, I'm hoping to keep the collaborative effort/spirit by being as transparent/clear as I can be. I completely understand and respect that you guys have other priorities to attend to - at the same time I didn't want to surprise you with some misunderstandings that might be caused by me not being over-communicative.
So, what do you guys think?