JetBrains / js-graphql-intellij-plugin

GraphQL language support for WebStorm, IntelliJ IDEA and other IDEs based on the IntelliJ Platform.
https://jimkyndemeyer.github.io/js-graphql-intellij-plugin/
MIT License
880 stars 97 forks source link

Gatsby graphql.config.json is not found #683

Open vepanimas opened 1 year ago

vepanimas commented 1 year ago

Schema is not discovered for Gatsby projects when graphqlTypegen: true is enabled in gatsby-config.js.

Reported here https://github.com/JetBrains/js-graphql-intellij-plugin/issues/673#issuecomment-1674947544.

vepanimas commented 1 year ago

@arm1n hey, could you please try a new plugin build with the fix? Does it fix the problem? Please, note that Gatsby expects you to create a graphql.config.js in the root of the Gatsby project, it's the same folder that contains the .cache dir. [docs]

js-graphql-intellij-plugin-4.0.2.zip

arm1n commented 1 year ago

Hey @vepanimas thanks for providing a fix for this, I can confirm that it's working with the 4.0.2 and adding a graphql.config.js in the root of the project.

robclancy commented 1 year ago

This is not fixed in the released 4.0.2.

EDIT: I also installed from the zip here and it didn't work.

It's not working when the folder is excluded... it shouldn't be a surprise that an auto generated file that only works with a specific plugin might be excluded.

vepanimas commented 1 year ago

It's not working when the folder is excluded... it shouldn't be a surprise that an auto generated file that only works with a specific plugin might be excluded.

@robclancy Why do you think it should be excluded?

robclancy commented 1 year ago

It's a cache and tmp folder...

vepanimas commented 1 year ago

@robclancy Yep, it's correct, though, why do you need to exclude it? You usually exclude a folder if you don't want the files inside of it to be indexed and to appear in completion, resolve, navigation, etc. Nevertheless, we do have an issue related to that, but it's not yet clear when it will be implemented.

From the IntelliJ IDEA docs:

Files in excluded folders are ignored by code completion, navigation and inspection. That is why when you exclude a folder that you don't need at the moment, you can increase the IDE performance. Normally, compilation output folders are marked as excluded.

Apart from excluding the entire folders, you can also exclude specific files.

To sum things up, generated != excluded.

robclancy commented 1 year ago

What are you talking about? A tmp and cache folder is always excluded. A tmp folder is used for generated files. This issue is not resolved because if you exclude the folder that you should be excluding, the entire reason for the exclude feature to exist, then gatsby graphql config does not work.

vepanimas commented 1 year ago

What are you talking about?

Look, when you want a file to be excluded from indexing, you mark it or the whole folder as excluded. That's what is written in the docs I provided. For some technologies, e.g. node.js and its node_modules, we have some workarounds, that allow us to use excluded files for completion and resolve, but usually, when you exclude something, it's completely ignored by the IDE.

The easiest way for now to bypass that and leave the .cache folder excluded is to un-exclude a specific directory you need, for Gatsby it is .cache/typegen.

https://github.com/JetBrains/js-graphql-intellij-plugin/assets/10243762/38396882-baac-4029-b937-f73c03747258

robclancy commented 1 year ago

Nothing you have said has contradicted anything I have said. I have no idea why you are saying these things.

jeron-diovis commented 10 months ago

I was wondering why it doesn't work, and it appears that it's because of a hidden directory (#673). I managed to get it working with a workaround:

And voila, webstorm recognizes my queries now. If you don't want to commit symlinks, link can be renamed like schema.local.graphql and added to gitignore.