From 863f7ea3c2fd53ee930ce60b219dc8c649911f9b Mon Sep 17 00:00:00 2001 From: Orta Date: Thu, 4 Feb 2021 09:46:51 +0000 Subject: [PATCH 1/5] Expose EncodedSemanticClassificationsRequest in protocol.d.ts --- src/server/protocol.ts | 2 -- .../reference/api/tsserverlibrary.d.ts | 24 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 237ce1fd5a05f..af3d6cfd1bea6 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -843,7 +843,6 @@ namespace ts.server.protocol { /** * A request to get encoded semantic classifications for a span in the file */ - /** @internal */ export interface EncodedSemanticClassificationsRequest extends FileRequest { arguments: EncodedSemanticClassificationsRequestArgs; } @@ -851,7 +850,6 @@ namespace ts.server.protocol { /** * Arguments for EncodedSemanticClassificationsRequest request. */ - /** @internal */ export interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs { /** * Start position of the span. diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 1598efef3279c..aecd91309c532 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -7133,6 +7133,30 @@ declare namespace ts.server.protocol { */ body?: string[]; } + /** + * A request to get encoded semantic classifications for a span in the file + */ + interface EncodedSemanticClassificationsRequest extends FileRequest { + arguments: EncodedSemanticClassificationsRequestArgs; + } + /** + * Arguments for EncodedSemanticClassificationsRequest request. + */ + interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs { + /** + * Start position of the span. + */ + start: number; + /** + * Length of the span. + */ + length: number; + /** + * Optional parameter for the semantic highlighting response, if absent it + * defaults to "original". + */ + format?: "original" | "2020"; + } /** * Arguments in document highlight request; include: filesToSearch, file, * line, offset. From 4a10aee1f8d6f1140f769b43756f84154cf62aa5 Mon Sep 17 00:00:00 2001 From: Orta Date: Fri, 5 Feb 2021 15:03:18 +0000 Subject: [PATCH 2/5] Adds the response for encoded semantic highlights too --- src/server/protocol.ts | 8 ++++++++ tests/baselines/reference/api/tsserverlibrary.d.ts | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index af3d6cfd1bea6..b100e03058d5a 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -866,6 +866,14 @@ namespace ts.server.protocol { format?: "original" | "2020" } + /** The response for a EncodedSemanticClassificationsRequest */ + export interface EncodedSemanticClassificationsResponse extends Response { + body?: { + endOfLineState: EndOfLineState; + spans: number[]; + }; + } + /** * Arguments in document highlight request; include: filesToSearch, file, * line, offset. diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index aecd91309c532..7b4325a453413 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -7157,6 +7157,13 @@ declare namespace ts.server.protocol { */ format?: "original" | "2020"; } + /** The response for a EncodedSemanticClassificationsRequest */ + interface EncodedSemanticClassificationsResponse extends Response { + body?: { + endOfLineState: EndOfLineState; + spans: number[]; + }; + } /** * Arguments in document highlight request; include: filesToSearch, file, * line, offset. From 6d0cee4fd56f9aceb647caff178d718e0a818bea Mon Sep 17 00:00:00 2001 From: Orta Date: Wed, 24 Feb 2021 19:07:02 +0000 Subject: [PATCH 3/5] Update types: --- src/server/protocol.ts | 12 ++++++++---- tests/baselines/reference/api/tsserverlibrary.d.ts | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index b100e03058d5a..02d513d69a067 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -868,12 +868,16 @@ namespace ts.server.protocol { /** The response for a EncodedSemanticClassificationsRequest */ export interface EncodedSemanticClassificationsResponse extends Response { - body?: { - endOfLineState: EndOfLineState; - spans: number[]; - }; + body?: EncodedSemanticClassificationsResponseBody } + /** + * Implementation response message. Gives series of text spans depending on the format ar. + */ + export interface EncodedSemanticClassificationsResponseBody { + endOfLineState: EndOfLineState; + spans: ClassifiedSpan[] | number[]; + } /** * Arguments in document highlight request; include: filesToSearch, file, * line, offset. diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 7b4325a453413..d23acc41fe75e 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -7159,10 +7159,14 @@ declare namespace ts.server.protocol { } /** The response for a EncodedSemanticClassificationsRequest */ interface EncodedSemanticClassificationsResponse extends Response { - body?: { - endOfLineState: EndOfLineState; - spans: number[]; - }; + body?: EncodedSemanticClassificationsResponseBody; + } + /** + * Implementation response message. Gives series of text spans depending on the format ar. + */ + interface EncodedSemanticClassificationsResponseBody { + endOfLineState: EndOfLineState; + spans: ClassifiedSpan[] | number[]; } /** * Arguments in document highlight request; include: filesToSearch, file, From f320c773f3b3b4a09e3ad07f253953e445a7f5a0 Mon Sep 17 00:00:00 2001 From: Orta Date: Wed, 24 Feb 2021 19:19:34 +0000 Subject: [PATCH 4/5] Also include classificationtype anyway --- src/server/protocol.ts | 28 +++++++++++++++++++ .../reference/api/tsserverlibrary.d.ts | 27 ++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 02d513d69a067..609f7244e4c0c 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -3398,4 +3398,32 @@ namespace ts.server.protocol { ES2020 = "ES2020", ESNext = "ESNext" } + + export const enum ClassificationType { + comment = 1, + identifier = 2, + keyword = 3, + numericLiteral = 4, + operator = 5, + stringLiteral = 6, + regularExpressionLiteral = 7, + whiteSpace = 8, + text = 9, + punctuation = 10, + className = 11, + enumName = 12, + interfaceName = 13, + moduleName = 14, + typeParameterName = 15, + typeAliasName = 16, + parameterName = 17, + docCommentTagName = 18, + jsxOpenTagName = 19, + jsxCloseTagName = 20, + jsxSelfClosingTagName = 21, + jsxAttribute = 22, + jsxText = 23, + jsxAttributeStringLiteralValue = 24, + bigintLiteral = 25, + } } diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index d23acc41fe75e..de09e23bcde31 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -9190,6 +9190,33 @@ declare namespace ts.server.protocol { ES2020 = "ES2020", ESNext = "ESNext" } + enum ClassificationType { + comment = 1, + identifier = 2, + keyword = 3, + numericLiteral = 4, + operator = 5, + stringLiteral = 6, + regularExpressionLiteral = 7, + whiteSpace = 8, + text = 9, + punctuation = 10, + className = 11, + enumName = 12, + interfaceName = 13, + moduleName = 14, + typeParameterName = 15, + typeAliasName = 16, + parameterName = 17, + docCommentTagName = 18, + jsxOpenTagName = 19, + jsxCloseTagName = 20, + jsxSelfClosingTagName = 21, + jsxAttribute = 22, + jsxText = 23, + jsxAttributeStringLiteralValue = 24, + bigintLiteral = 25 + } } declare namespace ts.server { interface ScriptInfoVersion { From 26a0afdb5f01b5dbaf7444ffe14249f217c6bebf Mon Sep 17 00:00:00 2001 From: Orta Date: Thu, 25 Feb 2021 17:16:47 +0000 Subject: [PATCH 5/5] Fix feedback --- src/server/protocol.ts | 2 +- tests/baselines/reference/api/tsserverlibrary.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 609f7244e4c0c..ea0d637098aca 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -876,7 +876,7 @@ namespace ts.server.protocol { */ export interface EncodedSemanticClassificationsResponseBody { endOfLineState: EndOfLineState; - spans: ClassifiedSpan[] | number[]; + spans: number[]; } /** * Arguments in document highlight request; include: filesToSearch, file, diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index de09e23bcde31..4a8ce06866f17 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -7166,7 +7166,7 @@ declare namespace ts.server.protocol { */ interface EncodedSemanticClassificationsResponseBody { endOfLineState: EndOfLineState; - spans: ClassifiedSpan[] | number[]; + spans: number[]; } /** * Arguments in document highlight request; include: filesToSearch, file,