From 34b9550e0fa2985bb27dcb323b9086b1b030fc34 Mon Sep 17 00:00:00 2001 From: Oleg Samarin Date: Mon, 18 May 2026 13:01:08 +0300 Subject: [PATCH] Moved MarkdownRenderer and MarkdownFindBar to ui.markdown package Extracted markdown-specific classes from the generic ui.common package into a dedicated io.github.nbclaudecodegui.ui.markdown package. Mirrored test and resource directory locations accordingly. Co-Authored-By: Claude Sonnet 4.6 --- pom.xml | 2 +- .../io/github/nbclaudecodegui/ui/MarkdownDiffPanel.java | 4 ++-- .../io/github/nbclaudecodegui/ui/MarkdownPreviewTab.java | 4 ++-- .../ui/{common => }/markdown/MarkdownFindBar.java | 2 +- .../ui/{common => markdown}/MarkdownRenderer.java | 3 ++- .../github/nbclaudecodegui/ui/MarkdownPreviewTabTest.java | 2 +- .../java/io/github/nbclaudecodegui/ui/MarkdownZoomTest.java | 2 +- .../ui/{common => }/markdown/MarkdownFindBarTest.java | 2 +- .../ui/{common => markdown}/MarkdownRendererTest.java | 6 +++--- .../markdown-renderer/to-html/blockquote.expectedHtml.html | 0 .../markdown-renderer/to-html/blockquote.src.md | 0 .../fenced-code-block-html-escaped.expectedHtml.html | 0 .../to-html/fenced-code-block-html-escaped.src.md | 0 .../to-html/fenced-code-block.expectedHtml.html | 0 .../markdown-renderer/to-html/fenced-code-block.src.md | 0 .../to-html/heading-after-list-code-block.expectedHtml.html | 0 .../to-html/heading-after-list-code-block.src.md | 0 .../to-html/heading-h1-h2-h3.expectedHtml.html | 0 .../markdown-renderer/to-html/heading-h1-h2-h3.src.md | 0 .../to-html/heading-slug-punctuation.expectedHtml.html | 0 .../to-html/heading-slug-punctuation.src.md | 0 .../to-html/image-in-paragraph.expectedHtml.html | 0 .../markdown-renderer/to-html/image-in-paragraph.src.md | 0 .../indented-code-block-no-leading-spaces.expectedHtml.html | 0 .../to-html/indented-code-block-no-leading-spaces.src.md | 0 .../to-html/link-in-paragraph.expectedHtml.html | 0 .../markdown-renderer/to-html/link-in-paragraph.src.md | 0 .../list-returns-to-outer-after-sublist.expectedHtml.html | 0 .../to-html/list-returns-to-outer-after-sublist.src.md | 0 .../to-html/mixed-nested-list.expectedHtml.html | 0 .../markdown-renderer/to-html/mixed-nested-list.src.md | 0 .../nested-list-multiple-code-blocks.expectedHtml.html | 0 .../to-html/nested-list-multiple-code-blocks.src.md | 0 ...nested-list-sub-items-after-code-block.expectedHtml.html | 0 .../to-html/nested-list-sub-items-after-code-block.src.md | 0 .../non-list-continuation-inside-li.expectedHtml.html | 0 .../to-html/non-list-continuation-inside-li.src.md | 0 .../ordered-list-code-block-inside-li.expectedHtml.html | 0 .../to-html/ordered-list-code-block-inside-li.src.md | 0 .../to-html/ordered-list-explicit-start.expectedHtml.html | 0 .../to-html/ordered-list-explicit-start.src.md | 0 .../to-html/ordered-list-simple.expectedHtml.html | 0 .../markdown-renderer/to-html/ordered-list-simple.src.md | 0 .../to-html/ordered-list-with-code-block.expectedHtml.html | 0 .../to-html/ordered-list-with-code-block.src.md | 0 ...outer-item-after-code-block-in-sublist.expectedHtml.html | 0 .../to-html/outer-item-after-code-block-in-sublist.src.md | 0 .../markdown-renderer/to-html/paragraph.expectedHtml.html | 0 .../markdown-renderer/to-html/paragraph.src.md | 0 .../markdown-renderer/to-html/table-basic.expectedHtml.html | 0 .../markdown-renderer/to-html/table-basic.src.md | 0 .../to-html/table-followed-by-paragraph.expectedHtml.html | 0 .../to-html/table-followed-by-paragraph.src.md | 0 .../to-html/table-html-escaped.expectedHtml.html | 0 .../markdown-renderer/to-html/table-html-escaped.src.md | 0 .../to-html/table-inline-markdown.expectedHtml.html | 0 .../markdown-renderer/to-html/table-inline-markdown.src.md | 0 .../top-level-code-block-resets-numbering.expectedHtml.html | 0 .../to-html/top-level-code-block-resets-numbering.src.md | 0 ...op-level-list-code-block-after-heading.expectedHtml.html | 0 .../to-html/top-level-list-code-block-after-heading.src.md | 0 .../unordered-list-code-block-not-split.expectedHtml.html | 0 .../to-html/unordered-list-code-block-not-split.src.md | 0 .../to-html/unordered-list-nested.expectedHtml.html | 0 .../markdown-renderer/to-html/unordered-list-nested.src.md | 0 .../to-html/unordered-list-simple.expectedHtml.html | 0 .../markdown-renderer/to-html/unordered-list-simple.src.md | 0 67 files changed, 14 insertions(+), 13 deletions(-) rename src/main/java/io/github/nbclaudecodegui/ui/{common => }/markdown/MarkdownFindBar.java (99%) rename src/main/java/io/github/nbclaudecodegui/ui/{common => markdown}/MarkdownRenderer.java (99%) rename src/test/java/io/github/nbclaudecodegui/ui/{common => }/markdown/MarkdownFindBarTest.java (98%) rename src/test/java/io/github/nbclaudecodegui/ui/{common => markdown}/MarkdownRendererTest.java (97%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/blockquote.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/blockquote.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/fenced-code-block-html-escaped.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/fenced-code-block-html-escaped.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/fenced-code-block.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/fenced-code-block.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/heading-after-list-code-block.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/heading-after-list-code-block.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/heading-h1-h2-h3.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/heading-h1-h2-h3.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/heading-slug-punctuation.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/heading-slug-punctuation.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/image-in-paragraph.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/image-in-paragraph.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/indented-code-block-no-leading-spaces.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/indented-code-block-no-leading-spaces.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/link-in-paragraph.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/link-in-paragraph.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/list-returns-to-outer-after-sublist.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/list-returns-to-outer-after-sublist.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/mixed-nested-list.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/mixed-nested-list.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/nested-list-multiple-code-blocks.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/nested-list-multiple-code-blocks.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/nested-list-sub-items-after-code-block.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/nested-list-sub-items-after-code-block.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/non-list-continuation-inside-li.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/non-list-continuation-inside-li.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-code-block-inside-li.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-code-block-inside-li.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-explicit-start.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-explicit-start.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-simple.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-simple.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-with-code-block.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/ordered-list-with-code-block.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/outer-item-after-code-block-in-sublist.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/outer-item-after-code-block-in-sublist.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/paragraph.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/paragraph.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-basic.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-basic.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-followed-by-paragraph.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-followed-by-paragraph.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-html-escaped.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-html-escaped.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-inline-markdown.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/table-inline-markdown.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/top-level-code-block-resets-numbering.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/top-level-code-block-resets-numbering.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/top-level-list-code-block-after-heading.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/top-level-list-code-block-after-heading.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/unordered-list-code-block-not-split.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/unordered-list-code-block-not-split.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/unordered-list-nested.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/unordered-list-nested.src.md (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/unordered-list-simple.expectedHtml.html (100%) rename src/test/resources/io/github/nbclaudecodegui/ui/{common => markdown}/markdown-renderer/to-html/unordered-list-simple.src.md (100%) diff --git a/pom.xml b/pom.xml index aab214c0..1c3659a7 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.nbclaudecodegui netbeans-claude-code-gui - 0.23.17-SNAPSHOT + 0.23.18-SNAPSHOT nbm Netbeans Plugin Claude Code GUI NetBeans plugin that provides a GUI for Claude Code CLI — run claude code sessions directly inside the IDE. diff --git a/src/main/java/io/github/nbclaudecodegui/ui/MarkdownDiffPanel.java b/src/main/java/io/github/nbclaudecodegui/ui/MarkdownDiffPanel.java index 296ce04f..160461d0 100644 --- a/src/main/java/io/github/nbclaudecodegui/ui/MarkdownDiffPanel.java +++ b/src/main/java/io/github/nbclaudecodegui/ui/MarkdownDiffPanel.java @@ -1,7 +1,7 @@ package io.github.nbclaudecodegui.ui; -import io.github.nbclaudecodegui.ui.common.MarkdownRenderer; -import io.github.nbclaudecodegui.ui.common.markdown.MarkdownFindBar; +import io.github.nbclaudecodegui.ui.markdown.MarkdownFindBar; +import io.github.nbclaudecodegui.ui.markdown.MarkdownRenderer; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; diff --git a/src/main/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTab.java b/src/main/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTab.java index ea4dbdd7..529e1611 100644 --- a/src/main/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTab.java +++ b/src/main/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTab.java @@ -1,11 +1,11 @@ package io.github.nbclaudecodegui.ui; import io.github.nbclaudecodegui.settings.ClaudeCodePreferences; -import io.github.nbclaudecodegui.ui.common.MarkdownRenderer; import io.github.nbclaudecodegui.ui.common.UiUtils; import io.github.nbclaudecodegui.ui.common.Zoomable; import io.github.nbclaudecodegui.ui.common.ZoomSupport; -import io.github.nbclaudecodegui.ui.common.markdown.MarkdownFindBar; +import io.github.nbclaudecodegui.ui.markdown.MarkdownFindBar; +import io.github.nbclaudecodegui.ui.markdown.MarkdownRenderer; import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.StyleSheet; import org.openide.util.NbPreferences; diff --git a/src/main/java/io/github/nbclaudecodegui/ui/common/markdown/MarkdownFindBar.java b/src/main/java/io/github/nbclaudecodegui/ui/markdown/MarkdownFindBar.java similarity index 99% rename from src/main/java/io/github/nbclaudecodegui/ui/common/markdown/MarkdownFindBar.java rename to src/main/java/io/github/nbclaudecodegui/ui/markdown/MarkdownFindBar.java index 68ccb1d6..864fd427 100644 --- a/src/main/java/io/github/nbclaudecodegui/ui/common/markdown/MarkdownFindBar.java +++ b/src/main/java/io/github/nbclaudecodegui/ui/markdown/MarkdownFindBar.java @@ -1,4 +1,4 @@ -package io.github.nbclaudecodegui.ui.common.markdown; +package io.github.nbclaudecodegui.ui.markdown; import java.awt.Color; import java.awt.Dimension; diff --git a/src/main/java/io/github/nbclaudecodegui/ui/common/MarkdownRenderer.java b/src/main/java/io/github/nbclaudecodegui/ui/markdown/MarkdownRenderer.java similarity index 99% rename from src/main/java/io/github/nbclaudecodegui/ui/common/MarkdownRenderer.java rename to src/main/java/io/github/nbclaudecodegui/ui/markdown/MarkdownRenderer.java index b9b87495..d70c61b5 100644 --- a/src/main/java/io/github/nbclaudecodegui/ui/common/MarkdownRenderer.java +++ b/src/main/java/io/github/nbclaudecodegui/ui/markdown/MarkdownRenderer.java @@ -1,4 +1,4 @@ -package io.github.nbclaudecodegui.ui.common; +package io.github.nbclaudecodegui.ui.markdown; import java.awt.Color; import java.util.ArrayList; @@ -6,6 +6,7 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import io.github.nbclaudecodegui.ui.common.BasicTextContextMenu; import javax.swing.JEditorPane; import javax.swing.UIManager; import javax.swing.text.html.HTMLDocument; diff --git a/src/test/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTabTest.java b/src/test/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTabTest.java index d69bc9a9..35782c81 100644 --- a/src/test/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTabTest.java +++ b/src/test/java/io/github/nbclaudecodegui/ui/MarkdownPreviewTabTest.java @@ -1,6 +1,6 @@ package io.github.nbclaudecodegui.ui; -import io.github.nbclaudecodegui.ui.common.MarkdownRenderer; +import io.github.nbclaudecodegui.ui.markdown.MarkdownRenderer; import java.awt.Component; import org.openide.windows.TopComponent; import java.io.ByteArrayInputStream; diff --git a/src/test/java/io/github/nbclaudecodegui/ui/MarkdownZoomTest.java b/src/test/java/io/github/nbclaudecodegui/ui/MarkdownZoomTest.java index c0eb3065..8617e2c0 100644 --- a/src/test/java/io/github/nbclaudecodegui/ui/MarkdownZoomTest.java +++ b/src/test/java/io/github/nbclaudecodegui/ui/MarkdownZoomTest.java @@ -1,6 +1,6 @@ package io.github.nbclaudecodegui.ui; -import io.github.nbclaudecodegui.ui.common.MarkdownRenderer; +import io.github.nbclaudecodegui.ui.markdown.MarkdownRenderer; import java.awt.event.KeyEvent; import javax.swing.JComponent; import javax.swing.JEditorPane; diff --git a/src/test/java/io/github/nbclaudecodegui/ui/common/markdown/MarkdownFindBarTest.java b/src/test/java/io/github/nbclaudecodegui/ui/markdown/MarkdownFindBarTest.java similarity index 98% rename from src/test/java/io/github/nbclaudecodegui/ui/common/markdown/MarkdownFindBarTest.java rename to src/test/java/io/github/nbclaudecodegui/ui/markdown/MarkdownFindBarTest.java index 9eb18ee7..69d8ce23 100644 --- a/src/test/java/io/github/nbclaudecodegui/ui/common/markdown/MarkdownFindBarTest.java +++ b/src/test/java/io/github/nbclaudecodegui/ui/markdown/MarkdownFindBarTest.java @@ -1,4 +1,4 @@ -package io.github.nbclaudecodegui.ui.common.markdown; +package io.github.nbclaudecodegui.ui.markdown; import java.util.List; import javax.swing.JEditorPane; diff --git a/src/test/java/io/github/nbclaudecodegui/ui/common/MarkdownRendererTest.java b/src/test/java/io/github/nbclaudecodegui/ui/markdown/MarkdownRendererTest.java similarity index 97% rename from src/test/java/io/github/nbclaudecodegui/ui/common/MarkdownRendererTest.java rename to src/test/java/io/github/nbclaudecodegui/ui/markdown/MarkdownRendererTest.java index 94f51dd4..333953a0 100644 --- a/src/test/java/io/github/nbclaudecodegui/ui/common/MarkdownRendererTest.java +++ b/src/test/java/io/github/nbclaudecodegui/ui/markdown/MarkdownRendererTest.java @@ -1,4 +1,4 @@ -package io.github.nbclaudecodegui.ui.common; +package io.github.nbclaudecodegui.ui.markdown; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -18,7 +18,7 @@ * Unit tests for {@link MarkdownRenderer}. * *

toHtml() tests are fixture-based: each case is a pair of resource files under - * {@code io/github/nbclaudecodegui/ui/common/markdown-renderer/to-html/}: + * {@code io/github/nbclaudecodegui/ui/markdown/markdown-renderer/to-html/}: *