cppcheck似乎可以工作,但没有出现皮棉结果(Subilme Text 3,Mac)

时间:2018-06-22 08:47:17

标签: c++ macos sublimetext3 cppcheck sublimelinter

我在macOS High Sierra(版本10.13.3)上使用Sublime Text 3(版本3.1.1,内部版本3176)。

我想在我的Sublime Text 3中使用SublimeLinter-cppcheck插件和cppcheck,所以我根据this link和其他网站安装了它们。

现在我的SublimeLinter.sublime-settings就是这样。 (我也将插件用于Python,因此有flake8的设置。)

{
  "debug": true,
  "linters": {
    "cppcheck": {
      "@disable": false,
      "source": "source.cpp",
      "lint_mode": "save",
      "args": [],
      "enable": "style",
      "excludes": [],
      "std": ["c++11"]
    },
    "flake8": {
      "@disable": false,
      "source": "source.py",
      "args": ["--ignore=E111"],
      "enable": "style",
      "excludes": [],
    }
  },
}

然后我用如下所示的test.cpp检查它们是否已成功安装。

#include <iostream>

using namespace std;

int main()
{
    cout << "it works" << endl;

    return 0;

此代码显然有错误,因此,如果成功安装它们,则某些棉绒结果将出现在代码中。

在调试控制台中,cppcheck似乎可以正常工作,因此我认为我已成功安装了它。这是调试控制台的输出。

SublimeLinter: sublime_linter.py:249: Delay buffer 28 for 0.1s
SublimeLinter: sublime_linter.py:249: Delay buffer 28 for 0.0s
SublimeLinter: linter.py:798: Checking lint mode background vs lint reason on_save
SublimeLinter: #98 linter.py:818: 'cppcheck' is linting 'test.cpp'
SublimeLinter: #98 linter.py:1174: Running ...

  /Users/ASHIJANKEN/Desktop  (working dir)
  $ /usr/local/bin/cppcheck --template=gcc --inline-suppr --quiet --std=c++11 --enable=style /Users/ASHIJANKEN/Desktop/test.cpp

SublimeLinter: #98 linter.py:866: cppcheck output:
    /Users/ASHIJANKEN/Desktop/test.cpp:6:0: warning: Invalid number of character '{' when no macros are defined. [syntaxError]
    {
    ^
SublimeLinter: #98 linter.py:906: cppcheck: No match for line: '{'
SublimeLinter: #98 linter.py:906: cppcheck: No match for line: '^'
SublimeLinter: sublime_linter.py:432: Linting buffer 28 took 0.03s

但是,编辑窗口中没有出现绒毛结果。

An image of actual window when I editing test.cpp

我不知道为什么不出现棉绒结果。我在哪里犯错了?

我知道当lint_mode为background(Related issue)时cppcheck不起作用。与这种奇怪的行为有关吗?

1 个答案:

答案 0 :(得分:1)

在我的环境中,最后我通过从SublimeLinter.sublime-settings删除下面的部分来解决了这个问题。

"cppcheck": {
  "@disable": false,
  "source": "source.cpp",
  "lint_mode": "save",
  "args": [],
  "enable": "style",
  "excludes": [],
  "std": ["c++11"]
},