diff --git a/cmd/hxclaw/internal/markdown.go b/cmd/hxclaw/internal/markdown.go index f5fc0c3..b091e5a 100644 --- a/cmd/hxclaw/internal/markdown.go +++ b/cmd/hxclaw/internal/markdown.go @@ -82,6 +82,9 @@ func getWrapWidth() int { if cfg.Markdown.WrapWidth > 0 { return cfg.Markdown.WrapWidth } + if cfg.Markdown.WrapWidth < 0 { + return 0 + } } if cols := os.Getenv("COLUMNS"); cols != "" { @@ -90,9 +93,15 @@ func getWrapWidth() int { } } + if cols := os.Getenv("LINES"); cols != "" { + if w, err := strconv.Atoi(cols); err == nil && w > 0 { + return w + } + } + width, _, err := term.GetSize(0) if err != nil || width <= 0 { - return 80 + return 0 } return width } diff --git a/cmd/hxclaw/main.go b/cmd/hxclaw/main.go index ac013d6..c6c5f12 100644 --- a/cmd/hxclaw/main.go +++ b/cmd/hxclaw/main.go @@ -175,11 +175,11 @@ func outputLineByLine(text string) { for i, line := range lines { if line == "" { - fmt.Println() + lipgloss.Print("\n") continue } - fmt.Println(line) + lipgloss.Print(line + "\n") if i < totalLines-1 { time.Sleep(lineDelay) @@ -188,7 +188,7 @@ func outputLineByLine(text string) { } } - fmt.Println() + lipgloss.Print("\n") } var ( diff --git a/project.config.yml b/project.config.yml index c5513cc..6f42025 100644 --- a/project.config.yml +++ b/project.config.yml @@ -2,15 +2,15 @@ # 模拟流式输出配置 streaming: - line_delay_ms: 1000 # 每行输出后的延迟(毫秒) - last_line_delay_ms: 600 # 最后一行延迟(毫秒) + line_delay_ms: 1000 # 每行输出后的延迟(毫秒) + last_line_delay_ms: 600 # 最后一行延迟(毫秒) # Markdown 渲染配置 markdown: - glamour_style: dark # 渲染主题:dark, light, dracula, tokyo-night 等 - wrap_width: 0 # 自动换行宽度(0=自动获取终端宽度) + glamour_style: dark # 渲染主题:dark, light, dracula, tokyo-night 等 + wrap_width: -1 # 自动换行宽度(-1=禁用,0=自动,>0=固定宽度) # UI 配置 ui: logo: "🦐" - user_prefix: "👀 " \ No newline at end of file + user_prefix: "👀 "