mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WEB-76271 PolySymbols: reduce usage of (web) framework across generic APIs
GitOrigin-RevId: bb6ec777139e2c20331a144bd02b8def997ff0a6
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d96b1728be
commit
3af3d32a46
@@ -325,7 +325,6 @@
|
||||
*f:com.intellij.polySymbols.completion.PolySymbolCodeCompletionItemInsertHandler$Companion
|
||||
*:com.intellij.polySymbols.context.PolyContext
|
||||
- *sf:Companion:com.intellij.polySymbols.context.PolyContext$Companion
|
||||
- sf:KIND_FRAMEWORK:java.lang.String
|
||||
- sf:PKG_MANAGER_NODE_PACKAGES:java.lang.String
|
||||
- sf:PKG_MANAGER_RUBY_GEMS:java.lang.String
|
||||
- sf:PKG_MANAGER_SYMFONY_BUNDLES:java.lang.String
|
||||
@@ -337,7 +336,6 @@
|
||||
- a:get(java.lang.String):java.lang.String
|
||||
- s:get(java.lang.String,com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.project.Project):java.lang.String
|
||||
- s:get(java.lang.String,com.intellij.psi.PsiElement):java.lang.String
|
||||
- getFramework():java.lang.String
|
||||
*f:com.intellij.polySymbols.context.PolyContext$Companion
|
||||
- f:create(java.util.Map):com.intellij.polySymbols.context.PolyContext
|
||||
- f:empty():com.intellij.polySymbols.context.PolyContext
|
||||
@@ -567,6 +565,7 @@
|
||||
- f:create(com.intellij.polySymbols.PolySymbol,com.intellij.psi.PsiElement,kotlin.jvm.functions.Function3):com.intellij.polySymbols.documentation.PolySymbolDocumentationTarget
|
||||
*a:com.intellij.polySymbols.framework.PolySymbolFramework
|
||||
- *sf:Companion:com.intellij.polySymbols.framework.PolySymbolFramework$Companion
|
||||
- sf:KIND_FRAMEWORK:java.lang.String
|
||||
- <init>():V
|
||||
- sf:get(java.lang.String):com.intellij.polySymbols.framework.PolySymbolFramework
|
||||
- sf:getAll():java.util.List
|
||||
@@ -585,6 +584,8 @@
|
||||
- f:getAll():java.util.List
|
||||
- f:inLocation(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.project.Project):com.intellij.polySymbols.framework.PolySymbolFramework
|
||||
- f:inLocation(com.intellij.psi.PsiElement):com.intellij.polySymbols.framework.PolySymbolFramework
|
||||
*f:com.intellij.polySymbols.framework.PolySymbolFrameworkKt
|
||||
- sf:getFramework(com.intellij.polySymbols.context.PolyContext):java.lang.String
|
||||
*f:com.intellij.polySymbols.html.HtmlSymbolKinds
|
||||
- sf:HTML_ATTRIBUTES:com.intellij.polySymbols.PolySymbolKind
|
||||
- sf:HTML_ATTRIBUTE_VALUES:com.intellij.polySymbols.PolySymbolKind
|
||||
@@ -825,7 +826,6 @@
|
||||
- codeCompletionQuery(java.util.List,I,kotlin.jvm.functions.Function1):java.util.List
|
||||
- a:createPointer():com.intellij.model.Pointer
|
||||
- a:getContext():com.intellij.polySymbols.context.PolyContext
|
||||
- getFramework():java.lang.String
|
||||
- a:getKeepUnresolvedTopLevelReferences():Z
|
||||
- a:getLocation():com.intellij.psi.PsiElement
|
||||
- a:getNamesProvider():com.intellij.polySymbols.query.PolySymbolNamesProvider
|
||||
@@ -882,7 +882,6 @@
|
||||
- a:addRootScopes(java.util.List):com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory$PolySymbolQueryExecutorBuilder
|
||||
- a:allowResolve(Z):com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory$PolySymbolQueryExecutorBuilder
|
||||
- a:create():com.intellij.polySymbols.query.PolySymbolQueryExecutor
|
||||
- a:setFramework(java.lang.String):com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory$PolySymbolQueryExecutorBuilder
|
||||
*:com.intellij.polySymbols.query.PolySymbolQueryExecutorListener
|
||||
- *sf:Companion:com.intellij.polySymbols.query.PolySymbolQueryExecutorListener$Companion
|
||||
- sf:TOPIC:com.intellij.util.messages.Topic
|
||||
@@ -892,7 +891,6 @@
|
||||
*:com.intellij.polySymbols.query.PolySymbolQueryParams
|
||||
- accept(com.intellij.polySymbols.PolySymbol):Z
|
||||
- a:getExcludeModifiers():java.util.List
|
||||
- getFramework():java.lang.String
|
||||
- a:getQueryExecutor():com.intellij.polySymbols.query.PolySymbolQueryExecutor
|
||||
- a:getRequiredModifiers():java.util.List
|
||||
*:com.intellij.polySymbols.query.PolySymbolQueryParams$Builder
|
||||
@@ -1100,11 +1098,10 @@
|
||||
- f:unwrapAllDelegates(com.intellij.polySymbols.PolySymbol):com.intellij.polySymbols.PolySymbol
|
||||
*a:com.intellij.polySymbols.utils.PolySymbolIsolatedMappingScope
|
||||
- com.intellij.polySymbols.query.PolySymbolScope
|
||||
- <init>(java.util.Map,java.lang.String,com.intellij.psi.PsiElement):V
|
||||
- <init>(java.util.Map,com.intellij.psi.PsiElement):V
|
||||
- pa:acceptSymbol(com.intellij.polySymbols.PolySymbol):Z
|
||||
- f:equals(java.lang.Object):Z
|
||||
- getCodeCompletions(com.intellij.polySymbols.PolySymbolQualifiedName,com.intellij.polySymbols.query.PolySymbolCodeCompletionQueryParams,com.intellij.polySymbols.query.PolySymbolQueryStack):java.util.List
|
||||
- pf:getFramework():java.lang.String
|
||||
- pf:getLocation():com.intellij.psi.PsiElement
|
||||
- pf:getMappings():java.util.Map
|
||||
- getMatchingSymbols(com.intellij.polySymbols.PolySymbolQualifiedName,com.intellij.polySymbols.query.PolySymbolNameMatchQueryParams,com.intellij.polySymbols.query.PolySymbolQueryStack):java.util.List
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
*:com.intellij.polySymbols.completion.PolySymbolCodeCompletionItemCustomizer
|
||||
- *sf:Companion:com.intellij.polySymbols.completion.PolySymbolCodeCompletionItemCustomizer$Companion
|
||||
- sf:EP_NAME:com.intellij.openapi.extensions.ExtensionPointName
|
||||
- a:customize(com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem,java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.psi.PsiElement):com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem
|
||||
- a:customize(com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem,com.intellij.polySymbols.context.PolyContext,com.intellij.polySymbols.PolySymbolKind,com.intellij.psi.PsiElement):com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem
|
||||
*f:com.intellij.polySymbols.completion.PolySymbolCodeCompletionItemCustomizer$Companion
|
||||
*a:com.intellij.polySymbols.completion.PolySymbolsCompletionProviderBase
|
||||
- com.intellij.codeInsight.completion.CompletionProvider
|
||||
@@ -24,14 +24,14 @@
|
||||
- sf:isFurtherCodeCompletionPreventedFor(com.intellij.codeInsight.completion.CompletionParameters,com.intellij.polySymbols.PolySymbolKind[]):Z
|
||||
- sf:preventFurtherCodeCompletionsFor(com.intellij.codeInsight.completion.CompletionParameters,com.intellij.polySymbols.PolySymbolKind):V
|
||||
- sf:processCompletionQueryResults(com.intellij.polySymbols.query.PolySymbolQueryExecutor,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,I,com.intellij.psi.PsiElement,java.util.List,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):V
|
||||
- sf:processPolySymbolCodeCompletionItems(java.util.List,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,java.lang.String,com.intellij.psi.PsiElement,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):V
|
||||
- sf:processPolySymbolCodeCompletionItems(java.util.List,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.context.PolyContext,com.intellij.psi.PsiElement,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):V
|
||||
*f:com.intellij.polySymbols.completion.PolySymbolsCompletionProviderBase$Companion
|
||||
- f:isFurtherCodeCompletionPreventedFor(com.intellij.codeInsight.completion.CompletionParameters,com.intellij.polySymbols.PolySymbolKind[]):Z
|
||||
- f:preventFurtherCodeCompletionsFor(com.intellij.codeInsight.completion.CompletionParameters,com.intellij.polySymbols.PolySymbolKind):V
|
||||
- f:processCompletionQueryResults(com.intellij.polySymbols.query.PolySymbolQueryExecutor,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,I,com.intellij.psi.PsiElement,java.util.List,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):V
|
||||
- bs:processCompletionQueryResults$default(com.intellij.polySymbols.completion.PolySymbolsCompletionProviderBase$Companion,com.intellij.polySymbols.query.PolySymbolQueryExecutor,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,I,com.intellij.psi.PsiElement,java.util.List,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,I,java.lang.Object):V
|
||||
- f:processPolySymbolCodeCompletionItems(java.util.List,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,java.lang.String,com.intellij.psi.PsiElement,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):V
|
||||
- bs:processPolySymbolCodeCompletionItems$default(com.intellij.polySymbols.completion.PolySymbolsCompletionProviderBase$Companion,java.util.List,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,java.lang.String,com.intellij.psi.PsiElement,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,I,java.lang.Object):V
|
||||
- f:processPolySymbolCodeCompletionItems(java.util.List,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.context.PolyContext,com.intellij.psi.PsiElement,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):V
|
||||
- bs:processPolySymbolCodeCompletionItems$default(com.intellij.polySymbols.completion.PolySymbolsCompletionProviderBase$Companion,java.util.List,com.intellij.codeInsight.completion.CompletionResultSet,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.context.PolyContext,com.intellij.psi.PsiElement,java.util.Set,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,I,java.lang.Object):V
|
||||
*:com.intellij.polySymbols.highlighting.PolySymbolHighlightingCustomizer
|
||||
- *sf:Companion:com.intellij.polySymbols.highlighting.PolySymbolHighlightingCustomizer$Companion
|
||||
- sf:EP_NAME:com.intellij.openapi.extensions.ExtensionPointName
|
||||
|
||||
+5
-5
@@ -3,7 +3,7 @@ package com.intellij.polySymbols.completion
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.polySymbols.PolySymbolKind
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
|
||||
@@ -11,7 +11,7 @@ interface PolySymbolCodeCompletionItemCustomizer {
|
||||
|
||||
fun customize(
|
||||
item: PolySymbolCodeCompletionItem,
|
||||
framework: FrameworkId?,
|
||||
context: PolyContext,
|
||||
kind: PolySymbolKind,
|
||||
location: PsiElement,
|
||||
): PolySymbolCodeCompletionItem?
|
||||
@@ -21,10 +21,10 @@ interface PolySymbolCodeCompletionItemCustomizer {
|
||||
@TestOnly
|
||||
@JvmField
|
||||
val EP_NAME: ExtensionPointName<PolySymbolCodeCompletionItemCustomizer> =
|
||||
ExtensionPointName.create<PolySymbolCodeCompletionItemCustomizer>("com.intellij.polySymbols.codeCompletionItemCustomizer")
|
||||
ExtensionPointName.create("com.intellij.polySymbols.codeCompletionItemCustomizer")
|
||||
|
||||
internal fun Sequence<PolySymbolCodeCompletionItem>.customizeItems(
|
||||
framework: FrameworkId?,
|
||||
context: PolyContext,
|
||||
kind: PolySymbolKind,
|
||||
location: PsiElement,
|
||||
): Sequence<PolySymbolCodeCompletionItem> {
|
||||
@@ -34,7 +34,7 @@ interface PolySymbolCodeCompletionItemCustomizer {
|
||||
customizers.foldRight(item) { customizer, acc: PolySymbolCodeCompletionItem? ->
|
||||
if (acc == null)
|
||||
null
|
||||
else customizer.customize(acc, framework, kind, location)
|
||||
else customizer.customize(acc, context, kind, location)
|
||||
}
|
||||
}
|
||||
else this
|
||||
|
||||
+4
-4
@@ -13,7 +13,7 @@ import com.intellij.openapi.util.getAndUpdateUserData
|
||||
import com.intellij.patterns.StandardPatterns
|
||||
import com.intellij.polySymbols.PolySymbolKind
|
||||
import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItemCustomizer.Companion.customizeItems
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutor
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory
|
||||
import com.intellij.polySymbols.query.PolySymbolScope
|
||||
@@ -88,7 +88,7 @@ abstract class PolySymbolsCompletionProviderBase<T : PsiElement> : CompletionPro
|
||||
) {
|
||||
processPolySymbolCodeCompletionItems(
|
||||
queryExecutor.codeCompletionQuery(kind, name, position).additionalScope(queryContext).run(),
|
||||
result, kind, name, queryExecutor.framework, location, providedNames, filter, consumer
|
||||
result, kind, name, queryExecutor.context, location, providedNames, filter, consumer
|
||||
)
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ abstract class PolySymbolsCompletionProviderBase<T : PsiElement> : CompletionPro
|
||||
result: CompletionResultSet,
|
||||
kind: PolySymbolKind,
|
||||
name: String,
|
||||
framework: FrameworkId?,
|
||||
context: PolyContext,
|
||||
location: PsiElement,
|
||||
providedNames: MutableSet<String>? = null,
|
||||
filter: ((PolySymbolCodeCompletionItem) -> Boolean)? = null,
|
||||
@@ -109,7 +109,7 @@ abstract class PolySymbolsCompletionProviderBase<T : PsiElement> : CompletionPro
|
||||
symbols
|
||||
.asSequence()
|
||||
.distinctBy { Triple(it.offset, it.name, it.completeAfterInsert) }
|
||||
.customizeItems(framework, kind, location)
|
||||
.customizeItems(context, kind, location)
|
||||
.filter { item ->
|
||||
(filter == null || filter(item))
|
||||
&& item.offset <= prefixLength
|
||||
|
||||
+1
-2
@@ -9,7 +9,6 @@ import com.intellij.polySymbols.PolyContextKind
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.PolyContextKindRules
|
||||
import com.intellij.polySymbols.customElements.json.*
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.impl.StaticPolySymbolScopeBase
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRules
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRulesProvider
|
||||
@@ -59,7 +58,7 @@ abstract class CustomElementsManifestScopeBase :
|
||||
|
||||
override fun getContextRules(): MultiMap<PolyContextKind, PolyContextKindRules> = MultiMap.empty()
|
||||
|
||||
override fun getNameConversionRulesProvider(framework: FrameworkId): PolySymbolNameConversionRulesProvider =
|
||||
override fun getNameConversionRulesProvider(context: PolyContext): PolySymbolNameConversionRulesProvider? =
|
||||
object : PolySymbolNameConversionRulesProvider {
|
||||
override fun getNameConversionRules(): PolySymbolNameConversionRules = PolySymbolNameConversionRules.empty()
|
||||
override fun createPointer(): Pointer<out PolySymbolNameConversionRulesProvider> = Pointer.hardPointer(this)
|
||||
|
||||
@@ -11,12 +11,13 @@ import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.polySymbols.PolyContextKind
|
||||
import com.intellij.polySymbols.PolyContextName
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.PolyContext.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.context.PolyContextKindRules
|
||||
import com.intellij.polySymbols.context.PolyContextKindRules.DisablementRules
|
||||
import com.intellij.polySymbols.context.PolyContextKindRules.EnablementRules
|
||||
import com.intellij.polySymbols.context.PolyContextRulesProvider
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.framework.PolySymbolFramework.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.impl.StaticPolySymbolScopeBase
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRules
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRulesProvider
|
||||
@@ -44,8 +45,8 @@ abstract class WebTypesScopeBase :
|
||||
|
||||
abstract override fun createPointer(): Pointer<out WebTypesScopeBase>
|
||||
|
||||
override fun getNameConversionRulesProvider(framework: FrameworkId): PolySymbolNameConversionRulesProvider {
|
||||
return WebTypesSymbolNameConversionRulesProvider(framework, this, nameConversionRulesCache)
|
||||
override fun getNameConversionRulesProvider(context: PolyContext): PolySymbolNameConversionRulesProvider? {
|
||||
return context.framework?.let { WebTypesSymbolNameConversionRulesProvider(it, this, nameConversionRulesCache) }
|
||||
}
|
||||
|
||||
override fun getContextRules(): MultiMap<PolyContextKind, PolyContextKindRules> = contextRulesCache.value
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.documentation.PolySymbolDocumentation
|
||||
import com.intellij.polySymbols.documentation.PolySymbolDocumentationProvider
|
||||
import com.intellij.polySymbols.documentation.PolySymbolDocumentationTarget
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.html.PROP_HTML_ATTRIBUTE_VALUE
|
||||
import com.intellij.polySymbols.html.PolySymbolHtmlAttributeValue
|
||||
import com.intellij.polySymbols.html.htmlAttributeValue
|
||||
|
||||
@@ -237,7 +237,7 @@ interface PolySymbol : Symbol, NavigatableSymbol, PolySymbolPrioritizedScope {
|
||||
|
||||
/**
|
||||
* Return `true` if the symbol should be present in the query results
|
||||
* in the particular context. By default, the current symbol framework is checked.
|
||||
* in the particular context.
|
||||
*/
|
||||
fun matchContext(context: PolyContext): Boolean =
|
||||
true
|
||||
|
||||
@@ -10,15 +10,11 @@ import com.intellij.polySymbols.PolyContextName
|
||||
import com.intellij.polySymbols.context.impl.PolyContextImpl
|
||||
import com.intellij.polySymbols.context.impl.PolyContextProviderExtensionCollector
|
||||
import com.intellij.polySymbols.context.impl.findPolyContext
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
|
||||
interface PolyContext {
|
||||
|
||||
val framework: FrameworkId?
|
||||
get() = this[KIND_FRAMEWORK]
|
||||
|
||||
operator fun get(kind: PolyContextKind): PolyContextName?
|
||||
|
||||
@Suppress("MayBeConstant")
|
||||
@@ -29,9 +25,6 @@ interface PolyContext {
|
||||
val POLY_SYMBOLS_CONTEXT_EP: KeyedExtensionCollector<PolyContextProvider, String> =
|
||||
PolyContextProviderExtensionCollector(ExtensionPointName("com.intellij.polySymbols.context"))
|
||||
|
||||
@JvmField
|
||||
val KIND_FRAMEWORK: String = "framework"
|
||||
|
||||
@JvmField
|
||||
val VALUE_NONE: String = "none"
|
||||
|
||||
|
||||
@@ -6,13 +6,16 @@ import com.intellij.openapi.util.KeyedExtensionCollector
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.polySymbols.PolySymbolQualifiedName
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.PolyContext.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.framework.PolySymbolFramework.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.query.PolySymbolNamesProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import javax.swing.Icon
|
||||
|
||||
typealias FrameworkId = String
|
||||
|
||||
val PolyContext.framework: FrameworkId?
|
||||
get() = this[KIND_FRAMEWORK]
|
||||
|
||||
abstract class PolySymbolFramework {
|
||||
|
||||
lateinit var id: String
|
||||
@@ -40,6 +43,8 @@ abstract class PolySymbolFramework {
|
||||
val all get() = extensions.asSequence().map { it.instance }
|
||||
}
|
||||
|
||||
const val KIND_FRAMEWORK: String = "framework"
|
||||
|
||||
@JvmStatic
|
||||
fun get(id: String): PolySymbolFramework = WEB_FRAMEWORK_EP.findSingle(id) ?: UnregisteredWebFramework(id)
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
package com.intellij.polySymbols.impl
|
||||
|
||||
import com.intellij.model.Pointer
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.PolyContextRulesProvider
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRulesProvider
|
||||
import com.intellij.polySymbols.query.PolySymbolScope
|
||||
|
||||
@@ -11,5 +11,5 @@ interface StaticPolySymbolScope : PolySymbolScope, PolyContextRulesProvider {
|
||||
|
||||
override fun createPointer(): Pointer<out StaticPolySymbolScope>
|
||||
|
||||
fun getNameConversionRulesProvider(framework: FrameworkId): PolySymbolNameConversionRulesProvider
|
||||
fun getNameConversionRulesProvider(context: PolyContext): PolySymbolNameConversionRulesProvider?
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import com.intellij.polySymbols.PolySymbolQualifiedName
|
||||
import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.patterns.PolySymbolPattern
|
||||
import com.intellij.polySymbols.query.*
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ internal class CompletionParameters(
|
||||
: this(name, params.queryExecutor, params.position)
|
||||
|
||||
override fun toString(): String =
|
||||
"complete: $name (position: $position, framework: $framework)"
|
||||
"complete: $name (position: $position, context: ${queryExecutor.context})"
|
||||
|
||||
fun withPosition(position: Int): CompletionParameters =
|
||||
CompletionParameters(name, queryExecutor, position)
|
||||
|
||||
@@ -12,8 +12,6 @@ internal open class ListParameters(
|
||||
constructor(params: PolySymbolListSymbolsQueryParams)
|
||||
: this(params.queryExecutor, params.expandPatterns)
|
||||
|
||||
val framework: String? get() = queryExecutor.framework
|
||||
|
||||
override fun toString(): String =
|
||||
"list (framework: $framework)"
|
||||
"list (context: ${queryExecutor.context})"
|
||||
}
|
||||
@@ -12,8 +12,6 @@ internal open class MatchParameters(
|
||||
constructor(name: String, params: PolySymbolNameMatchQueryParams)
|
||||
: this(name, params.queryExecutor)
|
||||
|
||||
val framework: String? get() = queryExecutor.framework
|
||||
|
||||
override fun toString(): String =
|
||||
"match: $name (framework: $framework)"
|
||||
"match: $name (context: ${queryExecutor.context})"
|
||||
}
|
||||
@@ -8,8 +8,6 @@ import com.intellij.polySymbols.PolySymbolKind
|
||||
import com.intellij.polySymbols.PolySymbolQualifiedName
|
||||
import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.PolyContext.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.psi.PsiElement
|
||||
|
||||
/**
|
||||
@@ -29,8 +27,6 @@ interface PolySymbolQueryExecutor : ModificationTracker {
|
||||
|
||||
val context: PolyContext
|
||||
|
||||
val framework: FrameworkId? get() = context[KIND_FRAMEWORK]
|
||||
|
||||
@get:JvmName("allowResolve")
|
||||
val allowResolve: Boolean
|
||||
|
||||
|
||||
-2
@@ -30,8 +30,6 @@ interface PolySymbolQueryExecutorFactory : Disposable {
|
||||
|
||||
fun addNameConversionRules(rules: PolySymbolNameConversionRules): PolySymbolQueryExecutorBuilder
|
||||
|
||||
fun setFramework(framework: String): PolySymbolQueryExecutorBuilder
|
||||
|
||||
fun addPolyContext(kind: PolyContextKind, name: PolyContextName?): PolySymbolQueryExecutorBuilder
|
||||
|
||||
fun allowResolve(allowResolve: Boolean): PolySymbolQueryExecutorBuilder
|
||||
|
||||
@@ -6,10 +6,6 @@ import com.intellij.polySymbols.PolySymbolModifier
|
||||
import com.intellij.polySymbols.query.impl.AbstractQueryParamsBuilderImpl
|
||||
|
||||
sealed interface PolySymbolQueryParams {
|
||||
|
||||
val framework: String?
|
||||
get() = queryExecutor.framework
|
||||
|
||||
val queryExecutor: PolySymbolQueryExecutor
|
||||
|
||||
val requiredModifiers: List<PolySymbolModifier>
|
||||
|
||||
+7
-6
@@ -5,9 +5,10 @@ import com.intellij.model.Pointer
|
||||
import com.intellij.openapi.util.ModificationTracker
|
||||
import com.intellij.polySymbols.PolySymbolKind
|
||||
import com.intellij.polySymbols.PolySymbolQualifiedName
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.css.NAMESPACE_CSS
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.framework.PolySymbolFramework
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.html.NAMESPACE_HTML
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRules
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConverter
|
||||
@@ -18,7 +19,7 @@ import java.util.*
|
||||
|
||||
@ApiStatus.Internal
|
||||
class PolySymbolNamesProviderImpl(
|
||||
private val framework: FrameworkId?,
|
||||
private val context: PolyContext,
|
||||
private val configuration: List<PolySymbolNameConversionRules>,
|
||||
private val modificationTracker: ModificationTracker,
|
||||
) : PolySymbolNamesProvider {
|
||||
@@ -31,7 +32,7 @@ class PolySymbolNamesProviderImpl(
|
||||
|
||||
private val renameProviders: Map<PolySymbolKind, PolySymbolNameConverter>
|
||||
|
||||
private val polySymbolFramework get() = framework?.let { PolySymbolFramework.get(it) }
|
||||
private val polySymbolFramework get() = context.framework?.let { PolySymbolFramework.get(it) }
|
||||
|
||||
init {
|
||||
val canonicalNamesProviders = mutableMapOf<PolySymbolKind, PolySymbolNameConverter>()
|
||||
@@ -54,18 +55,18 @@ class PolySymbolNamesProviderImpl(
|
||||
Pointer.hardPointer(this)
|
||||
|
||||
override fun hashCode(): Int =
|
||||
framework.hashCode() * 31 + configuration.hashCode()
|
||||
context.hashCode() * 31 + configuration.hashCode()
|
||||
|
||||
override fun equals(other: Any?): Boolean =
|
||||
other is PolySymbolNamesProviderImpl
|
||||
&& other.framework == framework
|
||||
&& other.context == context
|
||||
&& other.configuration == configuration
|
||||
|
||||
override fun getModificationCount(): Long =
|
||||
modificationTracker.modificationCount
|
||||
|
||||
override fun withRules(rules: List<PolySymbolNameConversionRules>): PolySymbolNamesProvider =
|
||||
PolySymbolNamesProviderImpl(framework, rules + configuration, modificationTracker)
|
||||
PolySymbolNamesProviderImpl(context, rules + configuration, modificationTracker)
|
||||
|
||||
override fun getNames(qualifiedName: PolySymbolQualifiedName, target: PolySymbolNamesProvider.Target): List<String> =
|
||||
when (target) {
|
||||
|
||||
+3
-7
@@ -4,7 +4,7 @@ package com.intellij.polySymbols.query.impl
|
||||
import com.intellij.openapi.util.ModificationTracker
|
||||
import com.intellij.polySymbols.PolyContextKind
|
||||
import com.intellij.polySymbols.PolyContextName
|
||||
import com.intellij.polySymbols.context.PolyContext.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.impl.PolyContextImpl
|
||||
import com.intellij.polySymbols.query.PolySymbolNameConversionRules
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutor
|
||||
@@ -12,7 +12,7 @@ import com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory.PolySymbolQ
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryResultsCustomizer
|
||||
import com.intellij.polySymbols.query.PolySymbolScope
|
||||
|
||||
class PolySymbolQueryExecutorBuilderImpl() : PolySymbolQueryExecutorBuilder {
|
||||
class PolySymbolQueryExecutorBuilderImpl : PolySymbolQueryExecutorBuilder {
|
||||
private val rootScopes = mutableListOf<PolySymbolScope>()
|
||||
private val customizers = mutableListOf<PolySymbolQueryResultsCustomizer>()
|
||||
private val nameConversionRules = mutableListOf<PolySymbolNameConversionRules>()
|
||||
@@ -42,10 +42,6 @@ class PolySymbolQueryExecutorBuilderImpl() : PolySymbolQueryExecutorBuilder {
|
||||
context[kind] = name
|
||||
}
|
||||
|
||||
override fun setFramework(framework: String): PolySymbolQueryExecutorBuilder = apply {
|
||||
context[KIND_FRAMEWORK] = framework
|
||||
}
|
||||
|
||||
override fun allowResolve(allowResolve: Boolean): PolySymbolQueryExecutorBuilder = apply {
|
||||
this.allowResolve = allowResolve
|
||||
}
|
||||
@@ -54,7 +50,7 @@ class PolySymbolQueryExecutorBuilderImpl() : PolySymbolQueryExecutorBuilder {
|
||||
PolySymbolQueryExecutorImpl(
|
||||
null,
|
||||
rootScopes,
|
||||
PolySymbolNamesProviderImpl(context[KIND_FRAMEWORK], nameConversionRules, ModificationTracker.NEVER_CHANGED),
|
||||
PolySymbolNamesProviderImpl(PolyContext.create(context), nameConversionRules, ModificationTracker.NEVER_CHANGED),
|
||||
PolySymbolCompoundQueryResultsCustomizer(customizers),
|
||||
PolyContextImpl(context),
|
||||
allowResolve
|
||||
|
||||
+1
-1
@@ -105,7 +105,7 @@ class PolySymbolQueryExecutorFactoryImpl(private val project: Project) : PolySym
|
||||
nameConversionRules.add(provider.getNameConversionRules())
|
||||
providers.add(provider.createPointer())
|
||||
}
|
||||
return PolySymbolNamesProviderImpl(context.framework, nameConversionRules, createModificationTracker(providers))
|
||||
return PolySymbolNamesProviderImpl(context, nameConversionRules, createModificationTracker(providers))
|
||||
}
|
||||
|
||||
private fun getCustomScope(context: PsiElement?): List<PolySymbolScope> =
|
||||
|
||||
+4
-11
@@ -9,7 +9,6 @@ import com.intellij.polySymbols.PolySymbol
|
||||
import com.intellij.polySymbols.PolySymbolKind
|
||||
import com.intellij.polySymbols.PolySymbolQualifiedName
|
||||
import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.query.*
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.util.CachedValueProvider
|
||||
@@ -19,11 +18,6 @@ import com.intellij.util.applyIf
|
||||
|
||||
abstract class PolySymbolIsolatedMappingScope<T : PsiElement>(
|
||||
protected val mappings: Map<PolySymbolKind, PolySymbolKind>,
|
||||
/**
|
||||
* Allows to optimize for symbols with a particular [PolySymbolOrigin.framework].
|
||||
* If `null` all symbols will be accepted and scope will be queried in all contexts.
|
||||
*/
|
||||
protected val framework: FrameworkId?,
|
||||
/**
|
||||
* Location for which the isolated query executor should be built.
|
||||
*/
|
||||
@@ -39,7 +33,7 @@ abstract class PolySymbolIsolatedMappingScope<T : PsiElement>(
|
||||
params: PolySymbolCodeCompletionQueryParams,
|
||||
stack: PolySymbolQueryStack,
|
||||
): List<PolySymbolCodeCompletionItem> {
|
||||
if (!params.queryExecutor.allowResolve || (framework != null && params.framework != framework))
|
||||
if (!params.queryExecutor.allowResolve)
|
||||
return emptyList()
|
||||
val sourceKind = mappings[qualifiedName.kind] ?: return emptyList()
|
||||
var result: List<PolySymbolCodeCompletionItem> = emptyList()
|
||||
@@ -58,7 +52,7 @@ abstract class PolySymbolIsolatedMappingScope<T : PsiElement>(
|
||||
params: PolySymbolNameMatchQueryParams,
|
||||
stack: PolySymbolQueryStack,
|
||||
): List<PolySymbol> {
|
||||
if (!params.queryExecutor.allowResolve || (framework != null && params.framework != framework))
|
||||
if (!params.queryExecutor.allowResolve)
|
||||
return emptyList()
|
||||
val sourceKind = mappings[qualifiedName.kind] ?: return emptyList()
|
||||
var result: List<PolySymbol> = emptyList()
|
||||
@@ -79,7 +73,7 @@ abstract class PolySymbolIsolatedMappingScope<T : PsiElement>(
|
||||
params: PolySymbolListSymbolsQueryParams,
|
||||
stack: PolySymbolQueryStack,
|
||||
): List<PolySymbol> {
|
||||
if (!params.queryExecutor.allowResolve || (framework != null && params.framework != framework))
|
||||
if (!params.queryExecutor.allowResolve)
|
||||
return emptyList()
|
||||
val sourceKind = mappings[kind] ?: return emptyList()
|
||||
var result: List<PolySymbol> = emptyList()
|
||||
@@ -103,11 +97,10 @@ abstract class PolySymbolIsolatedMappingScope<T : PsiElement>(
|
||||
|| (other != null
|
||||
&& other is PolySymbolIsolatedMappingScope<*>
|
||||
&& other::class.java == this::class.java
|
||||
&& other.framework == framework
|
||||
&& other.location == location)
|
||||
|
||||
override fun hashCode(): Int =
|
||||
31 * framework.hashCode() + location.hashCode()
|
||||
location.hashCode()
|
||||
|
||||
private val subQuery by lazy(LazyThreadSafetyMode.PUBLICATION) {
|
||||
getCachedSubQueryExecutorAndScope().first
|
||||
|
||||
+2
-2
@@ -8,15 +8,15 @@ import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.extensions.DefaultPluginDescriptor
|
||||
import com.intellij.openapi.extensions.ExtensionPoint
|
||||
import com.intellij.openapi.extensions.PluginId
|
||||
import com.intellij.testFramework.UsefulTestCase
|
||||
import com.intellij.polySymbols.context.PolyContext.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.context.impl.PolyContextProviderExtensionPoint
|
||||
import com.intellij.polySymbols.framework.PolySymbolFramework.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.html.HtmlSymbolMatchCustomizer
|
||||
import com.intellij.polySymbols.query.impl.CustomElementsManifestMockScopeImpl
|
||||
import com.intellij.polySymbols.query.impl.PolySymbolMockQueryExecutorFactory
|
||||
import com.intellij.polySymbols.query.impl.WebTypesMockScopeImpl
|
||||
import com.intellij.polySymbols.webTypes.filters.PolySymbolMatchPrefixFilter
|
||||
import com.intellij.polySymbols.webTypes.impl.PolySymbolFilterEP
|
||||
import com.intellij.testFramework.UsefulTestCase
|
||||
import java.io.File
|
||||
|
||||
abstract class PolySymbolsMockQueryExecutorTestBase : UsefulTestCase() {
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ package com.intellij.polySymbols.query
|
||||
import com.intellij.model.Pointer
|
||||
import com.intellij.polySymbols.*
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.html.HTML_ATTRIBUTES
|
||||
import com.intellij.polySymbols.testFramework.query.doTest
|
||||
import com.intellij.polySymbols.testFramework.query.printMatches
|
||||
|
||||
+15
-15
@@ -5,7 +5,6 @@ import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.polySymbols.PolyContextKind
|
||||
import com.intellij.polySymbols.PolyContextName
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.context.PolyContext.Companion.KIND_FRAMEWORK
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutor
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryResultsCustomizerFactory
|
||||
@@ -19,20 +18,21 @@ class PolySymbolMockQueryExecutorFactory : PolySymbolQueryExecutorFactory {
|
||||
|
||||
val context: MutableMap<PolyContextKind, PolyContextName> = mutableMapOf()
|
||||
|
||||
override fun create(location: PsiElement?, allowResolve: Boolean): PolySymbolQueryExecutor =
|
||||
PolySymbolQueryExecutorImpl(location, scopeList,
|
||||
PolySymbolNamesProviderImpl(
|
||||
context[KIND_FRAMEWORK],
|
||||
context[KIND_FRAMEWORK]?.let { framework ->
|
||||
scopeList.filterIsInstance<WebTypesMockScopeImpl>().map {
|
||||
it.getNameConversionRulesProvider(framework).getNameConversionRules()
|
||||
}
|
||||
} ?: emptyList(),
|
||||
createModificationTracker(
|
||||
scopeList.filterIsInstance<WebTypesMockScopeImpl>().map { it.createPointer() })),
|
||||
PolySymbolQueryResultsCustomizerFactory.getQueryResultsCustomizer(location, PolyContext.create(context)),
|
||||
PolyContext.create(context),
|
||||
allowResolve)
|
||||
override fun create(location: PsiElement?, allowResolve: Boolean): PolySymbolQueryExecutor {
|
||||
val polyContext = PolyContext.create(context)
|
||||
return PolySymbolQueryExecutorImpl(location, scopeList,
|
||||
PolySymbolNamesProviderImpl(
|
||||
polyContext,
|
||||
scopeList.filterIsInstance<WebTypesMockScopeImpl>().mapNotNull {
|
||||
it.getNameConversionRulesProvider(polyContext)?.getNameConversionRules()
|
||||
},
|
||||
createModificationTracker(
|
||||
scopeList.filterIsInstance<WebTypesMockScopeImpl>().map { it.createPointer() })),
|
||||
PolySymbolQueryResultsCustomizerFactory.getQueryResultsCustomizer(location,
|
||||
PolyContext.create(context)),
|
||||
PolyContext.create(context),
|
||||
allowResolve)
|
||||
}
|
||||
|
||||
override fun addScope(
|
||||
scope: PolySymbolScope,
|
||||
|
||||
+5
-4
@@ -5,13 +5,14 @@ import com.intellij.codeInsight.completion.CompletionParameters
|
||||
import com.intellij.codeInsight.completion.CompletionResultSet
|
||||
import com.intellij.codeInsight.completion.XmlAttributeInsertHandler
|
||||
import com.intellij.codeInsight.completion.XmlTagInsertHandler
|
||||
import com.intellij.polySymbols.html.HtmlDescriptorUtils.getStandardHtmlAttributeDescriptors
|
||||
import com.intellij.polySymbols.html.HtmlFrameworkSymbolsSupport
|
||||
import com.intellij.polySymbols.html.StandardHtmlSymbol
|
||||
import com.intellij.polySymbols.PolySymbolModifier
|
||||
import com.intellij.polySymbols.completion.AsteriskAwarePrefixMatcher
|
||||
import com.intellij.polySymbols.completion.PolySymbolsCompletionProviderBase
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.html.HTML_ATTRIBUTES
|
||||
import com.intellij.polySymbols.html.HtmlDescriptorUtils.getStandardHtmlAttributeDescriptors
|
||||
import com.intellij.polySymbols.html.HtmlFrameworkSymbolsSupport
|
||||
import com.intellij.polySymbols.html.StandardHtmlSymbol
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutor
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory
|
||||
import com.intellij.polySymbols.utils.asSingleSymbol
|
||||
@@ -38,7 +39,7 @@ class HtmlAttributeSymbolsCompletionProvider : PolySymbolsCompletionProviderBase
|
||||
|
||||
val providedAttributes = tag.attributes.asSequence().mapNotNull { it.name }.toMutableSet()
|
||||
|
||||
val attributesFilter = HtmlFrameworkSymbolsSupport.get(queryExecutor.framework)
|
||||
val attributesFilter = HtmlFrameworkSymbolsSupport.get(queryExecutor.context.framework)
|
||||
.getAttributeNameCodeCompletionFilter(tag)
|
||||
|
||||
val filteredOutStandardSymbols = getStandardHtmlAttributeDescriptors(tag)
|
||||
|
||||
+3
-3
@@ -4,8 +4,8 @@ package com.intellij.polySymbols.html
|
||||
import com.intellij.polySymbols.PolySymbolKind
|
||||
import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem
|
||||
import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItemCustomizer
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.documentation.PolySymbolDocumentationTarget
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.util.asSafely
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
@@ -14,12 +14,12 @@ import org.jetbrains.annotations.ApiStatus
|
||||
class HtmlCodeCompletionItemCustomizer : PolySymbolCodeCompletionItemCustomizer {
|
||||
override fun customize(
|
||||
item: PolySymbolCodeCompletionItem,
|
||||
framework: FrameworkId?,
|
||||
context: PolyContext,
|
||||
kind: PolySymbolKind,
|
||||
location: PsiElement,
|
||||
): PolySymbolCodeCompletionItem =
|
||||
when (kind) {
|
||||
HTML_ELEMENTS -> item.withTypeText{
|
||||
HTML_ELEMENTS -> item.withTypeText {
|
||||
item.symbol
|
||||
?.getDocumentationTarget(null)
|
||||
?.asSafely<PolySymbolDocumentationTarget>()
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.polySymbols.PolySymbol
|
||||
import com.intellij.polySymbols.PolySymbolProperty
|
||||
import com.intellij.polySymbols.context.PolyContext
|
||||
import com.intellij.polySymbols.framework.FrameworkId
|
||||
import com.intellij.polySymbols.framework.framework
|
||||
import com.intellij.polySymbols.html.HtmlFrameworkSymbolsSupport.Companion.PROP_HTML_FRAMEWORK_ID
|
||||
import com.intellij.polySymbols.utils.unwrapMatchedSymbols
|
||||
import com.intellij.polySymbols.webTypes.WebTypesSymbol
|
||||
|
||||
Reference in New Issue
Block a user