Tim*_*hko 7 c++ qt qt-creator c++11
如何关闭基于c ++ 11周期范围的运算符的错误突出显示(代码下的红色波形)?
int myint[] = {1,2,3,4,5};
for (auto x : myint){/**/}
Run Code Online (Sandbox Code Playgroud)
悬停提示显示"意外令牌:
".代码编译完美.
另一个问题 - 自动完成不会unique_ptr
在std::
命名空间中显示,但编译正常.
tul*_*llo 10
我不明白安德鲁答案中的推理路线.为什么自定义语法检查有意义?给定编译器命令行设置的上下文,语法是正确的,或者是错误的.如果是错的,应该标记为,如果不是,则不是.如果正确的代码被标记为错误,则IDE中的错误或至少是不受支持的功能,它需要修复,而不是"自定义".
话虽如此,引用的例子
int myint[] = {1,2,3,4,5};
for (auto x : myint){/**/}
Run Code Online (Sandbox Code Playgroud)
在这里工作正常(相当近的主分支构建).
关于Kate的其他评论:在没有更多特定语法高亮显示可用于文件的情况下,Qt Creator使用Kate的语法高亮显示作为后备.在C++(98/03/11)的情况下,使用的是真实的代码模型,而不是Kate的定义.
有"语法高亮"(着色),还有"语法检查"(波浪下划线).语法着色似乎与Kate有关,因为@Koying建议,您可以修改颜色并将其关闭.从Qt Creator 2.5.0开始,对于我粘贴网页的大多数 C++ 11示例似乎没有问题,尽管您的示例确实仍然具有下划线:
http://labs.qt.nokia.com/2012/05/09/qt-creator-2-5-0-released/
还不幸的是,在撰写本文时(2012年6月13日,即发布后大约一个月),最新的集成SDK软件包仍默认安装Qt Creator 2.4.1.: - /
如果这是某人所在的船并且想要尝试最新的,请不要通过使用Wt SDK安装来完成我的工作/opt/QtSDK/SDKMaintenanceTool
!这是浪费了重新安装的时间,之后我执行了一个sudo rm -r /opt/QtSDK/QtCreator
,然后告诉新的Qt Creator版本安装到/opt/QtSDK/QtCreator
.如果我遇到那个选择,我会更新这篇文章!
http://qt-project.org/wiki/Qt_Creator_Releases
但虽然看似与许多C++ 11点的构建工作什么都不做你的例子也不是我遇到绊倒的特定情况下,这是unspaced<nested<syntax>>
为模板.
(注意:它可能看起来像是一件小事,但对我来说这是一个很大的C++ 11功能.我讨厌必须要做的事情tailspaced<nested<syntax> >
......这使我总是fullyspaced< nested< syntax > >
在所有模板上做以保持一致.即使是简单的案例就像vector< int >
现在,他们固定的编译器,我已经准备好要杀死所有的空白噪声).
似乎没有办法关闭波浪下划线(除非你重新编译Qt Creator ??).
in qt-creator-2.5.0-src\src\plugins\cpptools\cppmodelmanager.cpp:
QTextCharFormat errorFormat;
/* disable error underline
errorFormat.setUnderlineStyle(QTextCharFormat::WaveUnderline);
errorFormat.setUnderlineColor(Qt::red);
*/
// set up the format for the warnings.
QTextCharFormat warningFormat;
/* disable warning underline
warningFormat.setUnderlineStyle(QTextCharFormat::WaveUnderline);
warningFormat.setUnderlineColor(Qt::darkYellow);
*/
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,这都是在IDE中复制编译器工作而不是拥有两个共享前端代码的疯狂后果.我们生活在软件的黑暗时代.不会有人拯救我们吗?[/咆哮]
这是一些相关的代码(我认为):
https://qt.gitorious.org/qt-creator/qt-creator/blobs/master/src/plugins/cppeditor/cpphighlighter.cpp
......和这里的词法分析员,请注意成员_cxx0xEnabled
:
除了你的语法之外,模板间距是我在C++ 11中发现的唯一导致这些行的东西.这对我来说足够重要,我可能只是建立自己的QtCreator来解决它!
如果您使用 C++11 编写,则应该从使用 QT Creator 作为 IDE 更改为使用 Eclipse CDT。至少我是这样解决这个问题的。QT Creator 似乎没有任何方法来自定义这种实时语法检查。另一方面,Eclipse 在这方面可以进行广泛的定制。
更新:我认为自从给出这个答案以来,QtCreator 已经改进了对 C++ 新版本的支持,所以它不再正确。我无法删除它,因为它是已接受的答案。
归档时间: |
|
查看次数: |
9214 次 |
最近记录: |