品牌型号:惠普 240 G3
系统:Windows 10 专业版
软件版本:Source Insight 4.0
用Source Insight看代码时,我们可能都遇到过格式混乱的问题,明明自己已经对齐了,但别人修改后就不整齐了。这类问题多半是Tab和空格混用导致的,这时我们通常需要显示tab和空格,方便做后续调整。另外,如果想用它阅读C++项目,我们也会关心它对复杂语法和大型项目的支持能力。下面就来介绍下Source Insight如何显示tab和空格、Source Insight可以看C++吗。
一、Source Insight如何显示tab和空格
想搞清楚代码里当前用的是tab还是空格,第一步就得把Tab和空格给显示出来。Source Insight这点做得挺方便的,它有好几种设置方法,能让我们一眼就看出Tab和空格。
1、快速显示或隐藏空白字符
点击菜单栏的View,勾选上Visible Tabs and Spaces。

这样,就能立刻看到变化,Tab显示为右箭头(>>),空格显示为圆点(·)。这个方法很适合临时检查一下格式问题。

2、给特定语言永久设置上
要是希望某些类型的文件(比如说C/C++代码)一直都能看到这两个符号,那可以做个永久设置。操作路径是这样的:从顶上的菜单栏找到“Options”,点开它选“Preferences”,然后进到“Languages”这个分类里。在里面选中想设置的语言,比如C或者C++、接着点旁边的“File Types…”按钮。

这时候会弹出来一个新窗口。我们只要在里面把“Visible tabs”和“Visible spaces”这两个选项勾选上就可以了。这样一来,以后凡是这种类型的文件打开后,里面的空白字符就会一直显示成右箭头(>>)或者小圆点(·)。

3、将Tab自动转换为空格
很多团队为了避免Tab宽度设置不一样,会要求大家统一用空格来代替Tab键。其实在刚才提到的那个File Type Options窗口里就能设置,只需要找到并勾选上“Expand tabs to spaces”这个选项,然后把旁边的“Tab width”设成4(这是大家最常用的一个值)。设置好之后再按Tab键,它就会自动敲进去4个空格。
二、Source Insight可以看C++吗
答案是可以的。Source Insight对C++的支持可以说是比较全面的,用它来阅读和理解C++项目代码是个挺不错的选择。它的好用主要体现在下面这几个功能点上。
1、语法高亮与代码解析
Source Insight自己带的解析功能比较全面了,像C++11、C++14这些新版本的语法特性它基本都能认出来。当我们打开.cpp或者.hpp这类C++源文件的时候,它会自动给关键字、类名、函数名涂上不同的颜色。这么一来,整个代码的结构看起来就清爽多了。

就拿这张图里的例子来说明。在Source Insight里打开这个文件我们会发现:就算是复杂的模板和Lambda表达式,它的结构也能被清晰地解析并用颜色标出来;像template、auto、noexcept、constexpr这些C++关键字会用一种颜色高亮;而类名MyTemplateClass、函数名print和global_func又会用另一种样式来区分显示。
2、符号数据库与导航
Source Insight的特点是它会建一个符号数据库。当我们把一个项目加载进来之后,它会把所有源文件都分析一遍,然后把里面所有的函数、类、变量等都记录到这个数据库里。这样一来,查找东西就方便多了。
比如,Ctrl+鼠标左键点击变量或者函数,就可以直接跳转到定义它的地方。举个例子,把光标放到obj->print();这一行的print上。按住Ctrl键,同时鼠标移动到print上,单击鼠标左键,编辑器会立即跳转到MyTemplateClass类内部的print成员函数定义的地方。

3、关系窗口与上下文查看
关系窗口(Relation Window)挺直观的,能用图形化的方式展示函数调用关系、类继承层次等。把光标放在某个函数或类上,此窗口会直观显示其调用关系。上下文窗口(Context Window)则会实时显示当前符号的定义信息,不需要再跳转页面就可以快速查看。
我们一起看个例子感受下效果。把光标放在 main函数名上并点击,观察Relation Window,它会以图表形式显示main函数调用了MyTemplateClass类内部的print成员函数。

把光标放在 main函数内创建的obj变量上,Context Window会立刻显示obj的完整定义MyTemplateClass,不需要跳转。

4、高效的代码搜索
在大型C++项目里工作,想快速找到某段代码是基本功。F7键能直接搜符号,比如函数或者类名;Ctrl+F,就是在当前文件里找具体文字。这两个功能搭配着用,找东西会快很多。

5、从整体结构上分析项目
面对特别庞大的C++工程,有软件能帮我们生成像类继承图、函数调用树这样的全局视图,这对理清整个代码的框架特别有用。我们可以在 View 菜单下的 Panels 选项里,把项目窗口、类窗口这些面板都打开,这样就能从不同侧面去了解项目的结构了。举个例子,下图里的Relation窗口,就能很直观地展示出类的继承关系图。

以上就是关于Source Insight如何显示tab和空格、Source Insight可以看C++吗的全部内容了。Source Insight能显示出Tab和空格这个功能很实用,能让我们的代码格式保持清爽。它对C++的支持也确实不错,所以拿来读一读、分析一下C++项目还是挺顺手的。把这些功能都用起来的话,确实能让我们读代码、理解代码的效率提高不少。
