2009-12-30 30 views
8

Tôi đang viết plugin eclipse để thêm hỗ trợ tốt hơn cho các tệp thuộc tính. Một trong những phần bị thiếu là hỗ trợ nội dung ... Tôi muốn hiển thị các khóa thuộc tính phù hợp khi người dùng bắt đầu nhập một số chuỗi và nhấn phím hỗ trợ nội dung.Điểm mở rộng để cung cấp bộ xử lý hỗ trợ nội dung tùy chỉnh trong Eclipse

Ví dụ, khi tôi có tài sản hello = world thuộc một trong các file tài sản của tôi, và tôi bắt đầu gõ format("hel và nhấn tổ hợp phím CTRL + SPACE bây giờ, tôi muốn xem có sẵn tài sản hello.

Vấn đề của tôi là tôi không thể tìm thấy điểm mở rộng chính xác để cung cấp bộ xử lý hỗ trợ nội dung tùy chỉnh. Tôi có thể cung cấp bộ xử lý hỗ trợ nội dung của riêng mình cho các tệp văn bản bằng cách nào? Tôi muốn làm cho nó hoạt động chủ yếu trong các tệp Java, JSP và XML.

Trả lời

3

Tôi đã tìm kiếm một điểm mở rộng như vậy trước đây mà không thành công. Theo tôi biết, không thể thêm các loại nội dung mới hỗ trợ cho các trình soạn thảo trong Eclipse theo cách này.

+1

Cảm ơn bạn rất nhiều David Bạn xác nhận sự thất bại của tôi khi tìm thấy điểm mở rộng như vậy. Tôi chỉ có thể thêm các trình trợ giúp hỗ trợ nội dung cho các trình soạn thảo cụ thể, có các điểm mở rộng riêng (một số trong chúng ... có vẻ như là trình soạn thảo Java có khả năng như vậy). –

1

Nếu thuộc tính tập tin có thể làm theo một EBNF grammar, sau đó bạn có thể cung cấp cho Eclipse Xtext một shot

Xtext là một khuôn khổ cho sự phát triển của ngôn ngữ miền văn bản cụ thể (DSL).
Chỉ mô tả DSL của riêng bạn bằng ngôn ngữ ngữ pháp EBNF đơn giản của Xtext và trình tạo sẽ tạo trình phân tích cú pháp, mô hình AST-meta (được thực hiện trong EMF) cũng như trình soạn thảo văn bản Eclipse đầy đủ tính năng từ.

alt text http://www.eclipse.org/Xtext/images/screenshot-title.png

Khung tích hợp với công nghệ từ Eclipse Modeling như EMF, GMF, M2T và các bộ phận của EMFT.
Phát triển với Xtext được tối ưu hóa cho các vòng xoay ngắn, để thêm các tính năng mới vào DSL hiện có chỉ là vài phút. Ngôn ngữ lập trình vẫn tinh vi có thể được thực hiện.


Nếu không, bạn có thể tìm thấy một số ví dụ về nội dung hỗ trợ this thread, hoặc this one (JSDT - JavaScript)

+0

Cảm ơn bạn đã trả lời. Câu hỏi của tôi có thể không rõ ràng, vì đây không phải là những gì tôi đang tìm kiếm. Các tệp thuộc tính không được mô tả bằng ngữ pháp, nhưng được chỉ rõ trong javadoc cho phương thức Properties.load() (http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#load% 28java.io.InputStream% 29). Hai chủ đề bạn tham chiếu là dành riêng cho WTP/DLTK. Tôi đang tìm kiếm điểm mở rộng hỗ trợ nội dung chung sẽ hoạt động với hầu hết các trình chỉnh sửa văn bản. Các chủ đề được tham chiếu này có thể chỉ ra rằng các bộ xử lý hỗ trợ nội dung luôn luôn cụ thể cho loại trình soạn thảo đã cho, điều này sẽ không tốt :-( –

0

Hình như IContentProposalProvider có thể những gì tôi đang tìm kiếm, nhưng vẫn không có điểm mở rộng .

0

Xem này: http://www.vogella.de/articles/RichClientPlatform/article.html#fieldassist

không phải là mở rộng dựa trên giải pháp này, nhưng vẫn có thể có lợi cho bạn.

+0

Xin cảm ơn, nhưng điều này chỉ hữu ích khi thêm hỗ trợ nội dung cho trình chỉnh sửa của riêng bạn. Tôi muốn đóng góp nội dung hỗ trợ cho các trình chỉnh sửa hiện có được tạo bởi các plugin khác. –

8

Bạn có thể làm điều đó bằng cách tuyên bố một mở rộng:

org.eclipse.jdt.ui.javaCompletionProposalComputer 

Đây là số reference page để bắt đầu.

Bạn có thể tìm thấy một dự án trình diễn here

2

Bạn có thể tạo một dự án plug-in, tùy chọn, "plug-in với một biên tập viên", có một trình soạn thảo ngôn ngữ XML nhỏ với màu cú pháp (lớp này sẽ giúp bạn biết các lớp cho phần mở rộng). Nội dung hỗ trợ không được sử dụng, nhưng bạn có thể thêm nó tìm Câu Hỏi Thường Gặp này

Cú pháp màu http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Feditors_highlighting.htm

Content Trợ lý http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Feditors_contentassist.htm

Điều duy nhất mà tôi đang cố gắng tìm là thêm thông tin như JavaDoc đề xuất cho trợ lý được xác định. Trong phần Câu hỏi thường gặp, hãy nói điều gì đó nhưng tôi thực sự không hiểu.

Hy vọng điều đó sẽ hữu ích.

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