编辑php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby代码Contributed by Tor Norbye and Paul Fussell September 2007 [Revision number: V6.0-1]
本文记述NetBeans IDE的Ruby编辑支持
内容
文章先决条件
语法高亮显示
导航显示
代码折叠
后台错误解析
语义语法高亮显示
标注事件
声明
即时重命名
代码完备提示
括号匹配
智能缩进
智能选取
格式化
Rdoc支持和String支持
文章先决条件
本文需要下列软件
语法高亮显示
Jruby的扫描器拥有词汇扫描功能,并能识别像全局变量和实例变量的元素。在
Java编辑器里,字段显示为绿色。
编辑器也能识别Ruby的标识符,因此在
编辑器里双击选择鼠标指针下的符号,这些符号包含了像@、$等非
Java标识符特征。
注意:你可以在编辑器里通过选择Tools >Options>Fonts and Colors来调整字体。在这个Options对话框的默认设置里,Syntax标签和category标签是选中的。可以通过更改Default 分类的字体来改变编辑器显示的字体。
导航显示
导航窗口从模块一直延伸到单一的方法、字段和属性显示文件结构的细节。双击导航窗口内的一个元素时,如图1所示,在编辑器里会显示其源代码。
图1:导航窗口
结构分析器可以识别Ruby语言结构。例如,attr,attr、accessor、attr_reader和 module_function将适当地在导航和代码完备提示中构造字段、单态方法等。
通过窗口的底部的过滤按钮,可以是你过滤掉私有方法和字段等显示。
代码折叠
模块,类和方法能够折叠起来,如图2所示。
图2:代码折叠
后台错误解析
在用户停止输入时,Jruby的解析器在后台运行。它将错误信息提供为错误注解。在解析成功后,解析树会被用来运行附加功能。(在将来,JRuby有望甚至在解析不成功的Ruby文件堆里提供局部树的功能。)
图3:错误注释
语义语法高亮显示
这个功能识别方法调用、定义、参数和未使用的变量。
图4:语义语法高亮显示
标注事件
把处于编辑状态的鼠标指针放在元素上面时,会高亮显示元素相关以及元素的重定义语句。 下图的例子展示了当你把鼠标指针放在某参数上面时,所有相关都被高亮显示。
图5:参数的高亮显示
图6展示了当你把鼠标指针放在屏幕里倒数第二个方法时,方法的调用和定义同时被高亮显示。编辑器通过arity方法来选择使用哪个重载方法。
图6:高亮显示方法
有一个附加的高亮显示功能。把鼠标指针放在一个方法定义上时,编辑器会高亮显示所有可能的出口点—方法的最后那条语句及return、yield、raise、或fail语句。
声明
如果你右击元素,并选择Go To >Declaration,如果可以的话,编辑器会声明该元素。如果你按住Ctrl键(或者在苹果机上按住Command键)并将鼠标拖过源代码,标识符像超链接一样被高亮显示。如果可以,点击超链接进入它的声明。
图7:Ctrl + 拖拽 展示访问声明的超链接
注意:这个功能对本地变量和动态变量一直有效,但对于方法,类等结构不一定有效。原因是此功能通过类型推理
引擎和其他机制对内置的库进行搜索。
即时重名命
适当地重命名本地或者动态变量之后,其所有的引用都会即时被修改。要调用这项功能,右击这个元素,并选择Instant Rename,或者在Microsoft Windows系统按Ctrl-R,或者在Macintosh系统里按Command-R。所有要被重命名的实例都被选中,如图8所示,当你输入新的名字时,所有的出现在其他地方的名字也都被更新。
图8:即时重命名
代码完备提示
提供基本的代码完备提示。打字时,如果你按住Ctrl-Space,在当前的块里提供对局部变量和动态变量的代码完备提示,以及同一文件里出现的方法、类和常量的名称。另外,编辑器还提供各种的Ruby内置提示功能,例如关键字和预定义的常量。 如果你试图在复杂的专有表达式里使用代码完备提示,它会给出若干可能的完备方法提示和相应的类,如图9所示。
图9:代码完备提示:所有匹配
在多数环节里,你知道准确的类型。举个例子,如果你输入File.c并调用代码完备提示,编辑器只展示File类中以c开头单态方法,以及继承方法与合成模块。
图10:代码提示:单态
在某些情况下,编辑器可以探测到它所处理的实例对象,因此它比类拥有更多的信息。这时,编辑器也可以展示所有实例方法,而不单是类方法。
在图11,代码完备提示应用于正则表达式。代码完备提示对你代码的所有的文字类有效:字符串,正则表达式,数组,哈希表,符号,数字等等。你甚至可以配合nil关键字使用它。例如,就数组而言,可以通过尝试[1,2,3].e的代码完备提示来看看each方法和相关文档。
图11:代码提示:实例
当用程序元素有相关的Ruby文档(rdoc)时,代码完备提示会出现文档的弹出窗口的下方。就像你先前看到的图一样。这里也有一些基于Ruby的内置的关键字文档,说明地址是
http://www.headius.com/rubyspec/index.php/Ruby_Language. 如yield关键字在图12所示。
图12:代码提示:关键字文档
代码完备提示也同样对特定的上下文环境提供帮助。例如,如果你在require或者load语句明里调用代码完备提示,你会看到一个可使用的正文列表。
图13:代码提示:Require Statement
如果在输入正则表达式时调用代码完备提示,你会得到正则表达的语法帮助。如图14所示。
图14:代码提示:正则表达式
如果你输入Ruby代码时不记得了名字或者美元变量的含义或者出口代码的百分比标志,就使用代码完备提示,如图15所示。
图15:代码完备提示:美元变量
图16:代码提示:百分比符号
有更多的使用方法。例如,在def关键字后面调用代码完备提示会列出那些超类里的继承方法。
括号匹配
编辑器自动高亮显示匹配的圆括号(),大括号{},中括号[],字符串分隔符" ',正则表达式分隔符%{},等等。另外,在你编辑时,编辑器设法在没有妨碍编辑的前提下自动插入或者去掉匹配分隔符。例如,如果你输入%x{,编辑器修改文档包含%x{|},输入结束}时,编辑器会去掉先前添加的},以使该文档只含有一个大括号。这里重要的是当你编辑时,文件保持正确,因为代码自动补全和类似的功能在这里有效。
括号匹配对块也有效。如果你输入一些代码或者def (一些代码)后按Enter键,如果这是需要的话,编辑器自动添加end语句进去、插入一行在上面,并放置鼠标指针在那一行上面。这些功能类似于块里的右大括号。它也对=begin/=end对有效。如果你输入=begin后按Enter键,若需要的话,编辑器会自动添加=end进去。另外,如果你把鼠标指针放在end语句上面时,编辑器会高亮显示由这个块开始的语句。
图17:使End和块的开始匹配
智能缩进
按Enter键来建立一个新行,使这个新行有适当的缩进,或者与前面的行保持同样的缩进,或者如果建立了一个新的块就有深一层的缩进,例如,if语句或case语句。
智能缩进对其他情况有效。例如,如果你在一行的开始输入end,编辑器就会缩进这行使end与其相对应的开放语句成为一列,像class、def、for等等。如果你在end之后继续输入更多的字符(例如,end是前三个字符的endiandCheck()),那么这行就立即被缩进到它原是的位置。
图18:智能缩进
智能选取
如果你按住Alt-Shift-PERIOD (.)和Alt-Shift-COMMA(,)(在Mac上是Ctrl-Shift--PERIOD与Ctrl-Shift-COMMA),编辑器会围绕^符号选取更大/更小的代码块。例如,如果你在for循环代码块里,它首先选取for代码块,然后选择外围的if代码块,再后是方法定义,类和模块。在注释中,首先选中的是第一行,其次是整个注释块,之后是外围的任何逻辑代码。
格式化
Reformat Code命令通过使用智能缩紧使相同行的缩进逻辑重定源代码格式。若要自动重定你的代码格式,右击并选择Reformat Code或者按住Ctrl-Shift-F。也有一个Pretty Printer功能,它他竟更先进地识别代码、加入或删除圆括号等。这个Pretty Printer功能处于未完成阶段并且还不能使用。
RDoc支持和String支持
RDoc是Ruby的文档系统。在Ruby编辑器中,包含着RDoc标签或指导的注释行会高亮显示RDoc指导。相似地,引用的字符串会用粗体显示换码顺序。
注意:像先前关于代码完备提示的一节里提到的,如果rdoc支持一个元素,你会在代码完备提示的弹出窗口里看到rdoc。这一节讨论的是代码编辑器对你的代码中的rdoc注释的支持,而不是显示在代码完备提示窗口里的rdoc。
图19:RDoc注释和引用的字符串
同样支持在String文本和正则表达式里的嵌入代码段,如图20所示。
图20: 支持在String文本和正则表达式里嵌入代码段
下几步
[
本帖最后由 cclong 于 2007-11-29 13:19 编辑 ]