反转格式空格和中断提示

Invert Format spaces and break hints

是否可以反转 Format 模块中中断提示的行为,例如使用标准 spaces 作为中断提示,并为不可中断的 spaces?

添加一些特殊符号

当前的行为导致人们可能倾向于编写 "Hello@ world,@ this@ is@ a@ short@ phrase" 的情况,其中每个 space 都被转换为中断提示以模仿所见的行为,例如在文本编辑器、HTML 渲染器等中

例如,此 Using the Format module 文档明确建议使用中断提示:

Generally speaking, a printing routine using "format", should not directly output white spaces: the routine should use break hints instead.

这种行为不仅使编写消息变得复杂,而且还使得在源代码中 grep 字符串变得非常困难。

似乎遵循既定惯例 "every space is a break hint, unless marked as non-breaking space" 会是一个更好的选择。

是否有简单的技术来包装此类字符串并反转它们的行为,最好不会产生过多的运行时成本 and/or 导致输入问题(例如,由于 string 和 [=12= 之间的转换])?

自 4.02 以来,有一个 Format.pp_print_text 函数可以获取常规文本并打印它,用剪切替换空格,用 new_lines 替换 \n

使用此功能,您仍然可以使用 printf 和其他便利功能进行打印:

printf "text '%a'" pp_print_text "hello, this a short phrase" 

总的来说,您的问题更多是关于库设计的。因此,很难回答任何关于它的问题。它更适合在 OCaml 邮件列表上进行讨论。