【发布时间】:2017-05-16 12:43:54
【问题描述】:
我注意到 Qt 的 Q_FOREACH 宏不能很好地与 Visual Studio 的某些功能配合使用:
IntelliSense 将其检测为函数声明:每个
Q_FOREACH在类查看器中显示为函数/方法。幸运的是this answer 解决了这个问题。-
代码格式化还将其检测为函数声明(编辑 > 高级 > 格式化文档)。例如,对于我目前的格式样式:
void foo() { Q_FOREACH (auto action, actions){ (action); } for (int i = 0; i < 10; ++i) { (i); } }被格式化为
void foo() { Q_FOREACH(auto action, actions) { (action); } for (int i = 0; i < 10; ++i) { (i); } }而不是
void foo() { Q_FOREACH (auto action, actions) { (action); } for (int i = 0; i < 10; ++i) { (i); } }
有什么办法可以解决吗?用于解决与 IntelliSense 相关的第一个问题的 cpp.hint 提示已应用,但对格式没有帮助。
PS:我正在使用 Visual Studio Professional 2017 并使用 Visual Studio Add-in 2.1.1 for 2017(测试版 10.03.2017,从 https://download.qt.io/development_releases/vsaddin/ 下载)。
更新:为了提供一些额外的背景信息,我们刚刚开始从 VS 2010 迁移到 VS 2017。目前我们只迁移了 IDE,工具集仍在 2010 年,其中自然替换 C++11 range-for 不适用于该版本的 C++ 编译器。
据了解,团队中的一些成员一直在使用AStyle(和its VS plugin)进行代码格式化,以或多或少可以接受的方式处理这种情况(以及其他与 Qt 相关的事情)。我开始研究迁移到本机代码格式化程序的可能性并发现了这一点,这就是我发布这个问题的原因。
没有解决我问题的相关问题:
【问题讨论】:
标签: visual-studio qt visual-studio-2017 code-formatting