是否可以找出用Eclipse编辑器编写的代码是否有效,并相应地禁用/启用上下文菜单按钮?

时间:2019-03-29 14:23:25

标签: eclipse eclipse-plugin dsl xtext

我正在使用Xtext为我的DSL创建Eclipse插件,并且需要为我的编辑器添加上下文菜单项(我已经做了),但是需要找出编辑器中的代码是否有效,如果是,则->这菜单项应启用,否则禁用。是否可以检查整个代码是否有效并相应地更新此上下文菜单项的状态? 我通过将此片段添加到Xtext的.ui项目中的plugin.xml文件中来添加此上下文菜单项。

<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 :(得分:0)

您可以使用编辑器批注模型来查找是否存在任何错误。 参见org.eclipse.xtext.ui.editor.XtextEditorErrorTickUpdater.getSeverity(XtextEditor) 有关如何检索和过滤注释的示例。该类用于在出现错误的情况下在编辑器图标中显示红色的x