Skip to content

Commit 403dfc2

Browse files
authored
fixed monaco-graphql severity, it was hardcoded to 5 which is not valid value of monaco severity (#3983)
* remove unused `MonacoCompletionItem` type fix `types` field in `package.json`, should be first, before `import` or `require` fields * Update packages/monaco-graphql/src/utils.ts
1 parent 9498dee commit 403dfc2

File tree

5 files changed

+43
-53
lines changed

5 files changed

+43
-53
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
'monaco-graphql': patch
3+
---
4+
5+
remove unused `MonacoCompletionItem` type
6+
7+
fix `types` field in `package.json`, should be first, before `import` or `require` fields
8+
9+
fixed `monaco-graphql` severity, it was hardcoded to `5` which is not valid value of monaco severity

packages/monaco-graphql/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,37 +18,37 @@
1818
],
1919
"exports": {
2020
".": {
21+
"types": "./esm/monaco.contribution.d.ts",
2122
"import": "./esm/monaco.contribution.js",
2223
"require": "./dist/monaco.contribution.js",
23-
"types": "./esm/monaco.contribution.d.ts",
2424
"default": "./dist/monaco.contribution.js"
2525
},
2626
"./*": {
27+
"types": "./*",
2728
"import": "./*",
2829
"require": "./*",
29-
"types": "./*",
3030
"default": "./*"
3131
},
3232
"./esm/graphql.worker": {
33+
"types": "./esm/graphql.worker.d.ts",
3334
"import": "./esm/graphql.worker.js",
34-
"require": "./dist/graphql.worker.js",
35-
"types": "./esm/graphql.worker.d.ts"
35+
"require": "./dist/graphql.worker.js"
3636
},
3737
"./lite": {
38-
"import": "./esm/lite.js",
3938
"types": "./esm/lite.d.ts",
39+
"import": "./esm/lite.js",
4040
"require": "./dist/lite.js",
4141
"default": "./dist/lite.js"
4242
},
4343
"./graphql.worker": {
44-
"import": "./esm/graphql.worker.js",
4544
"types": "./esm/graphql.worker.d.ts",
45+
"import": "./esm/graphql.worker.js",
4646
"require": "./dist/graphql.worker.js",
4747
"default": "./dist/graphql.worker.js"
4848
},
4949
"./initializeMode": {
50-
"import": "./esm/initializeMode.js",
5150
"types": "./esm/initializeMode.d.ts",
51+
"import": "./esm/initializeMode.js",
5252
"require": "./dist/initializeMode.js",
5353
"default": "./dist/initializeMode.js"
5454
}

packages/monaco-graphql/src/GraphQLWorker.ts

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,11 @@ import {
1717
GraphQLWorkerCompletionItem,
1818
} from './utils';
1919

20-
export type MonacoCompletionItem = monaco.languages.CompletionItem & {
21-
isDeprecated?: boolean;
22-
deprecationReason?: string | null;
23-
};
2420
export class GraphQLWorker {
2521
private _ctx: monaco.worker.IWorkerContext;
2622
private _languageService: LanguageService;
2723
private _formattingOptions: FormattingOptions | undefined;
24+
2825
constructor(ctx: monaco.worker.IWorkerContext, createData: ICreateData) {
2926
this._ctx = ctx;
3027
this._languageService = new LanguageService(createData.languageConfig);
@@ -82,24 +79,18 @@ export class GraphQLWorker {
8279
return null;
8380
}
8481
const graphQLPosition = toGraphQLPosition(position);
85-
8682
const hover = this._languageService.getHover(
8783
uri,
8884
document,
8985
graphQLPosition,
9086
);
91-
87+
const location = {
88+
column: graphQLPosition.character,
89+
line: graphQLPosition.line,
90+
};
9291
return {
9392
content: hover,
94-
range: toMonacoRange(
95-
getRange(
96-
{
97-
column: graphQLPosition.character,
98-
line: graphQLPosition.line,
99-
},
100-
document,
101-
),
102-
),
93+
range: toMonacoRange(getRange(location, document)),
10394
};
10495
} catch (err) {
10596
// eslint-disable-next-line no-console
@@ -157,9 +148,11 @@ export class GraphQLWorker {
157148
}
158149
return null;
159150
}
151+
160152
public doUpdateSchema(schema: SchemaConfig) {
161153
return this._languageService.updateSchema(schema);
162154
}
155+
163156
public doUpdateSchemas(schemas: SchemaConfig[]) {
164157
return this._languageService.updateSchemas(schemas);
165158
}

packages/monaco-graphql/src/languageFeatures.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,9 @@ export class CompletionAdapter implements languages.CompletionItemProvider {
242242
_token: monaco.CancellationToken,
243243
): Promise<languages.CompletionList> {
244244
try {
245-
const resource = model.uri;
246245
const worker = await this._worker(model.uri);
247246
const completionItems = await worker.doComplete(
248-
resource.toString(),
247+
model.uri.toString(),
249248
position,
250249
);
251250
return {

packages/monaco-graphql/src/utils.ts

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ export const getModelLanguageId = (model: monaco.editor.ITextModel) => {
2626
return model.getLanguageId();
2727
};
2828

29-
export type MonacoCompletionItem = monaco.languages.CompletionItem & {
30-
isDeprecated?: boolean;
31-
deprecationReason?: string | null;
32-
};
33-
3429
export function toMonacoRange(range: GraphQLRange): monaco.IRange {
3530
return {
3631
startLineNumber: range.start.line + 1,
@@ -81,30 +76,25 @@ export function toCompletion(
8176
}
8277

8378
/**
84-
* Monaco and Vscode have slightly different ideas of marker severity.
79+
* Monaco and VSCode have slightly different ideas of marker severity.
8580
* for example, vscode has Error = 1, whereas monaco has Error = 8. this takes care of that
86-
* @param severity {DiagnosticSeverity} optional vscode diagnostic severity to convert to monaco MarkerSeverity
87-
* @returns {monaco.MarkerSeverity} the matching marker severity level on monaco's terms
81+
* @param severity - optional vscode diagnostic severity to convert to monaco MarkerSeverity
82+
* @returns the matching marker severity level on monaco's terms
8883
*/
89-
// export function toMonacoSeverity(severity?: Diagnostic['severity']): monaco.MarkerSeverity {
90-
// switch (severity) {
91-
// case 1: {
92-
// return monaco.MarkerSeverity.Error
93-
// }
94-
// case 4: {
95-
// return monaco.MarkerSeverity.Hint
96-
// }
97-
// case 3: {
98-
// return monaco.MarkerSeverity.Info
99-
// }
100-
// case 2: {
101-
// return monaco.MarkerSeverity.Warning
102-
// }
103-
// default: {
104-
// return monaco.MarkerSeverity.Warning
105-
// }
106-
// }
107-
// }
84+
export function toMonacoSeverity(
85+
severity?: Diagnostic['severity'],
86+
): monaco.MarkerSeverity {
87+
// Can't use `monaco.MarkerSeverity` type due error:
88+
// ReferenceError: window is not defined
89+
const severityMap = {
90+
1: 8, // MarkerSeverity.Error
91+
2: 4, // MarkerSeverity.Warning
92+
3: 2, // MarkerSeverity.Info
93+
4: 1, // MarkerSeverity.Hint
94+
};
95+
96+
return severity ? severityMap[severity] : severityMap[2];
97+
}
10898

10999
export function toMarkerData(
110100
diagnostic: Diagnostic,
@@ -115,8 +105,7 @@ export function toMarkerData(
115105
startColumn: diagnostic.range.start.character + 1,
116106
endColumn: diagnostic.range.end.character,
117107
message: diagnostic.message,
118-
severity: 5,
119-
// severity: toMonacoSeverity(diagnostic.severity),
108+
severity: toMonacoSeverity(diagnostic.severity),
120109
code: (diagnostic.code as string) || undefined,
121110
};
122111
}

0 commit comments

Comments
 (0)