method name: "contributor", params: [contexts: "java.util.Map", body: {}], type: void
method name: "contributor", params: [contexts: "java.lang.Object", body: {}], type: void
+ method name: "supportsVersion", params: [version: "java.lang.String"], type: boolean
+
// scopes
property name: "closureScope", params: [contexts: "java.util.Map"], type: {}
property name: "scriptScope", params: [contexts: "java.util.Map"], type: {}
package org.jetbrains.plugins.groovy.dsl
+import com.intellij.openapi.application.ApplicationInfo
import com.intellij.openapi.util.Pair
-import com.intellij.psi.PsiElement
+import com.intellij.openapi.util.text.StringUtil
import com.intellij.util.ProcessingContext
import org.jetbrains.plugins.groovy.dsl.psi.PsiEnhancerCategory
import org.jetbrains.plugins.groovy.dsl.toplevel.CompositeContextFilter
static final def cats = PsiEnhancerCategory.EP_NAME.extensions.collect { it.class }
final List<Pair<ContextFilter, Closure>> enhancers = []
private final String myFileName;
+ static final String ideaVersion
+
+ static {
+ def major = ApplicationInfo.instance.majorVersion
+ def minor = ApplicationInfo.instance.minorVersion
+ def full = major + (minor ? ".$minor" : "")
+ ideaVersion = full
+ }
public GroovyDslExecutor(String text, String fileName) {
myFileName = fileName
}
}
+ mc.supportsVersion = { String ver ->
+ StringUtil.compareVersionNumbers(ideaVersion, ver) >= 0
+ }
+
mc.initialize()
script.metaClass = mc
script.run()