From 68c66b1c0b53fdf131485b8725bca7d59026a596 Mon Sep 17 00:00:00 2001 From: Oleg Samarin Date: Sun, 26 Apr 2026 21:35:33 +0300 Subject: [PATCH] =?UTF-8?q?Added=20terminal=20font=20and=20font=20size=20s?= =?UTF-8?q?ettings=20(Tools=20=E2=86=92=20Options=20=E2=86=92=20Claude=20C?= =?UTF-8?q?ode=20=E2=86=92=20General);=20defaults=20to=20auto-detection=20?= =?UTF-8?q?preferring=20Adwaita=20Mono=20for=20full=20Unicode=20coverage?= =?UTF-8?q?=20of=20Claude=20Code=20TUI=20symbols=20(https://github.com/nbc?= =?UTF-8?q?laudecodegui/NetbeansClaudeCodeGui/issues/18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves: #18 - Added KEY_TERMINAL_FONT_NAME / KEY_TERMINAL_FONT_SIZE prefs keys and getters/setters to ClaudeCodePreferences, plus resolveTerminalFontName() that auto-detects the best installed font (Adwaita Mono → Consolas → Menlo → DejaVu Sans Mono → Monospaced) - Added NetBeansSettingsProvider.getTerminalFont() / getTerminalFontSize() overrides that read from preferences; delegates resolution to ClaudeCodePreferences.resolveTerminalFontName() to avoid duplication - Added TerminalFontChooserDialog: font list (monospaced filter), size spinner, preview with Claude TUI symbols (⏵ ◐) - Added Terminal font row (label + Choose… button) to General settings tab; label shows resolved name + "(Auto)" suffix when auto-detection is active - Added unit tests: NetBeansSettingsProviderTest, ClaudeCodePreferencesTest font round-trip and clamping - Updated docs/installation.md, docs/user-manual.md, docs/screenshots/ settings-general.png, CHANGELOG.md Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 1 + docs/installation.md | 2 + docs/screenshots/settings-general.png | Bin 71517 -> 74621 bytes docs/to-do.md | 4 +- docs/user-manual.md | 12 + pom.xml | 2 +- .../settings/ClaudeCodeOptionsPanel.java | 42 +++ .../settings/ClaudeCodePreferences.java | 94 ++++++ .../settings/TerminalFontChooserDialog.java | 282 ++++++++++++++++++ .../ui/NetBeansSettingsProvider.java | 25 +- .../settings/ClaudeCodePreferencesTest.java | 44 +++ .../ui/NetBeansSettingsProviderTest.java | 51 ++++ 12 files changed, 554 insertions(+), 5 deletions(-) create mode 100644 src/main/java/io/github/nbclaudecodegui/settings/TerminalFontChooserDialog.java create mode 100644 src/test/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProviderTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 161f9492..a88deee8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +- Added terminal font and font size settings (Tools → Options → Claude Code → General); defaults to auto-detection preferring Adwaita Mono for full Unicode coverage of Claude Code TUI symbols (https://github.com/nbclaudecodegui/NetbeansClaudeCodeGui/issues/18) - Reorganized General and Advanced settings tabs: moved technical settings (hang timeout, MCP port, Enable MCP integration, session list limit, debug mode) to Advanced - Added a setting to control whether the choice menu grabs keyboard focus (https://github.com/nbclaudecodegui/NetbeansClaudeCodeGui/issues/20) - Added a global setting to choose the default dock position of the Claude Code session tab (https://github.com/nbclaudecodegui/NetbeansClaudeCodeGui/issues/24) diff --git a/docs/installation.md b/docs/installation.md index 5b532210..d1ff7e0e 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -10,6 +10,8 @@ > **Note:** The plugin has been tested with Claude Code CLI 2.1.78 and newer. Older versions may not work correctly. +> **Terminal font (recommended):** The plugin auto-selects the best available monospace font. For full Unicode coverage of Claude Code TUI symbols (spinner ◐, prompt marker ⏵, box-drawing characters), install **Adwaita Mono**. On Linux it is typically pre-installed as part of the GNOME desktop. On macOS and Windows, download it from the [GNOME GitLab release page](https://gitlab.gnome.org/GNOME/adwaita-fonts/-/releases). The active font can be changed in **Tools → Options → Claude Code → General**. + The `claude` executable must be on your system `PATH` **or** its absolute path must be configured in **Tools → Options → Claude Code → General → Claude CLI path** after installing the plugin. --- diff --git a/docs/screenshots/settings-general.png b/docs/screenshots/settings-general.png index ed0dd7d9667f9d41e6732703adb5b59fb19fee22..e76786d173749f88239cce7d5b6f1aacaf1b2663 100644 GIT binary patch literal 74621 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 literal 71517 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 Slh-_vuBxP^SoXv^io.github.nbclaudecodegui netbeans-claude-code-gui - 0.22.25-SNAPSHOT + 0.22.27-SNAPSHOT nbm Netbeans 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/settings/ClaudeCodeOptionsPanel.java b/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodeOptionsPanel.java index 3313ee3e..6ccbfcaf 100644 --- a/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodeOptionsPanel.java +++ b/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodeOptionsPanel.java @@ -23,6 +23,7 @@ import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.SpinnerNumberModel; +import javax.swing.SwingUtilities; import javax.swing.table.AbstractTableModel; /** @@ -89,6 +90,14 @@ public final class ClaudeCodeOptionsPanel extends JPanel { private javax.swing.JLabel fileDiffDockModeLabel; /** Dropdown for the choice menu focus behavior. */ private javax.swing.JComboBox choiceMenuFocusCombo; + /** Label showing the currently selected terminal font (e.g. "Adwaita Mono, 14"). */ + private JLabel terminalFontLabel; + /** Button that opens {@link TerminalFontChooserDialog}. */ + private JButton terminalFontButton; + /** Pending terminal font name (not yet saved to preferences); "" = Auto. */ + private String pendingFontName = ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_NAME; + /** Pending terminal font size (not yet saved to preferences). */ + private int pendingFontSize = ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_SIZE; /** Spinner for the hang-detection timeout in seconds (0 = disabled). */ private JSpinner hangTimeoutSpinner; /** Checkbox to enable MCP integration (pass --mcp-config flag). */ @@ -236,6 +245,24 @@ private JPanel buildGeneralPanel() { form.add(choiceMenuFocusCombo, gbc(1, row, false)); row++; + // --- terminal font --- + form.add(new JLabel("Terminal font:"), gbc(0, row, false)); + terminalFontLabel = new JLabel(); + form.add(terminalFontLabel, gbc(1, row, false)); + terminalFontButton = new JButton("Choose…"); + terminalFontButton.addActionListener(e -> { + TerminalFontChooserDialog dlg = new TerminalFontChooserDialog( + SwingUtilities.getWindowAncestor(this), + pendingFontName, + pendingFontSize); + dlg.setVisible(true); + if (dlg.isConfirmed()) { + updateTerminalFontLabel(dlg.getFontName(), dlg.getFontSize()); + } + }); + form.add(terminalFontButton, gbc(2, row, false)); + row++; + // spacer GridBagConstraints spacer = new GridBagConstraints(); spacer.gridx = 0; spacer.gridy = row; @@ -444,6 +471,9 @@ void load() { syncExclusion(sendVal, true); syncExclusion(newlineVal, false); + updateTerminalFontLabel(ClaudeCodePreferences.getTerminalFontName(), + ClaudeCodePreferences.getTerminalFontSize()); + profilesPanel.load(); } @@ -477,6 +507,8 @@ void store() { ClaudeCodePreferences.setMcpEnabled(mcpEnabledCheckBox.isSelected()); ClaudeCodePreferences.setSendKey(selectedValue(sendRadios)); ClaudeCodePreferences.setNewlineKey(selectedValue(newlineRadios)); + ClaudeCodePreferences.setTerminalFontName(pendingFontName); + ClaudeCodePreferences.setTerminalFontSize(pendingFontSize); profilesPanel.store(); } @@ -494,6 +526,16 @@ boolean valid() { // helpers // ------------------------------------------------------------------------- + private void updateTerminalFontLabel(String name, int size) { + pendingFontName = name == null ? "" : name; + pendingFontSize = size; + if (pendingFontName.isEmpty()) { + terminalFontLabel.setText(ClaudeCodePreferences.resolveTerminalFontName() + ", " + size + " (Auto)"); + } else { + terminalFontLabel.setText(pendingFontName + ", " + size); + } + } + private static void selectRadio(Map radios, ButtonGroup group, String value) { JRadioButton rb = radios.get(value); diff --git a/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferences.java b/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferences.java index 163e3f0a..98fd704c 100644 --- a/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferences.java +++ b/src/main/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferences.java @@ -1,6 +1,7 @@ package io.github.nbclaudecodegui.settings; import io.github.nbclaudecodegui.model.SessionMode; +import java.awt.Font; import java.io.File; import java.io.IOException; import java.nio.file.Path; @@ -650,6 +651,99 @@ public static void setFileDiffDockMode(DockMode mode) { : DEFAULT_FILE_DIFF_DOCK_MODE.getModeName()); } + // ------------------------------------------------------------------------- + // terminalFontName / terminalFontSize + // ------------------------------------------------------------------------- + + /** Preference key: terminal font family name. */ + public static final String KEY_TERMINAL_FONT_NAME = "terminalFontName"; + /** + * Default: empty string — auto-detect the best available font. + * When empty, {@code NetBeansSettingsProvider} walks a priority list + * (Adwaita Mono → Consolas → Menlo → DejaVu Sans Mono → Monospaced) + * and returns the first installed font. + */ + public static final String DEFAULT_TERMINAL_FONT_NAME = ""; + + /** Preference key: terminal font size in points. */ + public static final String KEY_TERMINAL_FONT_SIZE = "terminalFontSize"; + /** Default terminal font size (14 pt, matching JediTerm's hardcoded default). */ + public static final int DEFAULT_TERMINAL_FONT_SIZE = 14; + + /** + * Returns the configured terminal font family name. + * + * @return font name, or {@link #DEFAULT_TERMINAL_FONT_NAME} (empty) for auto-detection + */ + public static String getTerminalFontName() { + return NbPreferences.forModule(ClaudeCodePreferences.class) + .get(KEY_TERMINAL_FONT_NAME, DEFAULT_TERMINAL_FONT_NAME); + } + + /** + * Persists the terminal font family name. + * + * @param v font name; {@code null} or blank stores {@link #DEFAULT_TERMINAL_FONT_NAME} + * which triggers auto-detection + */ + public static void setTerminalFontName(String v) { + NbPreferences.forModule(ClaudeCodePreferences.class) + .put(KEY_TERMINAL_FONT_NAME, v == null ? "" : v.trim()); + } + + /** + * Returns the configured terminal font size in points. + * + * @return font size in the range [8, 72] + */ + public static int getTerminalFontSize() { + return NbPreferences.forModule(ClaudeCodePreferences.class) + .getInt(KEY_TERMINAL_FONT_SIZE, DEFAULT_TERMINAL_FONT_SIZE); + } + + /** + * Persists the terminal font size. + * + * @param v font size in points; clamped to [8, 72] + */ + public static void setTerminalFontSize(int v) { + NbPreferences.forModule(ClaudeCodePreferences.class) + .putInt(KEY_TERMINAL_FONT_SIZE, Math.max(8, Math.min(72, v))); + } + + /** + * Font candidates tried in order when the terminal font preference is empty (auto-detect). + * The first font whose AWT family does not fall back to {@code "Dialog"} is used. + */ + public static final String[] TERMINAL_FONT_CANDIDATES = { + "Adwaita Mono", // best Unicode coverage for Claude Code TUI symbols + "Consolas", // Windows default + "Menlo", // macOS default + "DejaVu Sans Mono", + "Monospaced" // AWT logical font — always available + }; + + /** + * Returns the terminal font family name that will actually be used. + * When the user preference is empty (auto-detect), walks {@link #TERMINAL_FONT_CANDIDATES} + * and returns the first installed font name. + * + * @return resolved font family name; never empty + */ + public static String resolveTerminalFontName() { + String name = getTerminalFontName(); + if (!name.isEmpty()) { + return name; + } + for (String candidate : TERMINAL_FONT_CANDIDATES) { + Font f = new Font(candidate, Font.PLAIN, 12); + if (!f.getFamily().equals("Dialog")) { + return candidate; + } + } + return "Monospaced"; + } + // ------------------------------------------------------------------------- // choiceMenuFocusMode // ------------------------------------------------------------------------- diff --git a/src/main/java/io/github/nbclaudecodegui/settings/TerminalFontChooserDialog.java b/src/main/java/io/github/nbclaudecodegui/settings/TerminalFontChooserDialog.java new file mode 100644 index 00000000..43ffe4f4 --- /dev/null +++ b/src/main/java/io/github/nbclaudecodegui/settings/TerminalFontChooserDialog.java @@ -0,0 +1,282 @@ +package io.github.nbclaudecodegui.settings; + +import java.awt.BorderLayout; +import java.awt.Canvas; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.Window; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import javax.swing.BorderFactory; +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSpinner; +import javax.swing.ListSelectionModel; +import javax.swing.SpinnerNumberModel; +import javax.swing.SwingWorker; + +/** + * Modal dialog for choosing the terminal font family and size. + * + *

Displays all installed font families with an optional "monospaced only" + * filter. A live preview renders sample text including Claude Code TUI symbols + * (⏵ ◐) so the user can immediately see whether the chosen font has adequate + * Unicode coverage. + * + *

Usage: + *

{@code
+ * TerminalFontChooserDialog dlg = new TerminalFontChooserDialog(parent, fontName, fontSize);
+ * dlg.setVisible(true);
+ * if (dlg.isConfirmed()) {
+ *     String name = dlg.getFontName();   // "" = Auto
+ *     int    size = dlg.getFontSize();
+ * }
+ * }
+ */ +final class TerminalFontChooserDialog extends JDialog { + + private static final String AUTO_LABEL = "Auto (detect best available)"; + private static final String PREVIEW_TEXT = "AaBbCc 0O1Il → ⏵ ◐ ╔═╗ ░▒▓"; + + private final DefaultListModel listModel = new DefaultListModel<>(); + private final JList fontList = new JList<>(listModel); + private final JSpinner sizeSpinner; + private final JLabel previewLabel = new JLabel(PREVIEW_TEXT); + private final JCheckBox monoOnlyCheck = new JCheckBox("Show monospaced only", true); + + private List allFonts = new ArrayList<>(); + private List monoFonts = new ArrayList<>(); + private boolean monoFontsReady = false; + + private boolean confirmed = false; + + /** + * Creates and initialises the dialog. + * + * @param owner parent window for modality + * @param fontName current font name, or {@code ""} for Auto + * @param fontSize current font size in points + */ + TerminalFontChooserDialog(Window owner, String fontName, int fontSize) { + super(owner, "Terminal Font", ModalityType.APPLICATION_MODAL); + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + + sizeSpinner = new JSpinner(new SpinnerNumberModel( + Math.max(8, Math.min(72, fontSize)), 8, 72, 1)); + + buildUI(); + loadFontsAsync(fontName); + + pack(); + setMinimumSize(getPreferredSize()); + setLocationRelativeTo(owner); + } + + // ------------------------------------------------------------------------- + // Public API + // ------------------------------------------------------------------------- + + /** Returns {@code true} if the user clicked OK. */ + boolean isConfirmed() { + return confirmed; + } + + /** + * Returns the selected font family name, or {@code ""} if "Auto" is selected. + */ + String getFontName() { + String sel = fontList.getSelectedValue(); + if (sel == null || AUTO_LABEL.equals(sel)) return ""; + return sel; + } + + /** Returns the selected font size in points. */ + int getFontSize() { + return (Integer) sizeSpinner.getValue(); + } + + // ------------------------------------------------------------------------- + // UI construction + // ------------------------------------------------------------------------- + + private void buildUI() { + JPanel content = new JPanel(new BorderLayout(8, 8)); + content.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); + + // ---- filter checkbox ---- + monoOnlyCheck.addActionListener(e -> applyFilter()); + content.add(monoOnlyCheck, BorderLayout.NORTH); + + // ---- center: font list + size ---- + JPanel center = new JPanel(new GridBagLayout()); + + fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + fontList.setVisibleRowCount(16); + fontList.addListSelectionListener(e -> { + if (!e.getValueIsAdjusting()) updatePreview(); + }); + JScrollPane scroll = new JScrollPane(fontList); + scroll.setPreferredSize(new java.awt.Dimension(280, 260)); + + GridBagConstraints listGbc = new GridBagConstraints(); + listGbc.gridx = 0; listGbc.gridy = 0; + listGbc.gridheight = 3; + listGbc.fill = GridBagConstraints.BOTH; + listGbc.weightx = 1.0; listGbc.weighty = 1.0; + listGbc.insets = new Insets(0, 0, 0, 8); + center.add(scroll, listGbc); + + center.add(new JLabel("Size:"), labelGbc(1, 0)); + GridBagConstraints spinnerGbc = new GridBagConstraints(); + spinnerGbc.gridx = 2; spinnerGbc.gridy = 0; + spinnerGbc.anchor = GridBagConstraints.WEST; + spinnerGbc.insets = new Insets(0, 0, 4, 0); + sizeSpinner.addChangeListener(e -> updatePreview()); + center.add(sizeSpinner, spinnerGbc); + + // vertical spacer in size column + GridBagConstraints spacer = new GridBagConstraints(); + spacer.gridx = 1; spacer.gridy = 1; spacer.gridwidth = 2; + spacer.weighty = 1.0; spacer.fill = GridBagConstraints.VERTICAL; + center.add(new JPanel(), spacer); + + content.add(center, BorderLayout.CENTER); + + // ---- preview ---- + previewLabel.setBorder(BorderFactory.createTitledBorder("Preview")); + previewLabel.setPreferredSize(new java.awt.Dimension(400, 52)); + content.add(previewLabel, BorderLayout.SOUTH); + + // ---- buttons ---- + JButton okBtn = new JButton("OK"); + JButton cancelBtn = new JButton("Cancel"); + okBtn.addActionListener(e -> { confirmed = true; dispose(); }); + cancelBtn.addActionListener(e -> dispose()); + getRootPane().setDefaultButton(okBtn); + + JPanel buttons = new JPanel(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT, 4, 0)); + buttons.setBorder(BorderFactory.createEmptyBorder(4, 0, 0, 0)); + buttons.add(okBtn); + buttons.add(cancelBtn); + + JPanel root = new JPanel(new BorderLayout(0, 4)); + root.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); + root.add(content, BorderLayout.CENTER); + root.add(buttons, BorderLayout.SOUTH); + setContentPane(root); + } + + private static GridBagConstraints labelGbc(int x, int y) { + GridBagConstraints c = new GridBagConstraints(); + c.gridx = x; c.gridy = y; + c.anchor = GridBagConstraints.WEST; + c.insets = new Insets(0, 0, 4, 4); + return c; + } + + // ------------------------------------------------------------------------- + // Font loading + // ------------------------------------------------------------------------- + + private void loadFontsAsync(String initialSelection) { + listModel.addElement("Loading…"); + fontList.setEnabled(false); + monoOnlyCheck.setEnabled(false); + + SwingWorker worker = new SwingWorker<>() { + @Override + protected Void doInBackground() { + String[] families = java.awt.GraphicsEnvironment + .getLocalGraphicsEnvironment() + .getAvailableFontFamilyNames(); + allFonts = new ArrayList<>(families.length + 1); + monoFonts = new ArrayList<>(); + allFonts.add(AUTO_LABEL); + + Canvas canvas = new Canvas(); + for (String family : families) { + allFonts.add(family); + Font f = new Font(family, Font.PLAIN, 14); + FontMetrics fm = canvas.getFontMetrics(f); + if (fm.charWidth('M') == fm.charWidth('i')) { + monoFonts.add(family); + } + } + monoFontsReady = true; + return null; + } + + @Override + protected void done() { + fontList.setEnabled(true); + monoOnlyCheck.setEnabled(true); + applyFilter(); + selectFont(initialSelection); + updatePreview(); + } + }; + worker.execute(); + } + + private void applyFilter() { + boolean monoOnly = monoOnlyCheck.isSelected(); + String current = fontList.getSelectedValue(); + + listModel.clear(); + listModel.addElement(AUTO_LABEL); + + List source = (monoOnly && monoFontsReady) ? monoFonts : allFonts.subList(1, allFonts.size()); + for (String f : source) { + listModel.addElement(f); + } + + // restore selection if still in list + if (current != null) { + int idx = findIndex(current); + if (idx >= 0) fontList.setSelectedIndex(idx); + } + } + + private void selectFont(String fontName) { + if (fontName == null || fontName.isEmpty()) { + fontList.setSelectedIndex(0); // Auto + return; + } + int idx = findIndex(fontName); + if (idx >= 0) { + fontList.setSelectedIndex(idx); + fontList.ensureIndexIsVisible(idx); + } else { + fontList.setSelectedIndex(0); + } + } + + private int findIndex(String name) { + for (int i = 0; i < listModel.size(); i++) { + if (listModel.getElementAt(i).equals(name)) return i; + } + return -1; + } + + private void updatePreview() { + String sel = fontList.getSelectedValue(); + int size = (Integer) sizeSpinner.getValue(); + if (sel == null || AUTO_LABEL.equals(sel)) { + previewLabel.setFont(previewLabel.getFont().deriveFont((float) size)); + } else { + previewLabel.setFont(new Font(sel, Font.PLAIN, size)); + } + previewLabel.revalidate(); + previewLabel.repaint(); + } +} diff --git a/src/main/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProvider.java b/src/main/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProvider.java index 322379cb..32dd05f0 100644 --- a/src/main/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProvider.java +++ b/src/main/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProvider.java @@ -4,15 +4,36 @@ import com.jediterm.terminal.TextStyle; import com.jediterm.terminal.emulator.ColorPaletteImpl; import com.jediterm.terminal.ui.settings.DefaultSettingsProvider; +import io.github.nbclaudecodegui.settings.ClaudeCodePreferences; import java.awt.Color; +import java.awt.Font; import javax.swing.UIManager; /** - * JediTerm settings provider that adapts the terminal foreground/background - * and selection colors to the current NetBeans IDE Look & Feel theme. + * JediTerm settings provider that adapts the terminal colors and font to the + * current NetBeans IDE Look & Feel theme and user preferences. + * + *

Font selection: JediTerm uses a single {@link Font} with no + * per-glyph fallback, so the chosen font must cover all Unicode characters + * used by the Claude Code TUI (U+23F5 prompt marker, U+25D0 spinner, + * box-drawing, dingbats). Font resolution is delegated to + * {@link io.github.nbclaudecodegui.settings.ClaudeCodePreferences#resolveTerminalFontName()}, + * which prefers Adwaita Mono — the only widely-available FOSS monospace font + * with full coverage of those characters, pre-installed on most Linux GNOME desktops. */ final class NetBeansSettingsProvider extends DefaultSettingsProvider { + @Override + public float getTerminalFontSize() { + return ClaudeCodePreferences.getTerminalFontSize(); + } + + @Override + public Font getTerminalFont() { + return new Font(ClaudeCodePreferences.resolveTerminalFontName(), + Font.PLAIN, (int) getTerminalFontSize()); + } + @Override public TerminalColor getDefaultForeground() { Color fg = UIManager.getColor("EditorPane.foreground"); diff --git a/src/test/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferencesTest.java b/src/test/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferencesTest.java index a520ea71..8274762c 100644 --- a/src/test/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferencesTest.java +++ b/src/test/java/io/github/nbclaudecodegui/settings/ClaudeCodePreferencesTest.java @@ -21,6 +21,8 @@ void tearDown() { ClaudeCodePreferences.setSessionDockMode(ClaudeCodePreferences.DEFAULT_SESSION_DOCK_MODE); ClaudeCodePreferences.setMarkdownPreviewDockMode(ClaudeCodePreferences.DEFAULT_MARKDOWN_PREVIEW_DOCK_MODE); ClaudeCodePreferences.setFileDiffDockMode(ClaudeCodePreferences.DEFAULT_FILE_DIFF_DOCK_MODE); + ClaudeCodePreferences.setTerminalFontName(ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_NAME); + ClaudeCodePreferences.setTerminalFontSize(ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_SIZE); } @Test @@ -155,4 +157,46 @@ void fileDiffDockModeNullFallsBackToDefault() { ClaudeCodePreferences.setFileDiffDockMode(null); assertEquals(DockMode.EDITOR, ClaudeCodePreferences.getFileDiffDockMode()); } + + @Test + void terminalFontNameDefaultIsEmpty() { + assertEquals("", ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_NAME); + assertEquals("", ClaudeCodePreferences.getTerminalFontName()); + } + + @Test + void terminalFontNameRoundTrip() { + ClaudeCodePreferences.setTerminalFontName("Adwaita Mono"); + assertEquals("Adwaita Mono", ClaudeCodePreferences.getTerminalFontName()); + } + + @Test + void terminalFontNameNullStoredAsEmpty() { + ClaudeCodePreferences.setTerminalFontName(null); + assertEquals("", ClaudeCodePreferences.getTerminalFontName()); + } + + @Test + void terminalFontSizeDefaultIs14() { + assertEquals(14, ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_SIZE); + assertEquals(14, ClaudeCodePreferences.getTerminalFontSize()); + } + + @Test + void terminalFontSizeRoundTrip() { + ClaudeCodePreferences.setTerminalFontSize(20); + assertEquals(20, ClaudeCodePreferences.getTerminalFontSize()); + } + + @Test + void terminalFontSizeClampedToMin() { + ClaudeCodePreferences.setTerminalFontSize(5); + assertEquals(8, ClaudeCodePreferences.getTerminalFontSize()); + } + + @Test + void terminalFontSizeClampedToMax() { + ClaudeCodePreferences.setTerminalFontSize(100); + assertEquals(72, ClaudeCodePreferences.getTerminalFontSize()); + } } diff --git a/src/test/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProviderTest.java b/src/test/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProviderTest.java new file mode 100644 index 00000000..8756d335 --- /dev/null +++ b/src/test/java/io/github/nbclaudecodegui/ui/NetBeansSettingsProviderTest.java @@ -0,0 +1,51 @@ +package io.github.nbclaudecodegui.ui; + +import io.github.nbclaudecodegui.settings.ClaudeCodePreferences; +import java.awt.Font; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * Unit tests for the font selection logic in {@link NetBeansSettingsProvider}. + */ +class NetBeansSettingsProviderTest { + + private final NetBeansSettingsProvider provider = new NetBeansSettingsProvider(); + + @AfterEach + void tearDown() { + ClaudeCodePreferences.setTerminalFontName(ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_NAME); + ClaudeCodePreferences.setTerminalFontSize(ClaudeCodePreferences.DEFAULT_TERMINAL_FONT_SIZE); + } + + @Test + void autoModeReturnsNonNullFontWithNoDialogFamily() { + ClaudeCodePreferences.setTerminalFontName(""); + Font f = provider.getTerminalFont(); + assertNotNull(f); + // "Dialog" is Java's fallback for unknown fonts; auto-detection must + // always resolve to a real font (at minimum "Monospaced" is available) + assertNotEquals("Dialog", f.getFamily(), + "Auto mode must not fall back to the Dialog family"); + } + + @Test + void explicitFontNameUsedDirectly() { + ClaudeCodePreferences.setTerminalFontName("Monospaced"); + Font f = provider.getTerminalFont(); + assertEquals("Monospaced", f.getFamily()); + } + + @Test + void fontSizeReadFromPreferences() { + ClaudeCodePreferences.setTerminalFontSize(20); + assertEquals(20.0f, provider.getTerminalFontSize()); + assertEquals(20, provider.getTerminalFont().getSize()); + } + + @Test + void defaultFontSizeIs14() { + assertEquals(14.0f, provider.getTerminalFontSize()); + } +}