2016-09-21 8 views
0

Некоторые введение: Я пишу плагин, который использует Xtext. Этот плагин открывает Eclipse Xtext и когда пользователь нажимает кнопку на этом затмении, мой плагин вычисляет что-то на INode-s. Затем, учитывая некоторый список INode, я хочу выделить (подчеркивать + маркеры) строки, соответствующие INodes , без повторного запуска затмения.Xtext: Выполнить функции, такие как проверка по запросу

Я думаю, что лучший способ сделать это - вызвать конкретный валидатор (если это невозможно, повторить запуск всех валидаторов тоже по требованию). Как я могу сказать Xtext, чтобы запустить валидатор после того, как он уже запущен?

Еще один способ, которым я думал, - использовать SemanticHighlight для данного списка INodes. Но это, вероятно, та же проблема, что и выше.

Спасибо.

+0

Что вы имеете в виду «без повторного запуска затмение «? Перезапускаете ли вы весь рабочий стол Eclipse каждый раз, когда вы меняете файл? –

+0

Нет. Я не перезапускаю. Я хочу сказать, что я хочу повторно запустить валидаторы (например) из кода плагина без каких-либо специальных действий с клиентом (закрытие и открытие вкладки файла, перезапуск eclipse и т. Д.), –

ответ

1

Проверка подлинности Xtext обычно интегрируется в процесс сборки Eclipse и, следовательно, не требуется никаких действий пользователя при условии, что включена автоматическая сборка. Пожалуйста, обратитесь к http://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#custom-validation

Если вы действительно нужен доступ к узлу модели (т.е. с индексным дескриптором), вы можете получить доступ к нему с помощью NodeModelUtils.findActualNodeFor (EObject)