From d96b1728bef94b5e6d3da400c53c8c76aeebfd73 Mon Sep 17 00:00:00 2001 From: Piotr Tomiak Date: Thu, 8 Jan 2026 13:17:34 +0100 Subject: [PATCH] WEB-76271 PolySymbols: remove PolySymbolOrigin property from PolySymbol interface GitOrigin-RevId: acdbe7f1c6273287e041499a70f820c7138f8feb --- .../polySymbols/api-dump-experimental.txt | 42 ++++++--------- .../CustomElementsJsonOrigin.kt | 8 ++- .../customElements/CustomElementsSymbol.kt | 8 ++- ...CustomElementsCustomElementExportSymbol.kt | 3 +- .../webTypes/WebTypesJsonOrigin.kt | 7 ++- .../polySymbols/webTypes/WebTypesSymbol.kt | 4 ++ .../webTypes/WebTypesSymbolBase.kt | 10 ++-- .../webTypes/impl/WebTypesPatternUtils.kt | 14 ++--- .../com/intellij/polySymbols/PolySymbol.kt | 7 --- .../intellij/polySymbols/PolySymbolOrigin.kt | 16 ------ .../polySymbols/impl/PolySymbolOriginImpl.kt | 10 ---- .../impl/StaticPolySymbolScopeBase.kt | 3 +- .../patterns/impl/SequencePattern.kt | 6 +-- .../polySymbols/query/PolySymbolMatch.kt | 14 ++--- .../query/impl/PolySymbolMatchBase.kt | 23 +++----- .../query/impl/PolySymbolQueryExecutorImpl.kt | 2 +- .../PsiPolySymbolReferenceProvider.kt | 4 +- .../polySymbols/utils/MappedPolySymbol.kt | 5 +- .../polySymbols/utils/PolySymbolDelegate.kt | 2 - .../utils/PolySymbolIsolatedMappingScope.kt | 1 - .../polySymbols/utils/PolySymbolUtils.kt | 9 ++-- .../utils/ReferencingPolySymbol.kt | 7 +-- .../query/PolySymbolsDebugOutputPrinter.kt | 3 +- .../query/PolySymbolsNameQueryTest.kt | 2 - .../CommitMessageReferenceProvider.kt | 4 -- .../src/com/intellij/tasks/core/TaskSymbol.kt | 4 -- .../polySymbols/html/HtmlFrameworkSymbol.kt | 5 +- .../html/HtmlSymbolQueryScopeContributor.kt | 8 +-- .../HtmlAttributeDescriptorBasedSymbol.kt | 10 ++-- .../attributes/HtmlAttributeSymbolInfo.kt | 54 ++++++++++--------- .../impl/HtmlAttributeEnumConstValueSymbol.kt | 5 +- .../HtmlElementDescriptorBasedSymbol.kt | 4 -- 32 files changed, 114 insertions(+), 190 deletions(-) delete mode 100644 platform/polySymbols/src/com/intellij/polySymbols/PolySymbolOrigin.kt delete mode 100644 platform/polySymbols/src/com/intellij/polySymbols/impl/PolySymbolOriginImpl.kt diff --git a/platform/polySymbols/api-dump-experimental.txt b/platform/polySymbols/api-dump-experimental.txt index 1be1e9d12f17..51369516d0cf 100644 --- a/platform/polySymbols/api-dump-experimental.txt +++ b/platform/polySymbols/api-dump-experimental.txt @@ -20,7 +20,6 @@ - getModifiers():java.util.Set - a:getName():java.lang.String - getNavigationTargets(com.intellij.openapi.project.Project):java.util.Collection -- a:getOrigin():com.intellij.polySymbols.PolySymbolOrigin - getPresentation():com.intellij.platform.backend.presentation.TargetPresentation - getPriority():com.intellij.polySymbols.PolySymbol$Priority - getPsiContext():com.intellij.psi.PsiElement @@ -200,11 +199,6 @@ - s:getEntries():kotlin.enums.EnumEntries - s:valueOf(java.lang.String):com.intellij.polySymbols.PolySymbolNameSegment$MatchProblem - s:values():com.intellij.polySymbols.PolySymbolNameSegment$MatchProblem[] -*:com.intellij.polySymbols.PolySymbolOrigin -- *sf:Companion:com.intellij.polySymbols.PolySymbolOrigin$Companion -- s:empty():com.intellij.polySymbols.PolySymbolOrigin -*f:com.intellij.polySymbols.PolySymbolOrigin$Companion -- f:empty():com.intellij.polySymbols.PolySymbolOrigin *:com.intellij.polySymbols.PolySymbolProperty - *sf:Companion:com.intellij.polySymbols.PolySymbolProperty$Companion - s:get(java.lang.String,java.lang.Class):com.intellij.polySymbols.PolySymbolProperty @@ -729,13 +723,13 @@ *:com.intellij.polySymbols.query.PolySymbolMatch - com.intellij.polySymbols.CompositePolySymbol - *sf:Companion:com.intellij.polySymbols.query.PolySymbolMatch$Companion -- s:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.polySymbols.PolySymbolOrigin,kotlin.jvm.functions.Function1):com.intellij.polySymbols.query.PolySymbolMatch -- s:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolNameSegment[]):com.intellij.polySymbols.query.PolySymbolMatch +- s:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,kotlin.jvm.functions.Function1):com.intellij.polySymbols.query.PolySymbolMatch +- s:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.polySymbols.PolySymbolNameSegment[]):com.intellij.polySymbols.query.PolySymbolMatch - a:getMatchedName():java.lang.String - a:withCustomProperties(java.util.Map):com.intellij.polySymbols.query.PolySymbolMatch *f:com.intellij.polySymbols.query.PolySymbolMatch$Companion -- f:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.polySymbols.PolySymbolOrigin,kotlin.jvm.functions.Function1):com.intellij.polySymbols.query.PolySymbolMatch -- f:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolNameSegment[]):com.intellij.polySymbols.query.PolySymbolMatch +- f:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,kotlin.jvm.functions.Function1):com.intellij.polySymbols.query.PolySymbolMatch +- f:create(java.lang.String,com.intellij.polySymbols.PolySymbolKind,com.intellij.polySymbols.PolySymbolNameSegment[]):com.intellij.polySymbols.query.PolySymbolMatch *:com.intellij.polySymbols.query.PolySymbolMatchBuilder - a:addNameSegment(com.intellij.polySymbols.PolySymbolNameSegment):com.intellij.polySymbols.query.PolySymbolMatchBuilder - a:addNameSegments(java.util.List):com.intellij.polySymbols.query.PolySymbolMatchBuilder @@ -1035,18 +1029,17 @@ *f:com.intellij.polySymbols.utils.MappedPolySymbol - com.intellij.polySymbols.query.PolySymbolWithPattern - *sf:Companion:com.intellij.polySymbols.utils.MappedPolySymbol$Companion -- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolQualifiedName[]):com.intellij.polySymbols.utils.MappedPolySymbol -- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolQualifiedName[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.MappedPolySymbol +- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolQualifiedName[]):com.intellij.polySymbols.utils.MappedPolySymbol +- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolQualifiedName[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.MappedPolySymbol - createPointer():com.intellij.model.Pointer - getKind():com.intellij.polySymbols.PolySymbolKind - getName():java.lang.String -- getOrigin():com.intellij.polySymbols.PolySymbolOrigin - getPattern():com.intellij.polySymbols.patterns.PolySymbolPattern - getPriority():com.intellij.polySymbols.PolySymbol$Priority *f:com.intellij.polySymbols.utils.MappedPolySymbol$Companion -- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolQualifiedName[]):com.intellij.polySymbols.utils.MappedPolySymbol -- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolQualifiedName[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.MappedPolySymbol -- bs:create$default(com.intellij.polySymbols.utils.MappedPolySymbol$Companion,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolQualifiedName[],com.intellij.polySymbols.PolySymbol$Priority,I,java.lang.Object):com.intellij.polySymbols.utils.MappedPolySymbol +- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolQualifiedName[]):com.intellij.polySymbols.utils.MappedPolySymbol +- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolQualifiedName[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.MappedPolySymbol +- bs:create$default(com.intellij.polySymbols.utils.MappedPolySymbol$Companion,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolQualifiedName[],com.intellij.polySymbols.PolySymbol$Priority,I,java.lang.Object):com.intellij.polySymbols.utils.MappedPolySymbol *f:com.intellij.polySymbols.utils.NameCaseUtils - sf:INSTANCE:com.intellij.polySymbols.utils.NameCaseUtils - sf:toCamelCase(java.lang.String):java.lang.String @@ -1095,7 +1088,6 @@ - getModifiers():java.util.Set - getName():java.lang.String - getNavigationTargets(com.intellij.openapi.project.Project):java.util.Collection -- getOrigin():com.intellij.polySymbols.PolySymbolOrigin - getPriority():com.intellij.polySymbols.PolySymbol$Priority - getPsiContext():com.intellij.psi.PsiElement - getQueryScope():java.util.List @@ -1228,22 +1220,21 @@ *f:com.intellij.polySymbols.utils.ReferencingPolySymbol - com.intellij.polySymbols.query.PolySymbolWithPattern - *sf:Companion:com.intellij.polySymbols.utils.ReferencingPolySymbol$Companion -- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[]):com.intellij.polySymbols.utils.ReferencingPolySymbol -- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.ReferencingPolySymbol -- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority,java.util.List):com.intellij.polySymbols.utils.ReferencingPolySymbol +- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[]):com.intellij.polySymbols.utils.ReferencingPolySymbol +- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.ReferencingPolySymbol +- sf:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority,java.util.List):com.intellij.polySymbols.utils.ReferencingPolySymbol - createPointer():com.intellij.model.Pointer - equals(java.lang.Object):Z - getKind():com.intellij.polySymbols.PolySymbolKind - getName():java.lang.String -- getOrigin():com.intellij.polySymbols.PolySymbolOrigin - getPattern():com.intellij.polySymbols.patterns.PolySymbolPattern - getPriority():com.intellij.polySymbols.PolySymbol$Priority - hashCode():I *f:com.intellij.polySymbols.utils.ReferencingPolySymbol$Companion -- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[]):com.intellij.polySymbols.utils.ReferencingPolySymbol -- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.ReferencingPolySymbol -- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority,java.util.List):com.intellij.polySymbols.utils.ReferencingPolySymbol -- bs:create$default(com.intellij.polySymbols.utils.ReferencingPolySymbol$Companion,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolOrigin,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority,java.util.List,I,java.lang.Object):com.intellij.polySymbols.utils.ReferencingPolySymbol +- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[]):com.intellij.polySymbols.utils.ReferencingPolySymbol +- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority):com.intellij.polySymbols.utils.ReferencingPolySymbol +- f:create(com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority,java.util.List):com.intellij.polySymbols.utils.ReferencingPolySymbol +- bs:create$default(com.intellij.polySymbols.utils.ReferencingPolySymbol$Companion,com.intellij.polySymbols.PolySymbolKind,java.lang.String,com.intellij.polySymbols.PolySymbolKind[],com.intellij.polySymbols.PolySymbol$Priority,java.util.List,I,java.lang.Object):com.intellij.polySymbols.utils.ReferencingPolySymbol *:com.intellij.polySymbols.webTypes.WebTypesSymbol - com.intellij.polySymbols.query.PolySymbolScope - com.intellij.polySymbols.search.PsiSourcedPolySymbol @@ -1303,7 +1294,6 @@ - getModificationCount():J - getModifiers():java.util.Set - f:getName():java.lang.String -- f:getOrigin():com.intellij.polySymbols.PolySymbolOrigin - f:getPriority():com.intellij.polySymbols.PolySymbol$Priority - pf:getQueryExecutor():com.intellij.polySymbols.query.PolySymbolQueryExecutor - f:getQueryScope():java.util.List diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsJsonOrigin.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsJsonOrigin.kt index 12cc6cf92b2c..1625c180a4f7 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsJsonOrigin.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsJsonOrigin.kt @@ -3,15 +3,13 @@ package com.intellij.polySymbols.customElements import com.intellij.openapi.util.NlsSafe import com.intellij.openapi.util.UserDataHolderEx -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.customElements.json.SourceReference import com.intellij.polySymbols.utils.PolySymbolTypeSupport import com.intellij.psi.PsiElement -import org.jetbrains.annotations.ApiStatus.Internal -import javax.swing.Icon +import org.jetbrains.annotations.ApiStatus -@Internal -interface CustomElementsJsonOrigin : PolySymbolOrigin { +@ApiStatus.Internal +interface CustomElementsJsonOrigin { val library: String val version: String? diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsSymbol.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsSymbol.kt index ef6a600f17e7..a8c60757587f 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsSymbol.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsSymbol.kt @@ -11,10 +11,14 @@ import com.intellij.polySymbols.documentation.PolySymbolDocumentationTarget import com.intellij.polySymbols.query.PolySymbolScope import com.intellij.polySymbols.utils.PolySymbolTypeSupport.Companion.PROP_TYPE_SUPPORT import com.intellij.psi.PsiElement +import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.Nls interface CustomElementsSymbol : PolySymbol, PolySymbolScope { + @get:ApiStatus.Internal + val origin: CustomElementsJsonOrigin + val description: @Nls String? get() = null val defaultValue: @NlsSafe String? get() = null @@ -23,14 +27,14 @@ interface CustomElementsSymbol : PolySymbol, PolySymbolScope { PolySymbolDocumentationTarget.create(this, location) { symbol, _ -> description = symbol.description defaultValue = symbol.defaultValue - library = (symbol.origin as? CustomElementsJsonOrigin)?.let { origin -> + library = symbol.origin.let { origin -> library + (origin.version?.takeIf { it != "0.0.0" }?.let { "@$it" } ?: "") } } override fun get(property: PolySymbolProperty): T? = when (property) { - PROP_TYPE_SUPPORT -> property.tryCast((origin as CustomElementsJsonOrigin).typeSupport) + PROP_TYPE_SUPPORT -> property.tryCast(origin.typeSupport) else -> super.get(property) } diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/impl/CustomElementsCustomElementExportSymbol.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/impl/CustomElementsCustomElementExportSymbol.kt index 71c095f11d39..865ea64e6658 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/impl/CustomElementsCustomElementExportSymbol.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/impl/CustomElementsCustomElementExportSymbol.kt @@ -5,7 +5,6 @@ import com.intellij.model.Pointer import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolApiStatus import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.context.PolyContext import com.intellij.polySymbols.customElements.CustomElementsJsonOrigin import com.intellij.polySymbols.customElements.CustomElementsSymbol @@ -21,7 +20,7 @@ import com.intellij.polySymbols.query.PolySymbolWithPattern class CustomElementsCustomElementExportSymbol private constructor( override val name: String, - override val origin: PolySymbolOrigin, + override val origin: CustomElementsJsonOrigin, override val pattern: PolySymbolPattern, override val apiStatus: PolySymbolApiStatus, ) : CustomElementsSymbol, PolySymbolWithPattern, StaticPolySymbolScopeBase.StaticSymbolContributionAdapter { diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesJsonOrigin.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesJsonOrigin.kt index 06a0100cf9c4..06e456ca6053 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesJsonOrigin.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesJsonOrigin.kt @@ -3,17 +3,16 @@ package com.intellij.polySymbols.webTypes import com.intellij.openapi.util.NlsSafe import com.intellij.openapi.util.UserDataHolderEx -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.context.PolyContext import com.intellij.polySymbols.framework.FrameworkId import com.intellij.polySymbols.utils.PolySymbolTypeSupport import com.intellij.polySymbols.webTypes.json.SourceBase import com.intellij.psi.PsiElement -import org.jetbrains.annotations.ApiStatus.Internal +import org.jetbrains.annotations.ApiStatus import javax.swing.Icon -@Internal -interface WebTypesJsonOrigin : PolySymbolOrigin { +@ApiStatus.Internal +interface WebTypesJsonOrigin { val framework: @NlsSafe FrameworkId? val defaultIcon: Icon? diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbol.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbol.kt index 640390025c9f..b3dc84c8d604 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbol.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbol.kt @@ -8,11 +8,15 @@ import com.intellij.polySymbols.js.JS_PROPERTIES import com.intellij.polySymbols.js.JS_STRING_LITERALS import com.intellij.polySymbols.query.PolySymbolScope import com.intellij.polySymbols.search.PsiSourcedPolySymbol +import org.jetbrains.annotations.ApiStatus interface WebTypesSymbol : PsiSourcedPolySymbol, PolySymbolScope { val location: Location? + @get:ApiStatus.Internal + val origin: WebTypesJsonOrigin + override fun createPointer(): Pointer companion object { 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 6743eb46d985..0b5275d91328 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbolBase.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/WebTypesSymbolBase.kt @@ -23,6 +23,7 @@ import com.intellij.polySymbols.webTypes.impl.WebTypesJsonContributionAdapter import com.intellij.polySymbols.webTypes.impl.wrap import com.intellij.polySymbols.webTypes.json.* import com.intellij.psi.PsiElement +import org.jetbrains.annotations.ApiStatus import javax.swing.Icon open class WebTypesSymbolBase : WebTypesSymbol { @@ -117,7 +118,7 @@ open class WebTypesSymbolBase : WebTypesSymbol { stack: PolySymbolQueryStack, ): List = base.rootScope - .getSymbols(base.contributionForQuery, this.origin as WebTypesJsonOrigin, kind, params) + .getSymbols(base.contributionForQuery, base.jsonOrigin, kind, params) .toList() final override fun getCodeCompletions( @@ -132,7 +133,8 @@ open class WebTypesSymbolBase : WebTypesSymbol { final override val kind: PolySymbolKind get() = base.kind - final override val origin: PolySymbolOrigin + @get:ApiStatus.Internal + final override val origin: WebTypesJsonOrigin get() = base.jsonOrigin final override val name: String @@ -166,7 +168,7 @@ open class WebTypesSymbolBase : WebTypesSymbol { } final override val apiStatus: PolySymbolApiStatus - get() = base.contribution.toApiStatus(origin as WebTypesJsonOrigin) + get() = base.contribution.toApiStatus(base.jsonOrigin) final override val extension: Boolean get() = base.contribution.extension == true @@ -208,7 +210,7 @@ open class WebTypesSymbolBase : WebTypesSymbol { internal class WebTypesSymbolWithPattern(private val jsonPattern: NamePatternRoot) : WebTypesSymbolBase(), PolySymbolWithPattern { override val pattern: PolySymbolPattern - get() = jsonPattern.wrap(base.contribution.name, origin as WebTypesJsonOrigin) + get() = jsonPattern.wrap(base.contribution.name, base.jsonOrigin) } private inner class HtmlAttributeValueImpl(private val value: HtmlAttributeValue) : PolySymbolHtmlAttributeValue { diff --git a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/impl/WebTypesPatternUtils.kt b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/impl/WebTypesPatternUtils.kt index 5b273c7e4363..cfa66e2c713e 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/impl/WebTypesPatternUtils.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/webTypes/impl/WebTypesPatternUtils.kt @@ -153,9 +153,10 @@ private class WebTypesComplexPatternConfigProvider( } else { val lastContribution = stack.peek() as PolySymbol - listOf(PolySymbolMatch.create(listResult.name, listResult.segments, - PolySymbolKind[lastContribution.namespace, SPECIAL_MATCHED_CONTRIB], - lastContribution.origin)) + listOf(PolySymbolMatch.create( + listResult.name, listResult.segments, + PolySymbolKind[lastContribution.namespace, SPECIAL_MATCHED_CONTRIB] + )) } } ?: emptyList() @@ -175,9 +176,10 @@ private class WebTypesComplexPatternConfigProvider( } else { val lastContribution = stack.peek() as PolySymbol - sequenceOf(PolySymbolMatch.create(name, matchResult.segments, - PolySymbolKind[lastContribution.namespace, SPECIAL_MATCHED_CONTRIB], - lastContribution.origin)) + sequenceOf(PolySymbolMatch.create( + name, matchResult.segments, + PolySymbolKind[lastContribution.namespace, SPECIAL_MATCHED_CONTRIB] + )) } } ?: emptyList() diff --git a/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt b/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt index d05b5154b696..66af8fb52eb3 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/PolySymbol.kt @@ -77,13 +77,6 @@ import javax.swing.Icon @Suppress("INAPPLICABLE_JVM_NAME") interface PolySymbol : Symbol, NavigatableSymbol, PolySymbolPrioritizedScope { - /** - * Specifies where this symbol comes from. Besides descriptive information like - * framework, library, version or default icon, it also provides an interface to - * load symbol types and icons. - **/ - val origin: PolySymbolOrigin - /** * Describes which group of symbols (kind) within the particular language * or concept (namespace) the symbol belongs to. diff --git a/platform/polySymbols/src/com/intellij/polySymbols/PolySymbolOrigin.kt b/platform/polySymbols/src/com/intellij/polySymbols/PolySymbolOrigin.kt deleted file mode 100644 index 2be3979a5dda..000000000000 --- a/platform/polySymbols/src/com/intellij/polySymbols/PolySymbolOrigin.kt +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.polySymbols - -import com.intellij.polySymbols.impl.PolySymbolOriginImpl -import javax.swing.Icon - -interface PolySymbolOrigin { - - companion object { - - @JvmStatic - fun empty(): PolySymbolOrigin = - PolySymbolOriginImpl.empty - } - -} \ No newline at end of file diff --git a/platform/polySymbols/src/com/intellij/polySymbols/impl/PolySymbolOriginImpl.kt b/platform/polySymbols/src/com/intellij/polySymbols/impl/PolySymbolOriginImpl.kt deleted file mode 100644 index 7d16ac9b2f3e..000000000000 --- a/platform/polySymbols/src/com/intellij/polySymbols/impl/PolySymbolOriginImpl.kt +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.polySymbols.impl - -import com.intellij.polySymbols.PolySymbolOrigin - -internal class PolySymbolOriginImpl : PolySymbolOrigin { - companion object { - val empty = PolySymbolOriginImpl() - } -} \ 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 53ea9812dcd6..cf790ce41bd7 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScopeBase.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/impl/StaticPolySymbolScopeBase.kt @@ -4,7 +4,6 @@ package com.intellij.polySymbols.impl import com.intellij.model.Pointer import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.PolySymbolQualifiedName import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem import com.intellij.polySymbols.context.PolyContext @@ -16,7 +15,7 @@ import org.jetbrains.annotations.ApiStatus.Internal import java.util.concurrent.ConcurrentHashMap @Internal -abstract class StaticPolySymbolScopeBase : StaticPolySymbolScope { +abstract class StaticPolySymbolScopeBase : StaticPolySymbolScope { private val namesProviderCache: MutableMap = ContainerUtil.createConcurrentSoftKeySoftValueMap() diff --git a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/SequencePattern.kt b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/SequencePattern.kt index 83c006ee98ff..6cfeb6056717 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/SequencePattern.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/patterns/impl/SequencePattern.kt @@ -5,7 +5,6 @@ import com.intellij.openapi.util.text.StringUtil import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind import com.intellij.polySymbols.PolySymbolNameSegment -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem import com.intellij.polySymbols.completion.impl.CompoundInsertHandler import com.intellij.polySymbols.html.NAMESPACE_HTML @@ -241,8 +240,7 @@ internal class SequencePattern(private val patternsProvider: () -> List() @@ -412,7 +410,7 @@ internal class SequencePattern(private val patternsProvider: () -> List, kind: PolySymbolKind, - origin: PolySymbolOrigin, explicitPriority: PolySymbol.Priority? = null, ): PolySymbolMatch = - PolySymbolMatchBase.BuilderImpl(matchedName, kind, origin) + PolySymbolMatchBase.BuilderImpl(matchedName, kind) .also { builder -> builder.addNameSegments(nameSegments) explicitPriority?.let { builder.explicitPriority(it) } @@ -36,10 +38,9 @@ interface PolySymbolMatch : CompositePolySymbol { fun create( matchedName: String, kind: PolySymbolKind, - origin: PolySymbolOrigin, builder: (PolySymbolMatchBuilder.() -> Unit), ): PolySymbolMatch = - PolySymbolMatchBase.BuilderImpl(matchedName, kind, origin) + PolySymbolMatchBase.BuilderImpl(matchedName, kind) .also { builder.invoke(it) } .build() @@ -47,10 +48,9 @@ interface PolySymbolMatch : CompositePolySymbol { fun create( matchedName: String, kind: PolySymbolKind, - origin: PolySymbolOrigin, vararg nameSegments: PolySymbolNameSegment, ): PolySymbolMatch = - PolySymbolMatchBase.BuilderImpl(matchedName, kind, origin) + PolySymbolMatchBase.BuilderImpl(matchedName, kind) .also { it.addNameSegments(*nameSegments) } .build() diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolMatchBase.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolMatchBase.kt index cfeaee7ea2fb..3122d8b35cd6 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolMatchBase.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolMatchBase.kt @@ -26,7 +26,6 @@ internal open class PolySymbolMatchBase internal constructor( override val matchedName: String, override val nameSegments: List, override val kind: PolySymbolKind, - override val origin: PolySymbolOrigin, override val explicitPriority: Priority?, override val explicitProximity: Int?, override val additionalProperties: Map, @@ -41,7 +40,7 @@ internal open class PolySymbolMatchBase internal constructor( } internal fun withSegments(segments: List): PolySymbolMatch = - create(matchedName, segments, kind, origin, explicitPriority, explicitProximity, additionalProperties) + create(matchedName, segments, kind, explicitPriority, explicitProximity, additionalProperties) override val modifiers: Set @@ -59,7 +58,6 @@ internal open class PolySymbolMatchBase internal constructor( override fun equals(other: Any?): Boolean = other is PolySymbolMatch && other.name == name - && other.origin == origin && other.kind == kind && other.nameSegments.equalsIgnoreOffset(nameSegments) @@ -71,7 +69,6 @@ internal open class PolySymbolMatchBase internal constructor( class BuilderImpl( private var matchedName: String, private var kind: PolySymbolKind, - private var origin: PolySymbolOrigin, ) : PolySymbolMatchBuilder { private var nameSegments = mutableListOf() @@ -81,7 +78,7 @@ internal open class PolySymbolMatchBase internal constructor( fun build(): PolySymbolMatch = create(matchedName, nameSegments, kind, - origin, explicitPriority, explicitProximity, properties) + explicitPriority, explicitProximity, properties) override fun addNameSegments(value: List): PolySymbolMatchBuilder = this.also { nameSegments.addAll(value) @@ -114,11 +111,10 @@ private class PsiSourcedPolySymbolMatch( matchedName: String, nameSegments: List, kind: PolySymbolKind, - origin: PolySymbolOrigin, explicitPriority: Priority?, explicitProximity: Int?, additionalProperties: Map, -) : PolySymbolMatchBase(matchedName, nameSegments, kind, origin, explicitPriority, explicitProximity, additionalProperties), +) : PolySymbolMatchBase(matchedName, nameSegments, kind, explicitPriority, explicitProximity, additionalProperties), PsiSourcedPolySymbolMatchMixin { override fun createPointer(): Pointer = @@ -130,7 +126,6 @@ private fun create( matchedName: String, nameSegments: List, kind: PolySymbolKind, - origin: PolySymbolOrigin, explicitPriority: Priority?, explicitProximity: Int?, additionalProperties: Map, @@ -138,11 +133,11 @@ private fun create( val psiSourcedMixin = nameSegments.all { it.start == it.end || (it.symbols.isNotEmpty() && it.symbols.any { symbol -> symbol is PsiSourcedPolySymbol }) } return if (psiSourcedMixin) { - PsiSourcedPolySymbolMatch(matchedName, nameSegments, kind, origin, - explicitPriority, explicitProximity, additionalProperties) + PsiSourcedPolySymbolMatch(matchedName, nameSegments, kind, explicitPriority, + explicitProximity, additionalProperties) } else { - PolySymbolMatchBase(matchedName, nameSegments, kind, origin, + PolySymbolMatchBase(matchedName, nameSegments, kind, explicitPriority, explicitProximity, additionalProperties) } } @@ -156,7 +151,7 @@ private interface PolySymbolMatchMixin : PolySymbolMatch { fun reversedSegments() = Sequence { ReverseListIterator(nameSegments) } override fun withCustomProperties(properties: Map): PolySymbolMatch = - create(matchedName, nameSegments, kind, origin, explicitPriority, explicitProximity, additionalProperties + properties) + create(matchedName, nameSegments, kind, explicitPriority, explicitProximity, additionalProperties + properties) override val psiContext: PsiElement? get() = reversedSegments().flatMap { it.symbols.asSequence() } @@ -298,7 +293,6 @@ private class PolySymbolMatchPointer( matchedName: String, nameSegments: List, kind: PolySymbolKind, - origin: PolySymbolOrigin, explicitPriority: Priority?, explicitProximity: Int?, additionalProperties: Map, @@ -309,7 +303,6 @@ private class PolySymbolMatchPointer( private val nameSegments = polySymbolMatch.nameSegments .map { it.createPointer() } private val kind = polySymbolMatch.kind - private val origin = polySymbolMatch.origin private val explicitPriority = polySymbolMatch.explicitPriority private val explicitProximity = polySymbolMatch.explicitProximity private val additionalProperties = polySymbolMatch.additionalProperties @@ -324,7 +317,7 @@ private class PolySymbolMatchPointer( if (dereferencingProblems.get()) return null @Suppress("UNCHECKED_CAST") - newInstanceProvider(matchedName, it as List, kind, origin, + newInstanceProvider(matchedName, it as List, kind, explicitPriority, explicitProximity, dereferencedProperties) } diff --git a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorImpl.kt b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorImpl.kt index 076b71d9f521..d2d595841b7d 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorImpl.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/query/impl/PolySymbolQueryExecutorImpl.kt @@ -459,7 +459,7 @@ class PolySymbolQueryExecutorImpl( pattern .list(this, PolySymbolQueryStack(context + queryScope), params) .map { - PolySymbolMatch.create(it.name, it.segments, kind, origin) + PolySymbolMatch.create(it.name, it.segments, kind) } else listOf(this) diff --git a/platform/polySymbols/src/com/intellij/polySymbols/references/PsiPolySymbolReferenceProvider.kt b/platform/polySymbols/src/com/intellij/polySymbols/references/PsiPolySymbolReferenceProvider.kt index f7e978b87453..7959001b2d9c 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/references/PsiPolySymbolReferenceProvider.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/references/PsiPolySymbolReferenceProvider.kt @@ -6,7 +6,6 @@ import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind import com.intellij.polySymbols.PolySymbolNameSegment import com.intellij.polySymbols.PolySymbolNameSegment.MatchProblem -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.query.PolySymbolMatch interface PsiPolySymbolReferenceProvider { @@ -27,8 +26,7 @@ interface PsiPolySymbolReferenceProvider { @JvmStatic fun unresolvedSymbol(kind: PolySymbolKind, name: String): PolySymbolMatch = PolySymbolMatch.create( - name, kind, PolySymbolOrigin.empty(), - PolySymbolNameSegment.create(0, name.length, problem = MatchProblem.UNKNOWN_SYMBOL) + name, kind, PolySymbolNameSegment.create(0, name.length, problem = MatchProblem.UNKNOWN_SYMBOL) ) } diff --git a/platform/polySymbols/src/com/intellij/polySymbols/utils/MappedPolySymbol.kt b/platform/polySymbols/src/com/intellij/polySymbols/utils/MappedPolySymbol.kt index aa39262e3d07..d9f68875ab93 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/utils/MappedPolySymbol.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/utils/MappedPolySymbol.kt @@ -4,7 +4,6 @@ package com.intellij.polySymbols.utils import com.intellij.model.Pointer import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.PolySymbolQualifiedName import com.intellij.polySymbols.patterns.PolySymbolPattern import com.intellij.polySymbols.patterns.PolySymbolPatternFactory @@ -22,7 +21,6 @@ import com.intellij.polySymbols.query.PolySymbolWithPattern class MappedPolySymbol private constructor( override val kind: PolySymbolKind, override val name: String, - override val origin: PolySymbolOrigin, vararg mappingPath: PolySymbolQualifiedName, override val priority: PolySymbol.Priority? = null, ) : PolySymbolWithPattern { @@ -33,11 +31,10 @@ class MappedPolySymbol private constructor( fun create( kind: PolySymbolKind, name: String, - origin: PolySymbolOrigin, vararg mappingPath: PolySymbolQualifiedName, priority: PolySymbol.Priority? = null, ): MappedPolySymbol = - MappedPolySymbol(kind, name, origin, *mappingPath, priority = priority) + MappedPolySymbol(kind, name, *mappingPath, priority = priority) } override val pattern: PolySymbolPattern = diff --git a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolDelegate.kt b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolDelegate.kt index ac70989b398e..41ae7b0da220 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolDelegate.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolDelegate.kt @@ -24,8 +24,6 @@ interface PolySymbolDelegate : PolySymbol, PolySymbolScope { override val psiContext: PsiElement? get() = delegate.psiContext - override val origin: PolySymbolOrigin - get() = delegate.origin override val kind: PolySymbolKind get() = delegate.kind override val queryScope: List diff --git a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt index 02efaff09d77..fdadb626b497 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolIsolatedMappingScope.kt @@ -7,7 +7,6 @@ import com.intellij.openapi.util.IntellijInternalApi import com.intellij.openapi.util.RecursionManager import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.PolySymbolQualifiedName import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem import com.intellij.polySymbols.framework.FrameworkId diff --git a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolUtils.kt b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolUtils.kt index 789f994971a9..ac84adfd7669 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolUtils.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/utils/PolySymbolUtils.kt @@ -60,8 +60,7 @@ fun List.asSingleSymbol(force: Boolean = false): PolySymbol? = if (!force && any { it.kind != first.kind }) null else - PolySymbolMatch.create(first.name, first.kind, first.origin, - PolySymbolNameSegment.create(0, first.name.length, sortSymbolsByPriority())) + PolySymbolMatch.create(first.name, first.kind, PolySymbolNameSegment.create(0, first.name.length, sortSymbolsByPriority())) } fun PolySymbol.withMatchedName(matchedName: String): PolySymbol = @@ -70,7 +69,7 @@ fun PolySymbol.withMatchedName(matchedName: String): PolySymbol = nameSegments[0].withRange(0, matchedName.length) else PolySymbolNameSegment.create(0, matchedName.length, this) - PolySymbolMatch.create(matchedName, kind, origin, nameSegment) + PolySymbolMatch.create(matchedName, kind, nameSegment) } else this @@ -81,7 +80,7 @@ fun PolySymbol.withMatchedKind(kind: PolySymbolKind): PolySymbol = nameSegments[0].withRange(0, matchedName.length) else PolySymbolNameSegment.create(0, matchedName.length, this) - PolySymbolMatch.create(matchedName, kind, origin, nameSegment) + PolySymbolMatch.create(matchedName, kind, nameSegment) } else this @@ -160,7 +159,7 @@ fun PolySymbol.match( null } else { - PolySymbolMatch.create(nameToMatch, matchResult.segments, kind, origin) + PolySymbolMatch.create(nameToMatch, matchResult.segments, kind) } } } diff --git a/platform/polySymbols/src/com/intellij/polySymbols/utils/ReferencingPolySymbol.kt b/platform/polySymbols/src/com/intellij/polySymbols/utils/ReferencingPolySymbol.kt index 9b0c67704a1c..5ed426f4f9cb 100644 --- a/platform/polySymbols/src/com/intellij/polySymbols/utils/ReferencingPolySymbol.kt +++ b/platform/polySymbols/src/com/intellij/polySymbols/utils/ReferencingPolySymbol.kt @@ -4,7 +4,6 @@ package com.intellij.polySymbols.utils import com.intellij.model.Pointer import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.PolySymbolQualifiedName import com.intellij.polySymbols.patterns.ComplexPatternOptions import com.intellij.polySymbols.patterns.PolySymbolPattern @@ -19,7 +18,6 @@ import com.intellij.polySymbols.query.PolySymbolWithPattern class ReferencingPolySymbol private constructor( override val kind: PolySymbolKind, override val name: String, - override val origin: PolySymbolOrigin, vararg references: PolySymbolKind, override val priority: PolySymbol.Priority?, private val location: List = emptyList(), @@ -31,13 +29,12 @@ class ReferencingPolySymbol private constructor( fun create( kind: PolySymbolKind, name: String, - origin: PolySymbolOrigin, vararg kinds: PolySymbolKind, priority: PolySymbol.Priority? = null, location: List = emptyList(), ): ReferencingPolySymbol = ReferencingPolySymbol( - kind, name, origin, *kinds, priority = priority, location = location + kind, name, *kinds, priority = priority, location = location ) } @@ -62,7 +59,6 @@ class ReferencingPolySymbol private constructor( other is ReferencingPolySymbol && other.kind == kind && other.name == name - && other.origin == origin && other.priority == priority && other.location == location && other.references == references @@ -70,7 +66,6 @@ class ReferencingPolySymbol private constructor( override fun hashCode(): Int { var result = kind.hashCode() result = 31 * result + name.hashCode() - result = 31 * result + origin.hashCode() result = 31 * result + priority.hashCode() result = 31 * result + location.hashCode() result = 31 * result + references.hashCode() diff --git a/platform/polySymbols/testFramework/com/intellij/polySymbols/testFramework/query/PolySymbolsDebugOutputPrinter.kt b/platform/polySymbols/testFramework/com/intellij/polySymbols/testFramework/query/PolySymbolsDebugOutputPrinter.kt index c8c274fe65ab..02c65dba4b53 100644 --- a/platform/polySymbols/testFramework/com/intellij/polySymbols/testFramework/query/PolySymbolsDebugOutputPrinter.kt +++ b/platform/polySymbols/testFramework/com/intellij/polySymbols/testFramework/query/PolySymbolsDebugOutputPrinter.kt @@ -18,7 +18,6 @@ import com.intellij.polySymbols.utils.PolySymbolTypeSupport.Companion.PROP_TYPE_ import com.intellij.polySymbols.utils.completeMatch import com.intellij.polySymbols.utils.nameSegments import com.intellij.polySymbols.utils.qualifiedName -import com.intellij.polySymbols.webTypes.WebTypesJsonOrigin import com.intellij.polySymbols.webTypes.WebTypesSymbol import com.intellij.util.applyIf import com.intellij.util.asSafely @@ -88,7 +87,7 @@ open class PolySymbolsDebugOutputPrinter : DebugOutputPrinter() { printProperty(level, "origin", - "${documentation?.library} (${(source.origin as? WebTypesJsonOrigin)?.framework ?: ""})") + "${documentation?.library} (${(source as? WebTypesSymbol)?.origin?.framework ?: ""})") printProperty(level, "source", (source as? PsiSourcedPolySymbol)?.source) printProperty(level, "type", source[PROP_TYPE_SUPPORT]?.typeProperty?.let { source[it] }) printProperty(level, "attrValue", source.htmlAttributeValue) diff --git a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt index 9a606ecfc8e5..8fa6e429f8cf 100644 --- a/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt +++ b/platform/polySymbols/testSrc/com/intellij/polySymbols/query/PolySymbolsNameQueryTest.kt @@ -397,8 +397,6 @@ class PolySymbolsNameQueryTest : PolySymbolsMockQueryExecutorTestBase() { ): List { return if (qualifiedName.kind == HTML_ATTRIBUTES) { listOf(object : PolySymbol { - override val origin: PolySymbolOrigin - get() = PolySymbolOrigin.empty() override val kind: PolySymbolKind get() = HTML_ATTRIBUTES override val name: String diff --git a/platform/vcs-impl/src/com/intellij/psi/impl/source/resolve/reference/CommitMessageReferenceProvider.kt b/platform/vcs-impl/src/com/intellij/psi/impl/source/resolve/reference/CommitMessageReferenceProvider.kt index bd6da8b7bca2..144a7ff8d0a0 100644 --- a/platform/vcs-impl/src/com/intellij/psi/impl/source/resolve/reference/CommitMessageReferenceProvider.kt +++ b/platform/vcs-impl/src/com/intellij/psi/impl/source/resolve/reference/CommitMessageReferenceProvider.kt @@ -17,7 +17,6 @@ import com.intellij.platform.backend.navigation.NavigationTarget import com.intellij.platform.backend.presentation.TargetPresentation import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.PolySymbolProperty import com.intellij.polySymbols.references.PsiPolySymbolReferenceProvider import com.intellij.pom.Navigatable @@ -50,9 +49,6 @@ internal class CommitMessageReferenceProvider : PsiPolySymbolReferenceProvider

= hardPointer(this) diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/core/TaskSymbol.kt b/plugins/tasks/tasks-core/src/com/intellij/tasks/core/TaskSymbol.kt index 8498a10ddc94..2546a7d99024 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/core/TaskSymbol.kt +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/core/TaskSymbol.kt @@ -21,7 +21,6 @@ import com.intellij.platform.backend.navigation.NavigationTarget import com.intellij.platform.backend.presentation.TargetPresentation import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.PolySymbolProperty import com.intellij.polySymbols.documentation.PolySymbolDocumentationTarget import com.intellij.pom.Navigatable @@ -65,9 +64,6 @@ sealed class AbstractTaskSymbol : PolySymbol, DocumentationSymbol { abstract val task: Task? - override val origin: PolySymbolOrigin - get() = PolySymbolOrigin.empty() - override val kind: PolySymbolKind get() = TASKS_TASKS 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 707b08ab7930..e303efc57c86 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 @@ -6,15 +6,14 @@ import com.intellij.polySymbols.PolySymbolProperty import com.intellij.polySymbols.context.PolyContext import com.intellij.polySymbols.framework.FrameworkId import com.intellij.polySymbols.html.HtmlFrameworkSymbolsSupport.Companion.PROP_HTML_FRAMEWORK_ID -import com.intellij.polySymbols.webTypes.WebTypesJsonOrigin +import com.intellij.polySymbols.utils.unwrapMatchedSymbols import com.intellij.polySymbols.webTypes.WebTypesSymbol -import com.intellij.util.asSafely val PolySymbol.framework: FrameworkId? get() = when (this) { is HtmlFrameworkSymbol -> this.framework - else -> this.origin.asSafely()?.framework + else -> unwrapMatchedSymbols().firstNotNullOfOrNull { (it as? WebTypesSymbol)?.origin?.framework } ?: this[PROP_HTML_FRAMEWORK_ID] } diff --git a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlSymbolQueryScopeContributor.kt b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlSymbolQueryScopeContributor.kt index 51115cc86349..ae8a78c196a2 100644 --- a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlSymbolQueryScopeContributor.kt +++ b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/HtmlSymbolQueryScopeContributor.kt @@ -5,7 +5,10 @@ import com.intellij.documentation.mdn.MdnSymbolDocumentation import com.intellij.documentation.mdn.getDomEventDocumentation import com.intellij.model.Pointer import com.intellij.openapi.project.Project -import com.intellij.polySymbols.* +import com.intellij.polySymbols.PolySymbol +import com.intellij.polySymbols.PolySymbolKind +import com.intellij.polySymbols.PolySymbolModifier +import com.intellij.polySymbols.PolySymbolQualifiedName import com.intellij.polySymbols.html.attributes.HtmlAttributeSymbolDescriptor import com.intellij.polySymbols.html.attributes.asHtmlSymbol import com.intellij.polySymbols.html.elements.HtmlElementSymbolDescriptor @@ -183,9 +186,6 @@ class HtmlSymbolQueryScopeContributor : PolySymbolQueryScopeContributor { override val name: String = descriptor.name.substring(2) - override val origin: PolySymbolOrigin - get() = PolySymbolOrigin.empty() - override val priority: PolySymbol.Priority get() = PolySymbol.Priority.LOW diff --git a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeDescriptorBasedSymbol.kt b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeDescriptorBasedSymbol.kt index 8e05f0b10dad..71ec1ace0522 100644 --- a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeDescriptorBasedSymbol.kt +++ b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeDescriptorBasedSymbol.kt @@ -7,7 +7,10 @@ import com.intellij.documentation.mdn.getHtmlMdnAttributeDocumentation import com.intellij.model.Pointer import com.intellij.openapi.project.Project import com.intellij.openapi.util.NlsSafe -import com.intellij.polySymbols.* +import com.intellij.polySymbols.PolySymbol +import com.intellij.polySymbols.PolySymbolKind +import com.intellij.polySymbols.PolySymbolModifier +import com.intellij.polySymbols.PolySymbolProperty import com.intellij.polySymbols.html.* import com.intellij.polySymbols.query.PolySymbolListSymbolsQueryParams import com.intellij.polySymbols.query.PolySymbolQueryStack @@ -45,9 +48,6 @@ internal class HtmlAttributeDescriptorBasedSymbol private constructor( override val name: String = descriptor.name - override val origin: PolySymbolOrigin - get() = PolySymbolOrigin.Companion.empty() - override val priority: PolySymbol.Priority get() = PolySymbol.Priority.LOW @@ -121,8 +121,6 @@ internal class HtmlAttributeDescriptorBasedSymbol private constructor( private class HtmlAttributeValueSymbol(override val name: @NlsSafe String) : PolySymbol { - override val origin: PolySymbolOrigin - get() = PolySymbolOrigin.empty() override val kind: PolySymbolKind get() = HTML_ATTRIBUTE_VALUES diff --git a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolInfo.kt b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolInfo.kt index 317c02352f98..af73ced8d450 100644 --- a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolInfo.kt +++ b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/HtmlAttributeSymbolInfo.kt @@ -1,14 +1,13 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.polySymbols.html.attributes +import com.intellij.polySymbols.PolySymbol +import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem import com.intellij.polySymbols.html.attributes.impl.HtmlAttributeEnumConstValueSymbol import com.intellij.polySymbols.html.attributes.impl.HtmlAttributeSymbolInfoImpl -import com.intellij.psi.PsiElement -import com.intellij.polySymbols.search.PsiSourcedPolySymbol -import com.intellij.polySymbols.PolySymbol -import com.intellij.polySymbols.PolySymbolOrigin -import com.intellij.polySymbols.completion.PolySymbolCodeCompletionItem import com.intellij.polySymbols.query.PolySymbolQueryExecutor +import com.intellij.polySymbols.search.PsiSourcedPolySymbol +import com.intellij.psi.PsiElement import org.jetbrains.annotations.ApiStatus import javax.swing.Icon @@ -65,31 +64,36 @@ interface HtmlAttributeSymbolInfo { fun withPriority(priority: PolySymbol.Priority): HtmlAttributeSymbolInfo - fun with(name: String = this.name, - symbol: PolySymbol = this.symbol, - acceptsNoValue: Boolean = this.acceptsNoValue, - acceptsValue: Boolean = this.acceptsValue, - enumValues: List? = this.enumValues, - strictEnumValues: Boolean = this.strictEnumValues, - type: Any? = this.type, - icon: Icon? = this.icon, - required: Boolean = this.required, - defaultValue: String? = this.defaultValue, - priority: PolySymbol.Priority = this.priority): HtmlAttributeSymbolInfo + fun with( + name: String = this.name, + symbol: PolySymbol = this.symbol, + acceptsNoValue: Boolean = this.acceptsNoValue, + acceptsValue: Boolean = this.acceptsValue, + enumValues: List? = this.enumValues, + strictEnumValues: Boolean = this.strictEnumValues, + type: Any? = this.type, + icon: Icon? = this.icon, + required: Boolean = this.required, + defaultValue: String? = this.defaultValue, + priority: PolySymbol.Priority = this.priority, + ): HtmlAttributeSymbolInfo companion object { @JvmStatic - fun createEnumConstValueSymbol(origin: PolySymbolOrigin, - matchedName: String, - source: PsiElement?): PsiSourcedPolySymbol = - HtmlAttributeEnumConstValueSymbol(origin, matchedName, source) + fun createEnumConstValueSymbol( + matchedName: String, + source: PsiElement?, + ): PsiSourcedPolySymbol = + HtmlAttributeEnumConstValueSymbol(matchedName, source) @JvmStatic - fun create(name: String, - queryExecutor: PolySymbolQueryExecutor, - symbol: PolySymbol, - context: PsiElement): HtmlAttributeSymbolInfo = + fun create( + name: String, + queryExecutor: PolySymbolQueryExecutor, + symbol: PolySymbol, + context: PsiElement, + ): HtmlAttributeSymbolInfo = HtmlAttributeSymbolInfoImpl.create(name, queryExecutor, symbol, context) @JvmStatic @@ -104,7 +108,7 @@ interface HtmlAttributeSymbolInfo { icon: Icon? = null, required: Boolean = false, defaultValue: String? = null, - priority: PolySymbol.Priority = PolySymbol.Priority.NORMAL + priority: PolySymbol.Priority = PolySymbol.Priority.NORMAL, ): HtmlAttributeSymbolInfo = HtmlAttributeSymbolInfoImpl( name, symbol, acceptsNoValue, acceptsValue, enumValues, strictEnumValues, type, icon, required, defaultValue, priority diff --git a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/impl/HtmlAttributeEnumConstValueSymbol.kt b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/impl/HtmlAttributeEnumConstValueSymbol.kt index eda26a731d4e..271bd6b00c4c 100644 --- a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/impl/HtmlAttributeEnumConstValueSymbol.kt +++ b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/attributes/impl/HtmlAttributeEnumConstValueSymbol.kt @@ -3,14 +3,12 @@ package com.intellij.polySymbols.html.attributes.impl import com.intellij.model.Pointer import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.html.HTML_ATTRIBUTE_VALUES import com.intellij.polySymbols.search.PsiSourcedPolySymbol import com.intellij.psi.PsiElement import com.intellij.psi.SmartPointerManager internal class HtmlAttributeEnumConstValueSymbol( - override val origin: PolySymbolOrigin, override val name: String, override val source: PsiElement?, ) : PsiSourcedPolySymbol { @@ -18,13 +16,12 @@ internal class HtmlAttributeEnumConstValueSymbol( get() = HTML_ATTRIBUTE_VALUES override fun createPointer(): Pointer { - val origin = this.origin val name = this.name val source = this.source?.let { SmartPointerManager.createPointer(it) } return Pointer { val newSource = source?.dereference() if (newSource == null && source != null) return@Pointer null - HtmlAttributeEnumConstValueSymbol(origin, name, newSource) + HtmlAttributeEnumConstValueSymbol(name, newSource) } } diff --git a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/elements/HtmlElementDescriptorBasedSymbol.kt b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/elements/HtmlElementDescriptorBasedSymbol.kt index 6d880c13a20f..97ff4d3f8913 100644 --- a/xml/xml-psi-impl/src/com/intellij/polySymbols/html/elements/HtmlElementDescriptorBasedSymbol.kt +++ b/xml/xml-psi-impl/src/com/intellij/polySymbols/html/elements/HtmlElementDescriptorBasedSymbol.kt @@ -8,7 +8,6 @@ import com.intellij.model.Pointer import com.intellij.openapi.project.Project import com.intellij.polySymbols.PolySymbol import com.intellij.polySymbols.PolySymbolKind -import com.intellij.polySymbols.PolySymbolOrigin import com.intellij.polySymbols.html.HTML_ELEMENTS import com.intellij.polySymbols.html.StandardHtmlSymbol import com.intellij.psi.PsiElement @@ -36,9 +35,6 @@ internal class HtmlElementDescriptorBasedSymbol( override val name: String = descriptor.name - override val origin: PolySymbolOrigin - get() = PolySymbolOrigin.Companion.empty() - override val priority: PolySymbol.Priority get() = PolySymbol.Priority.LOW