NetBeans 6.0编辑器改进

NetBeans 6.0编辑器改进之一:语义着色

        语义着色允许根据源码的语义信息使用不同的颜色。使用着色能让你随时识别当前你所做的操作。

字段(fields)、参数(parameters)、变量(variables):

         这肯能是最重要的着色。能让你随时知道你操作的是字段、参数还是局部变量,帮你识别你是否修改了class的状态或者对当前的方法有没有副作用。

静态成员(static members):

         使静态成员区别于实例成员(缺省使用斜体)。如果你发现一个Collection变量是斜体的,在往其中添加对象前,你就要三思了,这样就有可能造成内存泄漏(Strong reference一直被hold,是内存泄漏最经常见的情况,译者注)。

弃用成员(deprecated members):

         使用弃用方法或者字段或者类,这些引用/调用会被删除线标注。以此来警告你所写的代码依赖与已经弃用的代码。

未使用成员(unused members):

         未使用的私有方法、类、变量及字段会以灰色(缺省,可以设置)显示,提示你去掉这些声明。

未使用的包引入(unused imports):

         未使用的包引入语句以灰色(缺省)显示,并伴有警告提示,点击小灯泡或者选择{ALT+ENTER}组合键来纠正。

Javadoc:

         Javadoc中的HTML代码采用语法着色提高可读性。

其他着色:

         还有其他许多语义着色。比如突出抽象方法,同步方法,本地方法,autoboxing等等。

NetBeans 6.0编辑器改进之二:代码辅助

        代码辅助从一下几个方面得到改进:

标准代码辅助(Standard code completion, Ctrl+Space)
         辅助完成所有通过import引入文件的符号,当然也包括java.lang.package中的符号。如果从引入的包中没有发现合适的符号,代码辅助就会退回到“所有相关符号辅助”(见下文)。注意如果你已经激活了标准完成,你仍然可以通过热键激活“所有相关符号辅助”和“智能代码辅助”方式。在标准代码辅助弹出窗口下方能看到该提示。代码辅助在智能化方面有所改进,比如关键字"implements"后面只显示接口类,而异常处理的catch处理块中只显示异常类。

所有相关符号辅助(All symbols completion, Ctrl+Alt+Space)
         辅助完成类路径能发现的所有符号。当没有引入相关资源时,这个热键很有用。你不需要知道要引入那些包,因为许多时候,你并不知道这个类全名是什么,只记得大概的名称,这种辅助完成功能最有效。


智能代码辅助(Smart completion, Ctrl+Shift+Space)
         根据上下文决定显示辅助的代码符号。下文做详细解释。


关键字辅助(Completing Keywords)
          代码辅助应该知道哪个关键字符合哪种位置,因此这种情况可用来辅助完成关键字。对于太短的关键字比如if,将不会列在代码辅助中。


字段/变量名称
          当引入一个新字段或者变量时,你往往希望名字同其类型相似。现在代码辅助支持建议名称,代码辅助提供一些推荐的名称,你只需要敲出这个变量的前缀就会激活这种代码辅助。除了字段和变量,方法名称也可以使用改种代码辅助。


关键字new之后带有范形(generic)的智能代码辅助
          当你需要声明带有复杂范形结构的字段或者变量时帮你完成代码辅助。


方法调用参数的代码辅助
          在方法调用时激活智能代码辅助将只显示字段、变量以及带有返回值的方法(函数)。

异常捕捉智能辅助
          在catch块中使用智能代码辅助提供在try块中抛出的但是还没有被捕捉的异常。


参数猜测
         方法调用时,智能代码辅助根据类型或者名字的相似性猜测使用何种变量、字段或者参数。下图截图中,调用createRectangle()方法时,代码辅助猜测变量之后等待纠正。


代码辅助完成的确认键
         你可以使用不同的键来选择代码列表中的项。回车确认你选中的代码项。如果你使用"."或者","或者";"来确认当前选中的代码项,代码辅助将".", ",", 以及";"添加到已经完成代码之后。

创建构造函数
          你可以使用代码辅助来为类生成构造函数。在方法外激活代码辅助,将创建一个无参缺省构造函数,并初始化类的所有未初始化字段。

Collection容器类

         原文如下,不知如何理解:)
          Completion in Collections.<String>| - works fine when Collections is imported.

NetBeans 6.0编辑器改进之三:引入类包

      在NetBeans6.0有多种方法引入类包。

1.使用错误提示:点击错误提示的小灯泡或者按下Alt+Enter键,netbeans会显示可选的引入项,选择合适的项一切就OK了。

