mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle] move saveProjectType pattern to utils
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.gradle.service.resolve
|
||||
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.patterns.PatternCondition
|
||||
import com.intellij.util.ProcessingContext
|
||||
import groovy.lang.Closure
|
||||
import org.jetbrains.plugins.gradle.service.resolve.GradleCommonClassNames.*
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.GroovyMethodResult
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil.createType
|
||||
import org.jetbrains.plugins.groovy.lang.psi.patterns.GroovyClosurePattern
|
||||
@@ -21,18 +18,9 @@ import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.DelegatesToInfo
|
||||
class GradleArtifactsContributor : GradleMethodContextContributor {
|
||||
|
||||
companion object {
|
||||
private val projectTypeKey: Key<GradleProjectAwareType> = Key.create("gradle.current.project")
|
||||
val artifactsClosure: GroovyClosurePattern = groovyClosure().inMethod(
|
||||
psiMethod(GRADLE_API_PROJECT, "artifacts")
|
||||
).inMethodResult(object : PatternCondition<GroovyMethodResult>("saveProjectContext") {
|
||||
override fun accepts(result: GroovyMethodResult, context: ProcessingContext?): Boolean {
|
||||
// Given the closure matched Project#artifacts method,
|
||||
// we want to determine what we know about this Project.
|
||||
// This PatternCondition just saves the info into the ProcessingContext.
|
||||
context?.put(projectTypeKey, result.candidate?.receiver as? GradleProjectAwareType)
|
||||
return true
|
||||
}
|
||||
})
|
||||
).inMethodResult(saveProjectType)
|
||||
val artifactClosure: GroovyClosurePattern = groovyClosure().inMethod(
|
||||
psiMethod(GRADLE_API_ARTIFACT_HANDLER).withKind(GradleArtifactHandlerContributor.ourMethodKind)
|
||||
)
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
package org.jetbrains.plugins.gradle.service.resolve
|
||||
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.patterns.PatternCondition
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.scope.ElementClassHint
|
||||
import com.intellij.psi.scope.PsiScopeProcessor
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import com.intellij.util.ProcessingContext
|
||||
import org.jetbrains.plugins.gradle.util.GradleConstants.EXTENSION
|
||||
import org.jetbrains.plugins.groovy.codeInspection.assignment.GrMethodCallInfo
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.GroovyMethodResult
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression
|
||||
@@ -26,6 +29,16 @@ import org.jetbrains.plugins.groovy.lang.resolve.processors.ClassHint
|
||||
import org.jetbrains.plugins.groovy.lang.resolve.processors.MethodResolverProcessor
|
||||
import java.util.*
|
||||
|
||||
val projectTypeKey: Key<GradleProjectAwareType> = Key.create("gradle.current.project")
|
||||
val saveProjectType: PatternCondition<GroovyMethodResult> = object : PatternCondition<GroovyMethodResult>("saveProjectContext") {
|
||||
override fun accepts(result: GroovyMethodResult, context: ProcessingContext?): Boolean {
|
||||
// Given the closure matched some method,
|
||||
// we want to determine what we know about this Project.
|
||||
// This PatternCondition just saves the info into the ProcessingContext.
|
||||
context?.put(projectTypeKey, result.candidate?.receiver as? GradleProjectAwareType)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
val DELEGATED_TYPE: Key<Boolean> = Key.create("gradle.delegated.type")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user