当前位置:文档之家› SourceInsight

SourceInsight

1 初级应用
1.1 选择美丽的界面享受工作
虽然不能以貌取人,但似乎从来没有人责备以貌取软件的。SI 的华丽界面,绝 对符合现代花花世界的人的审美趣味。在 SI 中,我们可以轻松地把各种类型关 键字、变量、标志符、函数、宏、注释等定义为不同的颜色和显示方式(正体或 斜体、加粗或正常、加下划线、放大显示等),总有一种方式能让我们一眼就能 分辨出这个标识是什么。 1.1.1 字体选择 在 SI 中样式是可以被继承,如果要从根本上改变字体,最简单的方式就是直接 修改根样式中的字体, 因为其它样式都会由此继承而来。 选择 Options/Document Options 页面内的 Font Options 中的 Screen Fonts 字体,即可改变根样式中的 2 字体。SI 中的默认配置为 Verdana 字体,是一种非等宽字体 ,为了使编写的 代码在各种编辑器中看起来都有良好的对齐效果,这里强烈建议使用等宽字体, Courier、New Courier 和宋体等都是较好的选择。 1.1.2 颜色定义 毕竟这是见仁见智的东西,所以从来没有统一的标准 3。很多人并不喜欢 SI 提供 的默认配置,那么我们就改吧。选择 Options/Style Properties 页面,就可以 在其中修改所有样式了。选择等号(=)表示继承 Parent Style,也可以选择 Pick(或者 ON/OFF 等)去配置一个新值。这完全视乎个人喜好。 1.1.3 标识符样式选择 在与 颜色定义 一节同样的界面内即可完成此项配置。 1.1.4 背景色选择 在希望要改变背景色的窗口点击鼠标右键(假定使用的是右手鼠标 4),选择上下 文菜单的 xxx Window Properties 项,然后点击弹出窗口的 Back Color 按钮, 即可修改该窗口背景色。 对于 SI 的源码主窗口, 只需选择上下文菜单的 Special Window Color 项即可完成背景色修改。
1.2 配置合理的默认值高效工作
1.2.1 使用合理的缩进 我始终认为最容易获得认同的是关于这个选项的配置了。选择

Options/Document Options 页面,点击其内的 Auto Indent 按钮,在弹出的 Auto Indenting 窗口中,默认配置为 Auto Indent Type 选择 Smart,且勾选了 Smart Indent Options 中的两个可选项,这样得到的默认缩进效果为 while (1) { I } 每次都要手工去调整其缩进,其实只要把两个勾选项去掉,就可以得到 while (1) { I } 何乐而不为呢? 1.2.2 显示坐标 通常情况下在窗口状态栏左下方,最会显示当前光标所在行列信息,但我总觉得 不够明显,于是通常我们作如下配置: 选择 Options/Document Options 页面,勾选其中的 Show line numbers。同时 勾选其中的 Show right margin,我们就可显示一条右边界,随时提醒我们是否 该行代码写得过长了。
1.3 创建便捷的快捷键快乐工作
1.3.1 几个较常用的快捷键 默认情况下,SI 已经定义了很多非常实用的快捷键:
?
? ? ? ? ? ? ?
F5 指定行号,实现行跳转,在遇到编译错误的时候,能特别方便的找到出错 行。 Shift+F8 高亮显示指定标识,快速浏览标识的使用情况。 Ctrl+鼠标点击标识 直接跳转至标识定义处。 Ctrl+F 本文件内查找。 F3 本文件查找结果的上一个。 F4 本文件查找结果的下一个。 F7 打开 Browse Project Symbols 窗口,快速浏览工程内标识定义。 Ctrl+M

创建或查找书签,方便下次找回此位置。 1.3.2 自定义快捷健 选择 Options/Key Assignments,在弹出的 Key Assignments 窗口中可自由添加 自己喜欢的快捷键。比较值得推荐的有如下几个快捷键定义:
? ? ?
Edit: Drag Line Down 光标当前行下移。 Edit: Drag Line Up 光标当前行下移。 Edit: Join Lines 当前行和下一行连接成一行。
1.3.3 更多的快捷键 如果你正好对 SI 的 Marco 语言(下文将会介绍)有研究,那么还可以定义更多有 用的快捷键,比如添加文件头、函数头、注释等(下文在介绍 Marco 语言时会介 绍如何实现)。
小技巧2 小技巧-中级应用
2.1 查找与替换
在 SI 中支持多种查找及替换方式,除了上文提到的文件内查找外,还支持工程 范围内查找、目录查找、指定多文件查找等等。 2.1.1 查找 1. Loopup References 我们最常用的一种查找方式是选择 Search/Lookup References 或按 Ctrl+/组合键再或者鼠标点 R 按钮,在弹出的 Loopup References 窗口 进行查找操作。 在 Search Method 中有四种可选的查找方式:Simple String、Regular Expression、 Keyword Expression 和 Look Up Reference。其中 Simple String 是最普通的查找方式,可以查找文件中出现的任意字符或字符, 甚至可以查找 _upap || u 这样的字符串,但是在工程较大时,查找过程 会较慢。 Regular Expression 查找方式将在后面讲述正则表达时会介绍到,这里 暂时按下不表。

