mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IP-670 - make seach api experimental
GitOrigin-RevId: 8e963d068215dd5c9876828978c17d0a6d3d0355
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c809829430
commit
c5ac4647dd
+3
@@ -1,10 +1,13 @@
|
||||
package org.jetbrains.idea.reposearch;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public interface DependencySearchProvider {
|
||||
|
||||
void fulltextSearch(@NotNull String searchString,
|
||||
|
||||
+2
@@ -2,9 +2,11 @@ package org.jetbrains.idea.reposearch;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public interface DependencySearchProvidersFactory {
|
||||
ExtensionPointName<DependencySearchProvidersFactory> EXTENSION_POINT_NAME =
|
||||
ExtensionPointName.create("org.jetbrains.idea.reposearch.provider");
|
||||
|
||||
+9
-5
@@ -5,6 +5,7 @@ import com.intellij.openapi.extensions.PluginDescriptor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.util.concurrency.AppExecutorUtil
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.concurrency.AsyncPromise
|
||||
import org.jetbrains.concurrency.Promise
|
||||
@@ -13,13 +14,14 @@ import org.jetbrains.concurrency.resolvedPromise
|
||||
import java.util.*
|
||||
import java.util.concurrent.CompletableFuture
|
||||
import java.util.concurrent.CompletableFuture.completedFuture
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import java.util.concurrent.ExecutorService
|
||||
import java.util.function.BiConsumer
|
||||
import java.util.function.Consumer
|
||||
import kotlin.collections.LinkedHashSet
|
||||
|
||||
typealias ResultConsumer = (RepositoryArtifactData) -> Unit
|
||||
|
||||
@ApiStatus.Experimental
|
||||
class DependencySearchService(private val myProject: Project) {
|
||||
private val myExecutorService: ExecutorService
|
||||
private val cache: MutableMap<String, CompletableFuture<Collection<RepositoryArtifactData>>> = ContainerUtil.createConcurrentWeakKeyWeakValueMap()
|
||||
@@ -67,16 +69,18 @@ class DependencySearchService(private val myProject: Project) {
|
||||
}
|
||||
}
|
||||
|
||||
val resultSet: MutableSet<RepositoryArtifactData> = ConcurrentHashMap.newKeySet()
|
||||
localProviders.forEach { lp -> searchMethod(lp) { resultSet.add(it) } }
|
||||
resultSet.forEach(consumer)
|
||||
val localResultSet: MutableSet<RepositoryArtifactData> = LinkedHashSet()
|
||||
localProviders.forEach { lp -> searchMethod(lp) { localResultSet.add(it) } }
|
||||
localResultSet.forEach(consumer)
|
||||
|
||||
|
||||
|
||||
if (parameters.isLocalOnly || remoteProviders.size == 0) {
|
||||
return resolvedPromise(0)
|
||||
}
|
||||
|
||||
val promises: MutableList<Promise<Void>> = ArrayList(remoteProviders.size)
|
||||
|
||||
val resultSet = Collections.synchronizedSet(localResultSet);
|
||||
for (provider in remoteProviders) {
|
||||
val promise = AsyncPromise<Void>()
|
||||
promises.add(promise)
|
||||
|
||||
+3
@@ -1,5 +1,8 @@
|
||||
package org.jetbrains.idea.reposearch;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public interface RepositoryArtifactData {
|
||||
String getKey();
|
||||
}
|
||||
|
||||
+3
@@ -1,5 +1,8 @@
|
||||
package org.jetbrains.idea.reposearch;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public class SearchParameters {
|
||||
|
||||
private final boolean myCache;
|
||||
|
||||
Reference in New Issue
Block a user