按住 CTRL 键并单击可在任何地方使用
按住 CTRL 键并单击,可以将您带到定义单击的对象的位置,它在任何地方都有效 - 不仅在 Java 代码中的 Java 类和变量中,而且在 Spring 配置中(您可以单击类名称、或属性或 bean 名称)、在 Hibernate 中(您可以单击可以单击属性名称或类,或包含的资源),您可以一键从 Java 类导航到将其用作 Spring 或 Hibernate bean 的位置;单击包含的 JSP 或 JSTL 标记也可以,按住 Ctrl 键单击 JavaScript 变量或函数会将您带到定义它的位置,或者如果有多个位置,则显示一个菜单,包括其他 .js 文件和 HTML 或 JSP 中的 JS 代码文件。
自动完成多种语言
休眠
HSQL 表达式、Hibernate 配置(包括类、属性和数据库列名称)、Spring 配置中的自动完成
<property name="propName" ref="<hit CTRL-SPACE>"
它会显示您可以注入该属性的那些 bean 的列表。
Java
Java 代码中非常智能的自动完成功能:
interface Person {
String getName();
String getAddress();
int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>
它仅向您显示获取名称(), 获取地址() and toString()(只有它们在类型上兼容)和获取名称()位于列表的第一位,因为它有更相关的名称。最新版本 8(仍在 EAP 中)具有更加智能的自动完成功能。
interface Country{
}
interface Address {
String getStreetAddress();
String getZipCode();
Country getCountry();
}
interface Person {
String getName();
Address getAddress();
int getAge();
}
//---
Person p;
Country c = p.<CTRL-SHIFT-SPACE>
它会默默地自动完成它
Country c = p.getAddress().getCountry();
JavaScript
JavaScript 中的智能自动完成。
function Person(name,address) {
this.getName = function() { return name };
this.getAddress = function() { return address };
}
Person.prototype.hello = function() {
return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}
它仅显示获取名称() and 获取地址(),无论你的项目中的其他 JS 对象中的 get* 方法如何,然后按住 ctrl 键单击this.getName()带你到这个定义的地方,即使还有其他一些获取名称()您的项目中的函数。
HTML
我是否提到过文件路径中的自动完成和 Ctrl 单击,例如
HTML 标签属性中的自动完成。 HTML 标签的样式属性中的自动完成,包括属性名称和值。类属性中也自动完成。
输入
简单的母语突出显示
最新版本具有语言注入,因此您可以声明您的自定义 JSTL 标记通常包含 JavaScript,并且它将突出显示其中的 JavaScript。
<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>
跨所有项目的索引搜索。
您可以使用任何Java类或方法的FindUsage,它会找到它的使用位置,不仅包括Java类,还包括Hibernate、Spring、JSP和其他地方。重命名方法重构不仅可以重命名Java类中的方法,还可以重命名任何包括注释的方法(无法确定注释中的字符串是否真的是方法名称,因此它会询问)。即使存在同名的另一个类的方法,它也只会找到您的方法。
良好的源代码控制集成(SVN 支持变更列表吗?IDEA 支持每个源代码控制),能够使用您的更改创建补丁,以便您可以将更改发送给其他团队成员而无需提交。
改进的调试器
当我看着HashMap在调试器的监视窗口中,我看到逻辑视图 - 键和值,上次我在 Eclipse 中执行此操作时,它显示带有哈希和下一个字段的条目 - 我并没有真正调试HashMap,我只是想看一下内容。
Spring 和 Hibernate 配置验证
它会在您编辑 Spring 和 Hibernate 配置时对其进行验证,因此我不需要重新启动服务器即可知道我拼写错误的类名,或添加了构造函数参数,因此我的 Spring cfg 无效。
上次尝试时,我无法在 Windows XP x64 上运行 Eclipse。
它会建议你人名 or 人.地址。
按住 Ctrl 键并单击人名它会引导你到获取名称()的方法Person class.
Type Pattern.compile("");
将 \\ 放在那里,按 CTRL-SPACE 并查看有关可以在正则表达式中放入哪些内容的有用提示。您还可以在此处使用语言注入 - 定义您自己的接受字符串参数的方法,在 IntelliLang 选项对话框中声明您的参数是正则表达式 - 它也会在那里为您提供自动完成功能。不用说,它会突出显示不正确的正则表达式。
其他特性
有一些功能我不确定 Eclipse 中是否存在。但至少我们团队中使用 Eclipse 的每个成员还使用一些合并工具将本地更改与源代码管理中的更改合并,通常是 WinMerge。我从来不需要它——合并到 IDEA 对我来说就足够了。通过单击 3 次,我可以在源代码管理中查看文件版本列表,再单击 3 次,我可以比较以前的版本,或者以前和当前的版本,并可能合并。
它允许指定我需要里面的所有 .jarWEB-INF\lib
文件夹,无需单独选取每个文件,因此当有人将新的 .jar 提交到该文件夹时,它会自动选取它。
上面提到的大概是它所做的10%。我不使用 Maven、Flex、Swing、EJB 和很多其他东西,所以我不知道它对它们有何帮助。但确实如此。