From d76faa5cc5b8683b9347572f011700002b32cede Mon Sep 17 00:00:00 2001 From: Sergey Vasiliev Date: Mon, 31 Aug 2009 14:08:16 +0400 Subject: [PATCH] jam support for groovy --- plugins/groovy/src/META-INF/plugin.xml | 4 ++++ .../api/statements/expressions/literals/GrLiteral.java | 6 ++---- .../auxiliary/annotation/GroovyAnnotationSupport.java | 16 ++++++++++++++++ .../lang/psi/util/GroovyConstantExpressionEvaluator.java | 16 ++++++++++++++-- 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/annotation/GroovyAnnotationSupport.java diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml index 70940cb256..7f46e8f7bf 100644 --- a/plugins/groovy/src/META-INF/plugin.xml +++ b/plugins/groovy/src/META-INF/plugin.xml @@ -53,6 +53,10 @@ + + + + diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/literals/GrLiteral.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/literals/GrLiteral.java index 17c944ea22..29b0a5d7dd 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/literals/GrLiteral.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/literals/GrLiteral.java @@ -15,13 +15,11 @@ package org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals; -import org.jetbrains.annotations.Nullable; +import com.intellij.psi.PsiLiteral; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; /** * @author ilyas */ -public interface GrLiteral extends GrExpression { - - @Nullable Object getValue(); +public interface GrLiteral extends GrExpression, PsiLiteral { } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/annotation/GroovyAnnotationSupport.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/annotation/GroovyAnnotationSupport.java new file mode 100644 index 0000000000..0e319d1dc2 --- /dev/null +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/annotation/GroovyAnnotationSupport.java @@ -0,0 +1,16 @@ +package org.jetbrains.plugins.groovy.lang.psi.impl.auxiliary.annotation; + +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.psi.PsiAnnotationSupport; +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral; + +public class GroovyAnnotationSupport implements PsiAnnotationSupport { + @NotNull + public GrLiteral createLiteralValue(@NotNull String value, @NotNull PsiElement context) { + return (GrLiteral)GroovyPsiElementFactory.getInstance(context.getProject()) + .createExpressionFromText("\"" + StringUtil.escapeStringCharacters(value) + "\""); + } +} diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyConstantExpressionEvaluator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyConstantExpressionEvaluator.java index 9671389acc..08312cda5e 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyConstantExpressionEvaluator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyConstantExpressionEvaluator.java @@ -15,14 +15,17 @@ */ package org.jetbrains.plugins.groovy.lang.psi.util; +import com.intellij.psi.impl.ConstantExpressionEvaluator; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiConstantEvaluationHelper; +import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral; -import org.jetbrains.annotations.Nullable; /** * @author peter */ -public class GroovyConstantExpressionEvaluator { +public class GroovyConstantExpressionEvaluator implements ConstantExpressionEvaluator { @Nullable public static Object evaluate(@Nullable GrExpression expression) { @@ -32,4 +35,13 @@ public class GroovyConstantExpressionEvaluator { return null; } + public Object computeConstantExpression(PsiElement expression, boolean throwExceptionOnOverflow) { + return evaluate((GrExpression)expression); + } + + public Object computeExpression(PsiElement expression, + boolean throwExceptionOnOverflow, + @Nullable PsiConstantEvaluationHelper.AuxEvaluator auxEvaluator) { + return evaluate((GrExpression)expression); + } } -- 2.11.4.GIT