sourceinsight 正则_sourceinsight配备及使用二 - 推荐高分辨率上两款字体(...- 近来在做Kjava的通用版,一些体会_169IT.COM...

本页文章导读:

▪sourceinsight配备及使用二       sourceinsight配置及使用二

SourceInsight提供的功能1、解析日志信息时非常有用的Source Link总地说来,SourceLink根据特定的搜索模式,把当前文件中满足模式的行、链接到由该行指定的其他源文件.........

▪ 推荐高分辨率上两款字体(英文等宽)       推荐高分辨率下两款字体(英文等宽)

一、XP上的宋体+Courier New时代过去咯以前对着17寸液晶写代码的时候,等宽字体用Courier New觉得还不错,毕竟WINXP自带的也就两种英文等宽字体了,不.........

▪ 近来在做Kjava的通用版,一些体会      最近在做Kjava的通用版,一些体会

因为所在的公司需要一个KJjava的通用版本来配合市场部的工作,所以本人荣幸的成为了通用版的开发者。以前一直认为通用版很简单,不需要特效,只是.........

[1]sourceinsight配备及使用二

来源: 互联网  发布时间: 2014-02-18

sourceinsight配置及使用二

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.1在SourceInsight中提供的正则表达式

正则表达式,是用来匹配复杂模式的特殊搜索用字符串。正则表达式串中,许多字符具有特殊的含义。例如,有个特殊的字符代表 “行首”。

下面是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

[2] 推荐高分辨率上两款字体(英文等宽)

来源: 互联网  发布时间: 2014-02-18

推荐高分辨率下两款字体(英文等宽)

一、XP上的宋体+Courier New时代过去咯

以前对着17寸液晶写代码的时候,等宽字体用Courier New觉得还不错,毕竟WINXP自带的也就两种英文等宽字体了,不用这个的话,就只能用无法调整字号的Fixedsys了,一屏显示不了多少行代码。我两年前还用Courier New作了一个Source InSight的配置文件作为部门标准SIS设置。

二、推荐高分辨率下的中文字体:微软雅黑 (size 14,692KB)

自从我开始用本本之后,发现用这东西真是遭罪啊,屏幕小,分辨率高, Courier New和宋体都有同样的毛病:字体太细。每天对着小屏幕编程10个小时后, 抬头看天上也全是字母数字,MYGOD。两天前我装了Windows Vista,发现系统默认字体由宋体被改为“微软雅黑”了,一开始还看不习惯,很有冲动把它改回宋体,网上也能搜到修改方法。但看了两天后发现确实设计得好,即使很小的字看久了也不太累。不过对于目前多数人来说内存还不够用vista, 那么就单独把微软雅黑字体下载来用吧。下载URL我随便找了个 http://www.24inside.net/pfs/msyh.rar   自己去GOOGLE一把也会出来很多。

三、强烈推荐等宽字体:Bitstream Vera Sans Mono (size 49KB)

今晚终于对Courier New的忍受度达到了极限,既然陪伴Windows系统十多年的宋体换掉了,那么统治了我两年英文字体i也应该改朝换代了。网上搜到这个 http://www.dafont.com/font.php?file=bitstream_vera_mono 试用以后,真是相见恨晚啊,我在1440*900的分辨率下,用Bitstream Vera Sans Mono设置在11pt甚至10pt都很清晰,而且对特别讨厌的0和O,还有l, I, 1都区分得很清楚,Courier New上面的0和O,l和1就分得不太清楚。后来才看到vista上也新加了一种英文等宽字体,Consolas ,不过和前者相比的话,觉得字母写得比较拥挤,还是前者要好些。明天就去更新部门的SIS标准配置文件,呵呵。

[3] 近来在做Kjava的通用版,一些体会

来源: 互联网  发布时间: 2014-02-18

最近在做Kjava的通用版,一些体会

因为所在的公司需要一个KJjava的通用版本来配合市场部的工作,所以本人荣幸的成为了通用版的开发者。以前一直认为通用版很简单,不需要特效,只是实现简单的功能而已,真正做起来才发觉真的很麻烦。下面切入正题

--------------------------------------俺不是异常~---------------------------------------

问题:代码优化问题,传统的kjava游戏都是通过线程重绘来进行绘制的,采用了大量的图片,而应用则完全不同,因为会通过网络交互产生大量的字符,还要根绝屏幕来判断换行,所以经常是使用drawChar()这个方法,动则便会套入N个循环,效率变得极其低,且无法立即释放内存。

解决办法:把这些字符变成一张图片~创建一个内存图片,然后得到画笔,将字符串写入图片中~你会惊喜的发现。无论你怎么移动,它都很流程~很爽~

问题2:图片造成加载内存过大,部分机型无法适用。

解决办法:自己画~这里再次感谢老师,自己画出来的,一样可以很美~~~~以前学习的时候觉得没用,现在才知道,这个太好用了~看来基础还是非常重要的~

因为开发才刚刚开始,陆续会产生更多的问题,到时候一定会与大家继续分享~

小弟的第一个通用版的Kjava应用~开发完毕的时候,会公布下载地址~因为项目属于公司,抱歉无法开源~但是技术问题届时一定会尽量回答与大家分享~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值