2013-11-24 3 views
1

Я пытаюсь прослушивать коды в eclipse с помощью плагина. В Затмении help-files я нашел слушателя:Получить коды в Eclipse (в прямом эфире)

IResourceChangeListener 

Но, похоже, обновить, когда файл будет сохранен, а не при записи в него. Есть ли возможность, чтобы эти изменения были «живыми»?

EDIT: При изменении кода я имею в виду, что вы редактируете содержимое файла в редакторе eclipse. Основном, WAHT мне нужно, это событие caling, когда вы печатаете что-то;)

EDIT2: Мой код выглядит следующим образом:

plugin.xml:

<extension 
    point="org.eclipse.core.resources.fileModificationValidator"> 
    <fileModificationValidator 
     class="packages.in.project.MyFileModificationValidator"> 
    </fileModificationValidator> 

MyFileModificationValidator:

package packages.in.project; 

import org.eclipse.core.resources.IFile; 
import org.eclipse.core.resources.team.FileModificationValidationContext; 
import org.eclipse.core.resources.team.FileModificationValidator; 
import org.eclipse.core.runtime.IStatus; 

public class MyFileModificationValidator extends FileModificationValidator { 

@Override 
public IStatus validateEdit(IFile[] files, FileModificationValidationContext context) { 
    System.out.println("Modified!"); 
    return null; 
} 

@Override 
public IStatus validateSave(IFile file) { 
    return null; 
} 

} 
+0

Что вы хотите сделать с уведомлением об изменении? Возможно, редактор Java предлагает лучший способ сделать то, что вам нужно. –

+0

@ greg-449 Я хочу отправить изменения на сервер;) – Xenira

ответ

0

получил ответ;)

Я использовал IDocumentListener для получить изменения в редакторе.

@Override 
public void documentChanged(DocumentEvent event) { 
    //... 
} 
0

Что такое «смена кода»? ... потому что ваш случай использования не очень ясен, provi ding вас не интересует изменение физического ресурса (когда оно сохранено)

Является ли «изменение кода» каким-либо изменением в памяти содержимого исходного файла? Если это так, ответ НЕТ. Я мог бы написать программу для чтения файла, чтобы сделать что-то с содержимым в памяти, и вы бы не заметили, если я не создам механизм для этого.

В резюме все зависит от того, кто имеет доступ, и если они предоставляют механизм для уведомления о том, что они выполняют «изменение кода», что бы это ни значило для вас. Для изменения физических ресурсов вы были правы, что Eclipse уведомляет об этом для вас, а интерфейс IResourceChangeListener является правильным для использования, чтобы быть в курсе этих изменений.

0

IResourceChangeListener - хорошее начало. Вы можете использовать это для обнаружения изменений в ресурсах рабочей области.

Вы также должны изучить внедрение FileModificationValidator. Валидатор модификации файлов - это связанный с командой крючок для операций предварительной проверки, которые изменяют содержимое файлов. Вы можете реализовать как validateEdit, так и validateSave.

+0

Я не получаю работу Validator:/Я получаю это сообщение при сохранении, но ничего не происходит!! ENTRY org.eclipse.core.resources 4 1 2013-11- 24 16: 36: 33.270 ! СООБЩЕНИЕ Должно быть ровно 0 или 1 расширения валидатора, определенные в точке расширения fileModificationValidator. ' – Xenira

+0

Убедитесь, что вы правильно зарегистрировали валидатор. см. http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresAdv_hooks.htm – cmd

+0

Не могли бы вы посмотреть мой код? отредактированный вопрос;) – Xenira

Смежные вопросы