gradle.kts: check gradle version before loading from fs cache

This commit is contained in:
Sergey Rostov
2020-06-16 11:23:47 +03:00
parent 7d31d7f20c
commit bc16fbf438
2 changed files with 12 additions and 14 deletions
@@ -255,9 +255,6 @@ abstract class ScriptClassRootsUpdater(
openedScripts.forEach {
PsiManager.getInstance(project).findFile(it)?.let { psiFile ->
if (psiFile is KtFile) {
// start loading for files that previously was cached by custom scripting support
ScriptConfigurationManager.getInstance(project).getConfiguration(psiFile)
DaemonCodeAnalyzer.getInstance(project).restart(psiFile)
}
}
@@ -294,9 +294,18 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
}
}
private fun loadLinkedRoot(settings: GradleProjectSettings) =
if (!enabled) Legacy(settings)
else tryLoadFromFsCache(settings) ?: createOtherLinkedRoot(settings)
private fun loadLinkedRoot(settings: GradleProjectSettings): GradleBuildRoot {
if (!enabled) {
return Legacy(settings)
}
val supported = kotlinDslScriptsModelImportSupported(settings.resolveGradleVersion().version)
return when {
supported -> tryLoadFromFsCache(settings) ?: New(settings)
else -> Legacy(settings)
}
}
private fun tryLoadFromFsCache(settings: GradleProjectSettings) =
tryCreateImportedRoot(settings.externalProjectPath) {
@@ -310,14 +319,6 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
settings: GradleProjectSettings
) = data.copy(projectRoots = data.projectRoots.toSet() + settings.modules)
private fun createOtherLinkedRoot(settings: GradleProjectSettings): GradleBuildRoot {
val supported = kotlinDslScriptsModelImportSupported(settings.resolveGradleVersion().version)
return when {
supported -> New(settings)
else -> Legacy(settings)
}
}
private fun tryCreateImportedRoot(
externalProjectPath: String,
lastModifiedFiles: LastModifiedFiles = loadLastModifiedFiles(externalProjectPath) ?: LastModifiedFiles(),