sourceinsight配置及使用二

sourceinsight配置及使用二
2008-09-08 23:47

SourceInsight提供的功能

1、解析日志信息时非常有用的Source Link

总地说来, SourceLink 根据特定的搜索模式,把当前文件中满足模式的行、链接到由该行指定的其他源文件中。
所谓特定的搜索模式,共有两种“ File, then line ”和“ Line, then file ”,其中前后两部分依靠正则表达式的组的概念来予以分割。如果当前文件具有匹配行,比如“ Error d:tcsrcq5.c 18: Lvalue required in function jsSort ”,那么 SourceInsight 在该行创建 SourceLink 、把该行链接到由该行指定的文件中(即 d:tcsrcq5.c ,第 18 行)。

1.1 创建SourceLink

运行 Search 菜单的 Parse Source Links… 命令,在弹出的框中、选择搜索模式、并填入相应的正则表达式串,点 OK SIS 就会解析当前文件,如果有匹配,就创建 SourceLink

1.2 在解析日志信息时,使用SourceLink

可以打开日志信息,运行 Parse Source Links 命令,日志中能够匹配模式的每一行(通常是含有错误信息的行)、就会被设置上一个 SourceLink

1.3在解析自定义命令输出时,使用SourceLink

首先勾选 Custom Command 中的“ Parse Links in Output ”,然后选择特定的搜索模式,最后填入合适的正则表达式。这样, Source Insight 把输出信息作为当前搜索用文件;并且,如果有匹配行(通常即编译错误信息行), SIS 该行创建 SourceLink 、并把每一个错误信息中给定的文件(和行号)作为 link 目的地,这对于我们修改源代码错误非常有帮助。

