在我目前的项目中,开发人员使用Domain特定语言编写高级规范,然后编译此规范并使用Java和Android等目标编程语言生成代码。开发人员主要编写四种规范(如下图所示):vocab.mydsl
,arch.mydsl
,interaction.mydsl
和deploy.mydsl
。
现在,为了单独编译每个规范文件,我在Eclipse插件中开发了弹出菜单。供您参考,我正在显示一个词汇表规范的弹出菜单。在这里,开发人员右键单击,然后转到 IoTSuite 弹出菜单,然后再转到编译域规范弹出菜单。
此处,问题是当我右键单击vocab.mydsl
时,所有四个弹出菜单都出现了。理想情况下,当我右键单击vocab.mydsl
时,它应仅显示编译域规范弹出菜单。类似地,当我右键单击arch.mydsl
时,它应仅显示编译架构规范弹出菜单。这也适用于其他规格。
我应该如何在Eclipse插件中启用此功能?如果您需要更多信息以便进一步明确,请告诉我。
plugin.xml的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
objectClass="org.eclipse.core.resources.IFile"
id="org.example.helloworld.contribution1">
<menu
label="IoTSuite"
path="additions"
id="org.example.helloworld.menu1">
<separator
name="group1">
</separator>
</menu>
<action
label="Compile Domain Spec"
class="org.example.helloworld.popup.actions.GenerateVocabularyFramework"
menubarPath="org.example.helloworld.menu1/group1"
enablesFor="1"
id="org.example.helloworld.newAction">
</action>
<action
class="org.example.helloworld.popup.actions.GenerateArchitectureFramework"
id="org.example.helloworld.action2"
label="Compile Architecture Spec"
menubarPath="org.example.helloworld.menu1/group1">
</action>
<action
class="org.example.helloworld.popup.actions.GenerateInteractionFramework"
id="org.example.helloworld.action3"
label="Compile User Interaction Spec"
menubarPath="org.example.helloworld.menu1/group1">
</action>
<action
class="org.example.helloworld.popup.actions.GenerateDeploymentFramework"
id="org.example.helloworld.action4"
label="Compile Deployment Spec"
menubarPath="org.example.helloworld.menu1/group1">
</action>
</objectContribution>
</extension>
</plugin>