Skip to content

Commit

Permalink
Fix bug with server exiting early on .graphql and .gql files (#2622)
Browse files Browse the repository at this point in the history
  • Loading branch information
acao authored Aug 1, 2022
1 parent 50b8875 commit be5312a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ export class GraphQLLanguageService {
if (config) {
return config;
}
throw Error(`No config found for uri: ${uri}`);
}

public async getDiagnostics(
Expand Down Expand Up @@ -243,6 +242,9 @@ export class GraphQLLanguageService {
filePath: Uri,
): Promise<Array<CompletionItem>> {
const projectConfig = this.getConfigForURI(filePath);
if (!projectConfig) {
return [];
}
const schema = await this._graphQLCache.getSchema(projectConfig.name);
const fragmentDefinitions = await this._graphQLCache.getFragmentDefinitions(
projectConfig,
Expand Down Expand Up @@ -271,6 +273,9 @@ export class GraphQLLanguageService {
options?: HoverConfig,
): Promise<Hover['contents']> {
const projectConfig = this.getConfigForURI(filePath);
if (!projectConfig) {
return '';
}
const schema = await this._graphQLCache.getSchema(projectConfig.name);

if (schema) {
Expand All @@ -285,6 +290,9 @@ export class GraphQLLanguageService {
filePath: Uri,
): Promise<DefinitionQueryResult | null> {
const projectConfig = this.getConfigForURI(filePath);
if (!projectConfig) {
return null;
}

let ast;
try {
Expand Down
15 changes: 7 additions & 8 deletions packages/vscode-graphql-syntax/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 1 addition & 1 deletion packages/vscode-graphql/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit be5312a

Please sign in to comment.