Keyword Expression 和 Look Up Reference 查找的结果基本相同,但是 显示方式略有差异。这两种方式都是使用 SI 预先建立的数据库,查找起 来速度相当快。但通常这种速度只对在查找标识符时有明显效果。对于像 函数名,变量名等的查找,强烈建议使用这两种方式进行查找。 2. Search Files 选择 Search/Search Files 或按 Ctrl+Shift+F 组合键,在弹出的 Search Files 窗口进行查找操作。 在 File Name 框中可以填入文件名或文件夹。注意当要查询的文件夹双包 含子文件夹时,可以勾选 Options 中的 Include Subdirectiories,实现 对各层文件的递归搜索。 3. Search Project 选择 Search/Search Project,在弹出的 Search Project 窗口进行查找 操作。操作与 Loopup References 几乎完全一致,它们各自保存上次搜索 的配置。 2.1.2 替换 1. 单文件替换 选择 Search/Replace 或按 Ctrl+H 组合键, 在弹出的 Replace 窗口进行查 找操作。在 Search 项目里勾选 Selection 则仅对当前选中的文档部分进 行替换。另外如果勾选了 Confirm Replacements 则是逐个确认替换,否 则会同时替换所有符合替换条件内容。 2. 多文件替换 选择 Search/Replace Files 或按 Ctrl+Shift+H 组合键, 在弹出的 Replace Files 窗口进行查找操作。除了增加 New 框(替换后的内容)外,其余均与 Search Files 窗口相同,可参照查找部分的说明进行操作。
2.2 列操作
虽然开篇时就说过,SI 的列操作功能比较弱,但不等于没有。先按下 Alt 键, 接着就可用鼠标进行列选择,然后就可以删除指定的列。
2.3 无名技巧
这里介绍一些小技巧,大多数情况下我们可以无视它们的存在。但如果我们知道 这些,某些时候,会有效提高工作效率。
?
Smart Rename 在上下文件菜单中选 Smart Rename 或按 Ctrl+'组合键,即可弹出 Smart Rename 窗口。它有很强大的功能,但最便捷的使用方式是更改函数内局

?
部变量的名字,操作只作用于函数内部,速度非常快。 Renumber 使用 Ctrl+R 将弹出 Renumber 窗口, 这个用于处理数字顺序排列的情况相 当有效,比如数组下标。例如现有代码 array[0] = 1; array[1] = 2; array[2] = 3; 现在要改为 array[0] = 0; array[1] = 1; array[2] = 2; array[3] = 3; 当然可以一个个修改,但最快的方式是在 array[0] = 1;之前添加 array[0] = 0;,然后列选数组下标,使用 Renumber 功能以 0 为起始值 重填数值。
?
Edit Condition 很多代码尤其是驱动代码,当中有大量的预编译定义,以实现对不同硬件 配置的支持。 在阅读这样的代码时最痛苦的是不能简单判断程序实际执行 的代码分枝。大量分枝同时存在,常常会混淆我们的视听。比如对于下面 的代码: #ifdef DEV1 #else #endif 如果确定我们当前分析的是 DEV1 的执行情况 5,那么可以选择上下文件 菜单的 Edit Condition 选项,在弹出的 Conditional Parsing 窗口中把 DEV1 的值设置为 True,那么 #ifdef DEV1 就等价于#if 1 了,相当注释 掉了#else 分枝的代码。反之,设置为 Flase 时,则注释掉#ifdef DEV1 分枝的代码。
学会偷懒3 学会偷懒-高级应用 4 附录 1-SI 中正则表达式

