fix: 将所有emoji/Unicode特殊字符替换为ASCII安全字符
Windows cmd/PowerShell默认codepage下emoji显示为?号。 全局替换: 👋->移除, 💭->[Thinking], ⚙->*, ✓->[OK], ✗->[FAIL], ◆->>, ⚠->[!], ✅->[OK], •->|/-, →->>>, ✏️->[Edit]等。 ❯保留(windows-vtp终端下正常显示)。 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -34,7 +34,7 @@ public class BannerPrinter {
|
||||
|
||||
out.println(banner);
|
||||
out.println(AnsiStyle.bold(" Claude Code (Java)") + AnsiStyle.dim(" v" + VERSION));
|
||||
out.println(AnsiStyle.dim(" Powered by Spring AI • Type /help for commands"));
|
||||
out.println(AnsiStyle.dim(" Powered by Spring AI | Type /help for commands"));
|
||||
out.println();
|
||||
}
|
||||
|
||||
@@ -43,9 +43,9 @@ public class BannerPrinter {
|
||||
*/
|
||||
public static void printCompact(PrintStream out) {
|
||||
out.println();
|
||||
out.println(AnsiStyle.BRIGHT_CYAN + AnsiStyle.BOLD + " ◆ Claude Code (Java)" + AnsiStyle.RESET
|
||||
out.println(AnsiStyle.BRIGHT_CYAN + AnsiStyle.BOLD + " > Claude Code (Java)" + AnsiStyle.RESET
|
||||
+ AnsiStyle.dim(" v" + VERSION));
|
||||
out.println(AnsiStyle.dim(" Type /help for commands • Ctrl+D to exit"));
|
||||
out.println(AnsiStyle.dim(" Type /help for commands | Ctrl+D to exit"));
|
||||
out.println();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class MarkdownRenderer {
|
||||
}
|
||||
// 列表项
|
||||
else if (line.stripLeading().startsWith("- ") || line.stripLeading().startsWith("* ")) {
|
||||
out.println(" " + AnsiStyle.CYAN + "•" + AnsiStyle.RESET + " " + renderInline(line.stripLeading().substring(2)));
|
||||
out.println(" " + AnsiStyle.CYAN + "-" + AnsiStyle.RESET + " " + renderInline(line.stripLeading().substring(2)));
|
||||
}
|
||||
// 分隔线
|
||||
else if (line.strip().matches("^-{3,}$") || line.strip().matches("^\\*{3,}$")) {
|
||||
|
||||
@@ -22,7 +22,7 @@ public class ThinkingRenderer {
|
||||
}
|
||||
|
||||
out.println();
|
||||
out.println(AnsiStyle.DIM + AnsiStyle.ITALIC + " 💭 Thinking..." + AnsiStyle.RESET);
|
||||
out.println(AnsiStyle.DIM + AnsiStyle.ITALIC + " [Thinking...]" + AnsiStyle.RESET);
|
||||
|
||||
// 显示 thinking 内容(缩进并用暗色)
|
||||
for (String line : thinkingContent.lines().toList()) {
|
||||
@@ -33,7 +33,7 @@ public class ThinkingRenderer {
|
||||
|
||||
/** 渲染 thinking 开始标记 */
|
||||
public void renderStart() {
|
||||
out.print(AnsiStyle.DIM + AnsiStyle.ITALIC + " 💭 Thinking..." + AnsiStyle.RESET);
|
||||
out.print(AnsiStyle.DIM + AnsiStyle.ITALIC + " [Thinking...]" + AnsiStyle.RESET);
|
||||
}
|
||||
|
||||
/** 渲染 thinking 结束标记 */
|
||||
|
||||
@@ -18,7 +18,7 @@ public class ToolStatusRenderer {
|
||||
/** 渲染工具调用开始 */
|
||||
public void renderStart(String toolName, String args) {
|
||||
out.println(AnsiStyle.dim(" ─────────────────────────────────────────"));
|
||||
out.print(AnsiStyle.YELLOW + " ⚙ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET);
|
||||
out.print(AnsiStyle.YELLOW + " * " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET);
|
||||
out.println(AnsiStyle.dim(" running..."));
|
||||
// 如果有简短参数,显示
|
||||
if (args != null && !args.isBlank()) {
|
||||
@@ -37,7 +37,7 @@ public class ToolStatusRenderer {
|
||||
display = display.substring(0, 497) + "...";
|
||||
}
|
||||
|
||||
out.println(AnsiStyle.GREEN + " ✓ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET
|
||||
out.println(AnsiStyle.GREEN + " [OK] " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET
|
||||
+ AnsiStyle.dim(" done"));
|
||||
if (display != null && !display.isBlank()) {
|
||||
// 缩进输出每一行
|
||||
@@ -50,7 +50,7 @@ public class ToolStatusRenderer {
|
||||
|
||||
/** 渲染工具错误 */
|
||||
public void renderError(String toolName, String error) {
|
||||
out.println(AnsiStyle.RED + " ✗ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET
|
||||
out.println(AnsiStyle.RED + " [FAIL] " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET
|
||||
+ AnsiStyle.red(" error"));
|
||||
if (error != null) {
|
||||
out.println(AnsiStyle.red(" " + error));
|
||||
|
||||
Reference in New Issue
Block a user