Go语言技术文章
-
Go huh 的可访问模式会放弃 Bubble Tea 的 TUI 重绘,改用更适合屏幕阅读器、CI 和脚本输入的普通终端提示。本文说明如何通过环境变量、Reader、Writer 和字段校验配置一份可复用的表单。228 收藏 -
Go Lip Gloss 的 Width 参与块布局和文本换行,MaxWidth 则在渲染完成后逐行截断。本文结合边框、内边距和 Inline,说明两者的渲染时机与选择方法。429 收藏 -
Go Lip Gloss 在不同终端颜色不一致,通常与终端色彩档位、输出目标和背景检测有关。本文说明如何使用 Lip Gloss writer 自动降采样,并用 Complete 为关键颜色提供稳定回退。228 收藏 -
Lip Gloss 的带颜色字符串包含 ANSI 控制序列,而中文和 Emoji 又可能占用多个终端单元格,所以 len 和 []rune 都不能代表显示宽度。本文按排障手册拆开长度口径,并给出 lipgloss.Width、lipgloss.Size 的替换方法。418 收藏 -
Go Lip Gloss 的 Width 是应用 Margin 前的块宽度,Padding 和 Border 都会占用这段空间。本文按内容区、框架开销和终端单元格测量拆开计算,并整理中文文本、超宽内容与回退排查方法。430 收藏 -
用tea.Batch并发启动互不依赖的命令,将耗时操作放入Cmd闭包,并用独立消息更新模型状态。示例讲清结果无序、完成标记与后续任务依赖的处理方式。157 收藏 -
Lip Gloss 的左右文本面板要先分别 Render 成字符串,再用 JoinHorizontal 按顶部、居中或底部对齐;文章同时说明固定宽度、边框和终端总宽度预算。184 收藏 -
Go Lip Gloss 里可以用一个基础 Style 保存颜色、边框和间距,再用 Inherit 让标题、正文和警告样式只补齐未设置的规则。本文对比赋值复制与继承的区别,给出 v2 写法、旧代码风险和回归检查清单。324 收藏 -
Bubble Tea 的 tea.Batch 适合互不依赖的命令并发组合,tea.Sequence 适合必须按顺序执行的命令。本文用原创 Go 示例说明两者的结果顺序、依赖关系、nil 命令与错误处理边界。119 收藏 -
Bubble Tea 的 tea.Tick 只发送一次消息;要做持续定时,必须在 Update 处理 TickMsg 后返回下一次 Tick 命令,并在退出时停止重新调度。251 收藏 -
Bubble Tea 的 Update 修改字段后,下一轮 View 仍然不变,通常是返回了旧模型,或值接收者修改副本后没有返回该副本。本文按消息、模型、返回值和 View 的状态链路给出排查与修复写法。290 收藏 -
Bubble Tea 会把终端初始尺寸和后续变化送进 Update。本文用 WindowSizeMsg 保存宽高,再让 View 根据模型尺寸重算布局,并说明过窄窗口与 Windows 平台边界。332 收藏 -
Bubble Tea 中不要让耗时查询直接阻塞 Update,而是把查询封装成 tea.Cmd,在完成后返回带数据或错误的自定义 Msg,再由 Update 统一更新模型。本文还说明如何用请求序号丢弃过期结果。224 收藏 -
Go billy 的 OpenFile 中,O_CREATE 只负责目标不存在时创建,O_TRUNC 负责打开已有文件时清空内容。本文用 memfs 与 osfs 的接口语义对比新建、覆盖、追加和排他新建,避免误删旧文件。317 收藏 -
以go-billy v5.6.2的memfs为例,解释Chroot后绝对路径与子根的关系,通过同一文件的内容比较区分父视图、子视图与宿主路径,并提醒不要重复拼接Root。131 收藏