编辑 JavaScript
NetBeans IDE 提供了更强大的 JavaScript 编辑功能,旨在为 Java、Ruby 和其他语言提供支持。下面的指南对这些功能进行了概述。
目录
本教程所需要的软件
要学完本教程,您需要具备以下软件和资源。
基本功能
在本部分中,我们将介绍 IDE 的基本 JavaScript 编辑功能。
创建新文件
通过 "New File"(新建文件)向导,您可以在任何项目中创建新的 JavaScript 文件。单击 "New"(新建)-> "Other"(其他)以打开向导。在该向导中,打开 "Other"(其他)类别,然后选择 JavaScript 文件。此时将从模板创建新的 JavaScript 文件。
如果要使 JavaScript 文件显示在项目编辑器中,请在项目的相应子文件夹中创建 JavaScript 文件,如 src。
缺省的 JavaScript 模板中仅包含许可信息。要向模板中添加内容,请转至 "Tools"(工具)> "Templates"(模板),然后在 IDE 中打开 JavaScript 模板。
语法突出显示功能
IDE 提供了真正意义上的语义突出显示功能 ,以区别方法和变量。
代码折叠
方法代码可以折叠或展开。在编辑器中,单击某个方法旁的 图标,该方法将折叠。单击某个已折叠方法旁的 图标,该方法将展开。折叠的代码由省略号框表示。 将光标放在省略号框上,IDE 将显示已折叠的方法。
您可以在 "View"(视图)> "Code Folds"(代码折叠)菜单中折叠或展开所有方法。
导航
IDE 的 "Navigator"(导航)标签显示 JavaScript 文件结构。"Navigator"(导航)可识别原型样式类定义,并将其作为类与方法一起显示。
后台解析器
解析器在后台运行,并提供详细的错误消息。
括号匹配
自动添加右括号。键入 '、"、[、( 或 { 将自动插入匹配的右引号或右括号。键入右引号或右括号将直接使用插入的符号。删除左引号或左括号将删除匹配的符号。
格式设置
按 Enter 键将根据下一行应该在的位置缩排插入记号。按 } 将立即凸排该行。重新设置所选内容或整个缓冲区的格式将重新缩排整个文件。
JSON 支持
JSON 文件被视为 JavaScript。后台解析器在特定的 JSON 模式下运行,在该模式下只允许不带函数的对象文字表达式等。
语义突出显示功能
方法声明以粗体显示(包括对象文字中的原型样式方法声明),全局变量以绿色显示,而未使用的变量以灰色下划线显示。
标记实例
将插入记号放在某个符号上将突出显示同一变量或调用的其他用法。此外,将插入记号放在某个函数关键字上将突出显示方法 (return, throw) 的所有返回。将插入记号放在某个返回上时,情况也应该一样。
即时重命名
在局部变量上按 Ctrl-R/Command-R 组合键,即可在整个文件中同步重命名该符号。
重构
您可以查找产品中某个变量或操作的所有使用实例。找到这些使用实例后,可以重命名该变量或操作的所有实例,并在整个产品中进行重构。在执行重构之前,可以在一个拆分屏幕 UI 中预览更改。
查找并重命名变量或操作的所有使用实例:
在编辑器中选择变量或操作的一个实例。
选择 "Edit"(编辑)-> "Find Usages"(查找使用实例)(Alt-F7 组合键)。您可以选择搜索注释以及活动的代码。此时将打开 "Usages"(使用实例)视图,显示包含该变量或操作的所有使用实例的树视图。
在编辑器中再次选择该变量,然后选择 "Refactor"(重构)-> "Rename"(重命名)(Ctrl-R/Command-R 组合键)。此时将打开一个对话框,您可以在其中键入新名称。
单击 "Preview"(预览)。此时将打开 "Refactoring"(重构)视图,其左侧会显示包含替换的树视图,其右侧会显示包含原始文件和重构文件的拆分屏幕。
您可以选择在个别位置不重命名变量或操作。在左侧的树视图中取消选择单独的重命名。
检查后,请单击 "Do Refactoring"(执行重构),IDE 将重构所有文件。
快速修复和语义检查功能
IDE 会对 JavaScript 代码执行诸多语义检查,并提供快速修复功能。要显示快速修复功能,请选择 "Source"(源)-> "Fix Code"(修复代码)(Alt-Enter 组合键)。语义检查包括:
给参数重新赋值
匿名函数无法始终返回值
变量隐藏参数
没有副作用(无调用、无赋值)的代码
条件表达式 (if x = y) 中的赋值。此语义错误具有若干与其相关的快速修复,例如转换为 == 表达式,以及添加双括号以关闭警告。
函数的返回不一致(一些返回表达式返回值,而另一些不返回值)
任务列表
任务列表中集成了后台解析器和警告快速修复。打开任务列表("Window"(窗口)> "Tasklist"(任务列表)),可查看与 JavaScript 关联的任何文件中的错误。双击该列表中的某个任务,编辑器将转至相关的行。
代码完成和类型分析功能
JavaScript 代码完成使您可以选择要插入代码中的 IDE 内置 JavaScript 核心类。例如,您可以编写
x = "foo"; y = x; y.
代码完成将向您显示可用于 JavaScript 字符串的方法。代码完成适用于 JavaScript 中的所有文字类型。类型分析和代码完成机制还知道原型样式类(仅常规函数)和用于构造这些类的新运算符。
NetBeans IDE 将参考函数参数的类型参数和返回类型 (@type, @param)。这些类型将显示在代码完成中,包括显示在列表、文档以及参数提示中(Ctrl-P 组合键)。在代码完成对话框中,返回类型也会显示在函数名称后面,并用冒号分隔。
如果使用 @deprecated 标记某个方法,则在此方法的导航和代码完成调用中,它将被划掉。附带的过时描述将在代码完成文档中作为单独的部分以背景突出显示的方式显示。
NetBeans IDE 还可以确定许多函数的返回类型。此函数是 JSQuery 支持所必需的。例如,方法如果返回 true 或 false,则返回类型为 Boolean;方法如果返回文字数值,则返回类型为 Number,依此类推。IDE 通过注释来推断类型并明确跟踪已声明的类型。最重要的意义在于,IDE 通过调用来沿用相应类型。如果您的代码如下所示:
"foo".big().charCodeAt(50).toExponential(fractionDigits);
NetBeans 首先看到 foo 是 String,因此,它将在 String 类中查找 big() 方法。该 String 中的 charCodeAt(50) 函数属于 Number 类型,因此,如果对此处的 "to" 应用代码完成,则只会看到用于 Number 的方法。
注意: 查找返回类型涉及对索引的访问,这可能需要一段时间。因此,在类型分析期间,IDE 会查看时钟,过一到两秒后,它会中止类型计算。对大型函数、运行速度缓慢或运行速度快但不堪重负的计算机而言,这可能是很有意义的。
转至声明
按 Ctrl 键并将光标放在一行代码上。左键单击变量名称。当 IDE 无法确定变量的类型(从而无法确定目标函数)时,它将为您提供一个弹出式菜单,其中包含项目中所有变量的声明。
文档
代码完成显示核心 javascript API 和 DOM API 的 API 文档。您还可以查看自己的函数的文档。在按住 Ctrl 键的同时指向调用也会显示文档(作为工具提示)。
嵌入式完成
HTML 中元素 ID 上的代码完成适用于
Prototype.js $("...") 函数。要查看元素 ID 上的代码完成,请在光标位于引号内时按 Ctrl-空格组合键。例如,如果添加
variable = $("f
| "),并在光标 (
|) 紧接在 f 后时按 Ctrl-空格组合键,则代码完成将显示文档中以 f 开头的所有 HTML 元素 ID。
浏览器兼容性
可以选择您的 JavaScript 要支持的浏览器。IDE 将删除选定的浏览器不支持的代码完成选项。
选择要支持的浏览器:
打开 "Tools"(工具)-> "Options/Preferences"(选项/首选项)。
单击 "Miscellaneous"(其他)图标。此时将打开包含多个标签的页。
打开 "JavaScript" 标签。
选择及取消选择相应的浏览器和版本。
另请注意,文档 将显示支持记录的 API 元素的每个浏览器的图标。
在以下代码完成对话框中,IDE 划掉了几个选项,因为选定浏览器(仅限 Opera)不支持这些选项。
嵌入
JavaScript 编辑功能可用于 RHTML、HTML 和 JSP 文件中嵌入的 JavaScript。
打开类型
按 Ctrl-O/Command-O 组合键并快速跳转至文件中的任意函数。
JSDoc 支持
如果使用 @private 对某个方法进行标注,则该方法将显示在导航中,并带有一个锁状图标。如果使用 @constructor 对某个函数进行标注,则该函数将显示为一个构造函数(并包含在代码完成中的 "new" 关键字之后),可以使用 @class 和 @namespace 为给定的类明确指定函数(虽然类型分析器通常可以自动指定这些函数)。标记 @ignore 的函数不显示在代码完成中,但包含在索引中,并且可以在转至声明 中使用。
基本文件包含过滤
HTML 中的代码完成仅包含来自引用的 JavaScript 文件的代码。考虑这样一个项目,其中文件
foo.js 定义函数
foo() ,而文件
bar.js 定义函数
bar() 。如果文件
hello.html 只包含
<script src="bar.js"></script> ,则只有
bar() 函数才会显示在
hello.html 的代码完成中。
另请参见
有关使用 NetBeans IDE 编辑非 Java Web 语言的详细信息,请参见以下资源:
要发送意见和建议、获得支持以及随时了解 NetBeans IDE Java EE 开发功能的最新开发情况,请加入
nbj2ee
@
netbeans.org
邮件列表 。