7.2 静态分析器集成

one take,中意“一次成型”,最早指歌手录歌时一次性通过录制,不存在发现错误-修正错误-重新录制这样的往返动作。one take 在编程环境中,就是一次性通过编译,我个人很享受 one take 带来的快感。当然,要达到 one take,不仅需要扎实的编程功底,还需要工具的辅佐 —— 代码静态分析器。前面介绍的神器 YCM 具备实时语法检查的能力。在它的作用下,编码中、编译前,所有语法错误都将被抓出来并呈现给你。

YCM 的整个静态分析过程分为如下几步:

第一步,发现错误。YCM 内部调用 libclang 分析语法错误,通过管道传递给 YCM 呈现。当你保存代码、vim 普通模式下移动光标或者安静 2 秒,错误检查后台任务将自动启动,若有错误,YCM 将接收到;

第二步,呈现错误。YCM 并不非立马显示错误信息,除非你触发下次击键事件,否则你看不到错误信息,换言之,干等是没结果的,你必须有次击键动作(没办法,vim 内部机制所限,后台任务无法直接更新 GUI,所以才采用变通的击键方式)。对于存在语法错误的代码,在行首有个红色的 >> 高亮显示;

第三步,查看错误。好了,现在已经知道哪行代码有问题,具体问题描述如何查看?两种方式:一种是将光标移至问题行,vim 将在其底部显示简要错误描述;一种是将光标移至问题行,键入 <leader>d 后,vim 将在其底部显示详细错误描述。

如下所示:

7.2 静态分析器集成  - 图1(静态代码分析)