diff --git a/packages/graphql-language-service-server/src/GraphQLLanguageService.ts b/packages/graphql-language-service-server/src/GraphQLLanguageService.ts index 61592464e1e..5db318cd276 100644 --- a/packages/graphql-language-service-server/src/GraphQLLanguageService.ts +++ b/packages/graphql-language-service-server/src/GraphQLLanguageService.ts @@ -120,7 +120,6 @@ export class GraphQLLanguageService { if (config) { return config; } - throw Error(`No config found for uri: ${uri}`); } public async getDiagnostics( @@ -243,6 +242,9 @@ export class GraphQLLanguageService { filePath: Uri, ): Promise> { const projectConfig = this.getConfigForURI(filePath); + if (!projectConfig) { + return []; + } const schema = await this._graphQLCache.getSchema(projectConfig.name); const fragmentDefinitions = await this._graphQLCache.getFragmentDefinitions( projectConfig, @@ -271,6 +273,9 @@ export class GraphQLLanguageService { options?: HoverConfig, ): Promise { const projectConfig = this.getConfigForURI(filePath); + if (!projectConfig) { + return ''; + } const schema = await this._graphQLCache.getSchema(projectConfig.name); if (schema) { @@ -285,6 +290,9 @@ export class GraphQLLanguageService { filePath: Uri, ): Promise { const projectConfig = this.getConfigForURI(filePath); + if (!projectConfig) { + return null; + } let ast; try { diff --git a/packages/vscode-graphql-syntax/CHANGELOG.md b/packages/vscode-graphql-syntax/CHANGELOG.md index 9fc6ac02d44..74ad01f05c8 100644 --- a/packages/vscode-graphql-syntax/CHANGELOG.md +++ b/packages/vscode-graphql-syntax/CHANGELOG.md @@ -1,20 +1,19 @@ # vscode-graphql-syntax ## 1.0.4 -### Patch Changes - +### Patch Changes - [#2573](https://github.com/graphql/graphiql/pull/2573) [`a358ac1d`](https://github.com/graphql/graphiql/commit/a358ac1d00082643e124085bca09992adeef212a) Thanks [@acao](https://github.com/acao)! - ## Enhancement - + Here we move vscode grammars and basic language support to a new [`GraphQL.vscode-graphql-syntax`](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql-syntax) extension. `GraphQL.vscode-graphql` now depends on this new syntax extension. This constitutes no breaking change for `vscode-graphql` users, as this extension will be installed automatically as an `extensionDependency` for `vscode-graphql`. Both extensions will now have independent release lifecycles, but vscode will keep them both up to date for you :) - + Firstly, this allows users to only install the syntax highlighting extension if they don't need LSP server features. - + Secondly, this subtle but important change allows alternative LSP servers and non-LSP graphql extensions to use (and contribute!) to our shared, graphql community syntax highlighting. In some ways, it acts as a shared tooling & annotation spec, though it is intended just for vscode, it perhaps can be used as a point of reference for others implementing (embedded) graphql syntax highlighting elsewhere! - + If your language and/or library and/or framework would like vscode highlighting, come [join the party](https://github.com/graphql/graphiql/tree/main/packages/vscode-graphql-syntax#contributing)! - + If you use relay, we would highly reccomend using the `relay-compiler lsp` extension for vscode [Relay Graphql](https://marketplace.visualstudio.com/items?itemName=meta.relay) (`meta.relay`). They will be [using the new standalone syntax extension](https://github.com/facebook/relay/pull/4032) very soon! - + Even non-relay users may want to try this extension as an alternative to our reference implementation, as relay's configuration has relative similarity with `graphql-config`'s format, and doesn't necessitate the use of relay client afaik. We are working hard to optimize and improve `graphql-language-service-server` as a typescript reference implementation, and have some exciting features coming soon, however it's hard to offer more than a brand new & highly performant graphql LSP server written in Rust based on the latest graphql spec with a (mostly) paid team and dedicated open source ecosystem community of co-maintainers! And their implementation appears to allow you to opt out of any relay-specific conventions if you need more flexibility. diff --git a/packages/vscode-graphql/README.md b/packages/vscode-graphql/README.md index 74c0696f457..8820bfce287 100644 --- a/packages/vscode-graphql/README.md +++ b/packages/vscode-graphql/README.md @@ -10,7 +10,7 @@ GraphQL extension for VSCode built with the aim to tightly integrate the GraphQL - Load the extension on detecting `graphql-config file` at root level or in a parent level directory - Load the extension in `.graphql`, `.gql files` -- Load the extension on detecting `gql` tag in js, ts, jsx, tsx, vue files +- Load the extension detecting `gql` tag in js, ts, jsx, tsx, vue files - Load the extension inside `gql`/`graphql` fenced code blocks in markdown files - NO LONGER SUPPORTED - execute query/mutation/subscription operations, embedded or in graphql files - we will be recommending other extensions for this. - pre-load schema and document definitions