diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fd2ee2..f63c591 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project uses semantic versioning while it remains pre-1.0. ## [Unreleased] +### Fixed + +- Restored source-compatible `Markdown(...)` constructor application for callers + outside `scalatui.markdown` after the render cache introduced in `0.7.0` + accidentally shadowed the public class with a private companion. + ## [0.7.0] - 2026-07-21 ### Added diff --git a/markdown/src/scalatui/markdown/MarkdownRenderer.scala b/markdown/src/scalatui/markdown/MarkdownRenderer.scala index 47ad9d0..36327ed 100644 --- a/markdown/src/scalatui/markdown/MarkdownRenderer.scala +++ b/markdown/src/scalatui/markdown/MarkdownRenderer.scala @@ -414,7 +414,7 @@ final class Markdown( private var currentText = initialText private var currentPaddingX = paddingX private var currentPaddingY = paddingY - private var cachedRender = Option.empty[Markdown.RenderCache] + private var cachedRender = Option.empty[MarkdownRenderCache.Entry] def text: String = currentText @@ -452,7 +452,7 @@ final class Markdown( ) => cache.render case _ => val rendered = ComponentRender.text(renderLines(safeWidth, horizontal, vertical)) - cachedRender = Some(Markdown.RenderCache( + cachedRender = Some(MarkdownRenderCache.Entry( currentText, safeWidth, horizontal, @@ -472,8 +472,8 @@ final class Markdown( val blank = " ".repeat(safeWidth) Vector.fill(paddingY)(blank) ++ content ++ Vector.fill(paddingY)(blank) -private object Markdown: - final case class RenderCache( +private object MarkdownRenderCache: + final case class Entry( text: String, width: Int, paddingX: Int, diff --git a/markdown/test/src/scalatui/markdown/consumer/MarkdownPublicApiSuite.scala b/markdown/test/src/scalatui/markdown/consumer/MarkdownPublicApiSuite.scala new file mode 100644 index 0000000..d78222d --- /dev/null +++ b/markdown/test/src/scalatui/markdown/consumer/MarkdownPublicApiSuite.scala @@ -0,0 +1,9 @@ +package scalatui.markdown.consumer + +import scalatui.markdown.Markdown + +final class MarkdownPublicApiSuite extends munit.FunSuite: + test("Markdown supports constructor application outside its package"): + val component = Markdown("# Public API") + + assertEquals(component.text, "# Public API")