mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +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/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/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/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/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/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" />
|
<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/testFramework",
|
||||||
"//platform/util/coroutines",
|
"//platform/util/coroutines",
|
||||||
"//platform/platform-impl/eel:ide-impl-wsl",
|
"//platform/platform-impl/eel:ide-impl-wsl",
|
||||||
"//platform/execution",
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
### auto-generated section `build intellij.platform.ijent.community.testFramework` end
|
### auto-generated section `build intellij.platform.ijent.community.testFramework` end
|
||||||
@@ -22,6 +22,7 @@ java_library(
|
|||||||
"//spellchecker/xml",
|
"//spellchecker/xml",
|
||||||
"//platform/find/backend",
|
"//platform/find/backend",
|
||||||
"//platform/managed-cache/managed.cache.backend",
|
"//platform/managed-cache/managed.cache.backend",
|
||||||
|
"//platform/scopes/backend",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
### auto-generated section `build intellij.platform.backend.main` end
|
### 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.spellchecker.xml" scope="RUNTIME" />
|
||||||
<orderEntry type="module" module-name="intellij.platform.find.backend" 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.managed.cache.backend" scope="RUNTIME" />
|
||||||
|
<orderEntry type="module" module-name="intellij.platform.scopes.backend" scope="RUNTIME" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -13,6 +13,9 @@
|
|||||||
<module name="intellij.platform.project.backend"/>
|
<module name="intellij.platform.project.backend"/>
|
||||||
<module name="intellij.platform.progress.backend"/>
|
<module name="intellij.platform.progress.backend"/>
|
||||||
|
|
||||||
|
<module name="intellij.platform.scopes"/>
|
||||||
|
<module name="intellij.platform.scopes.backend"/>
|
||||||
|
|
||||||
<!-- todo navbar is not essential-->
|
<!-- todo navbar is not essential-->
|
||||||
<module name="intellij.platform.navbar"/>
|
<module name="intellij.platform.navbar"/>
|
||||||
<module name="intellij.platform.navbar.backend"/>
|
<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/usageView-impl",
|
||||||
"//platform/refactoring",
|
"//platform/refactoring",
|
||||||
"//platform/indexing-api:indexing",
|
"//platform/indexing-api:indexing",
|
||||||
|
"//platform/scopes",
|
||||||
],
|
],
|
||||||
runtime_deps = [
|
runtime_deps = [
|
||||||
":backend_resources",
|
":backend_resources",
|
||||||
|
|||||||
@@ -53,5 +53,6 @@
|
|||||||
<orderEntry type="module" module-name="intellij.platform.usageView.impl" />
|
<orderEntry type="module" module-name="intellij.platform.usageView.impl" />
|
||||||
<orderEntry type="module" module-name="intellij.platform.refactoring" />
|
<orderEntry type="module" module-name="intellij.platform.refactoring" />
|
||||||
<orderEntry type="module" module-name="intellij.platform.indexing" />
|
<orderEntry type="module" module-name="intellij.platform.indexing" />
|
||||||
|
<orderEntry type="module" module-name="intellij.platform.scopes" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -11,6 +11,7 @@ import com.intellij.openapi.components.service
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
import com.intellij.platform.project.ProjectId
|
import com.intellij.platform.project.ProjectId
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.equalityProviders.SeEqualityChecker
|
import com.intellij.platform.searchEverywhere.equalityProviders.SeEqualityChecker
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeLog
|
import com.intellij.platform.searchEverywhere.providers.SeLog
|
||||||
@@ -143,7 +144,7 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti
|
|||||||
dataContextId: DataContextId,
|
dataContextId: DataContextId,
|
||||||
providerIds: List<SeProviderId>,
|
providerIds: List<SeProviderId>,
|
||||||
isAllTab: Boolean,
|
isAllTab: Boolean,
|
||||||
): Map<SeProviderId, SeSearchScopesInfo> {
|
): Map<SeProviderId, SearchScopesInfo> {
|
||||||
return providerIds.mapNotNull { providerId ->
|
return providerIds.mapNotNull { providerId ->
|
||||||
val provider = getProvidersHolder(sessionRef, dataContextId)?.get(providerId, isAllTab)
|
val provider = getProvidersHolder(sessionRef, dataContextId)?.get(providerId, isAllTab)
|
||||||
provider?.getSearchScopesInfo()?.let {
|
provider?.getSearchScopesInfo()?.let {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package com.intellij.platform.searchEverywhere.backend.impl
|
|||||||
import com.intellij.ide.rpc.DataContextId
|
import com.intellij.ide.rpc.DataContextId
|
||||||
import com.intellij.platform.project.ProjectId
|
import com.intellij.platform.project.ProjectId
|
||||||
import com.intellij.platform.project.findProjectOrNull
|
import com.intellij.platform.project.findProjectOrNull
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.impl.SeRemoteApi
|
import com.intellij.platform.searchEverywhere.impl.SeRemoteApi
|
||||||
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
||||||
@@ -84,7 +85,7 @@ class SeRemoteApiImpl: SeRemoteApi {
|
|||||||
dataContextId: DataContextId,
|
dataContextId: DataContextId,
|
||||||
providerIds: List<SeProviderId>,
|
providerIds: List<SeProviderId>,
|
||||||
isAllTab: Boolean,
|
isAllTab: Boolean,
|
||||||
): Map<SeProviderId, SeSearchScopesInfo> {
|
): Map<SeProviderId, SearchScopesInfo> {
|
||||||
val project = projectId.findProjectOrNull() ?: return emptyMap()
|
val project = projectId.findProjectOrNull() ?: return emptyMap()
|
||||||
return SeBackendService.getInstance(project).getSearchScopesInfoForProviders(sessionRef, dataContextId, providerIds, isAllTab)
|
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.actions.searcheverywhere.ScopeChooserAction
|
||||||
import com.intellij.ide.util.scopeChooser.ScopeDescriptor
|
import com.intellij.ide.util.scopeChooser.ScopeDescriptor
|
||||||
import com.intellij.openapi.application.readAction
|
import com.intellij.openapi.application.readAction
|
||||||
import com.intellij.platform.searchEverywhere.SeSearchScopeData
|
import com.intellij.platform.scopes.SearchScopeData
|
||||||
import com.intellij.platform.searchEverywhere.SeSearchScopesInfo
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||||
import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty
|
import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty
|
||||||
import com.intellij.platform.searchEverywhere.utils.suspendLazy
|
import com.intellij.platform.searchEverywhere.utils.suspendLazy
|
||||||
import org.jetbrains.annotations.ApiStatus
|
import org.jetbrains.annotations.ApiStatus
|
||||||
import java.util.UUID
|
import java.util.*
|
||||||
import kotlin.concurrent.atomics.AtomicReference
|
import kotlin.concurrent.atomics.AtomicReference
|
||||||
import kotlin.concurrent.atomics.ExperimentalAtomicApi
|
import kotlin.concurrent.atomics.ExperimentalAtomicApi
|
||||||
|
|
||||||
@@ -18,12 +18,12 @@ import kotlin.concurrent.atomics.ExperimentalAtomicApi
|
|||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsyncWeightedContributorWrapper<Any>) {
|
class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsyncWeightedContributorWrapper<Any>) {
|
||||||
|
|
||||||
val searchScopesInfo: SuspendLazyProperty<SeSearchScopesInfo?> = suspendLazy { getSearchScopesInfo() }
|
val searchScopesInfo: SuspendLazyProperty<SearchScopesInfo?> = suspendLazy { getSearchScopesInfo() }
|
||||||
|
|
||||||
@Volatile
|
@Volatile
|
||||||
private var scopeIdToScope: AtomicReference<Map<String, ScopeDescriptor>> = AtomicReference(emptyMap())
|
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()
|
val scopeChooserAction: ScopeChooserAction = contributorWrapper.contributor.getActions({ }).filterIsInstance<ScopeChooserAction>().firstOrNull()
|
||||||
?: return null
|
?: return null
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsync
|
|||||||
scopeChooserAction.scopesWithSeparators
|
scopeChooserAction.scopesWithSeparators
|
||||||
}.mapNotNull { scope ->
|
}.mapNotNull { scope ->
|
||||||
val key = UUID.randomUUID().toString()
|
val key = UUID.randomUUID().toString()
|
||||||
val data = SeSearchScopeData.from(scope, key)
|
val data = SearchScopeData.from(scope, key)
|
||||||
if (data != null) all[key] = scope
|
if (data != null) all[key] = scope
|
||||||
data
|
data
|
||||||
}
|
}
|
||||||
@@ -62,10 +62,10 @@ class ScopeChooserActionProviderDelegate(private val contributorWrapper: SeAsync
|
|||||||
}?.scopeId
|
}?.scopeId
|
||||||
}
|
}
|
||||||
|
|
||||||
return SeSearchScopesInfo(scopeDataList,
|
return SearchScopesInfo(scopeDataList,
|
||||||
selectedScopeId,
|
selectedScopeId,
|
||||||
projectScopeId,
|
projectScopeId,
|
||||||
everywhereScopeId)
|
everywhereScopeId)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun applyScope(scopeId: String?) {
|
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.ide.util.gotoByName.LanguageRef
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||||
@@ -36,7 +37,7 @@ class SeClassesProvider(private val contributorWrapper: SeAsyncWeightedContribut
|
|||||||
Disposer.dispose(contributorWrapper)
|
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> =
|
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||||
targetsProviderDelegate.getTypeVisibilityStates<LanguageRef>(index)
|
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.ide.util.gotoByName.FileTypeRef
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||||
@@ -36,7 +37,7 @@ class SeFilesProvider(private val contributorWrapper: SeAsyncWeightedContributor
|
|||||||
Disposer.dispose(contributorWrapper)
|
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> =
|
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||||
targetsProviderDelegate.getTypeVisibilityStates<FileTypeRef>(index)
|
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.ide.util.gotoByName.FileTypeRef
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||||
@@ -36,7 +37,7 @@ class SeRecentFilesProvider(private val contributorWrapper: SeAsyncWeightedContr
|
|||||||
Disposer.dispose(contributorWrapper)
|
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> =
|
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||||
targetsProviderDelegate.getTypeVisibilityStates<FileTypeRef>(index)
|
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.ide.util.gotoByName.LanguageRef
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
import com.intellij.platform.searchEverywhere.backend.providers.target.SeTargetsProviderDelegate
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
import com.intellij.platform.searchEverywhere.providers.SeAsyncWeightedContributorWrapper
|
||||||
@@ -36,7 +37,7 @@ class SeSymbolsProvider(private val contributorWrapper: SeAsyncWeightedContribut
|
|||||||
Disposer.dispose(contributorWrapper)
|
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> =
|
override suspend fun getTypeVisibilityStates(index: Int): List<SeTypeVisibilityStatePresentation> =
|
||||||
targetsProviderDelegate.getTypeVisibilityStates<LanguageRef>(index)
|
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.application.EDT
|
||||||
import com.intellij.openapi.progress.ProgressManager
|
import com.intellij.openapi.progress.ProgressManager
|
||||||
import com.intellij.openapi.progress.coroutineToIndicator
|
import com.intellij.openapi.progress.coroutineToIndicator
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.backend.providers.ScopeChooserActionProviderDelegate
|
import com.intellij.platform.searchEverywhere.backend.providers.ScopeChooserActionProviderDelegate
|
||||||
import com.intellij.platform.searchEverywhere.providers.*
|
import com.intellij.platform.searchEverywhere.providers.*
|
||||||
@@ -101,7 +102,7 @@ class SeTargetsProviderDelegate(private val contributorWrapper: SeAsyncWeightedC
|
|||||||
scopeProviderDelegate.applyScope(scopeId)
|
scopeProviderDelegate.applyScope(scopeId)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||||
return scopeProviderDelegate.searchScopesInfo.getValue()
|
return scopeProviderDelegate.searchScopesInfo.getValue()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,13 +12,10 @@ import com.intellij.openapi.progress.ProgressManager
|
|||||||
import com.intellij.openapi.progress.coroutineToIndicator
|
import com.intellij.openapi.progress.coroutineToIndicator
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.backend.providers.ScopeChooserActionProviderDelegate
|
import com.intellij.platform.searchEverywhere.backend.providers.ScopeChooserActionProviderDelegate
|
||||||
import com.intellij.platform.searchEverywhere.providers.AsyncProcessor
|
import com.intellij.platform.searchEverywhere.providers.*
|
||||||
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 kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.jetbrains.annotations.ApiStatus
|
import org.jetbrains.annotations.ApiStatus
|
||||||
@@ -97,7 +94,7 @@ class SeTextItemsProvider(project: Project, private val contributorWrapper: SeAs
|
|||||||
scopeProviderDelegate.applyScope(scopeId)
|
scopeProviderDelegate.applyScope(scopeId)
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
override suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||||
return scopeProviderDelegate.searchScopesInfo.getValue()
|
return scopeProviderDelegate.searchScopesInfo.getValue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ jvm_library(
|
|||||||
"//platform/lang-impl",
|
"//platform/lang-impl",
|
||||||
"//platform/usageView",
|
"//platform/usageView",
|
||||||
"//platform/refactoring",
|
"//platform/refactoring",
|
||||||
|
"//platform/scopes",
|
||||||
],
|
],
|
||||||
exports = ["//platform/searchEverywhere/shared:searchEverywhere"],
|
exports = ["//platform/searchEverywhere/shared:searchEverywhere"],
|
||||||
runtime_deps = [":frontend_resources"]
|
runtime_deps = [":frontend_resources"]
|
||||||
|
|||||||
@@ -54,5 +54,6 @@
|
|||||||
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
|
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
|
||||||
<orderEntry type="module" module-name="intellij.platform.usageView" />
|
<orderEntry type="module" module-name="intellij.platform.usageView" />
|
||||||
<orderEntry type="module" module-name="intellij.platform.refactoring" />
|
<orderEntry type="module" module-name="intellij.platform.refactoring" />
|
||||||
|
<orderEntry type="module" module-name="intellij.platform.scopes" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -3,6 +3,7 @@ package com.intellij.platform.searchEverywhere.frontend
|
|||||||
|
|
||||||
import com.intellij.ide.rpc.DataContextId
|
import com.intellij.ide.rpc.DataContextId
|
||||||
import com.intellij.platform.project.ProjectId
|
import com.intellij.platform.project.ProjectId
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.impl.SeRemoteApi
|
import com.intellij.platform.searchEverywhere.impl.SeRemoteApi
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeLog
|
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)
|
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(
|
SeRemoteApi.getInstance().getSearchScopesInfoForProviders(
|
||||||
projectId, providerIds = providerIds, sessionRef = sessionRef, dataContextId = dataContextId, isAllTab = isAllTab
|
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.application.readAction
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.platform.project.projectId
|
import com.intellij.platform.project.projectId
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.equalityProviders.SeEqualityChecker
|
import com.intellij.platform.searchEverywhere.equalityProviders.SeEqualityChecker
|
||||||
import com.intellij.platform.searchEverywhere.frontend.SeFrontendItemDataProvidersFacade
|
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()
|
return providers.getValue().getSearchScopesInfos()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,7 +130,7 @@ class SeTabDelegate(
|
|||||||
fun getProvidersIdToName(): Map<SeProviderId, @Nls String> = localProviders.mapValues { it.value.displayName } +
|
fun getProvidersIdToName(): Map<SeProviderId, @Nls String> = localProviders.mapValues { it.value.displayName } +
|
||||||
(frontendProvidersFacade?.idsWithDisplayNames ?: emptyMap())
|
(frontendProvidersFacade?.idsWithDisplayNames ?: emptyMap())
|
||||||
|
|
||||||
suspend fun getSearchScopesInfos(): List<SeSearchScopesInfo> {
|
suspend fun getSearchScopesInfos(): List<SearchScopesInfo> {
|
||||||
return localProviders.values.mapNotNull { it.getSearchScopesInfo() } +
|
return localProviders.values.mapNotNull { it.getSearchScopesInfo() } +
|
||||||
(frontendProvidersFacade?.getSearchScopesInfos()?.values ?: emptyList())
|
(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.actionSystem.AnAction
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
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.platform.searchEverywhere.frontend.AutoToggleAction
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.util.Processor
|
import com.intellij.util.Processor
|
||||||
@@ -19,7 +19,7 @@ import java.awt.Color
|
|||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
|
|
||||||
@ApiStatus.Internal
|
@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 {
|
private val descriptors: Map<String, ScopeDescriptor> = scopesInfo.scopes.associate {
|
||||||
val descriptor =
|
val descriptor =
|
||||||
if (it.isSeparator) ScopeSeparator(it.name)
|
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.actions.searcheverywhere.SearchEverywhereFiltersAction
|
||||||
import com.intellij.ide.ui.icons.icon
|
import com.intellij.ide.ui.icons.icon
|
||||||
import com.intellij.openapi.actionSystem.AnAction
|
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.SeFilterEditorBase
|
||||||
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeTypeVisibilityStateHolder
|
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeTypeVisibilityStateHolder
|
||||||
import com.intellij.platform.searchEverywhere.providers.target.SeTargetsFilter
|
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
|
import org.jetbrains.annotations.ApiStatus.Internal
|
||||||
|
|
||||||
@Internal
|
@Internal
|
||||||
class SeTargetsFilterEditor(private val scopesInfo: SeSearchScopesInfo?,
|
class SeTargetsFilterEditor(private val scopesInfo: SearchScopesInfo?,
|
||||||
typeVisibilityStates: List<SeTypeVisibilityStatePresentation>?) : SeFilterEditorBase<SeTargetsFilter>(
|
typeVisibilityStates: List<SeTypeVisibilityStatePresentation>?) : SeFilterEditorBase<SeTargetsFilter>(
|
||||||
SeTargetsFilter(scopesInfo?.selectedScopeId, hiddenTypes(typeVisibilityStates))
|
SeTargetsFilter(scopesInfo?.selectedScopeId, hiddenTypes(typeVisibilityStates))
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.intellij.find.FindSettings
|
|||||||
import com.intellij.find.impl.JComboboxAction
|
import com.intellij.find.impl.JComboboxAction
|
||||||
import com.intellij.openapi.actionSystem.AnAction
|
import com.intellij.openapi.actionSystem.AnAction
|
||||||
import com.intellij.openapi.project.Project
|
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.target.SeScopeChooserActionProvider
|
||||||
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeFilterEditorBase
|
import com.intellij.platform.searchEverywhere.frontend.tabs.utils.SeFilterEditorBase
|
||||||
import com.intellij.platform.searchEverywhere.providers.SeTextFilter
|
import com.intellij.platform.searchEverywhere.providers.SeTextFilter
|
||||||
@@ -15,7 +15,7 @@ import org.jetbrains.annotations.ApiStatus
|
|||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
class SeTextFilterEditor(
|
class SeTextFilterEditor(
|
||||||
private val project: Project?,
|
private val project: Project?,
|
||||||
private val scopesInfo: SeSearchScopesInfo?,
|
private val scopesInfo: SearchScopesInfo?,
|
||||||
) : SeFilterEditorBase<SeTextFilter>(
|
) : SeFilterEditorBase<SeTextFilter>(
|
||||||
SeTextFilter(scopesInfo?.selectedScopeId, null)
|
SeTextFilter(scopesInfo?.selectedScopeId, null)
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ jvm_library(
|
|||||||
"//platform/usageView",
|
"//platform/usageView",
|
||||||
"//platform/execution-impl",
|
"//platform/execution-impl",
|
||||||
"//platform/statistics",
|
"//platform/statistics",
|
||||||
|
"//platform/scopes",
|
||||||
],
|
],
|
||||||
exports = [
|
exports = [
|
||||||
"//platform/lang-impl",
|
"//platform/lang-impl",
|
||||||
|
|||||||
@@ -51,5 +51,6 @@
|
|||||||
<orderEntry type="module" module-name="intellij.platform.usageView" />
|
<orderEntry type="module" module-name="intellij.platform.usageView" />
|
||||||
<orderEntry type="module" module-name="intellij.platform.execution.impl" />
|
<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.statistics" exported="" />
|
||||||
|
<orderEntry type="module" module-name="intellij.platform.scopes" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</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.
|
// 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
|
package com.intellij.platform.searchEverywhere
|
||||||
|
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import org.jetbrains.annotations.ApiStatus
|
import org.jetbrains.annotations.ApiStatus
|
||||||
|
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
interface SeSearchScopesProvider {
|
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.ide.rpc.DataContextId
|
||||||
import com.intellij.platform.project.ProjectId
|
import com.intellij.platform.project.ProjectId
|
||||||
import com.intellij.platform.rpc.RemoteApiProviderService
|
import com.intellij.platform.rpc.RemoteApiProviderService
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
||||||
import fleet.kernel.DurableRef
|
import fleet.kernel.DurableRef
|
||||||
@@ -82,7 +83,7 @@ interface SeRemoteApi : RemoteApi<Unit> {
|
|||||||
dataContextId: DataContextId,
|
dataContextId: DataContextId,
|
||||||
providerIds: List<SeProviderId>,
|
providerIds: List<SeProviderId>,
|
||||||
isAllTab: Boolean,
|
isAllTab: Boolean,
|
||||||
): Map<SeProviderId, SeSearchScopesInfo>
|
): Map<SeProviderId, SearchScopesInfo>
|
||||||
|
|
||||||
suspend fun getTypeVisibilityStatesForProviders(
|
suspend fun getTypeVisibilityStatesForProviders(
|
||||||
index: Int,
|
index: Int,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package com.intellij.platform.searchEverywhere.providers
|
|||||||
import com.intellij.ide.actions.searcheverywhere.statistics.SearchEverywhereUsageTriggerCollector
|
import com.intellij.ide.actions.searcheverywhere.statistics.SearchEverywhereUsageTriggerCollector
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.platform.scopes.SearchScopesInfo
|
||||||
import com.intellij.platform.searchEverywhere.*
|
import com.intellij.platform.searchEverywhere.*
|
||||||
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation
|
||||||
import fleet.kernel.DurableRef
|
import fleet.kernel.DurableRef
|
||||||
@@ -75,7 +76,7 @@ class SeLocalItemDataProvider(
|
|||||||
return provider.itemSelected(item, modifiers, searchText)
|
return provider.itemSelected(item, modifiers, searchText)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getSearchScopesInfo(): SeSearchScopesInfo? {
|
suspend fun getSearchScopesInfo(): SearchScopesInfo? {
|
||||||
return (provider as? SeSearchScopesProvider)?.getSearchScopesInfo()
|
return (provider as? SeSearchScopesProvider)?.getSearchScopesInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user