我听过一些人说,他们换了一种方式,并对其中一种方式发誓.
作为Eclipse的忠实粉丝,但我还没有时间try IntelliJ,我很有兴趣听到IntelliJ用户的意见,他们是"前Eclipse人",你可以用IntelliJ做一些你不能用Eclipse做的事情.
Note:这不是一个主观的问题,也不是要变成一场圣战.Please downvote any flamebait answers
我听过一些人说,他们换了一种方式,并对其中一种方式发誓.
作为Eclipse的忠实粉丝,但我还没有时间try IntelliJ,我很有兴趣听到IntelliJ用户的意见,他们是"前Eclipse人",你可以用IntelliJ做一些你不能用Eclipse做的事情.
Note:这不是一个主观的问题,也不是要变成一场圣战.Please downvote any flamebait answers
按住Ctrl键并单击可将您带到定义所单击对象的位置-不仅在JAVA代码中的JAVA类和变量中,而且在Spring配置中(您可以单击类名、属性或Bean名称),在Hibernate 中(您可以单击属性名称或类或包含的资源),您可以在一次单击内从JAVA类导航到用作Spring或Hibernate Bean的位置;单击包含的JSP或JSTL标记也可以,按住ctrl键并单击JAVAScript变量或函数会将您带到定义它的位置,如果有多个位置,包括HTML或JSP文件中的其他.js文件和JS代码,则会显示一个菜单.
HSQL表达式、Hibernate 配置(包括类、属性和DB列名)、Spring配置中的自动完成
<property name="propName" ref="<hit CTRL-SPACE>"
它将向您显示可以注入该属性的bean的列表.
JAVA代码中非常智能的自动完成:
interface Person {
String getName();
String getAddress();
int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>
它只显示了getName()、getAddress()和toString()(只有它们在类型上是兼容的),getName()是列表中的第一个,因为它有更相关的名称.目前仍在EAP中的最新版本8具有更智能的自动完成功能.
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中的智能自动完成.
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>;
}
而且它只显示getName()和getAddress(),不管项目中其他JS对象中的get*方法如何,按住ctrl并单击this.getName()会将您带到定义此方法的位置,即使您的项目中还有其他getName()个函数.
我有没有提到自动完成和在文件路径中按ctrl键,比如<;脚本src="",<;img src="")等?
Autocomplete in HTML tag attributes. Autocomplete in style attribute of HTML tags, both attribute names and values. Autocomplete in class attributes as well.
Type <div class="<CTRL-SPACE> and it will show you list of CSS classes defined in your project. Pick one, ctrl-click on it and you will be redirected to where it is defined.
最新版本有语言注入,所以您可以声明您的自定义JSTL标记通常包含JAVAScript,并且它将突出显示其中的JAVAScript.
<ui:obfuscateJAVAScript>function something(){...}</ui:obfuscateJAVAScript>
您可以使用Find来查找任何JAVA类或方法的用法,它将找到使用它的地方,不仅包括JAVA类,还包括Hibernate 、Spring、JSP和其他地方.重命名方法重构不仅在JAVA类中重命名方法,而且在包括注释的任何地方重命名方法(无法确定注释中的字符串是否真的是方法名,所以它会询问).即使存在同名的另一个类的方法,它也只会找到你的方法.
当我在debugger的watch窗口中查看HashMap时,我看到的是逻辑视图——键和值,上次我在Eclipse中这样做时,它显示的是带有散列和下一个字段的条目——我并不是真的调试HashMap,我只是想查看它的内容.
当您编辑Spring和Hibernate 配置时,它会正确地验证它们,所以我不需要重新启动服务器就能知道我拼错了类名,或者添加了构造函数参数,所以我的Spring CFG是无效的.
上次try 时,我无法在Windows XP x64上运行Eclipse.
它会建议你person.name或person.address. 按住Ctrl键并单击person.name,它将导航到Person个类的getName()个方法.
在那里键入Pattern.compile("");
put\\there,点击CTRL-SPACE并查看有关可以在正则表达式中放入什么内容的有用提示.你也可以在这里使用语言注入——定义你自己的方法来获取字符串参数,在IntelliLang选项对话框中声明你的参数是正则表达式——它也会让你自动完成.不用说,它强调了不正确的正则表达式.
我不确定Eclipse中是否存在一些功能.但至少我们团队中使用Eclipse的每个成员,都会使用一些合并工具将本地更改与源代码管理(通常是WinMerge)中的更改合并.我从来都不需要它——融入 idea 对我来说就足够了.通过3次单击,我可以看到源代码管理中的文件版本列表,再单击3次,我可以比较以前的版本,或者以前的版本和当前版本,并可能合并.
它允许指定我需要WEB-INF\lib
个文件夹内的所有.jar,而无需单独 Select 每个文件,因此当有人将新的.jar提交到该文件夹时,它会自动拾取它.
上面提到的可能是它功能的10%.我不使用Maven、Flex、Swing、EJB和其他很多东西,所以我说不出它对它们有什么帮助.但确实如此.