mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-191229 make analyzeExternalChangesAndUpdateIfNeeded as suspend
GitOrigin-RevId: 8ba4aff2fe9634bb42762baea00851846471631c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ab4fde4639
commit
eab07fa299
@@ -818,11 +818,11 @@ abstract class ComponentStoreImpl : IComponentStore {
|
||||
|
||||
val componentNames = HashSet<String>()
|
||||
for (storage in changedStorages) {
|
||||
LOG.runAndLogException {
|
||||
runCatching {
|
||||
// we must update (reload in-memory storage data) even if a non-reloadable component is detected later
|
||||
// not saved -> user does a modification -> new (on disk) state will be overwritten and not applied
|
||||
storage.analyzeExternalChangesAndUpdateIfNeeded(componentNames)
|
||||
}
|
||||
}.getOrLogException(LOG)
|
||||
}
|
||||
|
||||
if (componentNames.isEmpty()) {
|
||||
|
||||
@@ -30,7 +30,7 @@ internal class DefaultProjectStoreImpl(override val project: Project) : Componen
|
||||
|
||||
private val storage by lazy {
|
||||
val file = ApplicationManager.getApplication().stateStore.storageManager.expandMacro(PROJECT_DEFAULT_FILE_SPEC)
|
||||
DefaultProjectStorage(file, PROJECT_DEFAULT_FILE_SPEC, PathMacroManager.getInstance(project), compoundStreamProvider)
|
||||
DefaultProjectStorage(file = file, fileSpec = PROJECT_DEFAULT_FILE_SPEC, pathMacroManager = PathMacroManager.getInstance(project), streamProvider = compoundStreamProvider)
|
||||
}
|
||||
|
||||
override val serviceContainer: ComponentManagerEx
|
||||
|
||||
@@ -44,7 +44,7 @@ open class DirectoryBasedStorage(
|
||||
|
||||
private fun getLineSeparator(name: String): LineSeparator = nameToLineSeparatorMap.get(name) ?: LineSeparator.getSystemLineSeparator()
|
||||
|
||||
override fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
override suspend fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
// todo reload only changed file, compute diff
|
||||
val newData = loadData()
|
||||
storageDataRef.set(newData)
|
||||
|
||||
@@ -134,7 +134,7 @@ abstract class XmlElementStorage protected constructor(
|
||||
|
||||
protected abstract fun createSaveSession(states: StateMap): SaveSessionProducer
|
||||
|
||||
final override fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
final override suspend fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
LOG.debug("Running analyzeExternalChangesAndUpdateIfNeeded")
|
||||
val oldData = storageDataRef.get()
|
||||
val newData = getStorageData(reload = true)
|
||||
|
||||
@@ -29,7 +29,7 @@ interface StateStorage {
|
||||
/**
|
||||
* Get changed component names
|
||||
*/
|
||||
fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>)
|
||||
suspend fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>)
|
||||
|
||||
fun getResolution(
|
||||
component: PersistentStateComponent<*>,
|
||||
|
||||
+1
-1
@@ -74,5 +74,5 @@ private object NonPersistentStateStorage : StateStorage {
|
||||
|
||||
override fun createSaveSessionProducer(): SaveSessionProducer? = null
|
||||
|
||||
override fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {}
|
||||
override suspend fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {}
|
||||
}
|
||||
+1
-1
@@ -108,7 +108,7 @@ internal class StateStorageBackedByController(
|
||||
return ControllerBackedSaveSessionProducer(storageController = this)
|
||||
}
|
||||
|
||||
override fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
override suspend fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
// external change is not expected and not supported
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -167,6 +167,6 @@ private class ReadOnlyStorage(
|
||||
|
||||
override fun createSaveSessionProducer(): SaveSessionProducer? = null
|
||||
|
||||
override fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
override suspend fun analyzeExternalChangesAndUpdateIfNeeded(componentNames: MutableSet<in String>) {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user