diff --git a/platform/polySymbols/api-dump-experimental.txt b/platform/polySymbols/api-dump-experimental.txt index 51369516d0cf..864d3f50d29a 100644 --- a/platform/polySymbols/api-dump-experimental.txt +++ b/platform/polySymbols/api-dump-experimental.txt @@ -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 - ():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 -- (java.util.Map,java.lang.String,com.intellij.psi.PsiElement):V +- (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 diff --git a/platform/polySymbols/backend/api-dump-experimental.txt b/platform/polySymbols/backend/api-dump-experimental.txt index a7271ff93306..0b3128559173 100644 --- a/platform/polySymbols/backend/api-dump-experimental.txt +++ b/platform/polySymbols/backend/api-dump-experimental.txt @@ -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 diff --git a/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolCodeCompletionItemCustomizer.kt b/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolCodeCompletionItemCustomizer.kt index 1e5ab287af32..c2cbb758f7d5 100644 --- a/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolCodeCompletionItemCustomizer.kt +++ b/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolCodeCompletionItemCustomizer.kt @@ -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 = - ExtensionPointName.create("com.intellij.polySymbols.codeCompletionItemCustomizer") + ExtensionPointName.create("com.intellij.polySymbols.codeCompletionItemCustomizer") internal fun Sequence.customizeItems( - framework: FrameworkId?, + context: PolyContext, kind: PolySymbolKind, location: PsiElement, ): Sequence { @@ -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 diff --git a/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolsCompletionProviderBase.kt b/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolsCompletionProviderBase.kt index a5b3be15d323..b2d59ce4d83b 100644 --- a/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolsCompletionProviderBase.kt +++ b/platform/polySymbols/backend/src/com/intellij/polySymbols/completion/PolySymbolsCompletionProviderBase.kt @@ -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 : 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 : CompletionPro result: CompletionResultSet, kind: PolySymbolKind, name: String, - framework: FrameworkId?, + context: PolyContext, location: PsiElement, providedNames: MutableSet? = null, filter: ((PolySymbolCodeCompletionItem) -> Boolean)? = null, @@ -109,7 +109,7 @@ abstract class PolySymbolsCompletionProviderBase : 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 diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsManifestScopeBase.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsManifestScopeBase.kt index 9fa52abae306..c9683f48309f 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsManifestScopeBase.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsManifestScopeBase.kt @@ -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 = 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 = Pointer.hardPointer(this) diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesScopeBase.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesScopeBase.kt index 612bf101b31b..3c1877b2994b 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesScopeBase.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesScopeBase.kt @@ -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 - 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 = contextRulesCache.value diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbolBase.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbolBase.kt index 0b5275d91328..f84639564534 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbolBase.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbolBase.kt @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt b/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt index 66af8fb52eb3..e0d4c209fbe3 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/context/PolyContext.kt b/platform/polySymbols/src/com/intellij/polySymbols/context/PolyContext.kt index d705c4e87714..38eef11aaaf1 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/context/PolyContext.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/context/PolyContext.kt @@ -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 = PolyContextProviderExtensionCollector(ExtensionPointName("com.intellij.polySymbols.context")) - @JvmField - val KIND_FRAMEWORK: String = "framework" - @JvmField val VALUE_NONE: String = "none" diff --git a/platform/polySymbols/src/com/intellij/polySymbols/framework/PolySymbolFramework.kt b/platform/polySymbols/src/com/intellij/polySymbols/framework/PolySymbolFramework.kt index 6367fae1953b..c18239867fbc 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/framework/PolySymbolFramework.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/framework/PolySymbolFramework.kt @@ -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) diff --git a/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScope.kt b/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScope.kt index b02aa9dd73e0..7db79a8b0893 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScope.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScope.kt @@ -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 - fun getNameConversionRulesProvider(framework: FrameworkId): PolySymbolNameConversionRulesProvider + fun getNameConversionRulesProvider(context: PolyContext): PolySymbolNameConversionRulesProvider? } \ No newline at end of file diff --git a/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScopeBase.kt b/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScopeBase.kt index cf790ce41bd7..baf758e0b350 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScopeBase.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScopeBase.kt @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/CompletionParameters.kt b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/CompletionParameters.kt index f92bdaff21c1..88db4dac2cdb 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/CompletionParameters.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/CompletionParameters.kt @@ -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) diff --git a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/ListParameters.kt b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/ListParameters.kt index 5ac25b53cb12..0f431f6e461e 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/ListParameters.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/ListParameters.kt @@ -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})" } \ No newline at end of file diff --git a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/MatchParameters.kt b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/MatchParameters.kt index d7695ce9273a..7112bd938119 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/MatchParameters.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/MatchParameters.kt @@ -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})" } \ No newline at end of file diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutor.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutor.kt index ff043aa47731..f7b2502def7c 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutor.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutor.kt @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutorFactory.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutorFactory.kt index 49bdaf84eef4..3e7d23088795 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutorFactory.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryExecutorFactory.kt @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryParams.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryParams.kt index 6ce0e23d49f3..99ac03068aa0 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryParams.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/PolySymbolQueryParams.kt @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolNamesProviderImpl.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolNamesProviderImpl.kt index 22d3ed395e1b..861acdcd1ab3 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolNamesProviderImpl.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolNamesProviderImpl.kt @@ -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, private val modificationTracker: ModificationTracker, ) : PolySymbolNamesProvider { @@ -31,7 +32,7 @@ class PolySymbolNamesProviderImpl( private val renameProviders: Map - private val polySymbolFramework get() = framework?.let { PolySymbolFramework.get(it) } + private val polySymbolFramework get() = context.framework?.let { PolySymbolFramework.get(it) } init { val canonicalNamesProviders = mutableMapOf() @@ -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): PolySymbolNamesProvider = - PolySymbolNamesProviderImpl(framework, rules + configuration, modificationTracker) + PolySymbolNamesProviderImpl(context, rules + configuration, modificationTracker) override fun getNames(qualifiedName: PolySymbolQualifiedName, target: PolySymbolNamesProvider.Target): List = when (target) { diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorBuilderImpl.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorBuilderImpl.kt index 7d5281eabba6..eeb64f69a84c 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorBuilderImpl.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorBuilderImpl.kt @@ -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() private val customizers = mutableListOf() private val nameConversionRules = mutableListOf() @@ -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 diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorFactoryImpl.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorFactoryImpl.kt index efcb3c9643c5..239648b759bb 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorFactoryImpl.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorFactoryImpl.kt @@ -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 = diff --git a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt index fdadb626b497..299b445266fd 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt @@ -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( protected val mappings: Map, - /** - * 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( params: PolySymbolCodeCompletionQueryParams, stack: PolySymbolQueryStack, ): List { - 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 = emptyList() @@ -58,7 +52,7 @@ abstract class PolySymbolIsolatedMappingScope( params: PolySymbolNameMatchQueryParams, stack: PolySymbolQueryStack, ): List { - 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 = emptyList() @@ -79,7 +73,7 @@ abstract class PolySymbolIsolatedMappingScope( params: PolySymbolListSymbolsQueryParams, stack: PolySymbolQueryStack, ): List { - if (!params.queryExecutor.allowResolve || (framework != null && params.framework != framework)) + if (!params.queryExecutor.allowResolve) return emptyList() val sourceKind = mappings[kind] ?: return emptyList() var result: List = emptyList() @@ -103,11 +97,10 @@ abstract class PolySymbolIsolatedMappingScope( || (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 diff --git a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsMockQueryExecutorTestBase.kt b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsMockQueryExecutorTestBase.kt index be248f9f685a..5448e81c8504 100644 --- a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsMockQueryExecutorTestBase.kt +++ b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsMockQueryExecutorTestBase.kt @@ -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() { diff --git a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt index 8fa6e429f8cf..a94855d2ed4a 100644 --- a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt +++ b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt @@ -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 diff --git a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/impl/PolySymbolMockQueryExecutorFactory.kt b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/impl/PolySymbolMockQueryExecutorFactory.kt index 2a0303128616..e7b49cf241d9 100644 --- a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/impl/PolySymbolMockQueryExecutorFactory.kt +++ b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/impl/PolySymbolMockQueryExecutorFactory.kt @@ -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 = mutableMapOf() - override fun create(location: PsiElement?, allowResolve: Boolean): PolySymbolQueryExecutor = - PolySymbolQueryExecutorImpl(location, scopeList, - PolySymbolNamesProviderImpl( - context[KIND_FRAMEWORK], - context[KIND_FRAMEWORK]?.let { framework -> - scopeList.filterIsInstance().map { - it.getNameConversionRulesProvider(framework).getNameConversionRules() - } - } ?: emptyList(), - createModificationTracker( - scopeList.filterIsInstance().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().mapNotNull { + it.getNameConversionRulesProvider(polyContext)?.getNameConversionRules() + }, + createModificationTracker( + scopeList.filterIsInstance().map { it.createPointer() })), + PolySymbolQueryResultsCustomizerFactory.getQueryResultsCustomizer(location, + PolyContext.create(context)), + PolyContext.create(context), + allowResolve) + } override fun addScope( scope: PolySymbolScope, diff --git a/xml/impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolsCompletionProvider.kt b/xml/impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolsCompletionProvider.kt index b1692f50e4ce..74666a2bf792 100644 --- a/xml/impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolsCompletionProvider.kt +++ b/xml/impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolsCompletionProvider.kt @@ -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) diff --git a/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt b/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt index 94f402a46bad..f92578979fa6 100644 --- a/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt +++ b/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt @@ -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() diff --git a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlFrameworkSymbol.kt b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlFrameworkSymbol.kt index e303efc57c86..e574bda0dbcf 100644 --- a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlFrameworkSymbol.kt +++ b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlFrameworkSymbol.kt @@ -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