Visual Studio
安装
工具>>扩展和更新>>联机
搜索 sonarlint ,安装,重启IDE。
右键项目,选择 sonarlint connect mode ,点击 Exclude from Analysis, 就可以使用sonarlint检查,不过每启动一次IDE只能点击一次,之后按钮会消失。
然后打开一个文件,每保存一次就会扫描一次代码。
可以看到能检测出除数为0和未使用变量。
然后我想把这段代码bind到sonarqube上的项目,报错
事实上sonarlint目前只支持C#和VB.Net联网
跟开发者交流后确认后,sonarlint for Visual studio 暂不支持自定义check rules.
Intellij idea
安装
Files>>Settings>>Plugins 搜索Sonarlint,install后重启 IDE。
点击底栏Sonarlint查看扫描结果。
在Report下的左边栏文件夹图标点击可扫描全体文件。
在Current files 可查看当前文件。
可以看到类名不规范可以检测到。
在Files>>Settings>>Other Settings>>SonarLint General Settings>>Rules下可以选择check rules。
在Files>>Settings>>Other Settings>>SonarLint Project Settings>>Bind to SonarQube project
勾选Enable binding to remote SonarQube server
填写Bind to server和SonarQube project可以选择连接SonarQube server.
这些都是可以做的,但连接后,离线检查会失效。
所以Java同样不能连接SonarQube 云平台。
Clion
首先Sonalint插件还不支持Clion.
clion运行C++文件需要CMakeLists.txt,没有的话会报错。
clion cmake project is not loaded
编写 CMakeLists.txt 文件,并保存在与 main.cc 源文件同个目录下:
#CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
#项目信息
project (Demo1)
#指定生成目标
add_executable(Demo main.cc)
CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的。符号 # 后面的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔。
对于上面的 CMakeLists.txt 文件,依次出现了几个命令:
cmake_minimum_required:指定运行此配置文件所需的 CMake 的最低版本;
project:参数值是 Demo1,该命令表示项目的名称是 Demo1 。
add_executable: 将名为 main.cc 的源文件编译成一个名称为 Demo 的可执行文件。
对于另一个插件cpplint
Files>>Settings>>Plugins下载cpplint并安装。
cpplint是Google研发的使用python来扫描C++代码的工具,所以需要下载python.exe 和 cpplint.py.
在cpplint options里配置python path 和 cpplint path,cpplint options选项不太明白其含义。
然而配置完毕重启后并没有对代码中的问题弹出信息。
而JetBrains里对插件的介绍和cpplint的github文档也没有详细的解释。
和开发者交流后,确认Clion暂不支持本地c++,只适用于cygwin和mingw.
于是我尝试安装cygwin和mingw.
首先安装cygwin,安装完毕后cpplint仍然没有效果。
If you are using cygwin, use cygwin python package and fill with unix-style paths in the option panel(for example, /usr/bin/python and /home/tools/cpplint.py).
If you are using mingw, use windows python package and fill with windows-style paths in the option panel(for example, C:\Python27\python.exe and C:\cpplint.py).
于是我又安装mingw,安装后配置,
看到提示 “For MinGW make to work correctly D:/cygwin/bin/sh.exe must NOT be in your PATH”.
于是把环境变量PATH里之前添加的D:/cygwin/bin删除即可。
可以看到cpplint提示语法不规范信息。
参考
Visual Studio-github
CLion-cpplint plugins - JetBrains
CLion-cpplint-github
win10安装cygwin
基于ClIon的CMake、MinGW与Cygwin配置简易指南