2010-01-02 25 views
9

Đỗ Eclipse có một plugin cho loại trước autocompletion như Visual Studio, vì vậy tôi không cần phải phá hủy spacebar của tôi bằng cách nhấn tổ hợp phím Ctrl + Space tất cả các thời gian? (Nếu bạn không biết nó hoạt động như thế nào trong Visual Studio, xin đừng bận tâm trả lời.)Loại trước autocompletion trong Eclipse

Ngoài ra, tôi có thể giới hạn các gói tự động hoàn thành, chứ không phải mọi lớp Java đơn trên trái đất? It's fustrating thấy đề xuất từ ​​awt và swing vv, khi tôi đang làm việc với GWT. Và tôi không muốn thêm từng lớp Java vào bộ lọc, điều đó thật ngu ngốc. (Một lần nữa, giống như cách nó được thực hiện trong Visual Studio!)

+0

@Claus, bạn có thể thêm 'tag visual-studio', để thu hút thêm visual-studio * và * che khuất người dùng am hiểu ai có thể cung cấp một câu trả lời tốt hơn so với tôi. – VonC

+1

@Claus, nếu bạn không muốn nghe người dùng hiểu biết về Eclipse, bạn sẽ bỏ lỡ rất nhiều tính năng tiện lợi trong Eclipse. Hãy cởi mở hơn. – JesperE

+2

Làm cách nào để yêu cầu các tính năng hữu ích cực kỳ mà các IDE khác có, đang bị đóng đầu? "các tính năng" yêu cầu tôi dành nhiều thời gian hơn để phát triển và làm chậm IDE của tôi, không phải là tiện lợi. –

Trả lời

24

Về phần thứ hai của bạn, yes you can

  • mở Eclipse
  • Chọn Window/Preferences từ menu
  • Mở rộng Java/Appearance/Nhập Bộ lọc từ menu bên trái
  • Nhấp vào nút "Thêm gói", nhập "java.awt" (không có dấu ngoặc kép) và nhấp vào OK
  • OK theo cách của bạn ra

Điều này sẽ giúp Eclipse loại bỏ mọi lớp phù hợp khỏi gói java.awt khỏi danh sách loại trước của bạn. Rất đẹp ...

Vì vậy, "type-trước" tồn tại trong Eclipse (nêu tại status report in June 2006 này), nhưng là từ đồng nghĩa của tính năng tự động hoàn thành, thường xuyên nhất gây ra bởi CTRL +Space ... (mà không được chính xác những gì bạn đang tìm kiếm)


để cụ thể hơn, các loại automatic auto-completion (hoàn thành trong khi bạn đang gõ, với một "chung" hay "Tất cả" danh sách hoàn tất có thể) bạn có trong Visual Studio không có trong Eclipse (thực sự đọc dưới đây):

alt text

Original câu trả lời Tháng 1 năm 2010:

Ít nhất, không phải không có một plugin cống hiến.
Và ngay cả với plugin đó, nó sẽ phải theo một TemplateCompletionProcessor, có nghĩa là cần một danh sách các ký tự được kích hoạt cho biết hoàn thành (một lần nữa, không phải những gì bạn đang tìm), bằng cách xác định lại phương pháp getCompletionProposalAutoActivationCharacters().

Cập nhật tháng 11 năm 2011:

Cristi đề cập trong his answer (upvoted) một cách giải quyết rất lớn, trong đó bao gồm việc thêm tất cả các chữ như Auto kích hoạt gây ra cho java.
Xem thêm "Automatically opening completion window in Eclipse".

Từ thread "Eclipse auto-completion":

Windows -> Preferences -> Java -> Editor -> Content Assist 
  • Set chậm trễ: 0 (trên thực tế> 0 là tốt hơn: 50, nó tránh được chọn CPU vì nghe liên tục)
  • Set trigger để:
 
    .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV [email protected] 

content assist options

+1

Tôi biết rằng, và tôi đã viết như một phần của câu hỏi mà tôi không muốn làm điều này, vì nó là vô lý ngu ngốc để thêm tất cả các lớp trong Java vào bộ lọc! –

