如何配置 clang-format 以采用所示的 UTF-8 字符长度而不是其实际字节长度?

How to configure clang-format to take UTF-8 character's length as shown rather than its real bytes length?

当我输入一些 UTF-8 字符而不是简单的 ASCII 时,我发现 clang-format 会将字符的长度作为表示的字节数,而不是终端中显示的长度。

例如:

存储在3个字节中,但在vim或其他编辑器中需要2个ASCII space。

预期的格式化代码应如下所示:

#define test   \
  /* 测试 */   \
  "aa"         \
  "bb"         \
  "bb"

但我真正得到的是:

#define test   \
  /* 测试 */ \
  "aa"         \
  "bb"         \
  "bb"

如何通过一些配置获得预期的结果?

clang-format 已经检测到 UTF-8。它不需要被告知去做。所以你在这里处理一个错误,你应该向他们的错误跟踪器报告:

https://bugs.llvm.org/

确保您已使用最新的 clang-format 版本进行测试。截至目前为 11.0.0。您不想报告已经修复的旧版本的错误。