mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 06:59:44 +07:00
[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:
committed by
intellij-monorepo-bot
parent
a9fbe0f975
commit
7efa647a39
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user