由于在查找及替换中,经常会使用用正则表达式 ,这里对 SI 的正则表达式进行 简单介绍。
6
4.1 通配符
正则表达式通配符总表: Character . [abc] [^abc] * + \t \s \w $ Matches 任意单个字符 任意属于集合 abc 的单个字符 任意不属于集合 abc 的单个字符 前面字符的 0 个或多个重复 前面字符的 1 个或多个重复 一个 tab 字符 一个空格符 一个空白符(包括 tab 符和空格符) 行的结束部分 ^ (在表达式开始处) 行的开始部分
4.2 表达式中的组
在执行替换操作时,组将大有用武之地。正则表达式的各个部分可以用\(和\) 进行分隔,分隔得到的每一项就是一个组。在进行替换时可通过组从匹配内容中 抽取出特定串。在正则表达式中每个组都有一个编号,自左至右编号从 1 开始。 例如:abc\(xyx\)将能匹配 abcxyz ,此时组 1 就包含了 xyz 串。在进行替换 操作时,就可以通过在替换后内容框中填入\1 来取出这个字符串。推而广之, 可以使用\来取得组所包含的串。 例如:当设定把\(abc\)\(xyz\)替换为\2\1 的替换规则时,对于 abcxyz 被替 换串,则组 1 包含 abc,组 2 包含 xyz,而替换后的内容定义为组 2 内容后跟组 1 内容(\2\1),因此将得到 xyzabc。 举个真实的使用例子,相信会增加大家的兴趣。有时为方便调试,代码中到处流 浪着各种形式的 mytrace 调用 mytrace("Create parameter list... "); 有时希望把它们全部注释掉,而有些时候又希望把它们全部恢复回来。这是个简 单的例子,可以使用 ^\(.*\)\(/\*\)\(.*mytrace.*\)\(\*/\)___FCKpd___6nbsp;==> \1\3 把它们恢复回来,而使用 ^\(.*\)\(mytrace\)\(.*\)___FCKpd___7nbsp;==> \1 则完成把它们全部注释掉。

