*.gradle.kts: include project sources in script dependencies sources scope
^KT-39523 Fixed
This commit is contained in:
+3
-1
@@ -132,7 +132,9 @@ sealed class ScriptDependenciesSourceInfo(override val project: Project) : IdeaM
|
|||||||
override val binariesModuleInfo: ScriptDependenciesInfo
|
override val binariesModuleInfo: ScriptDependenciesInfo
|
||||||
get() = ScriptDependenciesInfo.ForProject(project)
|
get() = ScriptDependenciesInfo.ForProject(project)
|
||||||
|
|
||||||
override fun sourceScope(): GlobalSearchScope = KotlinSourceFilterScope.librarySources(
|
// include project sources because script dependencies sources may contain roots from project
|
||||||
|
// the main example is buildSrc for *.gradle.kts files
|
||||||
|
override fun sourceScope(): GlobalSearchScope = KotlinSourceFilterScope.projectAndLibrariesSources(
|
||||||
ScriptConfigurationManager.getInstance(project).getAllScriptDependenciesSourcesScope(), project
|
ScriptConfigurationManager.getInstance(project).getAllScriptDependenciesSourcesScope(), project
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -157,7 +157,7 @@ class KotlinSourceFilterScope private constructor(
|
|||||||
includeProjectSourceFiles = true,
|
includeProjectSourceFiles = true,
|
||||||
includeLibrarySourceFiles = true,
|
includeLibrarySourceFiles = true,
|
||||||
includeClassFiles = false,
|
includeClassFiles = false,
|
||||||
includeScriptDependencies = false,
|
includeScriptDependencies = true,
|
||||||
includeScriptsOutsideSourceRoots = true,
|
includeScriptsOutsideSourceRoots = true,
|
||||||
project = project
|
project = project
|
||||||
)
|
)
|
||||||
|
|||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
object KObject {
|
||||||
|
fun foo() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
test.KObject.<caret>foo()
|
||||||
|
|
||||||
|
// DEPENDENCIES: classpath:module-classes; sources:module-source
|
||||||
|
|
||||||
|
// REF: (in test.KObject).foo()
|
||||||
|
// FILE: test/custom.kt
|
||||||
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingUtil
|
|||||||
import org.jetbrains.kotlin.idea.script.AbstractScriptConfigurationTest.Companion.useDefaultTemplate
|
import org.jetbrains.kotlin.idea.script.AbstractScriptConfigurationTest.Companion.useDefaultTemplate
|
||||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
|
import org.jetbrains.kotlin.idea.util.projectStructure.getModuleDir
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
@@ -265,11 +266,20 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
|
|||||||
|
|
||||||
val libClasses = libSrcDir?.let { compileLibToDir(it) }
|
val libClasses = libSrcDir?.let { compileLibToDir(it) }
|
||||||
|
|
||||||
|
var moduleSrcDir = File("${path}depModule").takeIf { it.isDirectory }
|
||||||
|
val moduleClasses = moduleSrcDir?.let { compileLibToDir(it) }
|
||||||
|
if (moduleSrcDir != null) {
|
||||||
|
val depModule = createTestModuleFromDir(moduleSrcDir)
|
||||||
|
moduleSrcDir = File(depModule.getModuleDir())
|
||||||
|
}
|
||||||
|
|
||||||
return mapOf(
|
return mapOf(
|
||||||
"runtime-classes" to ForTestCompileRuntime.runtimeJarForTests(),
|
"runtime-classes" to ForTestCompileRuntime.runtimeJarForTests(),
|
||||||
"runtime-source" to File("libraries/stdlib/src"),
|
"runtime-source" to File("libraries/stdlib/src"),
|
||||||
"lib-classes" to libClasses,
|
"lib-classes" to libClasses,
|
||||||
"lib-source" to libSrcDir,
|
"lib-source" to libSrcDir,
|
||||||
|
"module-classes" to moduleClasses,
|
||||||
|
"module-source" to moduleSrcDir,
|
||||||
"template-classes" to templateOutDir
|
"template-classes" to templateOutDir
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+5
@@ -28,6 +28,11 @@ public class ScriptConfigurationNavigationTestGenerated extends AbstractScriptCo
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/script/definition/navigation"), Pattern.compile("^([^\\.]+)$"), null, false);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/script/definition/navigation"), Pattern.compile("^([^\\.]+)$"), null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("buildSrcProblem")
|
||||||
|
public void testBuildSrcProblem() throws Exception {
|
||||||
|
runTest("idea/testData/script/definition/navigation/buildSrcProblem/");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("conflictingModule")
|
@TestMetadata("conflictingModule")
|
||||||
public void testConflictingModule() throws Exception {
|
public void testConflictingModule() throws Exception {
|
||||||
runTest("idea/testData/script/definition/navigation/conflictingModule/");
|
runTest("idea/testData/script/definition/navigation/conflictingModule/");
|
||||||
|
|||||||
Reference in New Issue
Block a user