WEB-76271 PolySymbols: remove PolySymbolOrigin property from PolySymbol interface

GitOrigin-RevId: acdbe7f1c6273287e041499a70f820c7138f8feb
This commit is contained in:
Piotr Tomiak
2026-01-10 01:01:12 +00:00
committed by intellij-monorepo-bot
parent 53081cbe16
commit d96b1728be
32 changed files with 114 additions and 190 deletions
+16 -26
View File
@@ -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
@@ -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?
@@ -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 <T : Any> get(property: PolySymbolProperty<T>): T? =
when (property) {
PROP_TYPE_SUPPORT -> property.tryCast((origin as CustomElementsJsonOrigin).typeSupport)
PROP_TYPE_SUPPORT -> property.tryCast(origin.typeSupport)
else -> super.get(property)
}
@@ -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 {
@@ -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?
@@ -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<out WebTypesSymbol>
companion object {
@@ -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<PolySymbol> =
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 {
@@ -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()
@@ -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.
@@ -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
}
}
@@ -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()
}
}
@@ -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<Root : Any, Contribution : Any, Origin : PolySymbolOrigin> : StaticPolySymbolScope {
abstract class StaticPolySymbolScopeBase<Root : Any, Contribution : Any, Origin> : StaticPolySymbolScope {
private val namesProviderCache: MutableMap<PolySymbolNamesProvider, NameProvidersCache> =
ContainerUtil.createConcurrentSoftKeySoftValueMap()
@@ -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<PolySymb
symbol = PolySymbolMatch.create(
name,
lastMatched.segments.filter { it.start < it.end }.withOffset(-lastMatched.start),
PolySymbolKind[NAMESPACE_HTML, SPECIAL_MATCHED_CONTRIB],
PolySymbolOrigin.empty()
PolySymbolKind[NAMESPACE_HTML, SPECIAL_MATCHED_CONTRIB]
))
}
val result = mutableListOf<PolySymbolCodeCompletionItem>()
@@ -412,7 +410,7 @@ internal class SequencePattern(private val patternsProvider: () -> List<PolySymb
val mainSymbol = second ?: first ?: return null
return PolySymbolMatch.create(name, mainSymbol.kind, mainSymbol.origin) {
return PolySymbolMatch.create(name, mainSymbol.kind) {
addNameSegments(first.toNameSegments(0, firstNameLength))
addNameSegments(second.toNameSegments(firstNameLength, name.length))
}
@@ -2,7 +2,10 @@
package com.intellij.polySymbols.query
import com.intellij.openapi.util.NlsSafe
import com.intellij.polySymbols.*
import com.intellij.polySymbols.CompositePolySymbol
import com.intellij.polySymbols.PolySymbol
import com.intellij.polySymbols.PolySymbolKind
import com.intellij.polySymbols.PolySymbolNameSegment
import com.intellij.polySymbols.query.impl.PolySymbolMatchBase
import org.jetbrains.annotations.ApiStatus
@@ -22,10 +25,9 @@ interface PolySymbolMatch : CompositePolySymbol {
matchedName: String,
nameSegments: List<PolySymbolNameSegment>,
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()
@@ -26,7 +26,6 @@ internal open class PolySymbolMatchBase internal constructor(
override val matchedName: String,
override val nameSegments: List<PolySymbolNameSegment>,
override val kind: PolySymbolKind,
override val origin: PolySymbolOrigin,
override val explicitPriority: Priority?,
override val explicitProximity: Int?,
override val additionalProperties: Map<String, Any>,
@@ -41,7 +40,7 @@ internal open class PolySymbolMatchBase internal constructor(
}
internal fun withSegments(segments: List<PolySymbolNameSegment>): PolySymbolMatch =
create(matchedName, segments, kind, origin, explicitPriority, explicitProximity, additionalProperties)
create(matchedName, segments, kind, explicitPriority, explicitProximity, additionalProperties)
override val modifiers: Set<PolySymbolModifier>
@@ -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<PolySymbolNameSegment>()
@@ -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<PolySymbolNameSegment>): PolySymbolMatchBuilder = this.also {
nameSegments.addAll(value)
@@ -114,11 +111,10 @@ private class PsiSourcedPolySymbolMatch(
matchedName: String,
nameSegments: List<PolySymbolNameSegment>,
kind: PolySymbolKind,
origin: PolySymbolOrigin,
explicitPriority: Priority?,
explicitProximity: Int?,
additionalProperties: Map<String, Any>,
) : PolySymbolMatchBase(matchedName, nameSegments, kind, origin, explicitPriority, explicitProximity, additionalProperties),
) : PolySymbolMatchBase(matchedName, nameSegments, kind, explicitPriority, explicitProximity, additionalProperties),
PsiSourcedPolySymbolMatchMixin {
override fun createPointer(): Pointer<PsiSourcedPolySymbolMatch> =
@@ -130,7 +126,6 @@ private fun create(
matchedName: String,
nameSegments: List<PolySymbolNameSegment>,
kind: PolySymbolKind,
origin: PolySymbolOrigin,
explicitPriority: Priority?,
explicitProximity: Int?,
additionalProperties: Map<String, Any>,
@@ -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<String, Any>): 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<T : PolySymbolMatch>(
matchedName: String,
nameSegments: List<PolySymbolNameSegment>,
kind: PolySymbolKind,
origin: PolySymbolOrigin,
explicitPriority: Priority?,
explicitProximity: Int?,
additionalProperties: Map<String, Any>,
@@ -309,7 +303,6 @@ private class PolySymbolMatchPointer<T : PolySymbolMatch>(
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<T : PolySymbolMatch>(
if (dereferencingProblems.get()) return null
@Suppress("UNCHECKED_CAST")
newInstanceProvider(matchedName, it as List<PolySymbolNameSegment>, kind, origin,
newInstanceProvider(matchedName, it as List<PolySymbolNameSegment>, kind,
explicitPriority, explicitProximity, dereferencedProperties)
}
@@ -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)
@@ -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<T : PsiExternalReferenceHost> {
@@ -27,8 +26,7 @@ interface PsiPolySymbolReferenceProvider<T : PsiExternalReferenceHost> {
@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)
)
}
@@ -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 =
@@ -24,8 +24,6 @@ interface PolySymbolDelegate<T : PolySymbol> : 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<PolySymbolScope>
@@ -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
@@ -60,8 +60,7 @@ fun List<PolySymbol>.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)
}
}
}
@@ -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<PolySymbolQualifiedName> = 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<PolySymbolQualifiedName> = 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()
@@ -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 ?: "<none>"})")
"${documentation?.library} (${(source as? WebTypesSymbol)?.origin?.framework ?: "<none>"})")
printProperty(level, "source", (source as? PsiSourcedPolySymbol)?.source)
printProperty(level, "type", source[PROP_TYPE_SUPPORT]?.typeProperty?.let { source[it] })
printProperty(level, "attrValue", source.htmlAttributeValue)
@@ -397,8 +397,6 @@ class PolySymbolsNameQueryTest : PolySymbolsMockQueryExecutorTestBase() {
): List<PolySymbol> {
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
@@ -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<P
override val name: @NlsSafe String,
private val linkMatch: IssueNavigationConfiguration.LinkMatch,
) : PolySymbol {
override val origin: PolySymbolOrigin
get() = PolySymbolOrigin.empty()
override val kind: PolySymbolKind = PolySymbolKind["vcs", "issue"]
override fun createPointer(): Pointer<out PolySymbol> = hardPointer(this)
@@ -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
@@ -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<WebTypesJsonOrigin>()?.framework
else -> unwrapMatchedSymbols().firstNotNullOfOrNull { (it as? WebTypesSymbol)?.origin?.framework }
?: this[PROP_HTML_FRAMEWORK_ID]
}
@@ -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
@@ -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
@@ -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<PolySymbolCodeCompletionItem>? = 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<PolySymbolCodeCompletionItem>? = 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
@@ -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<HtmlAttributeEnumConstValueSymbol> {
val origin = this.origin
val name = this.name
val source = this.source?.let { SmartPointerManager.createPointer(it) }
return Pointer<HtmlAttributeEnumConstValueSymbol> {
val newSource = source?.dereference()
if (newSource == null && source != null) return@Pointer null
HtmlAttributeEnumConstValueSymbol(origin, name, newSource)
HtmlAttributeEnumConstValueSymbol(name, newSource)
}
}
@@ -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