Можно ли узнать, действителен ли код, написанный в редакторе Eclipse, и соответственно отключить / включить кнопку контекстного меню? - PullRequest
0 голосов
/ 29 марта 2019

Я создаю плагин Eclipse для моего DSL, используя Xtext, и мне нужно добавить пункт контекстного меню для моего редактора (что я уже сделал), но мне нужно выяснить, является ли код в редакторе действительным, если да -> этопункт меню должен быть включен, иначе отключен.Можно ли как-нибудь проверить, является ли весь код действительным, и соответствующим образом обновить состояние этого пункта контекстного меню?Я добавил этот пункт контекстного меню, добавив этот фрагмент в файл plugin.xml в проекте .ui в Xtext.

<extension point="org.eclipse.ui.menus">
        <menuContribution locationURI="popup:#TextEditorContext?after=additions">
            <command commandId="org.first.langu.ui.handler.InterpreterCommand" style="push">
                <enabledWhen checkEnabled="true">
                    <reference definitionId="org.first.langu.Program.XtextEditor.opened"/>
                </enabledWhen>
            </command>
        </menuContribution>
    </extension>
    <extension point="org.eclipse.ui.commands">
        <command id="org.first.langu.ui.handler.InterpreterCommand" name="Interpret Code"/>
    </extension>
    <extension point="org.eclipse.ui.handlers">
        <handler
                class="org.first.langu.ui.ProgramExecutableExtensionFactory:org.first.langu.ui.handler.InterpretCodeHandler"
                commandId="org.first.langu.ui.handler.InterpreterCommand"/>
    </extension>

По сути, мне нужно проверить, действителен ли код в редакторе, а не открывать ли редактор.

1 Ответ

0 голосов
/ 29 марта 2019

Вы можете использовать модель аннотации редактора, чтобы узнать, есть ли какие-либо ошибки.см. org.eclipse.xtext.ui.editor.XtextEditorErrorTickUpdater.getSeverity(XtextEditor) для примера того, как получить и отфильтровать аннотации.этот класс используется для отображения красного x на значке редактора при наличии ошибок

...