2013-07-29 21 views

Trả lời

9

Trong ngữ cảnh nào? Nếu bạn đang ở trong một hành động, bạn có thể chỉ cần lấy mọi thứ từ ActionEvent, ví dụ:

e.getData(LangDataKeys.EDITOR).getDocument().getText(); 

(Khi e là AnActionEvent).

Nếu không, bạn có thể lấy nó từ dự án:

FileEditorManager.getInstance(project).getSelectedTextEditor().getDocument().getText(); 
+0

Câu hỏi liên quan: nếu bạn muốn tên tệp của tệp hiện đang mở, bạn phải nhảy qua một số vòng bổ sung: – rob74

9

Chỉ trong trường hợp ai đó đang tìm kiếm này - nếu bạn muốn tên tập tin của tập tin đang mở, bạn phải nhảy qua một số hoops thêm:

Document currentDoc = FileEditorManager.getInstance(project).getSelectedTextEditor().getDocument(); 
VirtualFile currentFile = FileDocumentManager.getInstance().getFile(currentDoc); 
String fileName = currentFile.getPath() 

(thấy điều này bằng cách nhập "getSelectedTextEditor filename" trong tìm kiếm Github - đôi khi bạn chỉ cần có một con trỏ đi đúng hướng ...)

+1

Tôi đang cố gắng làm như vậy, nhưng không thành công khi nhận dự án: 'public void actionPerformed (AnActionEvent e) {Project project = e.getProject(); ... '- nó là null, bằng cách nào đó. Tôi đang làm gì sai? – t1gor

+0

'ProjectManager.getInstance(). GetOpenProjects()' sẽ giúp ... – Simon