Точка расширения для предоставления пользовательских процессоров поддержки контента в Eclipse
-
22-09-2019 - |
Вопрос
Я пишу плагин eclipse, чтобы добавить лучшую поддержку файлов свойств.Одна из недостающих частей - это content-assist ...Я бы хотел показать соответствующие ключи свойств, когда пользователь начинает вводить некоторую строку и нажимает клавишу content assist.
Например, когда у меня есть свойство hello = world
в одном из моих файлов свойств, и я начинаю вводить format("hel
и ударил CTRL+Космос теперь я хотел бы видеть доступные hello
собственность.
Моя проблема в том, что я не могу найти правильную точку расширения для предоставления пользовательского процессора поддержки контента.Как я могу предоставить свой собственный процессор поддержки контента для текстовых файлов?Я бы хотел, чтобы это работало в основном в файлах Java, JSP и XML.
Решение
Я уже искал такую точку расширения раньше, но безуспешно.Насколько я знаю, таким образом невозможно добавить новые типы вспомогательных функций для редакторов в Eclipse.
Другие советы
Вы можете сделать это, объявив расширение для:
org.eclipse.jdt.ui.javaCompletionProposalComputer
Вот этот справочная страница для начала.
Вы можете найти демо-проект здесь
Вы можете создать проект плагина, опция "плагин с редактором", там есть небольшой редактор языка XML с раскраской синтаксиса (этот класс поможет вам узнать классы для расширения).Вспомогательный компонент по содержимому не используется, но вы можете добавить его, просмотрев эти часто задаваемые вопросы
Синтаксическая раскраска http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Feditors_highlighting.htm
Помощник по контенту http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Feditors_contentassist.htm
Единственное, что я пытаюсь найти, - это добавить информацию, подобную JavaDoc, в предложение для определенного помощника.В FAQ что-то сказано, но я действительно этого не понимаю.
Надеюсь, это поможет.
Если файлы свойств могут следовать за Грамматика EBNF, тогда вы могли бы дать Eclipse Xtext ( Текст ) выстрел
Xtext - это платформа для разработки языков, специфичных для текстовой предметной области (DSL).
Просто опишите свой собственный DSL, используя простой язык грамматики EBNF Xtext, и генератор создаст синтаксический анализатор, модель AST-meta (реализованную в EMF), а также полнофункциональный текстовый редактор Eclipse на основе этого.
альтернативный текст http://www.eclipse.org/Xtext/images/screenshot-title.png
Платформа интегрируется с технологиями Eclipse Modeling, такими как EMF, GMF, M2T и частями EMFT.
Разработка с использованием Xtext оптимизирована для коротких этапов, так что добавление новых функций к существующему DSL занимает считанные минуты.Тем не менее, могут быть реализованы сложные языки программирования.
В противном случае вы можете найти какой-нибудь пример content assist в этот поток, или этот (JSDT -- JavaScript)
Похоже, IContentProposalProvider может быть тем, что я ищу, но по-прежнему нет точки расширения.
Видишь это: http://www.vogella.de/articles/RichClientPlatform/article.html#fieldassist
Это решение не основано на расширении, но все равно может принести вам пользу.
Взгляните на
за идеями для редактора wst xml и, возможно, других типов редакторов