From 664dccedd46576019ce623cfdb2acbd13e08e29b Mon Sep 17 00:00:00 2001 From: Katarzyna Marek Date: Wed, 4 Oct 2023 15:22:49 +0200 Subject: [PATCH] improvement: trim hover body (#5694) --- .../scala/scala/meta/internal/pc/HoverMarkup.scala | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mtags-shared/src/main/scala/scala/meta/internal/pc/HoverMarkup.scala b/mtags-shared/src/main/scala/scala/meta/internal/pc/HoverMarkup.scala index 396fc0568d8..c3291903bf9 100644 --- a/mtags-shared/src/main/scala/scala/meta/internal/pc/HoverMarkup.scala +++ b/mtags-shared/src/main/scala/scala/meta/internal/pc/HoverMarkup.scala @@ -2,6 +2,10 @@ package scala.meta.internal.pc object HoverMarkup { + // VSCode trims the message to ~100000, thus messing the markdown for very long messages. + // Number based on experiments from 29.09.2023. + private val MaxHoverBodyLength = 50000 + /** * Render the textDocument/hover result into markdown. * @@ -42,15 +46,19 @@ object HoverMarkup { markdown.toString() } + private def trimBody(body: String) = + if (body.length() <= MaxHoverBodyLength) body + else body.take(MaxHoverBodyLength) + "..." + def apply(body: String): String = { s"""|```scala - |$body + |${trimBody(body)} |```""".stripMargin } def javaHoverMarkup(body: String): String = { s"""|```java - |$body + |${trimBody(body)} |```""".stripMargin }