mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle] don't enlarge scope for local entities
^KTIJ-29258 fixed GitOrigin-RevId: b79035b1e2d40fef0318b3ae464a69d3ecc279b4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
730f0bdcab
commit
2274160dfe
@@ -14,6 +14,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.PsiMember
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.LocalSearchScope
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import com.intellij.psi.search.UseScopeEnlarger
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
@@ -43,6 +44,10 @@ class GradleUseScopeEnlarger : UseScopeEnlarger() {
|
||||
|
||||
if (!isInBuildSrc(project, virtualFile) && !isInGradleDistribution(project, virtualFile)) return null
|
||||
|
||||
val useScope = element.useScope
|
||||
if (useScope is LocalSearchScope && useScope.virtualFiles.singleOrNull() == virtualFile) {
|
||||
return null
|
||||
}
|
||||
|
||||
return GradleBuildscriptSearchScope(element.project)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.dsl
|
||||
|
||||
import com.intellij.psi.search.LocalSearchScope
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import com.intellij.testFramework.runInEdtAndWait
|
||||
import org.gradle.util.GradleVersion
|
||||
@@ -36,6 +37,29 @@ class GradleFindUsagesTest: GradleCodeInsightTestCase() {
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@BaseGradleVersionSource
|
||||
fun testLocalProperty(gradleVersion: GradleVersion) {
|
||||
test(gradleVersion, VERSION_CATALOG_FIXTURE) {
|
||||
writeTextAndCommit("build.gradle", """
|
||||
tasks.register('hello') {
|
||||
doLast {
|
||||
def <caret>a = 0
|
||||
println a
|
||||
}
|
||||
}
|
||||
""".trimIndent())
|
||||
runInEdtAndWait {
|
||||
codeInsightFixture.configureFromExistingVirtualFile(getFile("build.gradle"))
|
||||
val property = fixture.elementAtCaret // what
|
||||
Assertions.assertTrue(property.useScope is LocalSearchScope)
|
||||
val usages = ReferencesSearch.search(property).findAll()
|
||||
Assertions.assertTrue(usages.size == 1)
|
||||
Assertions.assertTrue(usages.single().element.containingFile.name == "build.gradle")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
private val VERSION_CATALOG_FIXTURE = GradleTestFixtureBuilder.create("GradleVersionCatalogs-findUsages") {
|
||||
|
||||
Reference in New Issue
Block a user