[polySymbols] WEB-72822 Refactor WebSymbolsQueryExecutor -> PolySymbolsQueryExecutor

GitOrigin-RevId: 607cb711d0637a77b63264cf491db4d55531902b
This commit is contained in:
Piotr Tomiak
2025-05-29 15:25:11 +02:00
committed by intellij-monorepo-bot
parent 35e8688e95
commit f155b3fbbc
43 changed files with 148 additions and 148 deletions

View File

@@ -25,7 +25,7 @@ import com.intellij.webSymbols.html.PolySymbolHtmlAttributeValue
import com.intellij.webSymbols.js.PolySymbolJsKind
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.PolySymbolMatch
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.refactoring.WebSymbolRenameTarget
import com.intellij.webSymbols.search.WebSymbolSearchTarget
import com.intellij.webSymbols.utils.matchedNameOrName
@@ -335,7 +335,7 @@ interface PolySymbol : PolySymbolsScope, Symbol, NavigatableSymbol, PolySymbolsP
* Web Symbols can have various naming conventions.
* This method is used by the framework to determine a new name for a symbol based on its occurrence
*/
fun adjustNameForRefactoring(queryExecutor: WebSymbolsQueryExecutor, newName: String, occurence: String): String =
fun adjustNameForRefactoring(queryExecutor: PolySymbolsQueryExecutor, newName: String, occurence: String): String =
queryExecutor.namesProvider.adjustRename(qualifiedName, newName, occurence)

View File

