Skip to content

Commit 2646d58

Browse files
committed
refactor(devkit): 重构方法文档提示功能(移除不稳定的API)
- 更新 MethodDocInlayActionHandler 类,适应新的 EditorMouseEvent 参数 - 优化 FakePsiPhpMethod 类中参数获取逻辑,使用 ReadAction 和 PsiTreeUtil - 删除未使用的 FakePsiPhpParameter 类,简化代码结构
1 parent 53ea8e9 commit 2646d58

4 files changed

Lines changed: 16 additions & 165 deletions

File tree

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ pluginName = Hyperf Booster
33
pluginVersion = 1.1.0
44
pluginRepositoryUrl = https://github.com/maliboot/idea-hyperf-plugin
55

6-
pluginSinceBuild = 241.*
7-
pluginUntilBuild = 242.*
6+
pluginSinceBuild = 241.19416.23
7+
pluginUntilBuild = 243.26053.13
88

99
platformType = PS
10-
platformVersion = 2024.2.5
10+
platformVersion = 2024.3.5
1111
platformPlugins =
1212
platformBundledPlugins = com.jetbrains.php
1313

src/main/kotlin/io/maliboot/devkit/idea/lombok/codeInsight/MethodDocInlayActionHandler.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@ import com.intellij.codeInsight.hint.HintManagerImpl
44
import com.intellij.codeInsight.hints.declarative.InlayActionHandler
55
import com.intellij.codeInsight.hints.declarative.InlayActionPayload
66
import com.intellij.codeInsight.hints.declarative.PsiPointerInlayActionPayload
7-
import com.intellij.openapi.editor.Editor
7+
import com.intellij.openapi.editor.event.EditorMouseEvent
88
import io.maliboot.devkit.idea.lombok.psi.FakePsiPhpClassMember
99

1010
class MethodDocInlayActionHandler: InlayActionHandler {
11-
override fun handleClick(editor: Editor, payload: InlayActionPayload) {
11+
override fun handleClick(
12+
e: EditorMouseEvent,
13+
payload: InlayActionPayload
14+
) {
1215
payload as PsiPointerInlayActionPayload
1316
val fakePsiMember = payload.pointer.element as? FakePsiPhpClassMember ?: return
14-
HintManagerImpl.getInstanceImpl().showInformationHint(editor, fakePsiMember.getDocumentation())
17+
HintManagerImpl.getInstanceImpl().showInformationHint(e.editor, fakePsiMember.getDocumentation())
1518
}
1619
}

src/main/kotlin/io/maliboot/devkit/idea/lombok/psi/FakePsiPhpMethod.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package io.maliboot.devkit.idea.lombok.psi
33
import com.intellij.lang.ASTNode
44
import com.intellij.lang.Language
55
import com.intellij.navigation.ItemPresentation
6+
import com.intellij.openapi.application.ReadAction
67
import com.intellij.psi.PsiElement
78
import com.intellij.psi.impl.FakePsiElement
9+
import com.intellij.psi.util.PsiTreeUtil
810
import com.intellij.util.Processor
911
import com.jetbrains.php.PhpPresentationUtil
1012
import com.jetbrains.php.codeInsight.PhpScope
@@ -169,9 +171,11 @@ class FakePsiPhpMethod(val method: CustomMethod, val phpClass: PhpClass, val gen
169171
}
170172
.toTypedArray()
171173
}
172-
return method.parameters
173-
.map { FakePsiPhpParameter(it, this) }
174-
.toTypedArray()
174+
175+
// 把 findChildOfType 包装进 ReadAction
176+
return ReadAction.compute<Collection<Parameter>?, Throwable> {
177+
PsiTreeUtil.findChildrenOfType(children.first { it is ParameterList }, Parameter::class.java)
178+
}?.toTypedArray() ?: emptyArray()
175179
}
176180

177181
override fun getParameter(index: Int): Parameter? {

src/main/kotlin/io/maliboot/devkit/idea/lombok/psi/FakePsiPhpParameter.kt

Lines changed: 0 additions & 156 deletions
This file was deleted.

0 commit comments

Comments
 (0)