如何设置gdsl groovy脚本基础对象

时间:2017-02-03 15:01:49

标签: intellij-idea groovy dsl groovyshell

让主java类评估groovy scipt

Binding binding = new Binding();
binding.setProperty("text", "some text");

CompilerConfiguration configuration = new CompilerConfiguration();
configuration.setScriptBaseClass(MyBaseClass.class.getName());

GroovyShell groovyShell = new GroovyShell(binding, configuration);
result = groovyShell.evaluate(file);

要在idea(和其他IDE)中使用自动完成groovy脚本,我使用gdsl文件

def ctx = context(scope: scriptScope())

contributor(ctx) {
    property name: "text", type: "java.lang.String"
    method name: 'annotate', type: 'void', params: [closure: 'groovy.lang.Closure']
}

但是我想要使用gdsl MyBaseClass来获取IDE提示并使用我所有的类方法自动完成。

1 个答案:

答案 0 :(得分:0)

试试此代码

def ctx = context(scope: scriptScope())

contributor(ctx, {
    delegatesTo(findClass('com.example.MyBaseClass'))
})