mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
[recent files] IJPL-206722 Introduce a registry key that controls debounce timeout for typing processing in the recent files frontend model
(cherry picked from commit 6c7b7823574c3babf1e98f6932f6c209f24b67b2) Review: IJ-CR-176981 GitOrigin-RevId: 217fbc54b795d2378aafebf9e3c41c9b534ce5b8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d6c8730eb8
commit
4c6edd442e
@@ -15,6 +15,9 @@
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<registryKey key="switcher.use.fallback.in.monolith" defaultValue="false"
|
||||
description="Use old Switcher/Recent Files implementation in the monolith mode that is not remove dev-native"/>
|
||||
<registryKey key="switcher.typing.debounce.interval.ms" defaultValue="3000"
|
||||
description="A time period to skip typing events before requesting a switcher/recent files model update, measured in millis"/>
|
||||
|
||||
<postStartupActivity implementation="com.intellij.platform.recentFiles.frontend.model.RecentFileModelSynchronizer"/>
|
||||
</extensions>
|
||||
<actions>
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.openapi.actionSystem.DataContext
|
||||
import com.intellij.openapi.actionSystem.ex.AnActionListener
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.vfs.isFile
|
||||
import com.intellij.platform.recentFiles.frontend.model.FrontendRecentFilesModel
|
||||
@@ -17,6 +18,7 @@ import kotlinx.coroutines.channels.BufferOverflow
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.debounce
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
@OptIn(FlowPreview::class)
|
||||
@@ -26,7 +28,9 @@ private class RecentFilesEditorTypingListener : AnActionListener {
|
||||
|
||||
init {
|
||||
RecentFilesApplicationCoroutineScopeProvider.getInstance().coroutineScope.launch {
|
||||
recentlyChangedFiles.debounce(1.seconds)
|
||||
val debounceInterval = Registry.intValue("switcher.typing.debounce.interval.ms", 3000)
|
||||
LOG.debug("RecentFilesEditorTypingListener: debounceInterval=$debounceInterval")
|
||||
recentlyChangedFiles.debounce(debounceInterval.milliseconds)
|
||||
.collect { (file, project) ->
|
||||
LOG.debug("Adding file to the frontend recent files model after typing: ${file.name}")
|
||||
FrontendRecentFilesModel.getInstanceAsync(project).applyFrontendChanges(RecentFileKind.RECENTLY_EDITED, listOf(file), FileChangeKind.ADDED)
|
||||
|
||||
Reference in New Issue
Block a user