mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[grails] fix detached criteria closures delegate
This commit is contained in:
+1
@@ -41,6 +41,7 @@ class GroovyClosurePattern : GroovyExpressionPattern<GrClosableBlock, GroovyClos
|
||||
}
|
||||
else -> return false
|
||||
}
|
||||
context?.put(closureCallKey, call)
|
||||
|
||||
val method = call.resolveMethod() ?: return false
|
||||
return methodPattern.accepts(method)
|
||||
|
||||
+5
-1
@@ -15,17 +15,21 @@
|
||||
*/
|
||||
package org.jetbrains.plugins.groovy.lang.psi.patterns
|
||||
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.patterns.PatternCondition
|
||||
import com.intellij.util.ProcessingContext
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.GrListOrMap
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCall
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression
|
||||
|
||||
val closureCallKey = Key.create<GrCall>("groovy.pattern.closure.call")
|
||||
|
||||
inline fun <reified T : GrExpression> groovyExpression() = GroovyExpressionPattern.Capture(T::class.java)
|
||||
|
||||
fun groovyList() = groovyExpression<GrListOrMap>().with(object : PatternCondition<GrListOrMap>("isList") {
|
||||
override fun accepts(t: GrListOrMap, context: ProcessingContext?) = !t.isMap
|
||||
})
|
||||
|
||||
fun psiMethod(containingClass: String, name: String) = GroovyPatterns.psiMethod().withName(name).definedInClass(containingClass)
|
||||
fun psiMethod(containingClass: String, vararg name: String) = GroovyPatterns.psiMethod().withName(*name).definedInClass(containingClass)
|
||||
|
||||
fun groovyClosure() = GroovyClosurePattern()
|
||||
|
||||
Reference in New Issue
Block a user