#220·icecream

提高字符串的输出效果

作者: Jakeroid创建于 2025年9月14日更新于 2025年11月11日
标签enhancementhelp wanted

问题

字符串内部可以默认修改其输出. 这导致调试时丢失或误导信息.

建议的解决办法

以默认保存所有信息的方式使 IceCream 输出字符串. 这意味着:

  • 明确显示控制字符和隐形人,而不是让他们影响终端布局。
  • 仔细决定新线是用字面表达还是作为逃生符号表达。

实例

  1. 控制字符改变输出而不是可见。 例如,\b(后空格)将字符 ~ abc\bX 打印为 abX(信息丢失) 。
  2. 隐形Unicode字符无声消失. 例如,零宽空间(\u200B),左/右标记(\u200E,\u200F)不显示 – 用户不能告诉它们存在.
  3. 新线始终显示为多行区块. 我不确定这应该是默认行为。
  4. 白空间模糊不清。 例如,标签(\t)被扩展为空格,使其无法区分.
  5. 长弦冲出输出。 非常长的行被完整地印出,没有截断或摘要.
  6. 有控制字符的字节/字节. 例如,有\n或\x00的字节被打印为生,产生真实的行断或隐形内容.

开放问题

  1. 逃出/可见模式是否应当是默认行为?
  2. 是否应有一个选择,以比一行大而更可读的形式输出字符串?
  3. 我们是否想要概括长字符串(长度,行数,预览),而不是默认打印全部内容?