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

Jas*_*Pan 5 c++ clang-format

当我输入一些 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)

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

Nik*_* C. 3

clang-format 已经检测到 UTF-8。不需要告诉它去做。因此,您正在处理这里的错误,您应该向他们的错误跟踪器报告:

https://bugs.llvm.org/

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