O assistente de conteúdo do Eclipse não está funcionando para objetos Java nos arquivos Groovy
Eu encontrei esta perguntaEclipse Groovy e preenchimento automático e estou enfrentando o mesmo problema, no entanto, há quase três anos e estou usando a versão atual doEclipse Groovy plugin e não parece haver nenhum erro de sintaxe que seria confusoANTLR.
Eu também tentei usar oConjunto de ferramentas Groovy / Grailse obteve os mesmos resultados.
Simulei um caso de teste simples, no qual o assistente de conteúdo funciona paraGroovy métodos de objetos e paraJava membros estáticos dos objetos, mas nãoJava métodos de objetos.
A classe Groovy:
package test_groovy
import test_groovy.FooJava
class FooGroovy
{
def fooJava = [2, "baz"] as FooJava
def x = 4
def FooGroovy()
{
// empty constructor
}
def useFooJava()
{
// only displays Groovy methods, not the java ones
def str = fooJava.getStr()
println "str: ${str}"
// static members like this *can* be found via content assist
def str2 = FooJava.FOO_STR
println "str2: ${str2}"
// This is also not found via content assist
def str3 = fooJava.dumpToStr()
println "str3: ${str3}"
}
def fooBar()
{
return x + 3
}
static void main(def args)
{
def fooGroovy = [] as FooGroovy
// Groovy object methods can be found via content assist
def res = fooGroovy.fooBar()
println "res: ${res}"
fooGroovy.useFooJava()
}
}
A classe Java:
package test_groovy;
public class FooJava
{
private long bar;
private String str;
public static final String FOO_STR = "foo";
public FooJava(long bar, String str)
{
super();
this.bar = bar;
this.str = str;
}
public long getBar()
{
return bar;
}
public void setBar(long bar)
{
this.bar = bar;
}
public String getStr()
{
return str;
}
public void setStr(String str)
{
this.str = str;
}
public String dumpToStr()
{
return new String("Str: " + str + ", bar: " + bar);
}
}
estou usandoEclipse Kepler Service Release 2,Groovy compilador 2.0.7 eEclipse Groovy versão do plugin 2.8.0.xx-20130703-1600-e43-RELEASE.
Debaixo deJava> Editor> Assistente de Conteúdo> Avançado menu de preferências, verifiquei se todas asJava as opções estão desmarcadas além deConteúdo Groovy (Java não-tipo, Java, propostas do tipo Java).
Como isso parece funcionar em geral para alguns, estou me perguntando o que poderia estar faltando aqui que permitiria que o assistente de conteúdo trabalhasse paraJava métodos de objetos. Obrigado.