Это, безусловно, интересный проект. Как отмечает Гилберт Ле Блан, редактор Java высоко оптимизирован для редактирования кода Java и не предназначен для расширения.
При этом я могу порекомендовать два варианта (один, который играет по правилам, и другой, который идет против них).
- Вместо встраивания ваших изображений непосредственно в редактор Java, вы можете реализовать свое собственное наведение курсора через точку расширения org.eclipse.jdt.ui.JavaEditorTextHovers (так, чтобы оно работало как при наведении курсора JavaDoc), или в отдельном представлении, которое сидит рядом с редактором (так что он будет работать как представление JavaDoc). (Это игра по правилам.)
- Некоторое время назад я реализовал редактор прототипов, который позволяет редактировать код Java с помощью фрагментов CAL (функциональный язык JVM), встроенных в него. Фрагменты были сохранены в собственном маленьком окошке внутри редактора. Это был прототип, и не все работало гладко, и он также использовал Eclipse 3.2, но это именно то, что вы хотите сделать. Скомпилировать и запустить код будет непросто, но вы можете взглянуть на него ... ну, может быть. Я должен найти вариант исходного кода EPL. А пока просто осознайте, что для того, чтобы взломать Java-редактор, как это, требуются некоторые специальные знания о JDT, и вам нужно быть осторожным с тем, как вы это делаете, чтобы случайно не сломать другие вещи.
Редактировать
Вот zip проекта, который я описал. Он не скомпилируется как есть, но вы можете посмотреть исходный код:
Попробуйте эту ссылку . Это должно быть видно миру.
Необходимо понять, что виджеты SWT StyledText могут сами содержать другие виджеты. Этот проект использует это в редакторах Java.
В частности, посмотрите на класс org.openquark.cal.eclipse.embedded.containing.ContainingEditor
, который является подклассом CompilaitonUnitEditor. Этот конкретный класс внедряет второй текстовый редактор (содержащийся редактор) внутри другого редактора (содержащий редактор).
Кроме того, взгляните на org.openquark.cal.eclipse.embedded.conisting.ControlManager. Этот класс управляет различными элементами управления внутри стилизованного текста содержащего CompilationUnitEditor.
Этот проект создает Java-подобный редактор и позволяет пользователям встраивать редакторы для другого языка в редактор Java. Эти редакторы на самом деле поддерживаются текстом в содержащем их редакторе Java, но текст покрывается включенным редактором.
Содержащие редакторы перемещаются вверх и вниз по мере ввода текста в содержащий редактор. Кроме того, вы можете использовать клавиатуру, чтобы получить / потерять фокус в отдельном редакторе.
Прошло несколько лет с тех пор, как я посмотрел этот код, но если у вас есть какие-либо вопросы, напишите мне или добавьте к этому вопросу.