当我输入一些 UTF-8 字符而不是简单的 ASCII 时,我发现 clang-format 将字符的长度视为表示的字节数,而不是终端中显示的长度。
例如:
? 存储在 3 个字节中,但在 vim 或其他编辑器中需要 2 个 ASCII 空间。
预期的格式化代码应如下所示:
#define test \
/* ?? */ \
"aa" \
"bb" \
"bb"
Run Code Online (Sandbox Code Playgroud)
但我真正得到的是如下:
#define test \
/* ?? */ \
"aa" \
"bb" \
"bb"
Run Code Online (Sandbox Code Playgroud)
如何通过某些配置获得预期结果?
clang-format 已经检测到 UTF-8。不需要告诉它去做。因此,您正在处理这里的错误,您应该向他们的错误跟踪器报告:
确保您已经使用最新的 clang-format 版本进行了测试。目前为 11.0.0。您不想报告已修复的旧版本中的错误。