1、打开软件后的默认界面:
2、准备创建工程:
在菜单栏中点击Project > New Project ,然后会出现对话框如下,分别为当前工程名称和后期该工程数据文件的位置,工程名建议起一个比较容易识别的名称,而工程数据文件可以使用默认的位置或者用户自定义路径;
这里暂时给工程起个名字就是useGlib。起完名字后点击OK进入下一步。
3、项目工程相关设置:
然后会进入到如下对话框,这里主要设置项目源代码路劲位置即可,其他的可以暂时不设置采用默认值,等到后期需要时再进行设置。
4、导入代码文件:
通过手动输入项目文件夹位置到File Name下,然后回车即可在Directory中看到项目文件夹;或者在Directory窗口下自己通过点击找到目录位置;
然后通过Add Tree或者Add All按钮来添加项目源文件:
Add Tree :直接将选中的目录下所有的文件添加到项目工程中;
Add All:会出现选项用于选择添加当前层级的源文件还是添加当前目录下所有层级的源文件。
文件添加完成之后可以在下面的Project Files窗口看到已经添加的工程源文件,也可通过选中不需要的文件后,点击右边的Remove File按钮将其从项目工程中去掉。待文件添加完毕,直接点击右上的Close按钮即可进入到项目的编辑或者阅读状态。
创建好的工程如下:
工程创建好之后,可能发现还需要添加些文件,如果还需要添加其他文件点击菜单栏Project > Add and Remove Project Files,或者在工具栏中找到如下图标:
找到后点击该图标便会再次出现图四对话框,重新添加或者移除文件即可。
等再添加一些文件后,可看到如下图,很多的函数名呈黑色:
出现这种黑色的函数大部分因为2种情况:一种是该项目工程所有添加的源文件中存在这些函数定义,但是没有找到对应的符号表链接,结果就是想看这些函数的定义无法跳转过去;另一种是该项目工程所有添加的源文件中不存在这种函数或者变量的定义;
针对以上的第一种情况,一般是项目的文件过多,后台自动同步比较慢,需要在菜单栏中点击Project > Synchronize Files去立刻触发文件同步,创建项目文件中所有的符号表链接,会出现如下对话框,将红框中选项勾选,然后点击Start选项开始同步(项目较大时等待同步结束的时间较长)。
当同步完之后,发现还存在函数为黑色字符,无法点击跳转到定义处,那这是上述第二种情况,当前的项目工程中不包含该函数,该函数是系统函数或者是SDK中的函数,这时候如果期望去看到这样的函数,首先我们需要有这样的库函数的源代码文件,然后将其仅仅以额外符号表(不属于本项目工程)的方式导入,供浏览代码使用。点击菜单栏的Project > Import External Symbols for Current Project(存在另一个标签是Import External Symbol,是为所有的其他项目添加额外的符号表,选择哪个根据情况而定,这里仅仅考虑当前的项目工程),会出现如下对话框。再点击Add按钮后出现右边的对话框:
再点击Import from an INCLUDE path出现如下对话框,将相关的函数定义放入编辑处,按回车确认后出现后一个对话框同时再按OK按键。然后文件会同步。上面出现还可以点击Import from a source code tree是出现文件浏览对话框的形式,与此雷同。
到此可以发现大部分的函数已经由黑色变为彩色,表明可以通过按住 ctrl+鼠标左键 找到该函数的定义,一个项目的创建就已经完成了。
在阅读代码之前还可以做一些辅助措施,让代码阅读工作更加的方便。
从上图中我们可以看出,有大片的空白区域没有利用,为了有效利用这些空白区域,可以对布局进行重新布置,只要对相应的窗口标签进行拖拽即可,这里展示一种布局如下图,这样可以充分利用空白区域。
当创建了一种新的布局,还可以将该窗口布局进行保存,窗口布局相关按钮在工具栏中,如下图红框中的按钮。点击最后一个图标Save Layout会出现对话框,可以将当前的布局保存起来,保存到ABCD中的任意一种布局按钮中,当下次想再切换使用该种布局,直接点击绿框中的按钮即可还原指定类型的布局。
在下图中可以看到代码没有行号,在代码前的空白区域右击鼠标出现右键菜单,选择Line Numbers,然后出现如图代码行号。
如果觉得上图中的代码行号过于浅显,尤其在后面更换背景颜色的时候,会发现行号更加的浅显,这里可以改变行号的颜色。选择菜单栏的Options > Style Properties,在出现的对话框左边的Style Name中找到Line Number,点击后然后在右边找到Color标签,选择Foreground修改前景色,会发现此时的行号已经变成黑色,清晰易见。
在很多的代码规范中,有要求代码缩进不能使用tab键,而要使用空格键,这时候要知道代码前留空的地方是空格还是tab可以通过点击菜单栏Options > File Type Options出现的对话框来设置,如图下图,勾选Visible tabs和Visible spaces分别是将tab键和空格键可视化。关于Editing Options编辑选项(红框中)下面再介绍几个:
Word Wrap:自动换行,代码超过设定的行长时代码会自动换行;
Allow intelligent paste:智能粘贴,在新的一行粘贴的时候代码会自动加一行新行;
Expand tabs to spaces:按tab键转换为相应长度空格键;
Enter inserts new line:按回车插入新行;
Show line numbers:显示行号;
Show right margin:显示右边界线;
Highlight references to selected symbol:高亮选中的符号;
Symbol Window:符号窗口显示,代码的左边窗口;
Use Overview:预览窗口显示,代码的左边窗口;
Tab width:tab键占用的字节数
Margin width:右边界线的宽度
另外关于缩进,在上图中右上方有个Auto Indent按钮,点击之后,建议将Auto Indent Type选择在Simple上。
具体的选项smart和simple的差异在编辑代码时体现,在一个函数后输入大括号,按下回车后的大括号所在位置体现出差异,根据个人的编码习惯而定。具体如下图所示。
背景颜色可以修改为自己喜欢的颜色,可以在代码编辑区右击出现右键菜单栏,选择Special Window Color出现颜色选择器,然后选择即可。
如上的方式是临时的,只能改变当前.c代码编辑窗口的颜色,并没有修改其他代码编辑窗口的颜色,如果需要改变整个工程代码编辑区的点击菜单栏Options > Preferences出现图下图对话框,然后点击Color & Fonts标签,选择Window Background在点击右边的Pick Color即可选择颜色,然后点击确定就可修改代码编辑区的颜色。
这里修改的是代码编辑区和预览区的背景色,如果想改其他的小窗口颜色,点击小窗口下方的小齿轮,会出现对话框,找到含有如Color标示的按钮即可修改小窗口的颜色。
文字大小可以通过点击菜单栏Options > File Type Options(可以使用快捷键Alt+ y)出现如前面图中的对话框,在对话框中有如下图的选项,点击Screen Font设置字符大小即可。
有时候代码打开后是乱码,需要手动选择文件的编码方式,点击菜单栏File > Reload As Encoding会出现如下图对话框,选择自己需要的编码即可。
以上方式设置的编码方式是临时的,当打开下一个文件的时候仍然是乱码,此时进行全局设置,点击菜单栏Options > Preferences出现如下图对话框,设置红框中编码方式即可实现全局的编码方式。
在上一节中提到的是该软件第一次使用时的一些适合自己习惯的基本配置。这些设置完毕后就可以进行代码阅读工作。以下方法的灵活运用可以极大的提高我们编辑代码和阅读代码的效率。根据以下图大概介绍一下使用频率较高的工具和窗口:
标识1处:前进和后退到历史阅读过的地方;
标识2处:基本的文件操作,分别是新建空白文件,打开文件夹,保存,另存为,全部保存,打印机(几乎不使用),剪切,复制,粘贴,在当前文件中查找,查找上一个,查找下一个,多个文件中查找,替换,浏览器查找。
标识3处:到符号定义处,符号信息,符号被使用的地方,查找符号出现的地方。
标识4处:当前文件中出现的符号。
标识5处:当光标放在一个符号上时,标识6处窗口会自动显示哪些符号(函数)调用该出的符号,而标识7处的窗口会自动预览符号定义。详细情况见后面叙述。
点击Project Files的搜索栏(或者快捷键CTRL + O),输入指定的函数名,过滤出需要的文件名后按回车,出现该源文件。然后按下快捷键F5或者CTRL+G,输入行号,即可到达指定位置。
点击Project symbols(或者快捷键F7)即可输入需要查找的符号,根据符号快速搜索所在位置。
当定位查找到函数的位置后,需要查看当前函数的上下文,或者全局变量的调用地方。如下图,当鼠标放置在函数上时,Relation窗口会显示调用该函数的方法有哪些,右下角的Context Window窗口显示函数的定义。
注意Context Window窗口只能查看,不能修改,若要修改可以双击Context Window窗口进行跳转到该函数的定义处。或者按住CTRL然后鼠标左击函数名同样能跳到函数的定义处。跳到定义处后,若要继续返回查看调用地方可以使用:Go Back(快捷键Alt+<)按钮返回,这是若再次查看定义处就可以用Go Forward(Alt+>)。
Relation窗口查看函数被调用处,若看调用处的函数被哪里调用,可以继续点击 + 号(如下图标识1),显示更多的调用关系,或者右键某一个函数,选择Expand Special按钮(如下图标识2处),会弹出对话框,给出调用层级数则会显示出指定层级的调用关系。
其中Relation窗口有多种显示方式,如下图标识1中按钮,点击进行调整显示样式,选择合适自己的显示方式。
其中Context Window和Relation窗口都是在鼠标光标放到指定的函数上的时候,自动去显示调用关系和定义内容,如果希望是非自动的,可以通过窗口下面的Lock按钮来锁定显示情况,这样显示的内容就不会自动更新。Context Window窗口通过解锁再次更新,而Relation窗口可以点击refresh Relation Window按钮来刷新调用关系。
另外函数的调用情况除了通过Relation窗口看以外,还可以通过右键菜单的Jump To Caller(在工具栏上具有相同的图标)来查找调用的地方。
SourceInsight的查找工具可以通过快捷键CTRL + / ,或者点击工具栏上的图标,会出现如下图的对话框。
搜索工具选项较多,过于复杂,有选项和查找方式,选项主要使用的就是上图中绿框所标注的。
需要介绍的是Search Method查找方式,这里查找方式有四种:Simple String、Regular Expression、 Keyword Expression、Look Up Reference,下面介绍这几种查找方式的区别:
Simple String:这是普通的字符查找,可以查找文件中出现的任意字符,但是在工程文件较多较大时,查找的过程会很慢。
Regular Expression:使用正则表达式方式查找,需要会使用正则表达式,属于另一方面的知识。
Keyword Expression/Look Up Reference:这两个查找的结果基本相同,但是显示的方式有所区别。这2种方式都是使用SI预先简历的数据库,查找起来比较快,所以这种查找方式用来查找符号(函数,全局变量等)比较快,查找符号时建议使用这种方式。
当查找结束后,会出现一个单独标签Search Result用来显示查找的结果,可以发现每一条结果的前面都有如上图标识1的小按钮,需要查看那条结果就点击相应的按钮即可跳到相应的地,进行阅览。跳转到指定的地方后,可以通过上图中的标识2按钮进行上一条和下一跳结果的翻阅,或者快捷键SHIFT + F8, SHIFT + F9。
点击菜单栏edit > special Edit后能看到其他多种特殊编辑操作。选中一段代码后,然后点击这里面的选项及可以进行相应的编辑操作,如下图中的一些文字标注是常用的编辑功能。
*附:
若要为编辑工作提高效率知道快捷的是必不可少的,设置快捷键单击菜单栏的Options > Key Assignments,出现如图三十四对话框,在Command中搜索要设置快捷键的命令操作,找到需要设置快捷键的命令后,点击Assign New Key后,按下需要设置的快捷按键,当在Keystrokes中看到快捷按键即表示设置成。