+0

@Claus: ngay cả khi bạn có thể nhập các gói thay thế? Nhưng dù sao, tôi không biết về các cơ chế "tự động hoàn thành" khác. – VonC

+1

Như tôi đã viết, tôi muốn chỉ hiển thị các gói đã nhập, không lọc ra mọi thứ tôi không cần. –

1

Hoàn thành được kích hoạt khi nhấn ".", Nếu đó là những gì bạn đang gọi là "tự động hoàn thành trước". Đây là những gì Visual Studio cũng làm, trừ khi bạn đang đề cập đến một tính năng Visual Studio tôi không biết.

Hoàn thành giới hạn đối với các gói nhập khẩu duy nhất mà tôi nghĩ là một điều hơi không chính thống; bạn buộc phải dựa vào nhập khẩu ký tự đại diện để xác định nhóm các loại để hoàn thành. Tôi nghĩ rằng hầu hết người dùng sẽ xem xét rằng ít hơn hữu ích. Mặc dù vậy, bạn được phép xây dựng trên trường hợp sử dụng của bạn cho điều này. Ví dụ: tại sao bạn muốn loại trừ tất cả các lớp Java khỏi hoàn thành?

BTW, sử dụng "bộ lọc loại" (như VonC gợi ý) không yêu cầu bạn thêm tất cả các lớp. Tôi thường (trên toàn cầu) loại trừ java.awt.*, sun.com.*, org.omd.* và một số loại khác. Eclipse cũng phân loại hoàn thành theo một (loại nhạy cảm) heuristic mà thường kết quả trong các loại có liên quan nhất được hiển thị ở đầu trang. Ví dụ: tự động hoàn thành bên trong cuộc gọi phương thức sẽ đặt các biến phù hợp với chữ ký loại phương thức ở trên cùng.

+0

Tôi không có quyền truy cập vào bất kỳ .NET-enabled VS nào tại thời điểm này để thử, nhưng làm thế nào là hoàn thành hiển thị? Một trình đơn thả xuống giống như trình đơn được kích hoạt trên "." có vẻ hơi xâm lấn. – JesperE

+0

@Claus, tôi tìm thấy nó xâm lấn, bởi vì đôi khi tôi muốn gõ tên của một phương pháp mà tôi chưa viết nhưng tôi đang lập kế hoạch để viết trong một vài phút. Nó rất khó hiểu khi VS "sửa chữa" chính tả của tôi bằng cách thay thế tên của một lớp từ khung công tác. – finnw

+0

Ồ, thú vị - bạn có thể thêm các thẻ hoang dã - đó là * loại * tốt hơn. – BrainSlugs83

14

Câu trả lời của tôi có thể đến quá muộn, nhưng có thể sẽ giúp những người khác tìm kiếm tính năng này trong nhật thực. Cách giải quyết này phù hợp với tôi (helios eclipse):

Đi đến Windows -> Preferences -> Java -> Editor -> Content Assist. Ở đây, bật Tự động kích hoạt và đặt Tự động trì hoãn kích hoạt thành giá trị thấp, giả sử 50 ms. Sau đó, giải pháp thay thế: Trong Trình kích hoạt tự động kích hoạt cho java, chỉ cần đặt tất cả các ký tự: abcdefghijklmnopqrstuvwxyz.

Và ở đó bạn đi, chỉ cần gõ một cái gì đó.

0

Tôi biết rằng Claus đã nói về Java trong phần thứ hai của câu hỏi, nhưng câu hỏi chung là về bất kỳ ngôn ngữ nào trong Eclipse (không có thẻ Java ở đây), vì vậy sau đây có thể được sử dụng để python eclipse coders:

Đi tới Windows -> Preferences -> PyDev -> Editor -> Code Completion. Ở đây, chọn hộp bên cạnh "Yêu cầu hoàn thành trên tất cả các ký tự chữ cái và '_'?".

(Cố tương tự như câu trả lời của Cristi.)

Các vấn đề liên quan