我正在寻找类似于JavaScript linting工具JSHint或JSLint for C的东西。我的文本编辑器(Sublime Text 2)有一个JSHint插件,可以实时反馈我的JavaScript代码。
获得有关C代码质量的反馈的最佳方法是什么?有没有可以让我实时掉毛的工具?
答案 0 :(得分:5)
我已经编造了一种方法,可以将为SublimeText 2编写的一些用户自制的连接符放入混合中,以使llint与SublimeLinter和ANSI C一起工作。另请注意,这是一种让它工作的稍微“hacky”方式
您必须安装了clang(对于OS X,您可以使用Apple's command line tools来安装clang / LLVM编译器,这只需要一个免费的开发者帐户,您还必须在Sublime Text 2
导航到SublimeLinter的this user's fork并继续从modules文件夹下载'c.py'模块
将此模块复制到位于**your SublimeText 2 data directory**\Packages\SublimeLinter\sublimelinter\modules\
下的SublimeLinter工作模块目录(see this,以获取有关数据目录的更多信息)
重新启动Sublime Text 2 †
<小时/>
答案 1 :(得分:3)
答案 2 :(得分:2)
另外,请查看cppcheck
答案 3 :(得分:0)
通过完整警告将其传递给编译器是一个非常好的基本lint。它会捕获诸如拼写变量之类的内容。 clang with optimizations off足够快,可以作为实时插件的基础,但我不知道这种用于崇高文本。
答案 4 :(得分:0)
你有足够的代表,我觉得这可能是一个太明显的建议,但听起来你基本上可以从IDE中受益?例如,Eclipse。我开发Eclipse / Java并且它在错误/警告方面相当积极,当然比我见过的编译器还要多。
答案 5 :(得分:0)
由于这个问题被提出并被回答,现在在Sublime中有一些C/C++
linting的选项比接受的答案更加用户友好。所有这些都是SublimeLinter的插件。我建议使用Package Control作为Sublime Text的包管理器(与插件作者一样)。
首先,如果您还没有它,请安装Sublime Linter(这是一种非常流行的多种语言的linting框架)。如作者所建议的那样,它最容易通过包控制安装,但github网站上有更多信息。安装Sublime Linter后,现在有两到四个不同的附件包可用于linting C
和C++
代码。
其中两个使用C/C++
编译器本身进行检查;这些是SublimeLinter-gcc和SublimeLinter-clang。两者都可以通过Package Control安装,并为SublimeLinter提供相关底层编译器的接口。 gcc包使您可以轻松指定要使用的编译器可执行文件,以防您需要检查代码以进行交叉编译。
另外两个分别是cpplint和cppcheck的接口。这两个也可以在Package Control上使用,尽管它们的名字似乎都是lint C和C ++代码。
请注意,您可能只希望一次启用其中一个选项,但SublimeLinter设置允许您安装多个选项,并且只有一个选项通过"linters": {...}
选项节启用。