5 附录 2-SI 中的宏语言
我始终认为这是 SI 中最有趣的部分,这是一种功能强大的编程语言,几乎可以 实现在编程过程可能使用到的各种功能。 这里不准备对如何实用宏语言进行编程作介绍(可参阅 SI 帮助文档。),只介绍 如何使用已编好程序。为方便使用,我已把这些程序都集中放在 utils.em 文件 中,下文就此文件进行论述。 该宏文件实现了一些在编码过程中可能会用到的功能, 如添加文件头、 函数说明 (使用时能自动添加文件名、函数名和当前日期)和宏定义,代码补全等。 使用说明: 1. Project/Open Project... 打开 Base 工程(该工程一般在"我的文档/Source Insight/Projects/Base"中); 2. Project/Add and Remove Project Files... 加入宏文件(即 utils.em); 3. Options/Menu Assignments 打开 Menu Assignments 窗口,在 Command 中输入 Macro,选中要使用的 宏,添加到合适的菜单中. 推荐使用的宏:InsFileHeader、InsFunHeader、InsHeaderDef、InsIfdef 和 AutoExpand (为代码自动补全功能,建议建快捷键)。 关于 AutoExpand 的举例说明, 当你输入了 switch 且光标正处于 switch 后面, 运行该宏则会得到 switch (###) { case break; default: } 对于 InsFunHeader 宏,如果有如下函数体 int nOpenConfigFile(char *pchMemConfig, char *pchFlashConfig, int nSize, int nMode) { I } 光标在函数体内时运行该宏,那么将会在函数体上方得到 其中的函数名及编写日期自动按实际情况填充,T357 串可通过修改 utils.em 文 件,改成你需要的名字。

Source Insight 中集成 Uncrustify 格式化代码
我们在编写代码时一定会对代码进行格式化,清晰整洁的代码,完备的注释信息,大 大地提高了程序的维护和阅读。 Uncrustify 是一个代码美化工具可用于 C,C++,C#,D 和 Java 源代码的美化。它能够利用空格,tab 与空格或只有 tab 进行缩排,添加或删除换行,排列代 码等,并且 Uncrustify 具有高配置性,易于修改的特点,配合 Source Insight 使用堪称完 美。 工作环境:编辑器:Source Insight3.5;插件:Uncrustify-0.56-win32。
0.安装 Source Insight 3.5 安装
首先当然是安装 SI,网上很多地方可以下载。
1.安装 uncrustify-0.56-win32 安装
官方地址:Uncrustify Code Beautifier:https://www.doczj.com/doc/2e13588181.html,/projects/uncrustify/ 默认下载的没有下图中画红线的三个文件,可以到我的 CSDN 下 载:https://www.doczj.com/doc/2e13588181.html,/source/2617787
? ? ?
file_footer:文件尾部标识文件; file_header:文件头标识文件; func_header:函数头标识文件;
下载 uncrustify-0.56-win32 之后解压到
c 盘根路径,如下图:

2.配置 source insight 配置
2.1 打开 SourceInsight, 选择菜单“Options-->Custom Commands-->Add”, 输入 uncrustify 2.2 Run 中输入: 不产生 backup 文件 C:\uncrustify-0.56-win32\uncrustify.exe -c C:\uncrustify-0.56-win32\amxmodx.cfg --no-backup %f 2.3 Dir 留空,将“Capture Output”和“File,then Line”打上勾; 2.4 然后点对话框中右侧的按钮“Keys...”设置快捷键“Ctrl+F8”; 2.5 打开要格式化的文件,“Ctrl+F8”即可对当前文件格式化;

3.配置文件 配置文件
Uncrustify 具有高配置性,易于修改的特点,从 2.2 中可以看出,我们在格式化代码的时候 用到了 amxmodx .cfg 文件,实际上我们只需要更改以下几个文件:
? ? ? ?
amxmodx.cfg:主要配置文件,所有的配置项都在此文件中,可根据您的需要定制, 每项都有注释; file_footer:文件尾部标识文件; file_header:文件头标识文件; func_header:函数头标识文件;
4.格式化效果 格式化效果
呵呵,都设置好了,按住“Ctrl+F8”就可以格式化当前文件了。效果还不错吧。

重要软件特性
Source Insight 是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对 C/C++, C#和 Java 序的分析。Source Insight 能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示 有用的上下文信息。 Source Insight 不仅仅是一个强大的程序编辑器,它还能显示 reference trees,class inheritance diagrams 和 call trees。 Source Insight 提供了最快速的对源代码的导航和任何程序编辑器的源信息 Source Insight 提供了快速和革新的访问源代码和源信息的能力。与众多其它编辑器产品不同,Source Insight 能在你编辑的同时分析你的源代码,为你提供实用的信息并立即进行分析。
技术特点: 介绍 Source Insight 是如今最好用的语言编辑器, 支持几乎所有的语言, 如 C、 C++、 ASM、 PAS ASP、HTML 等常见的,还支持自己定义关键字,如果您 是一个程序员或者网页制作人,这个软件对您都是有 帮助的! Source Insight 为您提供了可快速访问源代码和源信息的功能。 Source Insight 不象其它的编辑器产品 它还可以帮您分析源代码,并在您编辑的同时立刻提供给您有用的信息和分析。

Up-To-Date Information (improved!) 更新的信息(增强!) Source Insight 自动创建并维护它自己高性能的符号数据库,包括函数、method、全局变量、结构、类和工程 源文件里定义的其它类型的符号。Source Insight 可以迅速地更新您的文件信息,即使在您编辑代码的时候。 而且,符号数据库的符号可以自动创建倒您的工程文件中。
动态类型分解(Type Resolution)(新!) Source Insight 可以将变量类型动态分解。
符号窗口(增强!) 符号窗口显示在每个源窗口的旁边,可以动态更新。 动态 Context 窗口(增强!)
Source Insight 2.0 增加了一个新特点——引进了 Context 窗口。 Context 窗口在背景中更新,并且追踪您正在的任务。您只要点击标识符,Context 窗口就会自动显示符号的 定义。若标识符是个变量,Context 窗口则会显示给您它的基础结构(base structure)或类型。 Context 窗口也可以在工程窗口中自动显示所选定的文件,相关窗口的符号和 Clip 窗口中选定的 Clip. 语法格 式化(Syntax Formatting) (新!)
语法格式化是 Source Insight 的重要的新功能。它提供了许多先进的显示功能,包括带有用户定义功能的文本 格式等。 与上下文相关的智能化重命名(新!) Source Insight 的索引帮助您有效地重新为变量、函数和其它标识 符命名——以极其简单的方式。
混合语言编辑 (Mixed Language Editing ) (新!) Source Insight 支持含内置脚本的 HTML 和 Active Server Page 文件(ASP 和 JSP)。
关键字搜索(Keyword Searches) (新!) Source Insight 的项目搜索命令支持关键字搜索方式,类似于 Internet 搜索引擎。
符号的自动完成(Symbolic Auto-Completion) (新!) 当您准备打印标识符名称时,Source Insight 会弹出一系 列标识符的名称来供您选择。 快速访问所有的符号和文件 编程项目支持 团队编程支持 快速查找参考文献 (增 强!) 源链接(Source Links) 源链接(Source Links)帮助您在感兴趣的领域之间快速切换。 在整个项目 中快速搜索和替换(增强!) 项目窗口(Project Window) 同外部编译器和工具结合 Clip 窗口 您可以利用 clip 窗口轻松重新排列代码及插入样板文件。 极具特色的编辑器 拖放编辑 Two-Stage Line Revision Marks 和 可选择的 Line Restoration 可扩展的文件类型和语言(增强!) 应急修复(Crash Recovery)提供了全部时 间的防护 持久稳固的工作空间 可定制的菜单和键盘(增强!) 支持 Windows 2000(新!) 突出的 Windows
用户界面 系统需求: 操作系统: Windows 2000 Pro or Server Windows NT 4.0 SP3 Windows Me Windows 98 Windows 95 with Internet Explorer 4.0+ 机器: Pentium or faster, Pentium II or better recommended. 内存: 64 MB, 128 MB or more recommended. 磁盘空间: 4 MB.

source insight 中使用 astyle 的代码格式化功能
2010-05-18 14:28
如何在 source insight 中使用 astyle 的代码整理功能? 用 source insight 编辑代码时, 苦于 source insight 没有集成的代码格式化工具, GNU 的 astyle 是一个免费的代码格式化工具,能够整理符合 c/c++规范 。 我们可以将 astyle.exe 外挂到 SourceInsight 中。详细步骤如下: 1: 从 https://www.doczj.com/doc/2e13588181.html, 上下载 AStyle_1.24_windows.zip(开放源码,可以仔 细阅读); 2:加压缩后将 bin 文件夹下的 astyle.exe 放到 C:\Program Files\astyle 下 (自己可以放 在任意位置) 在 SourceInsight 菜单栏里,Options-->Custom Commands 界面上选择:Add,在弹出 对话框写入 Astyle, 3: run 中添加"C:\Program Files\astyle\astyle.exe" --style=ansi %f, 在 其中, 如果 astyle.exe 所在路径中有空格, 必须用""括起来, 参数--style=ansi 代表 ansi C 格式(如果你需要格 式化 java 代码,这个地方改为:--style=java),"%f"是指作用于当前文件,这个必须的.其 它命令参数可以参考 astyle 的帮助参数 可以查看网页 https://www.doczj.com/doc/2e13588181.html,/astyle.html 4:此外,在此界面上还可以为这个命令设置快捷键,点击"keys",添加你觉得方便的按 钮; 5:在 SourceInsight 菜单栏里,Options-->Menu Assignments 界面上,将这个命令名称为 Astyle 添加到某工具栏下, 我是依然放在了 Option 下, 在左面的 Command 列表里找到我 们刚才添加的"Astyle",在右面的 Menu 中选择你要加到那个菜单下,这里我加到" Option"下,可以在"Menu Contents"选择适当位置,点击"insert"即可; C:\astyle\bin\Astyle.exe --style=ansi -s8 -S -N -L -m0 -M40 --convert-tabs --suffix=.pre %f
SourceInsight 中集成 Artistic Style 格式化代码
2008-04-16 14:53 1942 人阅读 评论(8) 收藏 举报
下载地址 https://www.doczj.com/doc/2e13588181.html,/project/showfiles.php?group_id=2319l Windows 平台下也有好多人都喜欢用 SourceInsight 编辑 C/C++程序,但是 SourceInsight 没有提供对代码格式化的功能,如果将 Artistic Style 集成到 SourceInsight 中,那就可以为 它扩展出代码格式化的功能了。
假定 AStyle.exe 的目录是“C:/ArtisticStyle/”,在该目录下有一个“c.opt”文件是用来保存配置 的文件。下面简要地介绍下 Artistic Style 集成到 SourceInsight 中的方法。

1. 打开你的 SourceInsight, 选择菜单“Options-->Custom Commands-->Add”, 输入 Artistic Style(可以随便输入一个名字)。 2. Run 中输入: C:/ArtisticStyle/Astyle.exe --options=c.opt %f 3. Dir 留空,将 Iconic Window, Capture Output, Parse Links in OutPut, File,then Line 四项 前打上勾。 4. 然后点对话框中右侧的按钮“Menu”, Menu--->Menu-->View-->, 右侧 Insert, OK. 5. 此时在 SourceInsight 中的 View 菜单下多了个 Style 的子菜单选项,可以用它来对单个 C/C++文件进行格式化。
上面用的是 google 的文档共享,我这才发现,又一次,google 的一个相当优秀的一个产品也被墙了。 看来还是得自己费一番唇舌说一下。 既然 source insight 默认没有这个功能,只有一种办法可以实现这一点了,就是自定义命令(custom commands)功能,好在 source insight 的这一功能还是非常强大的。 这里先推荐一个非常好的开源代码格式工具,astyle,显然,这个又是来自国外的作品,因为封闭的天朝 几乎没有出过一款用着非常舒心的开源软件。下载地址是
https://www.doczj.com/doc/2e13588181.html,/projects/astyle/files/ 。具体的解释自己查看相关页面和 astyle 的稳定吧。这里简单说一下如何配置。 将 astyle 解压到一个合适的目录下,比如 D:\astyle, 然后在 source insight 中新建一个自定 义的命令,命令的内容如下:
1astyle --style=allman --indent=spaces=4 --indent-switches --indent-labels --indent-blocks --indent-preprocessor -x -z2 --keep-one-line-blocks <%s 这条命令各参数的意义可以参考 astyle 附带的文档, 需要解释的是最后一个参数"<%s", "%s"由 source insight 解析,是一个临时文件的文件名,这个文件里保存的是用户选定的内容,"<%s"表示 astyle 的输 入是%s,然后将格式化后的内容输出到标准输出。好奇的你一定会想问,重定向到标准输出后如何修改到 source insight 选定的部分呢?细心的你也一定会发现,custom commands 对话框中有不少复选框, 其中一个就是“paste output”,勾上即可。这里我直接用 astyle 命令,没有加任何路径,是因为我把对 应的目录 D:\astyle\bin 目录加到了环境变量 path 中了,这样会省不少事。 为了方便,接下来应该做的是分配一个快捷键,alt+f8 已经被占用了,参考 eclipse 用了 ctrl+alt+f。 这里 astyle 也可以换成其他支持命令行的自动格式化工具, 比如 gnu 的 indent 也是非常不错的一个选择, 不过 indent 默认 style 较少,astyle 用起来方便些。 收工!
Method stub
From Wikipedia, the free encyclopedia
A method stub or simply stub in software development is a piece of code used to stand in for some other programming functionality. A stub may simulatethe behavior of existing code (such as a procedure on a remote machine) or be a temporary substitute for yet-to-be-developed code. Stubs are therefore most useful in porting, distributed computing as well as general software

development and testing. An example of a stub in pseudocode might be as follows:
BEGIN Temperature = ThermometerRead(Outside) IF Temperature > 40 THEN PRINT "It's HOT!" END IF END BEGIN ThermometerRead(Source insideOrOutside) RETURN 28 END ThermometerRead
The above pseudocode utilises the function ThermometerRead, which returns a temperature. While ThermometerRead would be intended to read some hardware device, this function currently does not contain the necessary code. So ThermometerRead does not, in essence, simulate any process, yet it does return a legal value, allowing the main program to be at least partly tested. Also note that although it accepts the parameter of type Source, which determines whether inside or outside temperature is needed, it does not use the actual value passed (argument insideOrOutside) by the caller in its logic. A stub[1] is a routine that doesn't actually do anything other than declare itself and the parameters it accepts and returns something that is usually the values expected in one of the "happy scenarios" for the caller. Stubs are used commonly as placeholders for implementation of a known interface, where the interface is finalized/known but the implementation is not yet known/finalized. The stub contains just enough code to allow it to be compiled and linked with the rest of the program.
[edit]See
also
Software Testing portal
Abstract method Mock object Dummy code Test stubs
HTML 格式化工具

使用 python 写的一个小工具,内嵌两个文件 html.py 和 html_parser.py,第 一个是不依赖 HTMLParser 的,第二个是使用 HTMLParser 的,请尽量使用 第二个版本, 第一个还在完善中。 目前复杂的 HTML 页面无法保证正常格式化, 比如淘宝首页那种内嵌各种 script 的页面,无法正常格式化。内联的样式、脚 本都保持原样,未进行任何格式化操作,下个版本会加入。 本地需要安装 python 2.5 或者 2.6 版本,3.0 或者 2.7 运行,九成会报错。 win 下文件基本都抄自玉伯。 说明: 说明: 文件说明:
1. 2. 如果你使用的是 ubuntu 系统,只需要下载 html_parser.py 这个文件即可。 如果你使用的是 win 系统,则同时需要下载 format.cmd, install.cmd, install.inf, run.bat, uninstall.cmd 等文件
使用方法: 1.ubuntu: 运行: python html_parser.py test.html,生成 test-order.html 运行: python html_parser.py test.html "w",则直接覆盖源文件 运行: python html_parser.py test.html test2.html,则格式化后文件将存 储在 test2.html 中 如果要在 ipython 中运行可以使用 ipython …,或者 python -i …,后边与 前相同 2.win: 运行 install.cmd 安装到右键,然后找到一个 html 文件,右键选择 format html 即可在同目录生成 *-order.html 文件 压缩包下载地址: 压缩包下载地址: https://www.doczj.com/doc/2e13588181.html,/p/html-format/downloads/detail?name=html-format.zip &can=2&q= Google Code: https://www.doczj.com/doc/2e13588181.html,/p/html-format/ github: https://www.doczj.com/doc/2e13588181.html,/nanzhi/Html-Format
Source Insight 看代码时比较方便,而且它的代码自动完成功能比 vim+ctags+cscope 好用 的多,可是我认为写代码时,Source Insight 的功能却比不上 vim。

我的设定是:在 Source Insight 中按 F12 调用 gvim,打开对应文件,跳转到对应的行。 以下是实现步骤: 1.Source Insight 中,Options->Custom Commands...->Add...,New Command name 随便 写,我的是"Edit with Vim" 2.Run 中写入: "C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f 意思是在当前已经打开的 gvim 窗口里面打开当前的文件,并且跳转到指定行 %l 为当前的行号,%f 为文件名 使用 --remote-silent 的作用是,如果已经打开了对应文件,就不会打开第二次,而是在 已经打开的文件里跳转到对应行 3.还是同一个对话框里面,选择 Keys->Assign New Key...->按 F12,如果你已经将 F12 设置 给其他命令,选择其他的按键就行了 4.设置完毕 虽然现在 source insight 用的越来越少了,但是和同事交流时还是少不了它,毕竟不是人 人都在用 vim. 今天又发掘了一下,实现了在 vim 中调用 source insight 打开对应的文件: nnoremap :!start "C:\Program Files\Source Insight 3\Insight3.exe" -i +=expand(line(".")) % 1.一定要加上 start,否则调用 source insight 时弹出讨厌的 dos 窗口 2.-i 表示在已经打开的 souce insight 中打开 3.+后面的部分是指定行号
以前习惯于 eclipse,sourceinsight,vim 用的不是很熟悉,在现在的公司中,vim 是一种必备的技巧,慢 慢,从难受到得心应手,vim 还是比较好用的,下面记录一点实用的技巧 1、vim+ctags+cscope 是一个强大的比拟于 sourceinsight 的字符界面的工具 2、ctrl+],跳转到定义处,ctrl+_+c 等同于 cs f c 的作用,关于具体是那些键被映射到 cs f c 上,具 体看.vimrc 文件的定义 3、ctrl+o 后退跳转,ctrl+i 向前跳转 4、在某单词上按住 shift+8,搜索某词,n 向后搜索,N 向前搜索 5、[[向前跳转到上一个函数定义处,shift+%跳转到匹配的括号处,在 if(){比较大的时候很利于看清代 码结构 6、u 撤销更改,ctrl+r 重做更改,:rew 跳到第一个文件,当你跳转比较多的时候,回到第一个文件比较 有效 7、0 跳到行首,$跳到行尾,x 删除当前的字符。 8、调试用户态的程序,需要查找某个命令的手册时,例如:statfs 时,光标移到 statfs 上,按下大写 K 则调出 man 手册,很有用,帮助按 q 退出。 9、替换操作,在处理某个 shell 脚本时非常有效 : :75,131s/^.//g 将文件中 75 到 131 行的行首的字符去掉 :%s/^/#/g 将文件中所有的行行首都添加#。 :w!只读文件强制保存。

10、跳转到文件,文件中 include "ops.h",光标移到文件名上,按下 gf 将跳转到这个文件,但是先必须 用 cscope 建立文件索引 11、vimdiff 的使用与 beyond compare 一致 dp do 复制差异到另一个文件 从另一个文件获取差异
diffupdate 更新差异显示对比结果 vertical diffsplit *.c 比较当前编辑的某文件与*.c 文件的差异 12、在 vim 的命令行模式下使用 make :make uImage -j 19 ARCH=arm CROSS_COMPILE=arm-linux编译完成后将显示所有的错误, :cl 显示所有编译错误 :cn 下一个编译错误 :cp 上一个编译错误 将实现所有的错误自动跳转到行的功能。 也可以:!export ARCH=arm :!export CROSS_COMPILE=arm-linux然后编译即可。
Source Insight 实质上是一个支持多种开发语言(java,c,c++等等)的编辑器,只不过 由于其查找、定位、彩色显示等功能的强大,常被我们当成源代码阅读工具使用。 一 常用快捷键
1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。 2、 "Alt + F12"可以让每个字符的宽度保持一致。勾选菜单栏的"view --> draft view"也可以达到同样 的效果。 3、"shift+F8" 高亮显示指定标识符,快速浏览标识符的使用情况。 4、"F5"指定行号,实现指定代码行跳转,在遇到编译错误的时候,能特别方便的找到出错行。 "ctrl + g"也可以达到同样的效果,此时跳出对话框,输入行号,可以自动跳到期望行。 5、“Ctrl+F”在文件内查找,找到后可以按 F3 和 F4 实现对查找结果实现上下定位。 6、“F7”打开 Browse Project Symbols 窗口,快速浏览工程内标识定义。 7、“Ctrl+M”创建或查找书签,方便下次找回此位置。 二 自定义快捷健 选择菜单栏的"Options/Key Assignments",在弹出的”Key Assignments“窗口中可自由添加自己喜欢的 快捷键。值得推荐的有如下几个快捷键定义: * Edit: Drag Line Down 光标当前行下移。 * Edit: Drag Line Up 光标当前行下移。 * Edit: Join Lines 当前行和下一行连接成一行。 三 查找操作

SI 支持多种查找及替换方式,除了上文提到的文件内查找外,还支持工程范围内查找、目录查找、指定多 文件查找等等。 1、Loopup References 我们最常用的一种查找方式是选择"Search/Lookup References"或按"Ctrl+/"组合键再或者鼠标点"R"按 钮,在弹出的"Loopup References"窗口进行查找操作。 在 Search Method 中有四种可选的查找方式:“Simple String”、“Regular Expression”、“Keyword Expression”、“Look Up Reference”。 Simple String 是最普通的查找方式,可以查找文件中出现的任意字符或字符串,甚至可以查找_upap || u 这样的字符串,但是在工程较大时,查找过程会较慢。 Regular Expression 查找方式将在后面讲述正则表达时会介绍到,这里暂时按下不表。 Keyword Expression 和 Look Up Reference 查找的结果基本相同,但是显示方式略有差异。这两种方式都 是使用 SI 预先建立的数据库,查找起来速度相当快。但通常这种速度只对在查找标识符时有明显效果。对 于像函数名,变量名等的查找,强烈建议使用这两种方式进行查找。 2、Search Files 选择“Search/Search Files”或按“Ctrl+Shift+F”组合键,在弹出的 Search Files 窗口进行查找操作。 在 File Name 框中可以填入文件名或文件夹。注意当要查询的文件夹双包含子文件夹时,可以勾选 Options 中的 Include Subdirectiories,实现对各层文件的递归搜索。 3、Search Project 选择 “Search/Search Project” 在弹出的 Search Project 窗口进行查找操作。 , 操作与 Loopup References 几乎完全一致,它们各自保存上次搜索的配置。 四 替换操作 1、单文件替换 选择“Search/Replace”或按”Ctrl+H“组合键,在弹出的 Replace 窗口进行查找操作。在 Search 项目里 勾选 Selection 则仅对当前选中的文档部分进行替换。另外如果勾选了 Confirm Replacements 则是逐个确 认替换,否则会同时替换所有符合替换条件内容。 2、多文件替换 选择“Search/Replace Files”或按“Ctrl+Shift+H”组合键,在弹出的 Replace Files 窗口进行查找操 作。除了增加 New 框(替换后的内容)外,其余均与 Search Files 窗口相同,可参照查找部分的说明进行操 作。 五、列操作 SI 的列操作功能比较弱。先按下 Alt 键,接着就可用鼠标进行列选择,然后就可以删除指定的列。
SourceInsight 使用技巧 转) 使用技巧(转

配置成简单好用的 c/java 代码编辑器 1、缩进与 tab 、 (1)Options 菜单 Preferences Typing 卡,勾掉下面两项∶ Typing tab indents line,regardless of selection,空行按 tab 无法前进 Typing tab replaces current selection,选定部分内容、再按 tab 时会清除所选 (2)Options 菜单 Document Options(针对不同文件类型,分别进行设置) 下拉左上 文件类型框、选择合适类型(c 源文件) Editing Options 框中,tab width=2 Editing Options 框中,勾选 Expand tabs(这样,按 tab 键、等价于输入 2 个空格) (3)Options 菜单 Document Options 选择合适的文件类型 点击右边中间的 Auto Indent 钮 在弹出的框中, 左边一定要点 Smart, 右边有两个复选框 Indent Open Brace 和 Indent Close Brace,具体效果可以看 SIS 的 HELP。按照部门里的编程风格要求,最方便的就是把两个 复选框都取消掉,然后点 OK。 勾选 Auto Indent 之 SMART 的效果∶在 C 程序里, 如果遇到行末没有分号的语句,如 IF, WHILE, SWITCH 等, 写到该行末按回车,则新行自动相对上一行缩进两列。 勾掉 Indent Open Brace 和 Indent Close Brace 的效果∶继上一段,在相对缩进行里, 如果 输入"}", 则自动和上一行列对齐(好像勾不勾都会有这个功能);而输入"{"时,不会与下面的 行对齐(这是勾上 Indent Open Brace 时的效果)。 2、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器) 、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器) 有个同事比较生猛,得整汇编代码,但在 SIS 里建立 PROJECT 并 ADD TREE 的时候,根据 默认设置并不会把该 TREE 里面所有汇编文件都包含进来, 只加了.inc 和.asm 后缀的, 后缀的 .s 没有。而且用 SIS 打开.s 的文件,一片黑白没有色彩,感觉回到 DOS 的 EDIT 时代了…… 解决 方法是在 Options->Document Options 里面,点左上的 Document Type 下拉菜单,选择 x86 Asm Source File, 然后在右边的 File filter 里*.asm; *.inc; 的后面加上*.s; 接着 CLOSE ; ; 就可以了。上面两个问题解决了,但注意加入*.s 后还需要重新 ADD TREE 一遍才能把这些汇编 加到 PROJECT 里面。 3、去掉功能强大但是无用的自动完成功能 、 Options 菜单 Preferences Typing 卡 Auto Completion 框,勾掉 Use automatic symbol
completion window(这里是 SIS 的全局设置) Options 菜单 部设置) 上面两项必须全部勾选,才能启用 Auto Completion 功能 Document Options Editing Options 框中,勾掉 Allow auto-complete(局

相关主题
文本预览
相关文档 最新文档