From 4c6edd442ee1566bc684d11385f3fcbbee7c5c3b Mon Sep 17 00:00:00 2001 From: Nikita Katkov Date: Thu, 25 Sep 2025 15:17:22 +0200 Subject: [PATCH] [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 --- .../resources/intellij.platform.recentFiles.frontend.xml | 3 +++ .../recentFiles/frontend/RecentFilesEditorTypingListener.kt | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/recentFiles/frontend/resources/intellij.platform.recentFiles.frontend.xml b/platform/recentFiles/frontend/resources/intellij.platform.recentFiles.frontend.xml index ba68ac4072b6..58606e671908 100644 --- a/platform/recentFiles/frontend/resources/intellij.platform.recentFiles.frontend.xml +++ b/platform/recentFiles/frontend/resources/intellij.platform.recentFiles.frontend.xml @@ -15,6 +15,9 @@ + + diff --git a/platform/recentFiles/frontend/src/com/intellij/platform/recentFiles/frontend/RecentFilesEditorTypingListener.kt b/platform/recentFiles/frontend/src/com/intellij/platform/recentFiles/frontend/RecentFilesEditorTypingListener.kt index 44fb864f77f0..66d5d9326b30 100644 --- a/platform/recentFiles/frontend/src/com/intellij/platform/recentFiles/frontend/RecentFilesEditorTypingListener.kt +++ b/platform/recentFiles/frontend/src/com/intellij/platform/recentFiles/frontend/RecentFilesEditorTypingListener.kt @@ -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)