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 a8c60757587f..b88be00f28ac 100644 --- a/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsSymbol.kt +++ b/platform/polySymbols/src-web/com/intellij/polySymbols/customElements/CustomElementsSymbol.kt @@ -27,9 +27,7 @@ interface CustomElementsSymbol : PolySymbol, PolySymbolScope { PolySymbolDocumentationTarget.create(this, location) { symbol, _ -> description = symbol.description defaultValue = symbol.defaultValue - library = symbol.origin.let { origin -> - library + (origin.version?.takeIf { it != "0.0.0" }?.let { "@$it" } ?: "") - } + library = symbol.origin.library + (symbol.origin.version?.takeIf { it != "0.0.0" }?.let { "@$it" } ?: "") } override fun get(property: PolySymbolProperty): T? = 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 02c65dba4b53..73eeade47e0e 100644 --- a/platform/polySymbols/testFramework/com/intellij/polySymbols/testFramework/query/PolySymbolsDebugOutputPrinter.kt +++ b/platform/polySymbols/testFramework/com/intellij/polySymbols/testFramework/query/PolySymbolsDebugOutputPrinter.kt @@ -11,6 +11,7 @@ import com.intellij.polySymbols.documentation.PolySymbolDocumentationTarget import com.intellij.polySymbols.html.PolySymbolHtmlAttributeValue import com.intellij.polySymbols.html.htmlAttributeValue import com.intellij.polySymbols.js.PROP_JS_SYMBOL_KIND +import com.intellij.polySymbols.query.PolySymbolMatch import com.intellij.polySymbols.query.PolySymbolWithPattern import com.intellij.polySymbols.search.PsiSourcedPolySymbol import com.intellij.polySymbols.testFramework.DebugOutputPrinter @@ -18,6 +19,7 @@ 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.utils.unwrapMatchedSymbols import com.intellij.polySymbols.webTypes.WebTypesSymbol import com.intellij.util.applyIf import com.intellij.util.asSafely @@ -85,14 +87,17 @@ open class PolySymbolsDebugOutputPrinter : DebugOutputPrinter() { .asSafely() ?.documentation + val framework = (source as? WebTypesSymbol)?.origin?.framework + ?: (source as? PolySymbolMatch)?.unwrapMatchedSymbols()?.firstNotNullOfOrNull { (it as? WebTypesSymbol)?.origin?.framework } + ?: "" printProperty(level, "origin", - "${documentation?.library} (${(source as? WebTypesSymbol)?.origin?.framework ?: ""})") + "${documentation?.library} ($framework)") printProperty(level, "source", (source as? PsiSourcedPolySymbol)?.source) printProperty(level, "type", source[PROP_TYPE_SUPPORT]?.typeProperty?.let { source[it] }) printProperty(level, "attrValue", source.htmlAttributeValue) printProperty(level, "complete", source.completeMatch) - if (documentation != null) { + if (documentation != null && source !is PolySymbolMatch) { printProperty(level, "description", documentation.description?.ellipsis(45)) printProperty(level, "docUrl", documentation.docUrl) printProperty(level, "descriptionSections", documentation.descriptionSections.takeIf { it.isNotEmpty() }) diff --git a/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt b/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt index f92578979fa6..924e6800ea2c 100644 --- a/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt +++ b/xml/xml-analysis-impl/src/com/intellij/polySymbols/html/HtmlCodeCompletionItemCustomizer.kt @@ -25,6 +25,10 @@ class HtmlCodeCompletionItemCustomizer : PolySymbolCodeCompletionItemCustomizer ?.asSafely() ?.documentation ?.library + ?.let { + val atIndex = it.lastIndexOf('@') + if (atIndex > 0) it.substring(0, atIndex) else it + } } HTML_ATTRIBUTES -> item // TODO - we can figure out the actual type with full match provided else -> item