Improvements in KotlinCopyPasteReferenceProcessor

reduced scope of nonBlockingRead to avoid long rerun of it
used smart pointers to keep valid elements over changes
moved back to non-modal progress

Relates to #KT-37414
This commit is contained in:
Vladimir Dolzhenko
2020-03-11 14:55:05 +01:00
parent b1c4b5f51b
commit 87242b419a
9 changed files with 217 additions and 139 deletions
@@ -43,4 +43,10 @@ fun <T> Project.executeCommand(name: String, groupId: Any? = null, command: () -
return result as T
}
fun <T> runWithCancellationCheck(block: () -> T): T = block()
fun <T> runWithCancellationCheck(block: () -> T): T = block()
inline fun invokeLater(crossinline action: () -> Unit) {
ApplicationManager.getApplication().invokeLater { action() }
}
inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode
@@ -46,4 +46,10 @@ fun <T> Project.executeCommand(name: String, groupId: Any? = null, command: () -
return result as T
}
fun <T> runWithCancellationCheck(block: () -> T): T = block()
fun <T> runWithCancellationCheck(block: () -> T): T = block()
inline fun invokeLater(crossinline action: () -> Unit) {
ApplicationManager.getApplication().invokeLater { action() }
}
inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode
@@ -44,4 +44,10 @@ fun <T> Project.executeCommand(name: String, groupId: Any? = null, command: () -
return result as T
}
fun <T> runWithCancellationCheck(block: () -> T): T = CancellationCheck.runWithCancellationCheck(block)
fun <T> runWithCancellationCheck(block: () -> T): T = CancellationCheck.runWithCancellationCheck(block)
inline fun invokeLater(crossinline action: () -> Unit) {
ApplicationManager.getApplication().invokeLater { action() }
}
inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode
@@ -46,4 +46,10 @@ fun <T> Project.executeCommand(name: String, groupId: Any? = null, command: () -
return result as T
}
fun <T> runWithCancellationCheck(block: () -> T): T = block()
fun <T> runWithCancellationCheck(block: () -> T): T = block()
inline fun invokeLater(crossinline action: () -> Unit) {
ApplicationManager.getApplication().invokeLater { action() }
}
inline fun isUnitTestMode(): Boolean = ApplicationManager.getApplication().isUnitTestMode