mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
[polySymbols] WEB-72822 Refactor WebSymbolsQueryExecutor -> PolySymbolsQueryExecutor
GitOrigin-RevId: 607cb711d0637a77b63264cf491db4d55531902b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
35e8688e95
commit
f155b3fbbc
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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> =
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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>
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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?,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
) {
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() }
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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) }
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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> =
|
||||
|
||||
@@ -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) }
|
||||
|
||||
|
||||
@@ -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) }
|
||||
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user