@@ -143,7 +143,7 @@ abstract class PolySymbolsScopeWithCache<T : UserDataHolder, K>(
}
else emptyList()
private fun getMap(queryExecutor: WebSymbolsQueryExecutor): WebSymbolsSearchMap =
private fun getMap(queryExecutor: PolySymbolsQueryExecutor): WebSymbolsSearchMap =
getNamesProviderToMapCache().getOrCreateMap(queryExecutor.namesProvider, this::createCachedSearchMap)
private class NamesProviderToMapCache {

View File

@@ -17,7 +17,7 @@ import com.intellij.webSymbols.FrameworkId
import com.intellij.webSymbols.PolySymbolQualifiedKind
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItemCustomizer.Companion.customizeItems
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.query.WebSymbolsQueryExecutorFactory
abstract class PolySymbolsCompletionProviderBase<T : PsiElement> : CompletionProvider<CompletionParameters>() {
@@ -53,7 +53,7 @@ abstract class PolySymbolsCompletionProviderBase<T : PsiElement> : CompletionPro
protected abstract fun addCompletions(
parameters: CompletionParameters, result: CompletionResultSet,
position: Int, name: String, queryExecutor: WebSymbolsQueryExecutor, context: T,
position: Int, name: String, queryExecutor: PolySymbolsQueryExecutor, context: T,
)
companion object {
@@ -73,7 +73,7 @@ abstract class PolySymbolsCompletionProviderBase<T : PsiElement> : CompletionPro
@JvmStatic
fun processCompletionQueryResults(
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
result: CompletionResultSet,
qualifiedKind: PolySymbolQualifiedKind,
name: String,

View File

@@ -18,7 +18,7 @@ import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.WebSymbolsCodeCompletionQueryParams
import com.intellij.webSymbols.query.WebSymbolsListSymbolsQueryParams
import com.intellij.webSymbols.query.WebSymbolsNameMatchQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
class CustomElementsClassOrMixinDeclarationAdapter private constructor(
override val name: String,
@@ -41,7 +41,7 @@ class CustomElementsClassOrMixinDeclarationAdapter private constructor(
override val framework: FrameworkId?
get() = null
override fun withQueryExecutorContext(queryExecutor: WebSymbolsQueryExecutor): PolySymbol =
override fun withQueryExecutorContext(queryExecutor: PolySymbolsQueryExecutor): PolySymbol =
CustomElementClassOrMixinDeclarationSymbol(this, queryExecutor)
private fun createPointer(): Pointer<CustomElementsClassOrMixinDeclarationAdapter> {
@@ -58,7 +58,7 @@ class CustomElementsClassOrMixinDeclarationAdapter private constructor(
private class CustomElementClassOrMixinDeclarationSymbol(
private val base: CustomElementsClassOrMixinDeclarationAdapter,
private val queryExecutor: WebSymbolsQueryExecutor,
private val queryExecutor: PolySymbolsQueryExecutor,
) : CustomElementsSymbol, PsiSourcedPolySymbol {
private var _superContributions: List<PolySymbol>? = null

View File

@@ -13,7 +13,7 @@ import com.intellij.webSymbols.customElements.json.mapToReferenceList
import com.intellij.webSymbols.customElements.json.toApiStatus
import com.intellij.webSymbols.impl.StaticPolySymbolsScopeBase
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
abstract class CustomElementsContributionSymbol<T : CustomElementsContribution> protected constructor(
final override val name: String,
@@ -37,7 +37,7 @@ abstract class CustomElementsContributionSymbol<T : CustomElementsContribution>
override val type: Any?
get() = contribution.type?.let { origin.typeSupport?.resolve(it.mapToReferenceList()) }
final override fun withQueryExecutorContext(queryExecutor: WebSymbolsQueryExecutor): PolySymbol =
final override fun withQueryExecutorContext(queryExecutor: PolySymbolsQueryExecutor): PolySymbol =
this
override fun matchContext(context: PolyContext): Boolean =

View File

@@ -11,7 +11,7 @@ import com.intellij.webSymbols.customElements.json.createPattern
import com.intellij.webSymbols.customElements.json.toApiStatus
import com.intellij.webSymbols.impl.StaticPolySymbolsScopeBase
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
class CustomElementsCustomElementExportSymbol private constructor(
override val name: String,
@@ -26,7 +26,7 @@ class CustomElementsCustomElementExportSymbol private constructor(
override val framework: FrameworkId?
get() = null
override fun withQueryExecutorContext(queryExecutor: WebSymbolsQueryExecutor): PolySymbol =
override fun withQueryExecutorContext(queryExecutor: PolySymbolsQueryExecutor): PolySymbol =
this
override fun createPointer(): Pointer<out PolySymbol> =

View File

@@ -12,12 +12,12 @@ import com.intellij.webSymbols.customElements.impl.*
import com.intellij.webSymbols.impl.StaticPolySymbolsScopeBase
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.patterns.PolySymbolsPatternFactory
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
fun Reference.createPattern(origin: CustomElementsJsonOrigin): PolySymbolsPattern? =
createQueryPathList(origin)?.let { PolySymbolsPatternFactory.createSingleSymbolReferencePattern(it) }
fun Reference.resolve(origin: CustomElementsJsonOrigin, queryExecutor: WebSymbolsQueryExecutor): List<PolySymbol> =
fun Reference.resolve(origin: CustomElementsJsonOrigin, queryExecutor: PolySymbolsQueryExecutor): List<PolySymbol> =
createQueryPathList(origin)
?.let { queryExecutor.runNameMatchQuery(it) }
?: emptyList()

View File

@@ -19,7 +19,7 @@ abstract class StaticPolySymbolsScopeBase<Root : Any, Contribution : Any, Origin
private val namesProviderCache: MutableMap<WebSymbolNamesProvider, NameProvidersCache> = ContainerUtil.createConcurrentSoftKeySoftValueMap()
private var namesProviderCacheMisses = 0
private val queryExecutorCache: MutableMap<WebSymbolsQueryExecutor, QueryExecutorContributionsCache> = ContainerUtil.createConcurrentSoftKeySoftValueMap()
private val queryExecutorCache: MutableMap<PolySymbolsQueryExecutor, QueryExecutorContributionsCache> = ContainerUtil.createConcurrentSoftKeySoftValueMap()
private var queryExecutorCacheMisses = 0
private val roots = mutableMapOf<Root, Origin>()
@@ -102,7 +102,7 @@ abstract class StaticPolySymbolsScopeBase<Root : Any, Contribution : Any, Origin
framework: FrameworkId?,
origin: Origin): Sequence<StaticSymbolContributionAdapter>
private fun getMap(queryExecutor: WebSymbolsQueryExecutor,
private fun getMap(queryExecutor: PolySymbolsQueryExecutor,
contribution: Contribution,
origin: Origin): ContributionSearchMap =
getOrCreateMap(queryExecutor, contribution) { consumer ->
@@ -110,14 +110,14 @@ abstract class StaticPolySymbolsScopeBase<Root : Any, Contribution : Any, Origin
}
private fun getMapForRoot(queryExecutor: WebSymbolsQueryExecutor,
private fun getMapForRoot(queryExecutor: PolySymbolsQueryExecutor,
root: Root,
origin: Origin): ContributionSearchMap =
getOrCreateMap(queryExecutor, root) { consumer ->
adaptAllRootContributions(root, origin.framework, origin).forEach(consumer)
}
private fun getOrCreateMap(queryExecutor: WebSymbolsQueryExecutor,
private fun getOrCreateMap(queryExecutor: PolySymbolsQueryExecutor,
key: Any,
mapInitializer: (consumer: (StaticSymbolContributionAdapter) -> Unit) -> Unit): ContributionSearchMap =
getNameProvidersCache(queryExecutor.namesProvider).getOrCreateMap(key, mapInitializer)
@@ -134,7 +134,7 @@ abstract class StaticPolySymbolsScopeBase<Root : Any, Contribution : Any, Origin
.also { it.checkForModifications() }
}
private fun getQueryExecutorContributionsCache(queryExecutor: WebSymbolsQueryExecutor): QueryExecutorContributionsCache {
private fun getQueryExecutorContributionsCache(queryExecutor: PolySymbolsQueryExecutor): QueryExecutorContributionsCache {
if (queryExecutorCacheMisses > 100) {
// Get rid of old soft keys
queryExecutorCacheMisses = 0
@@ -164,7 +164,7 @@ abstract class StaticPolySymbolsScopeBase<Root : Any, Contribution : Any, Origin
val name: String
val pattern: PolySymbolsPattern?
val framework: FrameworkId?
fun withQueryExecutorContext(queryExecutor: WebSymbolsQueryExecutor): PolySymbol
fun withQueryExecutorContext(queryExecutor: PolySymbolsQueryExecutor): PolySymbol
fun matchContext(context: PolyContext): Boolean =
framework == null || context.framework == null || context.framework == framework
}
@@ -207,7 +207,7 @@ abstract class StaticPolySymbolsScopeBase<Root : Any, Contribution : Any, Origin
}
}
private inner class QueryExecutorContributionsCache(private val queryExecutor: WebSymbolsQueryExecutor) {
private inner class QueryExecutorContributionsCache(private val queryExecutor: PolySymbolsQueryExecutor) {
private val symbolsCache: MutableMap<StaticSymbolContributionAdapter, PolySymbol> = ConcurrentHashMap()
private var queryExecutorModificationCount: Long = -1

View File

@@ -5,20 +5,20 @@ import com.intellij.util.containers.Stack
import com.intellij.webSymbols.PolySymbolQualifiedName
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.patterns.impl.*
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
object PolySymbolsPatternFactory {
fun createComplexPattern(optionsProvider: (queryExecutor: WebSymbolsQueryExecutor, contextStack: Stack<PolySymbolsScope>) -> ComplexPatternOptions,
fun createComplexPattern(optionsProvider: (queryExecutor: PolySymbolsQueryExecutor, contextStack: Stack<PolySymbolsScope>) -> ComplexPatternOptions,
isStaticAndRequiredProvider: () -> Boolean,
patternsProvider: () -> List<PolySymbolsPattern>): PolySymbolsPattern =
ComplexPattern(object : ComplexPatternConfigProvider {
override fun getPatterns(): List<PolySymbolsPattern> =
patternsProvider()
override fun getOptions(queryExecutor: WebSymbolsQueryExecutor, scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions =
override fun getOptions(queryExecutor: PolySymbolsQueryExecutor, scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions =
optionsProvider(queryExecutor, scopeStack)
override val isStaticAndRequired: Boolean
@@ -34,7 +34,7 @@ object PolySymbolsPatternFactory {
override fun getPatterns(): List<PolySymbolsPattern> =
patterns.toList()
override fun getOptions(queryExecutor: WebSymbolsQueryExecutor, scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions =
override fun getOptions(queryExecutor: PolySymbolsQueryExecutor, scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions =
options
override val isStaticAndRequired: Boolean

View File

@@ -10,7 +10,7 @@ import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.impl.canUnwrapSymbols
import com.intellij.webSymbols.query.PolySymbolMatch
import com.intellij.webSymbols.query.WebSymbolNameConversionRules
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.webTypes.filters.WebSymbolsFilter
import org.jetbrains.annotations.ApiStatus
@@ -25,10 +25,10 @@ class PolySymbolsPatternReferenceResolver(private vararg val items: Reference) :
override fun codeCompletion(name: String,
position: Int,
scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor): List<PolySymbolCodeCompletionItem> =
queryExecutor: PolySymbolsQueryExecutor): List<PolySymbolCodeCompletionItem> =
items.flatMap { it.codeCompletion(name, scopeStack, queryExecutor, position) }
override fun matchName(name: String, scopeStack: Stack<PolySymbolsScope>, queryExecutor: WebSymbolsQueryExecutor): List<PolySymbol> =
override fun matchName(name: String, scopeStack: Stack<PolySymbolsScope>, queryExecutor: PolySymbolsQueryExecutor): List<PolySymbol> =
items.asSequence()
.flatMap { it.resolve(name, scopeStack, queryExecutor) }
.flatMap {
@@ -41,7 +41,7 @@ class PolySymbolsPatternReferenceResolver(private vararg val items: Reference) :
.toList()
override fun listSymbols(scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean): List<PolySymbol> =
items.flatMap { it.listSymbols(scopeStack, queryExecutor, expandPatterns) }
@@ -55,7 +55,7 @@ class PolySymbolsPatternReferenceResolver(private vararg val items: Reference) :
) {
fun resolve(name: String,
scope: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor
queryExecutor: PolySymbolsQueryExecutor
): List<PolySymbol> {
val matches = queryExecutor.withNameConversionRules(nameConversionRules)
.runNameMatchQuery(location + PolySymbolQualifiedName(qualifiedKind.namespace, qualifiedKind.kind, name),
@@ -65,7 +65,7 @@ class PolySymbolsPatternReferenceResolver(private vararg val items: Reference) :
}
fun listSymbols(scope: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean): List<PolySymbol> {
val symbols = queryExecutor.withNameConversionRules(nameConversionRules)
.runListSymbolsQuery(location, qualifiedKind,
@@ -76,7 +76,7 @@ class PolySymbolsPatternReferenceResolver(private vararg val items: Reference) :
fun codeCompletion(name: String,
scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
position: Int): List<PolySymbolCodeCompletionItem> {
val codeCompletions = queryExecutor.withNameConversionRules(nameConversionRules)
.runCodeCompletionQuery(location + PolySymbolQualifiedName(qualifiedKind.namespace, qualifiedKind.kind, name),

View File

@@ -6,7 +6,7 @@ import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.PolySymbolQualifiedKind
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
@@ -19,14 +19,14 @@ interface PolySymbolsPatternSymbolsResolver {
fun codeCompletion(name: String,
position: Int,
scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor): List<PolySymbolCodeCompletionItem>
queryExecutor: PolySymbolsQueryExecutor): List<PolySymbolCodeCompletionItem>
fun listSymbols(scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean): List<PolySymbol>
fun matchName(name: String,
scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor): List<PolySymbol>
queryExecutor: PolySymbolsQueryExecutor): List<PolySymbol>
}

View File

@@ -2,10 +2,10 @@
package com.intellij.webSymbols.patterns.impl
import com.intellij.webSymbols.query.WebSymbolsCodeCompletionQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
internal class CompletionParameters(name: String,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
val position: Int) : MatchParameters(name, queryExecutor) {
constructor(name: String, params: WebSymbolsCodeCompletionQueryParams)
: this(name, params.queryExecutor, params.position)

View File

@@ -14,7 +14,7 @@ import com.intellij.webSymbols.impl.copy
import com.intellij.webSymbols.impl.selectBest
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.patterns.PolySymbolsPatternSymbolsResolver
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.utils.coalesceWith
import com.intellij.webSymbols.utils.isCritical
import kotlin.math.max
@@ -149,7 +149,7 @@ internal class ComplexPattern(private val configProvider: ComplexPatternConfigPr
}
private fun <T> process(scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
action: (patterns: List<PolySymbolsPattern>,
symbolsResolver: PolySymbolsPatternSymbolsResolver?,
patternApiStatus: PolySymbolApiStatus?,

View File

@@ -5,13 +5,13 @@ import com.intellij.util.containers.Stack
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.patterns.ComplexPatternOptions
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
internal interface ComplexPatternConfigProvider {
fun getPatterns(): List<PolySymbolsPattern>
fun getOptions(queryExecutor: WebSymbolsQueryExecutor, scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions
fun getOptions(queryExecutor: PolySymbolsQueryExecutor, scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions
val isStaticAndRequired: Boolean

View File

@@ -2,10 +2,10 @@
package com.intellij.webSymbols.patterns.impl
import com.intellij.webSymbols.query.WebSymbolsListSymbolsQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
internal open class ListParameters(
val queryExecutor: WebSymbolsQueryExecutor,
val queryExecutor: PolySymbolsQueryExecutor,
val expandPatterns: Boolean,
) {

View File

@@ -2,10 +2,10 @@
package com.intellij.webSymbols.patterns.impl
import com.intellij.webSymbols.query.WebSymbolsNameMatchQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
internal open class MatchParameters(val name: String,
val queryExecutor: WebSymbolsQueryExecutor) {
val queryExecutor: PolySymbolsQueryExecutor) {
constructor(name: String, params: WebSymbolsNameMatchQueryParams)
: this(name, params.queryExecutor)

View File

@@ -10,7 +10,7 @@ import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
/**
* A special purpose scope, which provides other scopes, possibly calling a [WebSymbolsQueryExecutor] to retrieve them.
* A special purpose scope, which provides other scopes, possibly calling a [PolySymbolsQueryExecutor] to retrieve them.
* This scope is useful if your [WebSymbolsQueryConfigurator] needs to provide scopes based on the location and these
* in turn require to query the model. It can also be added as an additional scope to any WebSymbol query, or be used
* just to encompass logic related to building a list of scopes. [PolySymbolsCompoundScope] cannot be nested within each
@@ -18,10 +18,10 @@ import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
*/
abstract class PolySymbolsCompoundScope : PolySymbolsScope {
protected abstract fun build(queryExecutor: WebSymbolsQueryExecutor,
protected abstract fun build(queryExecutor: PolySymbolsQueryExecutor,
consumer: (PolySymbolsScope) -> Unit)
fun getScopes(queryExecutor: WebSymbolsQueryExecutor): List<PolySymbolsScope> {
fun getScopes(queryExecutor: PolySymbolsQueryExecutor): List<PolySymbolsScope> {
if (requiresResolve() && !queryExecutor.allowResolve) return emptyList()
val list = mutableListOf<PolySymbolsScope>()
build(queryExecutor) {

View File

@@ -19,7 +19,7 @@ import com.intellij.webSymbols.context.PolyContext.Companion.KIND_FRAMEWORK
* INAPPLICABLE_JVM_NAME -> https://youtrack.jetbrains.com/issue/KT-31420
**/
@Suppress("INAPPLICABLE_JVM_NAME")
interface WebSymbolsQueryExecutor : ModificationTracker {
interface PolySymbolsQueryExecutor : ModificationTracker {
val location: PsiElement?
@@ -36,7 +36,7 @@ interface WebSymbolsQueryExecutor : ModificationTracker {
var keepUnresolvedTopLevelReferences: Boolean
fun createPointer(): Pointer<WebSymbolsQueryExecutor>
fun createPointer(): Pointer<PolySymbolsQueryExecutor>
fun runNameMatchQuery(namespace: SymbolNamespace,
kind: SymbolKind,
@@ -99,7 +99,7 @@ interface WebSymbolsQueryExecutor : ModificationTracker {
virtualSymbols: Boolean = true,
additionalScope: List<PolySymbolsScope> = emptyList()): List<PolySymbolCodeCompletionItem>
fun withNameConversionRules(rules: List<WebSymbolNameConversionRules>): WebSymbolsQueryExecutor
fun withNameConversionRules(rules: List<WebSymbolNameConversionRules>): PolySymbolsQueryExecutor
fun hasExclusiveScopeFor(qualifiedKind: PolySymbolQualifiedKind, scope: List<PolySymbolsScope> = emptyList()): Boolean

View File

@@ -13,11 +13,11 @@ import com.intellij.webSymbols.query.impl.WebSymbolsQueryExecutorBuilderImpl
import org.jetbrains.annotations.TestOnly
/**
* Use the factory to create [WebSymbolsQueryExecutor] for a particular location in the source code.
* Use the factory to create [PolySymbolsQueryExecutor] for a particular location in the source code.
*/
interface WebSymbolsQueryExecutorFactory : Disposable {
fun create(location: PsiElement?, allowResolve: Boolean = true): WebSymbolsQueryExecutor
fun create(location: PsiElement?, allowResolve: Boolean = true): PolySymbolsQueryExecutor
@TestOnly
fun addScope(scope: PolySymbolsScope, contextDirectory: VirtualFile?, disposable: Disposable)
@@ -37,7 +37,7 @@ interface WebSymbolsQueryExecutorFactory : Disposable {
fun allowResolve(allowResolve: Boolean): WebSymbolsQueryExecutorBuilder
fun create(): WebSymbolsQueryExecutor
fun create(): PolySymbolsQueryExecutor
}
companion object {
@@ -45,13 +45,13 @@ interface WebSymbolsQueryExecutorFactory : Disposable {
@JvmStatic
fun getInstance(project: Project): WebSymbolsQueryExecutorFactory = project.service()
fun create(location: PsiElement, allowResolve: Boolean = true): WebSymbolsQueryExecutor =
fun create(location: PsiElement, allowResolve: Boolean = true): PolySymbolsQueryExecutor =
getInstance(location.project).create(location, allowResolve)
fun createCustom(): WebSymbolsQueryExecutorBuilder =
WebSymbolsQueryExecutorBuilderImpl()
fun createCustom(setup: WebSymbolsQueryExecutorBuilder.() -> Unit): WebSymbolsQueryExecutor =
fun createCustom(setup: WebSymbolsQueryExecutorBuilder.() -> Unit): PolySymbolsQueryExecutor =
WebSymbolsQueryExecutorBuilderImpl()
.let { setup(it); it.create() }

View File

@@ -6,13 +6,13 @@ sealed interface WebSymbolsQueryParams {
val framework: String?
get() = queryExecutor.framework
val queryExecutor: WebSymbolsQueryExecutor
val queryExecutor: PolySymbolsQueryExecutor
val virtualSymbols: Boolean
}
sealed interface WebSymbolsListSymbolsQueryParams : WebSymbolsQueryParams {
override val queryExecutor: WebSymbolsQueryExecutor
override val queryExecutor: PolySymbolsQueryExecutor
val expandPatterns: Boolean
override val virtualSymbols: Boolean
val abstractSymbols: Boolean
@@ -23,7 +23,7 @@ sealed interface WebSymbolsListSymbolsQueryParams : WebSymbolsQueryParams {
@JvmStatic
@JvmOverloads
fun create(
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean,
virtualSymbols: Boolean = true
): WebSymbolsListSymbolsQueryParams =
@@ -31,7 +31,7 @@ sealed interface WebSymbolsListSymbolsQueryParams : WebSymbolsQueryParams {
@JvmStatic
fun create(
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean,
virtualSymbols: Boolean = true,
abstractSymbols: Boolean = false,
@@ -44,7 +44,7 @@ sealed interface WebSymbolsListSymbolsQueryParams : WebSymbolsQueryParams {
sealed interface WebSymbolsNameMatchQueryParams : WebSymbolsQueryParams {
override val queryExecutor: WebSymbolsQueryExecutor
override val queryExecutor: PolySymbolsQueryExecutor
override val virtualSymbols: Boolean
val abstractSymbols: Boolean
val strictScope: Boolean
@@ -54,14 +54,14 @@ sealed interface WebSymbolsNameMatchQueryParams : WebSymbolsQueryParams {
@JvmStatic
@JvmOverloads
fun create(
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
virtualSymbols: Boolean = true
): WebSymbolsNameMatchQueryParams =
create(queryExecutor, virtualSymbols, false, false)
@JvmStatic
fun create(
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
virtualSymbols: Boolean = true,
abstractSymbols: Boolean = false,
strictScope: Boolean = false
@@ -72,7 +72,7 @@ sealed interface WebSymbolsNameMatchQueryParams : WebSymbolsQueryParams {
}
sealed interface WebSymbolsCodeCompletionQueryParams : WebSymbolsQueryParams {
override val queryExecutor: WebSymbolsQueryExecutor
override val queryExecutor: PolySymbolsQueryExecutor
/** Position to complete at in the last segment of the path **/
val position: Int
@@ -84,7 +84,7 @@ sealed interface WebSymbolsCodeCompletionQueryParams : WebSymbolsQueryParams {
@JvmStatic
@JvmOverloads
fun create(
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
position: Int,
virtualSymbols: Boolean = true
): WebSymbolsCodeCompletionQueryParams =
@@ -94,13 +94,13 @@ sealed interface WebSymbolsCodeCompletionQueryParams : WebSymbolsQueryParams {
}
private data class WebSymbolsCodeCompletionQueryParamsData(
override val queryExecutor: WebSymbolsQueryExecutor,
override val queryExecutor: PolySymbolsQueryExecutor,
override val position: Int,
override val virtualSymbols: Boolean,
) : WebSymbolsCodeCompletionQueryParams
private data class WebSymbolsListSymbolsQueryParamsData(
override val queryExecutor: WebSymbolsQueryExecutor,
override val queryExecutor: PolySymbolsQueryExecutor,
override val expandPatterns: Boolean,
override val virtualSymbols: Boolean,
override val abstractSymbols: Boolean,
@@ -108,7 +108,7 @@ private data class WebSymbolsListSymbolsQueryParamsData(
) : WebSymbolsListSymbolsQueryParams
private data class WebSymbolsNameMatchQueryParamsData(
override val queryExecutor: WebSymbolsQueryExecutor,
override val queryExecutor: PolySymbolsQueryExecutor,
override val virtualSymbols: Boolean,
override val abstractSymbols: Boolean,
override val strictScope: Boolean,

View File

@@ -28,14 +28,14 @@ import kotlin.math.max
import kotlin.math.min
@ApiStatus.Internal
class WebSymbolsQueryExecutorImpl(
class PolySymbolsQueryExecutorImpl(
override val location: PsiElement?,
rootScope: List<PolySymbolsScope>,
override val namesProvider: WebSymbolNamesProvider,
override val resultsCustomizer: WebSymbolsQueryResultsCustomizer,
override val context: PolyContext,
override val allowResolve: Boolean,
) : WebSymbolsQueryExecutor {
) : PolySymbolsQueryExecutor {
private val rootScope: List<PolySymbolsScope> = initializeCompoundScopes(rootScope)
private var nestingLevel: Int = 0
@@ -47,21 +47,21 @@ class WebSymbolsQueryExecutorImpl(
override fun equals(other: Any?): Boolean =
other === this ||
other is WebSymbolsQueryExecutorImpl
other is PolySymbolsQueryExecutorImpl
&& other.location == location
&& other.context == context
&& other.rootScope == rootScope
&& other.namesProvider == namesProvider
&& other.resultsCustomizer == resultsCustomizer
override fun createPointer(): Pointer<WebSymbolsQueryExecutor> {
override fun createPointer(): Pointer<PolySymbolsQueryExecutor> {
val locationPtr = this.location?.createSmartPointer()
val namesProviderPtr = this.namesProvider.createPointer()
val context = this.context
val allowResolve = this.allowResolve
val scopePtr = this.resultsCustomizer.createPointer()
val rootScopePointers = this.rootScope.map { it.createPointer() }
return Pointer<WebSymbolsQueryExecutor> {
return Pointer<PolySymbolsQueryExecutor> {
@Suppress("UNCHECKED_CAST")
val rootScope = rootScopePointers.map { it.dereference() }
.takeIf { it.all { c -> c != null } } as? List<PolySymbolsScope>
@@ -73,7 +73,7 @@ class WebSymbolsQueryExecutorImpl(
val scope = scopePtr.dereference()
?: return@Pointer null
val location = locationPtr?.let { it.dereference() ?: return@Pointer null }
WebSymbolsQueryExecutorImpl(location, rootScope, namesProvider, scope, context, allowResolve)
PolySymbolsQueryExecutorImpl(location, rootScope, namesProvider, scope, context, allowResolve)
}
}
@@ -107,11 +107,11 @@ class WebSymbolsQueryExecutorImpl(
): List<PolySymbolCodeCompletionItem> =
runCodeCompletionQuery(path, WebSymbolsCodeCompletionQueryParams.create(this, position, virtualSymbols), additionalScope)
override fun withNameConversionRules(rules: List<WebSymbolNameConversionRules>): WebSymbolsQueryExecutor =
override fun withNameConversionRules(rules: List<WebSymbolNameConversionRules>): PolySymbolsQueryExecutor =
if (rules.isEmpty())
this
else
WebSymbolsQueryExecutorImpl(location, rootScope, namesProvider.withRules(rules), resultsCustomizer, context, allowResolve)
PolySymbolsQueryExecutorImpl(location, rootScope, namesProvider.withRules(rules), resultsCustomizer, context, allowResolve)
override fun hasExclusiveScopeFor(qualifiedKind: PolySymbolQualifiedKind, scope: List<PolySymbolsScope>): Boolean {
return buildQueryScope(scope).any { it.isExclusiveFor(qualifiedKind) }
@@ -119,7 +119,7 @@ class WebSymbolsQueryExecutorImpl(
private fun initializeCompoundScopes(rootScope: List<PolySymbolsScope>): List<PolySymbolsScope> {
if (rootScope.any { it is PolySymbolsCompoundScope }) {
val compoundScopeQueryExecutor = WebSymbolsQueryExecutorImpl(
val compoundScopeQueryExecutor = PolySymbolsQueryExecutorImpl(
location,
rootScope.filter { it !is PolySymbolsCompoundScope },
namesProvider, resultsCustomizer, context, allowResolve

View File

@@ -8,7 +8,7 @@ import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.context.PolyContext.Companion.KIND_FRAMEWORK
import com.intellij.webSymbols.context.impl.PolyContextImpl
import com.intellij.webSymbols.query.WebSymbolNameConversionRules
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.query.WebSymbolsQueryExecutorFactory.WebSymbolsQueryExecutorBuilder
import com.intellij.webSymbols.query.WebSymbolsQueryResultsCustomizer
@@ -50,8 +50,8 @@ class WebSymbolsQueryExecutorBuilderImpl() : WebSymbolsQueryExecutorBuilder {
this.allowResolve = allowResolve
}
override fun create(): WebSymbolsQueryExecutor =
WebSymbolsQueryExecutorImpl(
override fun create(): PolySymbolsQueryExecutor =
PolySymbolsQueryExecutorImpl(
null,
rootScopes,
WebSymbolNamesProviderImpl(context[KIND_FRAMEWORK], nameConversionRules, ModificationTracker.NEVER_CHANGED),

View File

@@ -30,7 +30,7 @@ class WebSymbolsQueryExecutorFactoryImpl(private val project: Project) : WebSymb
private val customScope = MultiMap<VirtualFile?, PolySymbolsScope>()
private var modificationCount = 0L
override fun create(location: PsiElement?, allowResolve: Boolean): WebSymbolsQueryExecutor {
override fun create(location: PsiElement?, allowResolve: Boolean): PolySymbolsQueryExecutor {
val application = ApplicationManager.getApplication()
application.assertReadAccessAllowed()
@@ -63,12 +63,12 @@ class WebSymbolsQueryExecutorFactoryImpl(private val project: Project) : WebSymb
scopeList.sortBy { (it.asSafely<PolySymbolsPrioritizedScope>()?.priority ?: PolySymbol.Priority.NORMAL).value }
return WebSymbolsQueryExecutorImpl(location,
scopeList,
createNamesProvider(project, originalLocation, context),
WebSymbolsQueryResultsCustomizerFactory.getQueryResultsCustomizer(location, context),
context,
allowResolve)
return PolySymbolsQueryExecutorImpl(location,
scopeList,
createNamesProvider(project, originalLocation, context),
WebSymbolsQueryResultsCustomizerFactory.getQueryResultsCustomizer(location, context),
context,
allowResolve)
}
override fun addScope(scope: PolySymbolsScope,

View File

@@ -7,7 +7,7 @@ import com.intellij.psi.util.PsiTreeUtil
import com.intellij.refactoring.rename.api.*
import com.intellij.util.Query
import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.query.WebSymbolsQueryExecutorFactory
import com.intellij.webSymbols.search.WebSymbolUsageQueries
@@ -30,7 +30,7 @@ internal class WebSymbolsRenameUsageSearcher : RenameUsageSearcher {
?: emptyList()
private class WebSymbolPsiModifiableRenameUsage(
private val queryExecutor: WebSymbolsQueryExecutor,
private val queryExecutor: PolySymbolsQueryExecutor,
private val symbol: PolySymbol,
private val psiRenameUsage: PsiRenameUsage,
)

View File

@@ -31,7 +31,7 @@ abstract class PolySymbolsIsolatedMappingScope<T : PsiElement>(
protected abstract fun acceptSymbol(symbol: PolySymbol): Boolean
protected abstract val subScopeBuilder: (WebSymbolsQueryExecutor, T) -> List<PolySymbolsScope>
protected abstract val subScopeBuilder: (PolySymbolsQueryExecutor, T) -> List<PolySymbolsScope>
override fun getCodeCompletions(qualifiedName: PolySymbolQualifiedName, params: WebSymbolsCodeCompletionQueryParams, scope: Stack<PolySymbolsScope>): List<PolySymbolCodeCompletionItem> {
if (!params.queryExecutor.allowResolve || (framework != null && params.framework != framework))
@@ -92,11 +92,11 @@ abstract class PolySymbolsIsolatedMappingScope<T : PsiElement>(
getCachedSubQueryExecutorAndScope().second
}
private fun getCachedSubQueryExecutorAndScope(): Pair<WebSymbolsQueryExecutor, List<PolySymbolsScope>> {
private fun getCachedSubQueryExecutorAndScope(): Pair<PolySymbolsQueryExecutor, List<PolySymbolsScope>> {
val location = this@PolySymbolsIsolatedMappingScope.location
val builder = subScopeBuilder
val manager = CachedValuesManager.getManager(location.project)
val cachedValueKey = manager.getKeyForClass<Pair<WebSymbolsQueryExecutor, List<PolySymbolsScope>>>(builder.javaClass)
val cachedValueKey = manager.getKeyForClass<Pair<PolySymbolsQueryExecutor, List<PolySymbolsScope>>>(builder.javaClass)
return manager.getCachedValue(location, cachedValueKey, {
val executor = WebSymbolsQueryExecutorFactory.create(location)
val scope = builder(executor, location)

View File

@@ -193,7 +193,7 @@ fun PolySymbol.toCodeCompletionItems(
.getNames(PolySymbolQualifiedName(namespace, kind, this.name), WebSymbolNamesProvider.Target.CODE_COMPLETION_VARIANTS)
.map { PolySymbolCodeCompletionItem.create(it, 0, symbol = this) }
fun PolySymbol.nameMatches(name: String, queryExecutor: WebSymbolsQueryExecutor): Boolean {
fun PolySymbol.nameMatches(name: String, queryExecutor: PolySymbolsQueryExecutor): Boolean {
val queryNames = queryExecutor.namesProvider.getNames(
PolySymbolQualifiedName(this.namespace, this.kind, name), WebSymbolNamesProvider.Target.NAMES_QUERY)
val symbolNames = queryExecutor.namesProvider.getNames(

View File

@@ -15,7 +15,7 @@ import com.intellij.webSymbols.PolySymbolQualifiedKind
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.query.PolySymbolsCompoundScope
import com.intellij.webSymbols.query.WebSymbolsListSymbolsQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
abstract class WebSymbolsStructuredScope<T : PsiElement, R : PsiElement>(protected val location: T) : PolySymbolsCompoundScope() {
@@ -25,7 +25,7 @@ abstract class WebSymbolsStructuredScope<T : PsiElement, R : PsiElement>(protect
protected abstract val providedSymbolKinds: Set<PolySymbolQualifiedKind>
override fun build(queryExecutor: WebSymbolsQueryExecutor, consumer: (PolySymbolsScope) -> Unit) {
override fun build(queryExecutor: PolySymbolsQueryExecutor, consumer: (PolySymbolsScope) -> Unit) {
getCurrentScope()
?.let { consumer(it) }
}

View File

@@ -13,7 +13,7 @@ import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.WebSymbolsCodeCompletionQueryParams
import com.intellij.webSymbols.query.WebSymbolsListSymbolsQueryParams
import com.intellij.webSymbols.query.WebSymbolsNameMatchQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.utils.merge
import com.intellij.webSymbols.webTypes.impl.WebTypesJsonContributionAdapter
import com.intellij.webSymbols.webTypes.impl.wrap
@@ -26,7 +26,7 @@ open class WebTypesSymbolBase : WebTypesSymbol {
private lateinit var base: WebTypesJsonContributionAdapter
protected lateinit var queryExecutor: WebSymbolsQueryExecutor
protected lateinit var queryExecutor: PolySymbolsQueryExecutor
private var _superContributions: List<PolySymbol>? = null
@@ -69,7 +69,7 @@ open class WebTypesSymbolBase : WebTypesSymbol {
}
}
internal fun init(webTypesJsonContributionAdapter: WebTypesJsonContributionAdapter, queryExecutor: WebSymbolsQueryExecutor) {
internal fun init(webTypesJsonContributionAdapter: WebTypesJsonContributionAdapter, queryExecutor: PolySymbolsQueryExecutor) {
this.base = webTypesJsonContributionAdapter
this.queryExecutor = queryExecutor
}

View File

@@ -4,18 +4,18 @@ package com.intellij.webSymbols.webTypes.filters
import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.webTypes.impl.WebSymbolsFilterEP
interface WebSymbolsFilter {
fun filterCodeCompletions(codeCompletions: List<PolySymbolCodeCompletionItem>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
scope: List<PolySymbolsScope>,
properties: Map<String, Any>): List<PolySymbolCodeCompletionItem>
fun filterNameMatches(matches: List<PolySymbol>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
scope: List<PolySymbolsScope>,
properties: Map<String, Any>): List<PolySymbol>

View File

@@ -4,14 +4,14 @@ package com.intellij.webSymbols.webTypes.filters
import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
class WebSymbolsMatchPrefixFilter : WebSymbolsFilter {
override fun filterCodeCompletions(codeCompletions: List<PolySymbolCodeCompletionItem>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
scope: List<PolySymbolsScope>,
properties: Map<String, Any>): List<PolySymbolCodeCompletionItem> {
val prefix = properties["prefix"] as? String ?: return codeCompletions
@@ -19,7 +19,7 @@ class WebSymbolsMatchPrefixFilter : WebSymbolsFilter {
}
override fun filterNameMatches(matches: List<PolySymbol>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
scope: List<PolySymbolsScope>,
properties: Map<String, Any>): List<PolySymbol> {
val prefix = properties["prefix"] as? String ?: return matches

View File

@@ -7,7 +7,7 @@ import com.intellij.util.xmlb.annotations.Attribute
import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.webTypes.filters.WebSymbolsFilter
class WebSymbolsFilterEP() : CustomLoadingExtensionPointBean<WebSymbolsFilter>() {
@@ -22,7 +22,7 @@ class WebSymbolsFilterEP() : CustomLoadingExtensionPointBean<WebSymbolsFilter>()
private val NOOP_FILTER = object : WebSymbolsFilter {
override fun filterCodeCompletions(
codeCompletions: List<PolySymbolCodeCompletionItem>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
scope: List<PolySymbolsScope>,
properties: Map<String, Any>,
): List<PolySymbolCodeCompletionItem> =
@@ -30,7 +30,7 @@ class WebSymbolsFilterEP() : CustomLoadingExtensionPointBean<WebSymbolsFilter>()
override fun filterNameMatches(
matches: List<PolySymbol>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
scope: List<PolySymbolsScope>,
properties: Map<String, Any>,
): List<PolySymbol> =

View File

@@ -15,7 +15,7 @@ import com.intellij.webSymbols.PolySymbolQualifiedKind
import com.intellij.webSymbols.context.PolyContext
import com.intellij.webSymbols.impl.StaticPolySymbolsScopeBase
import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.webTypes.WebTypesJsonOrigin
import com.intellij.webSymbols.webTypes.WebTypesScopeBase
import com.intellij.webSymbols.webTypes.WebTypesSymbolBase
@@ -90,7 +90,7 @@ abstract class WebTypesJsonContributionAdapter private constructor(internal val
}.also { exclusiveContributions = it }
).contains(qualifiedKind)
override fun withQueryExecutorContext(queryExecutor: WebSymbolsQueryExecutor): PolySymbol =
override fun withQueryExecutorContext(queryExecutor: PolySymbolsQueryExecutor): PolySymbol =
(WebTypesSymbolFactoryEP.get(PolySymbolQualifiedKind(namespace, kind))?.create() ?: WebTypesSymbolBase())
.also { it.init(this, queryExecutor) }

View File

@@ -13,7 +13,7 @@ import com.intellij.webSymbols.patterns.PolySymbolsPattern
import com.intellij.webSymbols.patterns.impl.*
import com.intellij.webSymbols.query.PolySymbolMatch
import com.intellij.webSymbols.query.WebSymbolsNameMatchQueryParams
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.webTypes.WebTypesJsonOrigin
import com.intellij.webSymbols.webTypes.json.*
@@ -75,7 +75,7 @@ private class WebTypesComplexPatternConfigProvider(private val pattern: NamePatt
override val isStaticAndRequired: Boolean
get() = pattern.delegate == null && pattern.items == null && pattern.required != false
override fun getOptions(queryExecutor: WebSymbolsQueryExecutor,
override fun getOptions(queryExecutor: PolySymbolsQueryExecutor,
scopeStack: Stack<PolySymbolsScope>): ComplexPatternOptions {
val queryParams = WebSymbolsNameMatchQueryParams.create(queryExecutor, true, false)
val delegate = pattern.delegate?.resolve(scopeStack, queryParams.queryExecutor)?.firstOrNull()
@@ -114,7 +114,7 @@ private class WebTypesComplexPatternConfigProvider(private val pattern: NamePatt
override fun codeCompletion(name: String,
position: Int,
scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor): List<PolySymbolCodeCompletionItem> =
queryExecutor: PolySymbolsQueryExecutor): List<PolySymbolCodeCompletionItem> =
delegate.pattern
?.complete(delegate, scopeStack,
this, CompletionParameters(name, queryExecutor, position), 0, name.length)
@@ -123,7 +123,7 @@ private class WebTypesComplexPatternConfigProvider(private val pattern: NamePatt
?: emptyList()
override fun listSymbols(scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean): List<PolySymbol> =
delegate.pattern
?.list(delegate, scopeStack, this, ListParameters(queryExecutor, expandPatterns))
@@ -141,7 +141,7 @@ private class WebTypesComplexPatternConfigProvider(private val pattern: NamePatt
}
?: emptyList()
override fun matchName(name: String, scopeStack: Stack<PolySymbolsScope>, queryExecutor: WebSymbolsQueryExecutor): List<PolySymbol> =
override fun matchName(name: String, scopeStack: Stack<PolySymbolsScope>, queryExecutor: PolySymbolsQueryExecutor): List<PolySymbol> =
delegate.pattern
?.match(delegate, scopeStack, null,
MatchParameters(name, queryExecutor), 0, name.length)
@@ -174,15 +174,15 @@ private class WebTypesComplexPatternConfigProvider(private val pattern: NamePatt
override fun codeCompletion(name: String,
position: Int,
scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor): List<PolySymbolCodeCompletionItem> =
queryExecutor: PolySymbolsQueryExecutor): List<PolySymbolCodeCompletionItem> =
items.flatMap { it.codeCompletion(name, scopeStack, queryExecutor, position) }
override fun listSymbols(scopeStack: Stack<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean): List<PolySymbol> =
items.flatMap { it.list(scopeStack, queryExecutor, expandPatterns) }
override fun matchName(name: String, scopeStack: Stack<PolySymbolsScope>, queryExecutor: WebSymbolsQueryExecutor): List<PolySymbol> =
override fun matchName(name: String, scopeStack: Stack<PolySymbolsScope>, queryExecutor: PolySymbolsQueryExecutor): List<PolySymbol> =
items.flatMap { it.resolve(name, scopeStack, queryExecutor) }
}

View File

@@ -36,7 +36,7 @@ import com.intellij.webSymbols.js.PolySymbolJsKind
import com.intellij.webSymbols.query.PolySymbolMatch
import com.intellij.webSymbols.query.WebSymbolNameConversionRules
import com.intellij.webSymbols.query.WebSymbolNameConverter
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.utils.NameCaseUtils
import com.intellij.webSymbols.utils.lastPolySymbol
import com.intellij.webSymbols.webTypes.WebTypesJsonOrigin
@@ -187,7 +187,7 @@ internal fun Reference.getSymbolKind(context: PolySymbol?): PolySymbolQualifiedK
internal fun Reference.resolve(name: String,
scope: List<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
virtualSymbols: Boolean = true,
abstractSymbols: Boolean = false): List<PolySymbol> =
processWebSymbols(name, scope, queryExecutor, virtualSymbols, abstractSymbols) { path, virtualSymbols2, abstractSymbols2 ->
@@ -195,7 +195,7 @@ internal fun Reference.resolve(name: String,
}
internal fun Reference.resolve(scope: List<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
virtualSymbols: Boolean = true,
abstractSymbols: Boolean = false): List<PolySymbol> =
processWebSymbols(null, scope, queryExecutor, virtualSymbols, abstractSymbols) { path, virtualSymbols2, abstractSymbols2 ->
@@ -209,7 +209,7 @@ internal fun Reference.resolve(scope: List<PolySymbolsScope>,
}
internal fun Reference.list(scope: List<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
expandPatterns: Boolean,
virtualSymbols: Boolean = true,
abstractSymbols: Boolean = false): List<PolySymbol> =
@@ -223,10 +223,10 @@ internal fun Reference.list(scope: List<PolySymbolsScope>,
private fun Reference.processWebSymbols(
name: String?,
scope: List<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
virtualSymbols: Boolean,
abstractSymbols: Boolean,
queryRunner: WebSymbolsQueryExecutor.(List<PolySymbolQualifiedName>, Boolean, Boolean) -> List<PolySymbol>
queryRunner: PolySymbolsQueryExecutor.(List<PolySymbolQualifiedName>, Boolean, Boolean) -> List<PolySymbol>
): List<PolySymbol> {
ProgressManager.checkCanceled()
return when (val reference = this.value) {
@@ -259,7 +259,7 @@ private fun Reference.processWebSymbols(
internal fun Reference.codeCompletion(name: String,
scope: List<PolySymbolsScope>,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
position: Int = 0,
virtualSymbols: Boolean = true): List<PolySymbolCodeCompletionItem> {
return when (val reference = this.value) {

View File

@@ -8,7 +8,7 @@ import com.intellij.webSymbols.ContextName
import com.intellij.webSymbols.PolySymbolsScope
import com.intellij.webSymbols.context.PolyContext
import com.intellij.webSymbols.context.PolyContext.Companion.KIND_FRAMEWORK
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.query.WebSymbolsQueryExecutorFactory
import com.intellij.webSymbols.query.WebSymbolsQueryResultsCustomizerFactory
import com.intellij.webSymbols.utils.createModificationTracker
@@ -19,9 +19,9 @@ class WebSymbolsMockQueryExecutorFactory : WebSymbolsQueryExecutorFactory {
val context: MutableMap<ContextKind, ContextName> = mutableMapOf()
override fun create(location: PsiElement?, allowResolve: Boolean): WebSymbolsQueryExecutor =
WebSymbolsQueryExecutorImpl(location, scopeList,
WebSymbolNamesProviderImpl(
override fun create(location: PsiElement?, allowResolve: Boolean): PolySymbolsQueryExecutor =
PolySymbolsQueryExecutorImpl(location, scopeList,
WebSymbolNamesProviderImpl(
context[KIND_FRAMEWORK],
context[KIND_FRAMEWORK]?.let { framework ->
scopeList.filterIsInstance<WebTypesMockScopeImpl>().map {
@@ -30,9 +30,9 @@ class WebSymbolsMockQueryExecutorFactory : WebSymbolsQueryExecutorFactory {
} ?: emptyList(),
createModificationTracker(
scopeList.filterIsInstance<WebTypesMockScopeImpl>().map { it.createPointer() })),
WebSymbolsQueryResultsCustomizerFactory.getQueryResultsCustomizer(location, PolyContext.create(context)),
PolyContext.create(context),
allowResolve)
WebSymbolsQueryResultsCustomizerFactory.getQueryResultsCustomizer(location, PolyContext.create(context)),
PolyContext.create(context),
allowResolve)
override fun addScope(
scope: PolySymbolsScope,

View File

@@ -16,7 +16,7 @@ import com.intellij.webSymbols.PolySymbol.Companion.KIND_HTML_ATTRIBUTES
import com.intellij.webSymbols.PolySymbol.Companion.NAMESPACE_HTML
import com.intellij.webSymbols.completion.AsteriskAwarePrefixMatcher
import com.intellij.webSymbols.completion.PolySymbolsCompletionProviderBase
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.query.WebSymbolsQueryExecutorFactory
import com.intellij.webSymbols.utils.asSingleSymbol
@@ -30,7 +30,7 @@ class PolySymbolAttributeNameCompletionProvider : PolySymbolsCompletionProviderB
result: CompletionResultSet,
position: Int,
name: String,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
context: XmlAttribute,
) {
val tag = context.parent ?: return

View File

@@ -13,7 +13,7 @@ import com.intellij.psi.util.PsiTreeUtil
import com.intellij.webSymbols.PolySymbol.Companion.HTML_ELEMENTS
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.completion.PolySymbolsCompletionProviderBase
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
class PolySymbolElementNameCompletionProvider : PolySymbolsCompletionProviderBase<HtmlTag>() {
@@ -25,7 +25,7 @@ class PolySymbolElementNameCompletionProvider : PolySymbolsCompletionProviderBas
result: CompletionResultSet,
position: Int,
name: String,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
context: HtmlTag
) {
var endTag = false

View File

@@ -13,7 +13,7 @@ import com.intellij.psi.xml.XmlText
import com.intellij.util.asSafely
import com.intellij.webSymbols.PolySymbol.Companion.HTML_ELEMENTS
import com.intellij.webSymbols.completion.PolySymbolsCompletionProviderBase
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
internal class PolySymbolElementNameInTextCompletionProvider : PolySymbolsCompletionProviderBase<XmlElement>() {
@@ -26,7 +26,7 @@ internal class PolySymbolElementNameInTextCompletionProvider : PolySymbolsComple
result: CompletionResultSet,
position: Int,
name: String,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
context: XmlElement
) {
if (!canProvideHtmlElementInTextCompletion(parameters)) return

View File

@@ -58,7 +58,7 @@ class WebSymbolsHtmlQueryConfigurator : WebSymbolsQueryConfigurator {
override fun requiresResolve(): Boolean = false
override fun build(queryExecutor: WebSymbolsQueryExecutor, consumer: (PolySymbolsScope) -> Unit) {
override fun build(queryExecutor: PolySymbolsQueryExecutor, consumer: (PolySymbolsScope) -> Unit) {
val context = location.parentOfTypes(XmlTag::class, XmlAttribute::class)
val element = (context as? XmlTag) ?: (context as? XmlAttribute)?.parent ?: return
val elementScope = element.takeIf { queryExecutor.allowResolve }

View File

@@ -13,7 +13,7 @@ import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.completion.AsteriskAwarePrefixMatcher
import com.intellij.webSymbols.completion.PolySymbolsCompletionProviderBase
import com.intellij.webSymbols.html.PolySymbolHtmlAttributeValue.Type
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
class PolySymbolHtmlAttributeValueCompletionProvider : PolySymbolsCompletionProviderBase<XmlAttributeValue>() {
override fun getContext(position: PsiElement): XmlAttributeValue? =
@@ -21,7 +21,7 @@ class PolySymbolHtmlAttributeValueCompletionProvider : PolySymbolsCompletionProv
override fun addCompletions(
parameters: CompletionParameters, result: CompletionResultSet, position: Int,
name: String, queryExecutor: WebSymbolsQueryExecutor, context: XmlAttributeValue
name: String, queryExecutor: PolySymbolsQueryExecutor, context: XmlAttributeValue
) {
val patchedResultSet = result.withPrefixMatcher(result.prefixMatcher.cloneWithPrefix(name))

View File

@@ -14,7 +14,7 @@ import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.PolySymbol.Companion.HTML_ATTRIBUTES
import com.intellij.webSymbols.PolySymbol.Companion.KIND_HTML_ATTRIBUTES
import com.intellij.webSymbols.PolySymbol.Companion.NAMESPACE_HTML
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import com.intellij.webSymbols.query.WebSymbolsQueryExecutorFactory
import com.intellij.webSymbols.utils.asSingleSymbol
import com.intellij.webSymbols.utils.hasOnlyExtensions
@@ -61,7 +61,7 @@ class WebSymbolAttributeDescriptorsProvider : XmlAttributeDescriptorsProvider {
?.getAttributeDescriptor(attributeName, context, queryExecutor)
}
private fun PolySymbol.getAttributeDescriptor(attributeName: String, context: XmlTag, registry: WebSymbolsQueryExecutor) =
private fun PolySymbol.getAttributeDescriptor(attributeName: String, context: XmlTag, registry: PolySymbolsQueryExecutor) =
this
.asSafely<WebSymbolsHtmlQueryConfigurator.HtmlAttributeDescriptorBasedSymbol>()
?.descriptor

View File

@@ -8,7 +8,7 @@ import com.intellij.webSymbols.PsiSourcedPolySymbol
import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.PolySymbolOrigin
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import org.jetbrains.annotations.ApiStatus
import javax.swing.Icon
@@ -87,7 +87,7 @@ interface WebSymbolHtmlAttributeInfo {
@JvmStatic
fun create(name: String,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
symbol: PolySymbol,
context: PsiElement): WebSymbolHtmlAttributeInfo =
WebSymbolHtmlAttributeInfoImpl.create(name, queryExecutor, symbol, context)

View File

@@ -8,7 +8,7 @@ import com.intellij.util.ThreeState
import com.intellij.webSymbols.PolySymbol
import com.intellij.webSymbols.completion.PolySymbolCodeCompletionItem
import com.intellij.webSymbols.html.PolySymbolHtmlAttributeValue
import com.intellij.webSymbols.query.WebSymbolsQueryExecutor
import com.intellij.webSymbols.query.PolySymbolsQueryExecutor
import javax.swing.Icon
internal data class WebSymbolHtmlAttributeInfoImpl(
@@ -84,7 +84,7 @@ internal data class WebSymbolHtmlAttributeInfoImpl(
companion object {
fun create(
name: String,
queryExecutor: WebSymbolsQueryExecutor,
queryExecutor: PolySymbolsQueryExecutor,
symbol: PolySymbol,
context: PsiElement,
): WebSymbolHtmlAttributeInfo {