CTRL-click hoạt động ở mọi nơi
Nhấp chuột CTRL đưa bạn đến nơi đối tượng được nhấp được xác định hoạt động ở mọi nơi - không chỉ trong các lớp và biến Java trong mã Java, mà trong cấu hình Spring (bạn có thể nhấp vào tên lớp, hoặc thuộc tính hoặc tên bean), trong Hibernate (bạn có thể nhấp vào tên thuộc tính hoặc lớp hoặc tài nguyên được bao gồm), bạn có thể điều hướng trong một lần nhấp từ lớp Java đến nơi nó được sử dụng như là Spring hoặc Hibernate bean; nhấp vào thẻ JSP hoặc JSTL đi kèm cũng hoạt động, nhấp chuột ctrl vào biến hoặc hàm JavaScript sẽ đưa bạn đến vị trí được xác định hoặc hiển thị menu nếu có nhiều hơn một vị trí, bao gồm các tệp .js khác và mã JS trong HTML hoặc JSP các tập tin.
Tự động hoàn thành cho nhiều ngôn ngữ
Ngủ đông
Tự động hoàn thành các biểu thức HSQL, trong cấu hình Hibernate (bao gồm các tên cột lớp, thuộc tính và DB), trong cấu hình Spring
<property name="propName" ref="<hit CTRL-SPACE>"
và nó sẽ hiển thị cho bạn danh sách những loại đậu mà bạn có thể tiêm vào tài sản đó.
Java
Tự động hoàn thành rất thông minh trong mã Java:
interface Person {
String getName();
String getAddress();
int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>
và nó hiển thị cho bạn CHỈ getName () , getAddress () và toString () (chỉ chúng tương thích theo loại) và getName () là đầu tiên trong danh sách vì nó có tên phù hợp hơn. Phiên bản 8 mới nhất vẫn còn trong EAP thậm chí còn tự động hoàn thành thông minh hơn.
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>
và nó sẽ âm thầm tự động hoàn thành
Country c = p.getAddress().getCountry();
Javascript
Tự động hoàn thành thông minh trong 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>;
}
và nó hiển thị CHỈ getName () và getAddress () , bất kể bạn có phương thức * nào trong các đối tượng JS khác trong dự án của bạn và ctrl-click vào this.getName () đưa bạn đến nơi mà phương thức này được xác định, ngay cả khi có một số hàm getName () khác trong dự án của bạn.
HTML
Tôi đã đề cập đến tự động hoàn tất và nhấp vào ctrl trong đường dẫn đến tệp, như <script src = "", <img src = "", v.v?
Tự động hoàn thành trong các thuộc tính thẻ HTML. Tự động hoàn thành thuộc tính kiểu của thẻ HTML, cả tên và giá trị thuộc tính. Tự động hoàn thành trong các thuộc tính lớp là tốt.
Nhập <div class = "<CTRL-SPACE> và nó sẽ hiển thị cho bạn danh sách các lớp CSS được xác định trong dự án của bạn. Chọn một, nhấp vào ctrl và bạn sẽ được chuyển hướng đến nơi được xác định.
Ngôn ngữ riêng dễ dàng
Phiên bản mới nhất có ngôn ngữ tiêm, vì vậy bạn có thể tuyên bố rằng thẻ JSTL tùy chỉnh của bạn thường chứa JavaScript và nó sẽ làm nổi bật JavaScript bên trong nó.
<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>
Tìm kiếm được lập chỉ mục trên tất cả các dự án.
Bạn có thể sử dụng Find Usages của bất kỳ lớp hoặc phương thức Java nào và nó sẽ tìm thấy nơi nó được sử dụng bao gồm không chỉ các lớp Java mà cả Hibernate, Spring, JSP và các nơi khác. Đổi tên Phương thức tái cấu trúc đổi tên phương thức không chỉ trong các lớp Java mà bất kỳ nơi nào bao gồm cả các nhận xét (không thể chắc chắn nếu chuỗi trong các bình luận có thực sự là tên phương thức hay không nên nó sẽ hỏi). Và nó sẽ chỉ tìm thấy phương thức của bạn ngay cả khi có các phương thức của một lớp khác có cùng tên. Tích hợp kiểm soát nguồn tốt (SVN có hỗ trợ người thay đổi không? IDEA hỗ trợ họ cho mọi kiểm soát nguồn), khả năng tạo một bản vá với các thay đổi của bạn để bạn có thể gửi các thay đổi của mình cho thành viên khác trong nhóm mà không cần cam kết.
Cải thiện trình gỡ lỗi
Khi tôi nhìn vào HashMap trong cửa sổ theo dõi của trình gỡ lỗi, tôi thấy khung nhìn logic - các khóa và giá trị, lần trước tôi đã làm nó trong Eclipse, nó đang hiển thị các mục với hàm băm và các trường tiếp theo - Tôi không thực sự gỡ lỗi HashMap , tôi chỉ muốn nhìn vào nó nội dung.
Xác thực cấu hình Spring & Hibernate
Nó xác nhận cấu hình Spring và Hibernate ngay khi bạn chỉnh sửa nó, vì vậy tôi không cần phải khởi động lại máy chủ để biết rằng tôi đã viết sai tên lớp hoặc thêm tham số hàm tạo để Spring cfg của tôi không hợp lệ.
Lần trước tôi đã thử, tôi không thể chạy Eclipse trên Windows XP x64.
và nó sẽ gợi ý cho bạn person.name hoặc person.address . Ctrl-click vào person.name và nó sẽ điều hướng bạn đến phương thức getName () của lớp Person .
Nhập Pattern.compile("");
put \\ vào đó, nhấn CTRL-SPACE và xem gợi ý hữu ích về những gì bạn có thể đưa vào biểu thức thông thường của mình. Bạn cũng có thể sử dụng ngôn ngữ tiêm tại đây - xác định phương thức của riêng bạn có tham số chuỗi, khai báo trong hộp thoại tùy chọn IntelliLang rằng tham số của bạn là biểu thức chính quy - và nó cũng sẽ cung cấp cho bạn tự động hoàn thành ở đó. Không cần phải nói nó làm nổi bật các biểu thức chính quy không chính xác.
Các tính năng khác
Có một vài tính năng mà tôi không chắc có mặt trong Eclipse hay không. Nhưng ít nhất mỗi thành viên trong nhóm của chúng tôi sử dụng Eclipse, cũng sử dụng một số công cụ hợp nhất để hợp nhất các thay đổi cục bộ với các thay đổi từ kiểm soát nguồn, thường là WinMerge. Tôi không bao giờ cần nó - hợp nhất trong IDEA là đủ cho tôi. Bằng 3 lần nhấp, tôi có thể thấy danh sách các phiên bản tệp trong kiểm soát nguồn, bằng 3 lần nhấp nữa tôi có thể so sánh các phiên bản trước hoặc phiên bản trước và hiện tại và có thể hợp nhất.
Nó cho phép chỉ định rằng tôi cần tất cả .jars trong WEB-INF\lib
thư mục, mà không chọn từng tệp riêng biệt, vì vậy khi ai đó cam kết mới .jar vào thư mục đó, nó sẽ tự động lấy nó.
Đề cập ở trên có lẽ là 10% những gì nó làm. Tôi không sử dụng Maven, Flex, Swing, EJB và nhiều thứ khác, vì vậy tôi không thể biết nó giúp ích cho họ như thế nào. Nhưng nó làm.