mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] @Field support: use stubs
This commit is contained in:
+5
-22
@@ -16,11 +16,8 @@
|
||||
package org.jetbrains.plugins.groovy.transformations.impl;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyRecursiveElementVisitor;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariable;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariableDeclaration;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrScriptField;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
|
||||
@@ -37,26 +34,12 @@ public class FieldScriptTransformationSupport implements AstTransformationSuppor
|
||||
if (!hasNameInFile(scriptClass.getContainingFile(), "Field")) {
|
||||
return;
|
||||
}
|
||||
scriptClass.getContainingFile().accept(new GroovyRecursiveElementVisitor() {
|
||||
@Override
|
||||
public void visitVariableDeclaration(@NotNull GrVariableDeclaration element) {
|
||||
if (element.getModifierList().findAnnotation(GroovyCommonClassNames.GROOVY_TRANSFORM_FIELD) != null) {
|
||||
for (GrVariable variable : element.getVariables()) {
|
||||
context.addField(new GrScriptField(variable, scriptClass));
|
||||
}
|
||||
for (GrVariableDeclaration declaration : scriptClass.getContainingFile().getAnnotatedScriptDeclarations()) {
|
||||
if (declaration.getModifierList().findAnnotation(GroovyCommonClassNames.GROOVY_TRANSFORM_FIELD) != null) {
|
||||
for (GrVariable variable : declaration.getVariables()) {
|
||||
context.addField(new GrScriptField(variable, scriptClass));
|
||||
}
|
||||
super.visitVariableDeclaration(element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitMethod(@NotNull GrMethod method) {
|
||||
//skip methods
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitTypeDefinition(@NotNull GrTypeDefinition typeDefinition) {
|
||||
//skip type defs
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user