首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RCP应用程序中使用Groovy-Eclipse插件中的Groovy编辑器

在RCP应用程序中使用Groovy-Eclipse插件中的Groovy编辑器
EN

Stack Overflow用户
提问于 2015-11-05 19:11:00
回答 1查看 297关注 0票数 0

我正在开发一个使用Groovy作为脚本语言的RCP应用程序。我包含了Groovy-Eclipse插件,以便应用程序的用户能够使用Groovy编辑器在应用程序中编写Groovy代码。

Groovy脚本必须使用应用程序中的一些Java类,如何在Groovy编辑器中为这些类添加可见性,以便尽可能透明地为用户提供代码完成等功能。

为了执行Groovy脚本,我使用GroovyShell并向传递给GroovyShell构造函数的绑定添加了一个属性。

这个属性是一个映射,我在其中放置了一些与应用程序相关的对象:

代码语言:javascript
复制
HashMap<String, Object> plx = new HashMap<String, Object>();
plx.put("element", new Element("xxx"));
Binding binding = new Binding();
binding.setProperty("plx", plx);

假设元素是这样定义的Java类

代码语言:javascript
复制
class Element
{
  String name;
  public Element(String name)
  {
    this.name = name;
  }
  public String getName()
  {
    return name;
  }
 }

我可以毫无问题地编写和执行以下Groovy脚本

代码语言:javascript
复制
println plx.element.name

我得到了正确的结果: xxx

我遇到的问题是,当我在应用程序中编辑脚本时,我不知道如何修改编辑器使用的类路径,让它解析Element类以启用代码完成。

EN

回答 1

Stack Overflow用户

发布于 2015-11-05 19:55:13

您是要在每次执行RCP中的脚本时启动一个新的VM,还是要在当前运行RCP的同一个VM中运行Groovy脚本。你的问题对我来说有点太笼统了。如果是后者,请确保您已将Java类添加到插件依赖项中,否则它不会在运行时解析,而只是在编译时解析。

如果您希望使用您的类而不在脚本中显式导入它们,则可以透明地添加导入。http://www.jroller.com/melix/entry/customizing_groovy_compilation_process

您还可以通过绑定将任何服务或实例注入脚本。它基本上是一个键值的映射。

一旦您的Java类位于类路径中,就可以在您的脚本中使用内容辅助。如果您需要在内容辅助建议中进一步定制,请查看这篇很棒的帖子,以获得有关实际实现的更多详细信息。http://contraptionsforprogramming.blogspot.de/2009/12/extending-groovy-eclipse-for-use-with.html

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33543076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档