From 1a8a539e233e46854cddc5a9e6eac22f9dc517bf Mon Sep 17 00:00:00 2001 From: Orta Date: Fri, 20 Nov 2020 14:00:20 -0500 Subject: [PATCH 1/3] Adds the format flag for encodedSemanticClassifications in session.ts and protocol.ts --- src/server/protocol.ts | 9 ++++++++- src/server/session.ts | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 0bc9f3ac0c4b6..03e2be5be0f04 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -838,7 +838,6 @@ namespace ts.server.protocol { export interface EncodedSemanticClassificationsRequest extends FileRequest { arguments: EncodedSemanticClassificationsRequestArgs; } - /** * Arguments for EncodedSemanticClassificationsRequest request. */ @@ -852,6 +851,10 @@ namespace ts.server.protocol { * Length of the span. */ length: number; + /** + * Optional for backwards compat, use "2020" for modern LSP-like classifications + */ + format?: ts.SemanticClassificationFormat } /** @@ -3318,6 +3321,8 @@ namespace ts.server.protocol { Preserve = "Preserve", ReactNative = "ReactNative", React = "React", + ReactJSX = "ReactJSX", + ReactJSXDev = "ReactJSXDev", } export const enum ModuleKind { @@ -3328,6 +3333,7 @@ namespace ts.server.protocol { System = "System", ES6 = "ES6", ES2015 = "ES2015", + ES2020 = "ES2020", ESNext = "ESNext" } @@ -3351,6 +3357,7 @@ namespace ts.server.protocol { ES2018 = "ES2018", ES2019 = "ES2019", ES2020 = "ES2020", + JSON = "JSON", ESNext = "ESNext" } } diff --git a/src/server/session.ts b/src/server/session.ts index 73a86adf7c19e..3b2cd27f61b92 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1079,9 +1079,12 @@ namespace ts.server { return languageService.getEncodedSyntacticClassifications(file, args); } + + private getEncodedSemanticClassifications(args: protocol.EncodedSemanticClassificationsRequestArgs) { const { file, project } = this.getFileAndProject(args); - return project.getLanguageService().getEncodedSemanticClassifications(file, args); + + return project.getLanguageService().getEncodedSemanticClassifications(file, args, args.format); } private getProject(projectFileName: string | undefined): Project | undefined { From 3bce3965cea3b843c54f91706ba8395c819e2e62 Mon Sep 17 00:00:00 2001 From: Orta Date: Fri, 20 Nov 2020 14:19:49 -0500 Subject: [PATCH 2/3] Update baselines --- tests/baselines/reference/api/tsserverlibrary.d.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index f721c4ce0a8da..668034e5d1b94 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -9084,7 +9084,9 @@ declare namespace ts.server.protocol { None = "None", Preserve = "Preserve", ReactNative = "ReactNative", - React = "React" + React = "React", + ReactJSX = "ReactJSX", + ReactJSXDev = "ReactJSXDev" } enum ModuleKind { None = "None", @@ -9094,6 +9096,7 @@ declare namespace ts.server.protocol { System = "System", ES6 = "ES6", ES2015 = "ES2015", + ES2020 = "ES2020", ESNext = "ESNext" } enum ModuleResolutionKind { @@ -9114,6 +9117,7 @@ declare namespace ts.server.protocol { ES2018 = "ES2018", ES2019 = "ES2019", ES2020 = "ES2020", + JSON = "JSON", ESNext = "ESNext" } } From 64da1bd0ce9a93c6d4def88256d1ab542a976ce8 Mon Sep 17 00:00:00 2001 From: Orta Date: Fri, 20 Nov 2020 14:22:45 -0500 Subject: [PATCH 3/3] Whitespace" --- src/server/session.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/server/session.ts b/src/server/session.ts index 3b2cd27f61b92..e1afb046bc96e 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1079,11 +1079,8 @@ namespace ts.server { return languageService.getEncodedSyntacticClassifications(file, args); } - - private getEncodedSemanticClassifications(args: protocol.EncodedSemanticClassificationsRequestArgs) { const { file, project } = this.getFileAndProject(args); - return project.getLanguageService().getEncodedSemanticClassifications(file, args, args.format); }