2、替换(Replace VS 上下文敏感的智能重命名(Context-Sensitive Smart Rename

2.1 替换(Replace

目前来说,普通的替换命令、快捷键为 ctrl+H ,足以已满足工作要求。
在弹出的替换窗口中,在 Search 框中勾选 Selection 来只在所选文本区域中替换(当然这时你要先选定区域然后再按 ctrl+H )、勾选 WholeFile 来在整个当前文件内替换、两者都不勾选来从当前光标处替换至文件末尾;点右边的 Files… 按钮,可选择替换多个文件的内容。

2.2上下文敏感的智能重命名(Context-Sensitive Smart Rename

Smart Rename 命令、快捷键是 Ctrl+’ ,是上下文敏感的全局搜索替换。它可以智能地重命名全部项目文件中的一个标示符。 SourceInsight 的搜索索引( search index )使得搜索过程进行地非常快。而且,使用 Smart Rename 所做的替换会被记录在 Search Results 窗口中,每一条替换记录旁有一个 SourceLink 链接到替换发生地文件。
Smart Rename 可以用来重命名标记( symbol )。如果勾选了 Smart Reference Matching 选项, Smart Rename 就只在正确的上下文范围内进行重命名。它可以智能地重命名全部项目文件中的一个标示符;它可以重命名函数本地变量,类或结构体成员、函数。
在弹出的 Smart Rename 窗口中有下面几项∶
Old Name 填旧名称。光标下的词会被自动加载;光标的位置非常重要,这是因为 Source Insight 会根据本地上下文背景、准确地确定你想要重命名哪一个标记。
推荐只填单个词、而不是字符串。
如果你在命名成员变量、或本地变量(), Old Name 框中会显示完全标记名、即上层容器名 + 标记名。例如,框中的“ DocDraw.paintStruc ”代表 DocDraw 是函数名, paintStruc 是函数的本地成员变量。
New Name 填新名称。只填标记名,不填上层容器名。
Output Search Results 如果勾选,搜索替换结果日志会被输出到 Search Results 窗口中。可以通过 Windows 菜单来切换,或 ctrl+tab 切换察看。并且每一条记录旁会有 SourceLink 链接到替换发生地文件。
Confirm Each Replacement 每次替换询问。
Skip Comments 不重名注释部分。
【使用心得列表】
(1)如何用 Smart Rename 重命名数组的数组名?如果只选取数组名,会报错!
(2)如果勾掉 Smart Reference Matching ,会搜索全部项目文件,并且 Old Name 框中不显示完全限定名;如果勾选 Smart Reference Matching ,无法重命名数组名,而且鼠标位置不正确时会报错。应该如何应对?

3、在SourceInsight中提供的正则表达式

3.1SourceInsight中提供的正则表达式

正则表达式,是用来匹配复杂模式的特殊搜索用字符串。正则表达式串中,许多字符具有特殊的含义。例如,有个特殊的字符代表 行首
下面是 SourceInsight 提供的所有可用特殊字符∶
Table 4.3: Regular Expression Characters
Character
Matches
^ (at the beginning only)
beginning of line 。如^Hello,匹配Hello在句首。
.
any single character
[abc]
any single character that belongs to the set abc
[^abc]
any single character that does not belong to the set abc
*
zero or more occurrences of the preceding character
+
one or more occurrences of the preceding character
t
a tab character
s
a space character
w
white space (a tab or a space character)
$
the end of the line 。如TRUE$,匹配TRUE在句尾。

转义字符。如果在它后面有元字符,取消其特殊含义。
可利用 “(” “)” 、把正则表达式分割成不同的;模式中的每个组自左向右指定为 Group #n n=1,2,… 组的概念在替换时很有用。
例如∶
abc(xyz) 可匹配 abcxyz ,其中 xyz 被认为是 group#1
利用 21 来替换 (abc)(xyz) ,替换结果为 xyzabc

3.2 正则表达式在配置tc编译器中的应用∶

正则表达式格式与源代码文件路径相对应,这里我的 tc 安装目录为 d:tc tc 源文件放在 d:tcsrc 下,并命名为 qn.c qtn.c (其中 n=1,2,… )。
观察 Tc 编译器某一次输出错误信息的格式∶
Error d:tcsrcq5.c 18: Lvalue required in function jsSort
则我们要匹配“ d:tcsrcq5.c 18”部分,进一步地,按照SourceInsight 捕捉输出并加以解析时的要求,要以组的形式、分别匹配“ d:tcsrcq5.c 18”中的文件部分和行号部分∶
行号 ([1-9][0-9]*)
空格行号 s([1-9][0-9]*)
文件名 (d:tcsrc[qQ][tT][1-9][0-9]*.[cC])
全部加起来为∶
(d:tcsrc[qQ][tT]*[1-9][0-9]*.[cC])s([1-9][0-9]*)

3.3 正则表达式在配置javac编译器中的应用∶

我的 JAVA_HOME c:jdk ,我的 java 源文件放于 d:javasrc 中,并命名为 qn.java qtn.java (其中 n=1,2,… )。
观察 JDK 编译器某一次输出错误信息的格式∶
D:javasrcQ3.java:3: ';' expected
正则表达式为∶
([dD]:javasrc[qQ][tT]*[1-9][0-9]*.java):([1-9][0-9]*)

4、自定义命令

自定义命令与项目相关,在一个项目中定义的所有自定义命令属于该项目、只对该项目有效(包括快捷键等)。
自定义命令类似于命令行批处理文件。 SIS 允许自定义命令在后台运行;并可以捕捉自定义命令的输出、放置于文件中、或粘贴入当前光标插入点。
分别利用上面 SIS 对输出信息的处理方式,自定义命令对集成编译器相当有用,可以捕捉编译器输出并创建 SourceLink 寻错;自定义命令对于文本过滤也相当有用,可选中待过滤区块、运行 Sort 自定义命令、粘贴回选定区块、即完成文本过滤。
请按下面步骤创建自定义命令∶
Options 菜单 Custom Command
点右边 Add 钮、填入新自定义命令名称,或下拉左边 Commands 、选择命令进行修改
Run 框、填入待执行命令行,可含有特殊元字符,见后面的元字符表
Dir 框、执行命令行时应处的目录,如不填,以源代码文件所在目录为命令执行目录
勾选 Output 框的 Capture Output 、输出被捕捉,如果勾选 Paste Output ,输出被粘贴
勾选 Control Group 框中的 Save Files First SIS 会在运行命令前先检查文件是否保存
勾选 Control Group 框中的 Pause When Done SIS 会在命令结束后暂停、方便检查
勾选 Source Links in Output 框中的 Parse Source Links
ps:
Sourceinsight使用技巧:
http://gcody.blog.ccidnet.com/blog-htm-itemid-287620-uid-36931-do-showone-type-blog.html
http://blog.chinaunix.net/u2/63367/showart_498728.html

你可能感兴趣的:(职场,休闲)