我也有类似的问题。
我的解决办法是 将 XML 部分拆分到它们自己的文件中。
然后 clang 格式化程序不会触及它们,并且将使用您的标准 VS Code 格式化程序。
然后我需要将 maxLineWidth 设置为 0,这意味着由于列长度而没有新行。
.vscode/settings.json
"xml.format.maxLineWidth": 0
根据 clang-format 14(Ubuntu 22.04 LTS 的默认版本)中的示例,原始字符串文字不存在格式问题。
不幸的是,你没有提到你使用的是哪个版本的 clang-format,所以测试所有版本是很乏味的。
运行您提供的命令后,仅更改了 3 行(我仅添加
-i
来获取文件中的内联更改):
clang-format -i --style=WebKit test1.cpp
这是差异:
QLatin1String test()
- {
- return QLatin1String(R"XML(
+{
+ return QLatin1String(R"XML(
<ui language="c++">
<widget class="Test" name="dialogbuttonbox">
<property name="text">
@@ -8,5 +8,4 @@ QLatin1String test()
</property>
</widget>
</ui>)XML");
- }
-
\ No newline at end of file
+}
如您所见,没有修改任何包含原始字符串文字内容的行。