[webSymbols] WEB-63786 Rename refactoring in Astro's define:vars directive displays raw PsiSourcedWebSymbolRenameHandler

(cherry picked from commit 5005499dcbd0ca08c3542c323e47c3fb1014ad64)

IJ-CR-154369

GitOrigin-RevId: 4cd82ccd38253889cb8a217395915d5bf277644b
This commit is contained in:
Piotr Tomiak
2025-01-28 16:21:47 +01:00
committed by intellij-monorepo-bot
parent a9fbe0f975
commit 7efa647a39
2 changed files with 11 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
package com.intellij.webSymbols.refactoring
import com.intellij.model.Symbol
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.editor.Editor
@@ -31,8 +32,9 @@ class PsiSourcedWebSymbolRenameHandler : RenameHandler {
override fun isAvailableOnDataContext(dataContext: DataContext): Boolean =
dataContext.getData(CommonDataKeys.SYMBOLS)
?.filterIsInstance<PsiSourcedWebSymbol>()
?.mapNotNull { it.source }
?.count { it is PsiNamedElement && it !is SyntheticElement } == 1
?.count { acceptSymbolForPsiSourcedWebSymbolRenameHandler(it) } == 1
}
}
internal fun acceptSymbolForPsiSourcedWebSymbolRenameHandler(symbol: Symbol): Boolean =
symbol is PsiSourcedWebSymbol && symbol.source is PsiNamedElement && symbol.source !is SyntheticElement

View File

@@ -13,8 +13,11 @@ interface WebSymbolRenameTarget : RenameTarget {
override fun createPointer(): Pointer<out WebSymbolRenameTarget>
companion object {
fun create(symbol: WebSymbol): WebSymbolRenameTarget =
WebSymbolRenameTargetImpl(symbol)
fun create(symbol: WebSymbol): WebSymbolRenameTarget? =
if (!acceptSymbolForPsiSourcedWebSymbolRenameHandler(symbol))
WebSymbolRenameTargetImpl(symbol)
else
null
}
}