Skip to content

Commit

Permalink
fix wrong offsets by altering the source-file after doing original di…
Browse files Browse the repository at this point in the history
…ag (#53)
  • Loading branch information
JoviDeCroock committed May 28, 2023
1 parent b123c4f commit c1d6f46
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 14 deletions.
5 changes: 5 additions & 0 deletions .changeset/shaggy-ravens-train.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@0no-co/graphqlsp': patch
---

First perform the graphqlsp operations and only after do the TypeScript ones, this to account for changed lines from semantic-diagnostics
30 changes: 16 additions & 14 deletions packages/graphqlsp/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,16 @@ function create(info: ts.server.PluginCreateInfo) {
);

proxy.getSemanticDiagnostics = (filename: string): ts.Diagnostic[] => {
const originalDiagnostics =
info.languageService.getSemanticDiagnostics(filename);
const graphQLDiagnostics = getGraphQLDiagnostics(
filename,
baseTypesPath,
schema,
info
);

const originalDiagnostics =
info.languageService.getSemanticDiagnostics(filename);

return graphQLDiagnostics
? [...graphQLDiagnostics, ...originalDiagnostics]
: originalDiagnostics;
Expand All @@ -64,6 +66,13 @@ function create(info: ts.server.PluginCreateInfo) {
cursorPosition: number,
options: any
): ts.WithMetadata<ts.CompletionInfo> | undefined => {
const completions = getGraphQLCompletions(
filename,
cursorPosition,
schema,
info
);

const originalCompletions = info.languageService.getCompletionsAtPosition(
filename,
cursorPosition,
Expand All @@ -75,13 +84,6 @@ function create(info: ts.server.PluginCreateInfo) {
entries: [],
};

const completions = getGraphQLCompletions(
filename,
cursorPosition,
schema,
info
);

if (completions) {
return {
...completions,
Expand All @@ -93,18 +95,18 @@ function create(info: ts.server.PluginCreateInfo) {
};

proxy.getQuickInfoAtPosition = (filename: string, cursorPosition: number) => {
const originalInfo = info.languageService.getQuickInfoAtPosition(
filename,
cursorPosition
);

const quickInfo = getGraphQLQuickInfo(
filename,
cursorPosition,
schema,
info
);

const originalInfo = info.languageService.getQuickInfoAtPosition(
filename,
cursorPosition
);

return quickInfo || originalInfo;
};

Expand Down

0 comments on commit c1d6f46

Please sign in to comment.