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 { openedScripts.forEach {
PsiManager.getInstance(project).findFile(it)?.let { psiFile -> PsiManager.getInstance(project).findFile(it)?.let { psiFile ->
if (psiFile is KtFile) { 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) DaemonCodeAnalyzer.getInstance(project).restart(psiFile)
} }
} }
@@ -294,9 +294,18 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
} }
} }
private fun loadLinkedRoot(settings: GradleProjectSettings) = private fun loadLinkedRoot(settings: GradleProjectSettings): GradleBuildRoot {
if (!enabled) Legacy(settings) if (!enabled) {
else tryLoadFromFsCache(settings) ?: createOtherLinkedRoot(settings) return Legacy(settings)
}
val supported = kotlinDslScriptsModelImportSupported(settings.resolveGradleVersion().version)
return when {
supported -> tryLoadFromFsCache(settings) ?: New(settings)
else -> Legacy(settings)
}
}
private fun tryLoadFromFsCache(settings: GradleProjectSettings) = private fun tryLoadFromFsCache(settings: GradleProjectSettings) =
tryCreateImportedRoot(settings.externalProjectPath) { tryCreateImportedRoot(settings.externalProjectPath) {
@@ -310,14 +319,6 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
settings: GradleProjectSettings settings: GradleProjectSettings
) = data.copy(projectRoots = data.projectRoots.toSet() + settings.modules) ) = 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( private fun tryCreateImportedRoot(
externalProjectPath: String, externalProjectPath: String,
lastModifiedFiles: LastModifiedFiles = loadLastModifiedFiles(externalProjectPath) ?: LastModifiedFiles(), lastModifiedFiles: LastModifiedFiles = loadLastModifiedFiles(externalProjectPath) ?: LastModifiedFiles(),