如何避免以 clang 格式格式化 XML、SQL 等原始字符串?

问题描述 投票:0回答:2
clang-format
2个回答
0
投票

我也有类似的问题。

我的解决办法是 将 XML 部分拆分到它们自己的文件中
然后 clang 格式化程序不会触及它们,并且将使用您的标准 VS Code 格式化程序。

然后我需要将 maxLineWidth 设置为 0,这意味着由于列长度而没有新行。

.vscode/settings.json

    "xml.format.maxLineWidth": 0

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
+}

如您所见,没有修改任何包含原始字符串文字内容的行。

© www.soinside.com 2019 - 2024. All rights reserved.