mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
[scopes] IJ-CR-168030 create modules intellij.platform.scopes and intellij.platform.scopes.backend
move SearchScopeData to scopes module (cherry picked from commit 1e18ec6d51426d8946693e416519e1e80f5b36d0) GitOrigin-RevId: a05ee31c9989a732d514a8aa3eb3fd7d1d209855
This commit is contained in:
committed by
intellij-monorepo-bot
parent
71018ebb56
commit
88830c6ae4
2
.idea/modules.xml
generated
2
.idea/modules.xml
generated
@@ -916,6 +916,8 @@
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/runtime/product/tests/intellij.platform.runtime.product.tests.iml" filepath="$PROJECT_DIR$/platform/runtime/product/tests/intellij.platform.runtime.product.tests.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/runtime/repository/intellij.platform.runtime.repository.iml" filepath="$PROJECT_DIR$/platform/runtime/repository/intellij.platform.runtime.repository.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/runtime/repository/tests/intellij.platform.runtime.repository.tests.iml" filepath="$PROJECT_DIR$/platform/runtime/repository/tests/intellij.platform.runtime.repository.tests.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/scopes/intellij.platform.scopes.iml" filepath="$PROJECT_DIR$/platform/scopes/intellij.platform.scopes.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/scopes/backend/intellij.platform.scopes.backend.iml" filepath="$PROJECT_DIR$/platform/scopes/backend/intellij.platform.scopes.backend.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/script-debugger/backend/intellij.platform.scriptDebugger.backend.iml" filepath="$PROJECT_DIR$/platform/script-debugger/backend/intellij.platform.scriptDebugger.backend.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/script-debugger/protocol/protocol-reader-runtime/intellij.platform.scriptDebugger.protocolReaderRuntime.iml" filepath="$PROJECT_DIR$/platform/script-debugger/protocol/protocol-reader-runtime/intellij.platform.scriptDebugger.protocolReaderRuntime.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/script-debugger/debugger-ui/intellij.platform.scriptDebugger.ui.iml" filepath="$PROJECT_DIR$/platform/script-debugger/debugger-ui/intellij.platform.scriptDebugger.ui.iml" />
|
||||
|
||||
@@ -16,7 +16,6 @@ jvm_library(
|
||||
"//platform/testFramework",
|
||||
"//platform/util/coroutines",
|
||||
"//platform/platform-impl/eel:ide-impl-wsl",
|
||||
"//platform/execution",
|
||||
]
|
||||
)
|
||||
### auto-generated section `build intellij.platform.ijent.community.testFramework` end
|
||||
@@ -22,6 +22,7 @@ java_library(
|
||||
"//spellchecker/xml",
|
||||
"//platform/find/backend",
|
||||
"//platform/managed-cache/managed.cache.backend",
|
||||
"//platform/scopes/backend",
|
||||
]
|
||||
)
|
||||
### auto-generated section `build intellij.platform.backend.main` end
|
||||
@@ -22,5 +22,6 @@
|
||||
<orderEntry type="module" module-name="intellij.spellchecker.xml" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.platform.find.backend" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.platform.managed.cache.backend" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.platform.scopes.backend" scope="RUNTIME" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -13,6 +13,9 @@
|
||||
<module name="intellij.platform.project.backend"/>
|
||||
<module name="intellij.platform.progress.backend"/>
|
||||
|
||||
<module name="intellij.platform.scopes"/>
|
||||
<module name="intellij.platform.scopes.backend"/>
|
||||
|
||||
<!-- todo navbar is not essential-->
|
||||
<module name="intellij.platform.navbar"/>
|
||||
<module name="intellij.platform.navbar.backend"/>
|
||||
|
||||
28
platform/scopes/BUILD.bazel
Normal file
28
platform/scopes/BUILD.bazel
Normal file
@@ -0,0 +1,28 @@
|
||||
### auto-generated section `build intellij.platform.scopes` start
|
||||
load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources")
|
||||
|
||||
jvm_resources(
|
||||
name = "scopes_resources",
|
||||
files = glob(["resources/**/*"]),
|
||||
strip_prefix = "resources"
|
||||
)
|
||||
|
||||
jvm_library(
|
||||
name = "scopes",
|
||||
module_name = "intellij.platform.scopes",
|
||||
visibility = ["//visibility:public"],
|
||||
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
|
||||
deps = [
|
||||
"@lib//:kotlin-stdlib",
|
||||
"//platform/util",
|
||||
"//platform/core-api:core",
|
||||
"//platform/core-ui",
|
||||
"//platform/ide-core",
|
||||
"//platform/platform-impl/rpc",
|
||||
"@lib//:kotlinx-serialization-core",
|
||||
"@lib//:kotlinx-serialization-json",
|
||||
"//platform/lang-impl",
|
||||
],
|
||||
runtime_deps = [":scopes_resources"]
|
||||
)
|
||||
### auto-generated section `build intellij.platform.scopes` end
|
||||
8
platform/scopes/api-dump.txt
Normal file
8
platform/scopes/api-dump.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
c:com.intellij.ide.util.scopeChooser.ScopeDescriptor
|
||||
- com.intellij.openapi.util.ColoredItem
|
||||
- <init>(com.intellij.psi.search.SearchScope):V
|
||||
- getColor():java.awt.Color
|
||||
- getDisplayName():java.lang.String
|
||||
- getIcon():javax.swing.Icon
|
||||
- getScope():com.intellij.psi.search.SearchScope
|
||||
- scopeEquals(com.intellij.psi.search.SearchScope):Z
|
||||
21
platform/scopes/backend/BUILD.bazel
Normal file
21
platform/scopes/backend/BUILD.bazel
Normal file
@@ -0,0 +1,21 @@
|
||||
### auto-generated section `build intellij.platform.scopes.backend` start
|
||||
load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources")
|
||||
|
||||
jvm_resources(
|
||||
name = "backend_resources",
|
||||
files = glob(["resources/**/*"]),
|
||||
strip_prefix = "resources"
|
||||
)
|
||||
|
||||
jvm_library(
|
||||
name = "backend",
|
||||
module_name = "intellij.platform.scopes.backend",
|
||||
visibility = ["//visibility:public"],
|
||||
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
|
||||
deps = ["@lib//:kotlin-stdlib"],
|
||||
runtime_deps = [
|
||||
":backend_resources",
|
||||
"//platform/backend",
|
||||
]
|
||||
)
|
||||
### auto-generated section `build intellij.platform.scopes.backend` end
|
||||
0
platform/scopes/backend/api-dump.txt
Normal file
0
platform/scopes/backend/api-dump.txt
Normal file
36
platform/scopes/backend/intellij.platform.scopes.backend.iml
Normal file
36
platform/scopes/backend/intellij.platform.scopes.backend.iml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="kotlin-language" name="Kotlin">
|
||||
<configuration version="5" platform="JVM 17" allPlatforms="JVM [17]" useProjectSettings="false">
|
||||
<compilerSettings>
|
||||
<option name="additionalArguments" value="-Xjvm-default=all" />
|
||||
</compilerSettings>
|
||||
<compilerArguments>
|
||||
<stringArguments>
|
||||
<stringArg name="jvmTarget" arg="17" />
|
||||
<stringArg name="apiVersion" arg="2.2" />
|
||||
<stringArg name="languageVersion" arg="2.2" />
|
||||
</stringArguments>
|
||||
<arrayArguments>
|
||||
<arrayArg name="pluginClasspaths">
|
||||
<args>$KOTLIN_BUNDLED$/lib/kotlinx-serialization-compiler-plugin.jar</args>
|
||||
</arrayArg>
|
||||
<arrayArg name="pluginOptions" />
|
||||
</arrayArguments>
|
||||
</compilerArguments>
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="com.intellij.platform.scopes.backend" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="kotlin-stdlib" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1,6 @@
|
||||
<idea-plugin>
|
||||
<dependencies>
|
||||
<module name="intellij.platform.backend"/>
|
||||
<module name="intellij.platform.scopes"/>
|
||||
</dependencies>
|
||||
</idea-plugin>
|
||||
43
platform/scopes/intellij.platform.scopes.iml
Normal file
43
platform/scopes/intellij.platform.scopes.iml
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="kotlin-language" name="Kotlin">
|
||||
<configuration version="5" platform="JVM 17" allPlatforms="JVM [17]" useProjectSettings="false">
|
||||
<compilerSettings>
|
||||
<option name="additionalArguments" value="-Xjvm-default=all" />
|
||||
</compilerSettings>
|
||||
<compilerArguments>
|
||||
<stringArguments>
|
||||
<stringArg name="jvmTarget" arg="17" />
|
||||
<stringArg name="apiVersion" arg="2.2" />
|
||||
<stringArg name="languageVersion" arg="2.2" />
|
||||
</stringArguments>
|
||||
<arrayArguments>
|
||||
<arrayArg name="pluginClasspaths">
|
||||
<args>$KOTLIN_BUNDLED$/lib/kotlinx-serialization-compiler-plugin.jar</args>
|
||||
</arrayArg>
|
||||
<arrayArg name="pluginOptions" />
|
||||
</arrayArguments>
|
||||
</compilerArguments>
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="kotlin-stdlib" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.util" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core.ui" />
|
||||
<orderEntry type="module" module-name="intellij.platform.ide.core" />
|
||||
<orderEntry type="module" module-name="intellij.platform.ide.rpc" />
|
||||
<orderEntry type="library" name="kotlinx-serialization-core" level="project" />
|
||||
<orderEntry type="library" name="kotlinx-serialization-json" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
|
||||
</component>
|
||||
</module>
|
||||
2
platform/scopes/resources/intellij.platform.scopes.xml
Normal file
2
platform/scopes/resources/intellij.platform.scopes.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<idea-plugin>
|
||||
</idea-plugin>
|
||||
@@ -0,0 +1,34 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.scopes
|
||||
|
||||
import com.intellij.ide.ui.colors.ColorId
|
||||
import com.intellij.ide.ui.colors.rpcId
|
||||
import com.intellij.ide.ui.icons.IconId
|
||||
import com.intellij.ide.ui.icons.rpcId
|
||||
import com.intellij.ide.util.scopeChooser.ScopeDescriptor
|
||||
import com.intellij.ide.util.scopeChooser.ScopeSeparator
|
||||
import kotlinx.serialization.Serializable
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.Nls
|
||||
|
||||
@ApiStatus.Internal
|
||||
@Serializable
|
||||
class SearchScopeData(val scopeId: String, val name: @Nls String, val iconId: IconId?, val colorId: ColorId?, val isSeparator: Boolean) {
|
||||
companion object {
|
||||
fun from(descriptor: ScopeDescriptor, scopeId: String): SearchScopeData? {
|
||||
val name = descriptor.displayName ?: return null
|
||||
return SearchScopeData(scopeId,
|
||||
name,
|
||||
descriptor.icon?.rpcId(),
|
||||
descriptor.color?.rpcId(),
|
||||
descriptor is ScopeSeparator)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
@Serializable
|
||||
class SearchScopesInfo(val scopes: List<SearchScopeData>,
|
||||
val selectedScopeId: String?,
|
||||
val projectScopeId: String?,
|
||||
val everywhereScopeId: String?)
|
||||
@@ -31,6 +31,7 @@ jvm_library(
|
||||
"//platform/usageView-impl",
|
||||
"//platform/refactoring",
|
||||
"//platform/indexing-api:indexing",
|
||||
"//platform/scopes",
|
||||
],
|
||||
runtime_deps = [
|
||||
":backend_resources",
|
||||
|
||||
@@ -53,5 +53,6 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.usageView.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.refactoring" />
|
||||
<orderEntry type="module" module-name="intellij.platform.indexing" />
|
||||
<orderEntry type="module" module-name="intellij.platform.scopes" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -11,6 +11,7 @@ import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.project.ProjectId
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.equalityProviders.SeEqualityChecker
|
||||
import com.intellij.platform.searchEverywhere.providers.SeLog
|
||||
@@ -143,7 +144,7 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti
|
||||
dataContextId: DataContextId,
|
||||
providerIds: List<SeProviderId>,
|
||||
isAllTab: Boolean,
|
||||
): Map<SeProviderId, SeSearchScopesInfo> {
|
||||
): Map<SeProviderId, SearchScopesInfo> {
|
||||
return providerIds.mapNotNull { providerId ->
|
||||
val provider = getProvidersHolder(sessionRef, dataContextId)?.get(providerId, isAllTab)
|
||||
provider?.getSearchScopesInfo()?.let {
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.intellij.platform.searchEverywhere.backend.impl
|
||||
import com.intellij.ide.rpc.DataContextId
|
||||
import com.intellij.platform.project.ProjectId
|
||||
import com.intellij.platform.project.findProjectOrNull
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.impl.SeRemoteApi
|
||||
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
||||
@@ -84,7 +85,7 @@ class SeRemoteApiImpl: SeRemoteApi {
|
||||
dataContextId: DataContextId,
|
||||
providerIds: List<SeProviderId>,
|
||||
isAllTab: Boolean,
|
||||
): Map<SeProviderId, SeSearchScopesInfo> {
|
||||
): Map<SeProviderId, SearchScopesInfo> {
|
||||
val project = projectId.findProjectOrNull() ?: return emptyMap()
|
||||
return SeBackendService.getInstance(project).getSearchScopesInfoForProviders(sessionRef, dataContextId, providerIds, isAllTab)
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@ package com.intellij.platform.searchEverywhere.backend.providers
|
||||
import com.intellij.ide.actions.searcheverywhere.ScopeChooserAction
|
||||
import com.intellij.ide.util.scopeChooser.ScopeDescriptor
|
||||
import com.intellij.openapi.application.readAction
|
||||
import com.intellij.platform.searchEverywhere.SeSearchScopeData
|
||||
import com.intellij.platform.searchEverywhere.SeSearchScopesInfo
|
||||
import com.intellij.platform.scopes.SearchScopeData
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||
import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty
|
||||
import com.intellij.platform.searchEverywhere.utils.suspendLazy
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.util.UUID
|
||||
import java.util.*
|
||||
import kotlin.concurrent.atomics.AtomicReference
|
||||
import kotlin.concurrent.atomics.ExperimentalAtomicApi
|
||||
|
||||
@@ -18,12 +18,12 @@ import kotlin.concurrent.atomics.ExperimentalAtomicApi
|
||||
@ApiStatus.Internal
|
||||
class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsyncWeightedContributorWrapper<Any>) {
|
||||
|
||||
val searchScopesInfo: SuspendLazyProperty<SeSearchScopesInfo?> = suspendLazy { getSearchScopesInfo() }
|
||||
val searchScopesInfo: SuspendLazyProperty<SearchScopesInfo?> = suspendLazy { getSearchScopesInfo() }
|
||||
|
||||
@Volatile
|
||||
private var scopeIdToScope: AtomicReference<Map<String, ScopeDescriptor>> = AtomicReference(emptyMap())
|
||||
|
||||
suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
||||
suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||
val scopeChooserAction: ScopeChooserAction = contributorWrapper.contributor.getActions({ }).filterIsInstance<ScopeChooserAction>().firstOrNull()
|
||||
?: return null
|
||||
|
||||
@@ -35,7 +35,7 @@ class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsync
|
||||
scopeChooserAction.scopesWithSeparators
|
||||
}.mapNotNull { scope ->
|
||||
val key = UUID.randomUUID().toString()
|
||||
val data = SeSearchScopeData.from(scope, key)
|
||||
val data = SearchScopeData.from(scope, key)
|
||||
if (data != null) all[key] = scope
|
||||
data
|
||||
}
|
||||
@@ -62,10 +62,10 @@ class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsync
|
||||
}?.scopeId
|
||||
}
|
||||
|
||||
return SeSearchScopesInfo(scopeDataList,
|
||||
selectedScopeId,
|
||||
projectScopeId,
|
||||
everywhereScopeId)
|
||||
return SearchScopesInfo(scopeDataList,
|
||||
selectedScopeId,
|
||||
projectScopeId,
|
||||
everywhereScopeId)
|
||||
}
|
||||
|
||||
fun applyScope(scopeId: String?) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.intellij.platform.searchEverywhere.backend.providers.classes
|
||||
|
||||
import com.intellij.ide.util.gotoByName.LanguageRef
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||
@@ -36,7 +37,7 @@ class SeClassesProvider(private val contributorWrapper: SeAsyncWeightedContribut
|
||||
Disposer.dispose(contributorWrapper)
|
||||
}
|
||||
|
||||
override suspend fun getSearchScopesInfo(): SeSearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
override suspend fun getSearchScopesInfo(): SearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
|
||||
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||
targetsProviderDelegate.getTypeVisibilityStates<LanguageRef>(index)
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.intellij.platform.searchEverywhere.backend.providers.files
|
||||
|
||||
import com.intellij.ide.util.gotoByName.FileTypeRef
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||
@@ -36,7 +37,7 @@ class SeFilesProvider(private val contributorWrapper: SeAsyncWeightedContributor
|
||||
Disposer.dispose(contributorWrapper)
|
||||
}
|
||||
|
||||
override suspend fun getSearchScopesInfo(): SeSearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
override suspend fun getSearchScopesInfo(): SearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
|
||||
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||
targetsProviderDelegate.getTypeVisibilityStates<FileTypeRef>(index)
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.intellij.platform.searchEverywhere.backend.providers.recentFiles
|
||||
|
||||
import com.intellij.ide.util.gotoByName.FileTypeRef
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||
@@ -36,7 +37,7 @@ class SeRecentFilesProvider(private val contributorWrapper: SeAsyncWeightedContr
|
||||
Disposer.dispose(contributorWrapper)
|
||||
}
|
||||
|
||||
override suspend fun getSearchScopesInfo(): SeSearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
override suspend fun getSearchScopesInfo(): SearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
|
||||
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||
targetsProviderDelegate.getTypeVisibilityStates<FileTypeRef>(index)
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.intellij.platform.searchEverywhere.backend.providers.symbols
|
||||
|
||||
import com.intellij.ide.util.gotoByName.LanguageRef
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||
@@ -36,7 +37,7 @@ class SeSymbolsProvider(private val contributorWrapper: SeAsyncWeightedContribut
|
||||
Disposer.dispose(contributorWrapper)
|
||||
}
|
||||
|
||||
override suspend fun getSearchScopesInfo(): SeSearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
override suspend fun getSearchScopesInfo(): SearchScopesInfo? = targetsProviderDelegate.getSearchScopesInfo()
|
||||
|
||||
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||
targetsProviderDelegate.getTypeVisibilityStates<LanguageRef>(index)
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.intellij.ide.util.PsiElementListCellRenderer.ItemMatchers
|
||||
import com.intellij.openapi.application.EDT
|
||||
import com.intellij.openapi.progress.ProgressManager
|
||||
import com.intellij.openapi.progress.coroutineToIndicator
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.backend.providers.ScopeChooserActionProviderDelegate
|
||||
import com.intellij.platform.searchEverywhere.providers.*
|
||||
@@ -101,7 +102,7 @@ class SeTargetsProviderDelegate(private val contributorWrapper: SeAsyncWeightedC
|
||||
scopeProviderDelegate.applyScope(scopeId)
|
||||
}
|
||||
|
||||
suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
||||
suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||
return scopeProviderDelegate.searchScopesInfo.getValue()
|
||||
}
|
||||
|
||||
|
||||
@@ -12,13 +12,10 @@ import com.intellij.openapi.progress.ProgressManager
|
||||
import com.intellij.openapi.progress.coroutineToIndicator
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.backend.providers.ScopeChooserActionProviderDelegate
|
||||
import com.intellij.platform.searchEverywhere.providers.AsyncProcessor
|
||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||
import com.intellij.platform.searchEverywhere.providers.SeEverywhereFilter
|
||||
import com.intellij.platform.searchEverywhere.providers.SeTextFilter
|
||||
import com.intellij.platform.searchEverywhere.providers.getExtendedDescription
|
||||
import com.intellij.platform.searchEverywhere.providers.*
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
@@ -97,7 +94,7 @@ class SeTextItemsProvider(project: Project, private val contributorWrapper: SeAs
|
||||
scopeProviderDelegate.applyScope(scopeId)
|
||||
}
|
||||
|
||||
override suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
||||
override suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||
return scopeProviderDelegate.searchScopesInfo.getValue()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ jvm_library(
|
||||
"//platform/lang-impl",
|
||||
"//platform/usageView",
|
||||
"//platform/refactoring",
|
||||
"//platform/scopes",
|
||||
],
|
||||
exports = ["//platform/searchEverywhere/shared:searchEverywhere"],
|
||||
runtime_deps = [":frontend_resources"]
|
||||
|
||||
@@ -54,5 +54,6 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.usageView" />
|
||||
<orderEntry type="module" module-name="intellij.platform.refactoring" />
|
||||
<orderEntry type="module" module-name="intellij.platform.scopes" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -3,6 +3,7 @@ package com.intellij.platform.searchEverywhere.frontend
|
||||
|
||||
import com.intellij.ide.rpc.DataContextId
|
||||
import com.intellij.platform.project.ProjectId
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.impl.SeRemoteApi
|
||||
import com.intellij.platform.searchEverywhere.providers.SeLog
|
||||
@@ -68,7 +69,7 @@ class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId,
|
||||
return SeRemoteApi.getInstance().itemSelected(projectId, sessionRef, itemData, modifiers, searchText, isAllTab = isAllTab)
|
||||
}
|
||||
|
||||
suspend fun getSearchScopesInfos(): Map<SeProviderId, SeSearchScopesInfo> =
|
||||
suspend fun getSearchScopesInfos(): Map<SeProviderId, SearchScopesInfo> =
|
||||
SeRemoteApi.getInstance().getSearchScopesInfoForProviders(
|
||||
projectId, providerIds = providerIds, sessionRef = sessionRef, dataContextId = dataContextId, isAllTab = isAllTab
|
||||
)
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.intellij.openapi.application.EDT
|
||||
import com.intellij.openapi.application.readAction
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.project.projectId
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.equalityProviders.SeEqualityChecker
|
||||
import com.intellij.platform.searchEverywhere.frontend.SeFrontendItemDataProvidersFacade
|
||||
@@ -76,7 +77,7 @@ class SeTabDelegate(
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun getSearchScopesInfos(): List<SeSearchScopesInfo> {
|
||||
suspend fun getSearchScopesInfos(): List<SearchScopesInfo> {
|
||||
return providers.getValue().getSearchScopesInfos()
|
||||
}
|
||||
|
||||
@@ -129,7 +130,7 @@ class SeTabDelegate(
|
||||
fun getProvidersIdToName(): Map<SeProviderId, @Nls String> = localProviders.mapValues { it.value.displayName } +
|
||||
(frontendProvidersFacade?.idsWithDisplayNames ?: emptyMap())
|
||||
|
||||
suspend fun getSearchScopesInfos(): List<SeSearchScopesInfo> {
|
||||
suspend fun getSearchScopesInfos(): List<SearchScopesInfo> {
|
||||
return localProviders.values.mapNotNull { it.getSearchScopesInfo() } +
|
||||
(frontendProvidersFacade?.getSearchScopesInfos()?.values ?: emptyList())
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.intellij.ide.util.scopeChooser.ScopeSeparator
|
||||
import com.intellij.openapi.actionSystem.AnAction
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.platform.searchEverywhere.SeSearchScopesInfo
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.frontend.AutoToggleAction
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.util.Processor
|
||||
@@ -19,7 +19,7 @@ import java.awt.Color
|
||||
import javax.swing.Icon
|
||||
|
||||
@ApiStatus.Internal
|
||||
class SeScopeChooserActionProvider(val scopesInfo: SeSearchScopesInfo, private val onSelectedScopeChanged: (String?) -> Unit) {
|
||||
class SeScopeChooserActionProvider(val scopesInfo: SearchScopesInfo, private val onSelectedScopeChanged: (String?) -> Unit) {
|
||||
private val descriptors: Map<String, ScopeDescriptor> = scopesInfo.scopes.associate {
|
||||
val descriptor =
|
||||
if (it.isSeparator) ScopeSeparator(it.name)
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.intellij.ide.actions.searcheverywhere.PersistentSearchEverywhereContr
|
||||
import com.intellij.ide.actions.searcheverywhere.SearchEverywhereFiltersAction
|
||||
import com.intellij.ide.ui.icons.icon
|
||||
import com.intellij.openapi.actionSystem.AnAction
|
||||
import com.intellij.platform.searchEverywhere.SeSearchScopesInfo
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeFilterEditorBase
|
||||
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeTypeVisibilityStateHolder
|
||||
import com.intellij.platform.searchEverywhere.providers.target.SeTargetsFilter
|
||||
@@ -13,7 +13,7 @@ import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityS
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class SeTargetsFilterEditor(private val scopesInfo: SeSearchScopesInfo?,
|
||||
class SeTargetsFilterEditor(private val scopesInfo: SearchScopesInfo?,
|
||||
typeVisibilityStates: List<SeTypeVisibilityStatePresentation>?) : SeFilterEditorBase<SeTargetsFilter>(
|
||||
SeTargetsFilter(scopesInfo?.selectedScopeId, hiddenTypes(typeVisibilityStates))
|
||||
) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.intellij.find.FindSettings
|
||||
import com.intellij.find.impl.JComboboxAction
|
||||
import com.intellij.openapi.actionSystem.AnAction
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.searchEverywhere.SeSearchScopesInfo
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.frontend.tabs.target.SeScopeChooserActionProvider
|
||||
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeFilterEditorBase
|
||||
import com.intellij.platform.searchEverywhere.providers.SeTextFilter
|
||||
@@ -15,7 +15,7 @@ import org.jetbrains.annotations.ApiStatus
|
||||
@ApiStatus.Internal
|
||||
class SeTextFilterEditor(
|
||||
private val project: Project?,
|
||||
private val scopesInfo: SeSearchScopesInfo?,
|
||||
private val scopesInfo: SearchScopesInfo?,
|
||||
) : SeFilterEditorBase<SeTextFilter>(
|
||||
SeTextFilter(scopesInfo?.selectedScopeId, null)
|
||||
) {
|
||||
|
||||
@@ -30,6 +30,7 @@ jvm_library(
|
||||
"//platform/usageView",
|
||||
"//platform/execution-impl",
|
||||
"//platform/statistics",
|
||||
"//platform/scopes",
|
||||
],
|
||||
exports = [
|
||||
"//platform/lang-impl",
|
||||
|
||||
@@ -51,5 +51,6 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.usageView" />
|
||||
<orderEntry type="module" module-name="intellij.platform.execution.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.statistics" exported="" />
|
||||
<orderEntry type="module" module-name="intellij.platform.scopes" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -1,34 +0,0 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.searchEverywhere
|
||||
|
||||
import com.intellij.ide.ui.colors.ColorId
|
||||
import com.intellij.ide.ui.colors.rpcId
|
||||
import com.intellij.ide.ui.icons.IconId
|
||||
import com.intellij.ide.ui.icons.rpcId
|
||||
import com.intellij.ide.util.scopeChooser.ScopeDescriptor
|
||||
import com.intellij.ide.util.scopeChooser.ScopeSeparator
|
||||
import kotlinx.serialization.Serializable
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.Nls
|
||||
|
||||
@ApiStatus.Internal
|
||||
@Serializable
|
||||
class SeSearchScopeData(val scopeId: String, val name: @Nls String, val iconId: IconId?, val colorId: ColorId?, val isSeparator: Boolean) {
|
||||
companion object {
|
||||
fun from(descriptor: ScopeDescriptor, scopeId: String): SeSearchScopeData? {
|
||||
val name = descriptor.displayName ?: return null
|
||||
return SeSearchScopeData(scopeId,
|
||||
name,
|
||||
descriptor.icon?.rpcId(),
|
||||
descriptor.color?.rpcId(),
|
||||
descriptor is ScopeSeparator)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
@Serializable
|
||||
class SeSearchScopesInfo(val scopes: List<SeSearchScopeData>,
|
||||
val selectedScopeId: String?,
|
||||
val projectScopeId: String?,
|
||||
val everywhereScopeId: String?)
|
||||
@@ -1,9 +1,10 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.searchEverywhere
|
||||
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
@ApiStatus.Internal
|
||||
interface SeSearchScopesProvider {
|
||||
suspend fun getSearchScopesInfo(): SeSearchScopesInfo?
|
||||
suspend fun getSearchScopesInfo(): SearchScopesInfo?
|
||||
}
|
||||
@@ -4,6 +4,7 @@ package com.intellij.platform.searchEverywhere.impl
|
||||
import com.intellij.ide.rpc.DataContextId
|
||||
import com.intellij.platform.project.ProjectId
|
||||
import com.intellij.platform.rpc.RemoteApiProviderService
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
||||
import fleet.kernel.DurableRef
|
||||
@@ -82,7 +83,7 @@ interface SeRemoteApi : RemoteApi<Unit> {
|
||||
dataContextId: DataContextId,
|
||||
providerIds: List<SeProviderId>,
|
||||
isAllTab: Boolean,
|
||||
): Map<SeProviderId, SeSearchScopesInfo>
|
||||
): Map<SeProviderId, SearchScopesInfo>
|
||||
|
||||
suspend fun getTypeVisibilityStatesForProviders(
|
||||
index: Int,
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.intellij.platform.searchEverywhere.providers
|
||||
import com.intellij.ide.actions.searcheverywhere.statistics.SearchEverywhereUsageTriggerCollector
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.scopes.SearchScopesInfo
|
||||
import com.intellij.platform.searchEverywhere.*
|
||||
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
||||
import fleet.kernel.DurableRef
|
||||
@@ -75,7 +76,7 @@ class SeLocalItemDataProvider(
|
||||
return provider.itemSelected(item, modifiers, searchText)
|
||||
}
|
||||
|
||||
suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
||||
suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||
return (provider as? SeSearchScopesProvider)?.getSearchScopesInfo()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user