2.使用引入类对话框:将光标移到没有引入的类上,按下Alt+Shift+I,将显示引入对话框。

3.使用智能引入纠正:按下Alt+Shift+F,netbeans将自动引入所有的类包,对于存在冲突的类包,netbeans显示引入对话框供你选择。如果存在多个引入项,你可以从下拉框种选择合适的类。灰色显示的类因为某些原因不能这样引入。下面的例子中,com.sun.media.sound包中的Toolkit类没有方法getDefaultToolkit(),而在源代码调用了该方法,因此该类没有现在下拉框中。

NetBeans 6.0编辑器改进之四:语法高亮显示与即时重命名

         你会认为高亮显示是比编辑搜索更好的功能。NetBeans跟踪当前光标的位置,并且根据位置高亮显示代码的某些部分,这些高亮显示的内容背景色同编辑器的缺省颜色一样,如果存在错误,会同时标注有错误提示,这样能够有一个全文的概要。参照“如何实现即时重命名”来加深理解这一概念。

标识符:将光标移到一个标识符上,将会高亮显示当前源代码中所有的该标识符。

方法返回行:将光标放到方法的返回类型定义上,将会高亮显示方法中所有的返回行。

异常处理点:将光标放在方法的异常声明处,将会高亮显示方法中何处会抛出此异常。

其他高亮显示:将光标放在类声明后extends或者implements后的类上,将会高亮显示所有父类或者接口中的覆盖方法或者实现方法。

使用即时重命名

         如果需要重命名一个私有成员(字段、方法、局部变量...),你可有几个选择:a)使用编辑器的搜索替换功能,这有可能导致替换了不想替换的名字。b)使用重构方法重命名,但是这样做未免太劳师动众。

         在6.0中,你可以使用即时重命名功能,只需把光标放在要重命名的标识符上,并按下Ctrl+R,所有该文件中的该标识符都会以蓝色(可配置)高亮显示,之后你进行的所有编辑都会同步到该文件的其他该标识符上,按下ESC或者回车键结束即时重命名。


NetBeans 6.0编辑器改进之五:其他

无用包引入

         将光标放在无用包引入行上,或者之间点击错误标签,激活提示,可以使用鼠标,也可以按下Alt+Enter。


Surround With

         如果想使用某个模板包围某段代码,只需要选择文本并使用Alt+Enter就可以了。


动态模板

        敲入模板名称的几个字母并激活代码辅助:

        选择你需要的模板。如果有个合适,netbeans会为你填写好。模板的一些部分会用蓝色显示。可以使用Tab键在这些部分移动。编辑字段会相应改变其实际代码部分。按下回车键或者Esc键结束模板编辑。注意如果你将光标移到篮框的外面,编辑模板模式仍然继续,因此如果你可以使用tab返回模板编辑中。

编写新的模板

         你可以到Menu->Tools->Options的语言模板页定义新的模板,选择编辑类别以及代码模板。不妨参照现有的Java模板来定义你自己的。

(全文完)

(由于原始文档只是一个草稿,许多地方只有标题,和TBD(To Be Done)字样,所以就没有翻译全,而且限于译者的理解水平有限,英语能力有限,中文表达有限,所以,嘿嘿,不说了,只是小的方面想是为netbeans的推广出一点力,大一方面想为了中国软件事业的发展,为了共产主义的早日实现)

         今天看了JavaLobby上一个Robert Thorton写的一篇文章:Too many cooks spoiled an IDE。该文从Eclipse本身架构和社区管理的根源上分析Eclipse的病根,让我有如醍醐灌顶。的确,Eclipse平台的开发性,社区管理的民主化是其优势,也恰恰是弱势。这正如中央集权式政府和民主政府之间的区别。民主政府固然可以因为权利的制衡而减少腐败,增加公平,使社会结构往两性方向发展,却也因多个政治派别之间的利益斗争和党派纷争使得政府决策效率下降。eclipse拥有大量的插件和支持厂商,这是由于它的开放性和决策公平性决定的。加上Eclipse授权允许商业化eclipse派生产品,使得更多用户和厂商倾斜到eclipse阵营。NetBeans有一个相对集中的决策和开发队伍,它的开发和决策效率更高,由于有着比较强有力中央控制,使得NetBeans插件之间的不兼容性也比较小,当然这也有可能是因为NetBeans本身插件不多,大部分功能本身已经实现的缘故造成的。Eclipse模式有利于Eclipse厂商,对于开发者、使用者却是有害的,NetBeans有利于开发者、使用者,对于商家却没有留足够的发展空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值