2011-07-26 53 views
7

Tôi đã cố gắng lấy số dòng và số cột của vị trí con trỏ trong TextEditor của jface. Tôi đã thử hàm getCursorPosition(). Nhưng khi in, nó chỉ hiển thị chữ "?". Xin lưu ý rằng tôi cần số dòng và số cột trong trình chỉnh sửa chứ không phải đối với màn hình. Tôi thấy rằng có một hàm JTextArea.getCaretPosition. Nhưng tôi không biết làm thế nào để chuyển đổi một trình soạn thảo văn bản để JTextArea. Ngoài ra, có thể đọc từ nơi con trỏ được đặt không?Cách lấy vị trí con trỏ trong nhật thực TextEditor

Cảm ơn

Trả lời

8

Từ TextEditor, bạn có thể nhận tài liệu, nhà cung cấp tài liệu và lựa chọn. Điều đó sẽ cho phép bạn truy cập vào bù trừ con trỏ hiện tại.

ITextEditor editor = (ITextEditor) editorPart 
     .getAdapter(ITextEditor.class); 
IDocumentProvider provider = editor.getDocumentProvider(); 
IDocument document = provider.getDocument(editorPart 
     .getEditorInput()); 
ITextSelection textSelection = (ITextSelection) editorPart 
     .getSite().getSelectionProvider().getSelection(); 
int offset = textSelection.getOffset(); 
int lineNumber = document.getLineOfOffset(offset); 

IDocument cung cấp các phương pháp khác để bắt đầu dòng (bạn có thể tính cột từ đó).

Để biết thêm thông tin, xem http://wiki.eclipse.org/The_Official_Eclipse_FAQs#Text_Editors

+0

lỗi kể từ khi chuyển đổi là không kiểm tra – Chameleon

+0

tâm rằng điều này không có được vị trí của caret thực tế, nhưng việc lựa chọn. Các dấu mũ có thể được đặt ở một trong hai đầu của việc lựa chọn. – Lii

+1

Tôi không thể thực sự có được vị trí mà không chọn một phần trong trình chỉnh sửa? –

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