Skip to content

Commit 350fdde

Browse files
committed
fix: support property hooks in editor listener
1 parent 0f3edb4 commit 350fdde

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/main/kotlin/com/github/xepozz/php_dump/startup/EditorListener.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.intellij.openapi.project.Project
1111
import com.intellij.psi.PsiDocumentManager
1212
import com.intellij.psi.util.PsiTreeUtil
1313
import com.jetbrains.php.lang.psi.elements.Method
14+
import com.jetbrains.php.lang.psi.elements.PhpPropertyHook
1415

1516

1617
class EditorListener : EditorMouseListener {
@@ -22,7 +23,7 @@ class EditorListener : EditorMouseListener {
2223
val offset = editor.logicalPositionToOffset(event.logicalPosition)
2324
val element = psiFile?.findElementAt(offset) ?: return
2425

25-
val method = PsiTreeUtil.getParentOfType(element, Method::class.java) ?: return
26+
val method = PsiTreeUtil.getParentOfType(element, Method::class.java, PhpPropertyHook::class.java) ?: return
2627

2728
highlightElement(project, psiDocumentManager, method)
2829
}
@@ -36,10 +37,16 @@ class EditorListener : EditorMouseListener {
3637
val opcodesEditor = editorProvider.getOrCreateEditor(EditorProvider.opcodesEditorId)
3738

3839
val psiFile = psiDocumentManager.getPsiFile(opcodesEditor.document) as? PHPOpFile ?: return
39-
4040
val blocks = PsiTreeUtil.findChildrenOfType(psiFile, PHPOpBlock::class.java)
4141

42-
val selectedBlock = blocks.firstOrNull { it.blockName.methodName?.name == method.name } ?: return
42+
val selectedBlock = when {
43+
method is PhpPropertyHook -> blocks.firstOrNull {
44+
val propertyHook = it.blockName.propertyHookName ?: return@firstOrNull false
45+
"${propertyHook.propertyName.name}::${propertyHook.name}" == method.name
46+
} ?: return
47+
48+
else -> blocks.firstOrNull { it.blockName.methodName?.name == method.name } ?: return
49+
}
4350

4451

4552
opcodesEditor.foldingModel.apply {

0 commit comments

Comments
 (0)