scripting: fixes after rebase

This commit is contained in:
Sergey Rostov
2020-05-25 19:30:55 +03:00
parent 74b189fa54
commit 8d00ec1933
5 changed files with 7 additions and 6 deletions
@@ -522,7 +522,7 @@ abstract class DefaultScriptingSupportBase(val manager: CompositeScriptConfigura
// own builder for saving to storage
val rootsStorage = ScriptClassRootsStorage.getInstance(project)
val ownBuilder = ScriptClassRootsBuilder.fromStorage(rootsStorage)
val ownBuilder = ScriptClassRootsBuilder.fromStorage(project, rootsStorage)
cache.allApplied().forEach { (vFile, configuration) -> ownBuilder.add(vFile, configuration) }
ownBuilder.toStorage(rootsStorage)
@@ -18,7 +18,7 @@ import com.intellij.util.xmlb.XmlSerializerUtil
name = "ScriptClassRootsStorage",
storages = [Storage(StoragePathMacros.CACHE_FILE)]
)
class ScriptClassRootsStorage(val project: Project) : PersistentStateComponent<ScriptClassRootsStorage> {
class ScriptClassRootsStorage : PersistentStateComponent<ScriptClassRootsStorage> {
var classpath: Set<String> = hashSetOf()
var sources: Set<String> = hashSetOf()
var sdks: Set<String> = hashSetOf()
@@ -73,8 +73,8 @@ class ScriptClassRootsBuilder(
}
companion object {
fun fromStorage(storage: ScriptClassRootsStorage) = ScriptClassRootsBuilder(
storage.project,
fun fromStorage(project: Project, storage: ScriptClassRootsStorage) = ScriptClassRootsBuilder(
project,
storage.classpath.toMutableSet(),
storage.sources.toMutableSet(),
).also {
@@ -133,11 +133,12 @@ class ScriptClassRootsUpdater(
private val syncLock = ReentrantLock()
private var scheduledUpdate: ProgressIndicator? = null
@Suppress("IncorrectParentDisposable")
@Synchronized
private fun ensureUpdateScheduled() {
scheduledUpdate?.cancel()
runReadAction {
if (project.isDisposed && !Disposer.isDisposing(project)) {
if (!Disposer.isDisposing(project)) {
scheduledUpdate = BackgroundTaskUtil.executeOnPooledThread(project) {
doUpdate()
}
@@ -340,7 +340,7 @@ class GradleBuildRootsManager(val project: Project) : ScriptingSupport() {
private fun add(newRoot: GradleBuildRoot.Linked) {
val old = roots.add(newRoot)
if (old is GradleBuildRoot.Imported) removeData(old.pathPrefix)
if (old is GradleBuildRoot.Imported && newRoot !is GradleBuildRoot.Imported) removeData(old.pathPrefix)
if (old is GradleBuildRoot.Imported || newRoot is GradleBuildRoot.Imported) {
updater.invalidateAndCommit()
}