From b6b25671b29133a8a2f1325094dbd871655f8560 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sun, 7 Nov 2021 23:26:11 +0100 Subject: [PATCH] fix(lsp): display signature docs as markdown (#12636) These were previously displayed as plain text. Now they are displayed as `MarkupContent` with type `Markdown`. --- cli/lsp/tsc.rs | 20 ++++++++++++++------ cli/tests/integration/lsp_tests.rs | 30 ++++++++++++++++++++++++------ 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 8f3db6131e..7e3c721300 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -1953,11 +1953,15 @@ impl SignatureHelpItem { .collect::>() .join(", "); let suffix_text = display_parts_to_string(&self.suffix_display_parts); + let documentation = display_parts_to_string(&self.documentation); lsp::SignatureInformation { label: format!("{}{}{}", prefix_text, params_text, suffix_text), - documentation: Some(lsp::Documentation::String(display_parts_to_string( - &self.documentation, - ))), + documentation: Some(lsp::Documentation::MarkupContent( + lsp::MarkupContent { + kind: lsp::MarkupKind::Markdown, + value: documentation, + }, + )), parameters: Some( self .parameters @@ -1981,13 +1985,17 @@ pub struct SignatureHelpParameter { impl SignatureHelpParameter { pub fn into_parameter_information(self) -> lsp::ParameterInformation { + let documentation = display_parts_to_string(&self.documentation); lsp::ParameterInformation { label: lsp::ParameterLabel::Simple(display_parts_to_string( &self.display_parts, )), - documentation: Some(lsp::Documentation::String(display_parts_to_string( - &self.documentation, - ))), + documentation: Some(lsp::Documentation::MarkupContent( + lsp::MarkupContent { + kind: lsp::MarkupKind::Markdown, + value: documentation, + }, + )), } } } diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs index ecfe5d334d..6fbeec3442 100644 --- a/cli/tests/integration/lsp_tests.rs +++ b/cli/tests/integration/lsp_tests.rs @@ -1931,15 +1931,24 @@ fn lsp_signature_help() { "signatures": [ { "label": "add(a: number, b: number): number", - "documentation": "Adds two numbers.", + "documentation": { + "kind": "markdown", + "value": "Adds two numbers." + }, "parameters": [ { "label": "a: number", - "documentation": "This is a first number." + "documentation": { + "kind": "markdown", + "value": "This is a first number." + } }, { "label": "b: number", - "documentation": "This is a second number." + "documentation": { + "kind": "markdown", + "value": "This is a second number." + } } ] } @@ -1995,15 +2004,24 @@ fn lsp_signature_help() { "signatures": [ { "label": "add(a: number, b: number): number", - "documentation": "Adds two numbers.", + "documentation": { + "kind": "markdown", + "value": "Adds two numbers." + }, "parameters": [ { "label": "a: number", - "documentation": "This is a first number." + "documentation": { + "kind": "markdown", + "value": "This is a first number." + } }, { "label": "b: number", - "documentation": "This is a second number." + "documentation": { + "kind": "markdown", + "value": "This is a second number." + } } ] }