This version of the page http://forum.jug.com.ua/index.php?showtopic=1882 (0.0.0.0) stored by archive.org.ua. It represents a snapshot of the page as of 2008-09-24. The original page over time could change.
Как из Eclipse Plug-in работать с текущим исходником - JUG Forums
JUG UA Forums

Welcome Guest ( Log In | Register )

 
 Как из Eclipse Plug-in работать с текущим исходником
Options
seva
20.3.2008, 11:07
Post #1


Member


Group: Members
Posts: 10
Joined: 20.3.2008
Member No.: 2 337



читал туториал http://www-128.ibm.com/developerworks/ru/e...n/section2.html
сделал как написано вроде все работает.

решил не много переделать так чтобы при нажатии на кнопке в моем view plug-in
производился подсчет не пустых строк текущего исходника

как обратится к тексту текущего исходника открытого в Eclipse, побегать по его строкам итератором и т.д.

в тутореале для поиска IMarker.TASK'ов применялся такой код
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot workspaceRoot = workspace.getRoot();
IMarker[] imarkers = workspaceRoot.findMarkers(IMarker.TASK, true,IResource.DEPTH_INFINITE);

я смотрел документацию для интерфейсов IWorkspace, IWorkspaceRoot, IMarker
но не догадался как решить мой вопрос?
zhou
20.3.2008, 11:34
Post #2


Advanced Member


Group: Members
Posts: 114
Joined: 6.5.2005
Member No.: 18



Статью читать лень

Как я понимаю - задача - в текущем активном редакторе посчитать пустые строки?
1. Надо получить текущий редактор (PlatformUI.getWorkbench.getActiveWindow.getActivePage.getActiveEditor или как-то так)
2. Скорее всего он будет ITextEditor - но стоит попробовать через getAdapter его привести к текстовому редактору (на случай всяких Multipage и прочих нестандартных редакторов)
3. Получить IDocument и там уже считать строки.

Если я неправильно понял задачу, прошу прощения.
seva
21.3.2008, 5:30
Post #3


Member


Group: Members
Posts: 10
Joined: 20.3.2008
Member No.: 2 337



я добрался до ITextEditor но от него нельзя получить IDocument только IDocumentProvider

у которого есть метод IDocument getDocument(Object element);

в документации про него сказано

Returns the document for the given element. Usually the document contains a textual presentation of the content of the element, or is the element itself.

Parameters:
element - the element, or null
Returns:
the document, or null if none

если в параметр передать null то и ссылка на IDocument будет null.
еще пробовал :
IDocument document = textEditor.getDocumentProvider().getDocument(textEditor);
и вот так
IDocument document = textEditor.getDocumentProvider().getDocument(iEditorPart);
ни как не выходит.

в связи с чем у меня такой вопрос :

ссылку на какой объект следует передать в качестве параметра, чтоб всетаки добратся до IDocument'а ???


zhou
21.3.2008, 9:50
Post #4


Advanced Member


Group: Members
Posts: 114
Joined: 6.5.2005
Member No.: 18



Ну, у моих редакторов можно IDocument получить , так я и не помню - можно ли у любых.

Я не помню, попробуй вызвать IDocumentProvider::getDocument(editor.getEditorInput()). Или уже выковыривать Storage...
seva
21.3.2008, 10:07
Post #5


Member


Group: Members
Posts: 10
Joined: 20.3.2008
Member No.: 2 337



Спасибо помогло.
« Next Oldest · Java Programming · Next Newest »
 

1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Display Mode: Standard · Switch to: Linear+ · Switch to: Outline

Track this topic · Email this topic · Print this topic · Subscribe to this forum

Lo-Fi Version Time is now: 24.9.2008, 10:16