Skip to content

Commit e0d386b

Browse files
authored
refactor: Refactor PsiClassHelper utilities (#1248)
The changes centralize PsiClass-related utilities and improve code organization while maintaining functionality.
1 parent 4ffa874 commit e0d386b

File tree

53 files changed

+306
-269
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+306
-269
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ plugin_version=2.8.1.212.0
33
kotlin.code.style=official
44
kotlin_version=2.1.0
55
junit_version=5.9.2
6-
itangcent_intellij_version=1.7.7
6+
itangcent_intellij_version=1.7.9

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/actions/ApiExportAction.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ import com.intellij.openapi.actionSystem.AnActionEvent
44
import com.intellij.openapi.project.Project
55
import com.itangcent.idea.plugin.api.cache.DefaultFileApiCacheRepository
66
import com.itangcent.idea.plugin.api.cache.FileApiCacheRepository
7-
import com.itangcent.idea.plugin.api.export.core.ClassExporter
8-
import com.itangcent.idea.plugin.api.export.spring.SpringRequestClassExporter
97
import com.itangcent.idea.plugin.config.EnhancedConfigReader
108
import com.itangcent.idea.plugin.rule.SuvRuleParser
11-
import com.itangcent.idea.utils.CustomizedPsiClassHelper
9+
import com.itangcent.idea.psi.CustomizedPsiClassHelper
1210
import com.itangcent.idea.utils.RuleComputeListenerRegistry
1311
import com.itangcent.intellij.config.ConfigReader
1412
import com.itangcent.intellij.config.rule.RuleComputeListener
@@ -27,7 +25,6 @@ abstract class ApiExportAction(text: String) : BasicAnAction(text) {
2725

2826
builder.bind(RuleParser::class) { it.with(SuvRuleParser::class).singleton() }
2927
builder.bind(RuleComputeListener::class) { it.with(RuleComputeListenerRegistry::class).singleton() }
30-
builder.bind(PsiClassHelper::class) { it.with(CustomizedPsiClassHelper::class).singleton() }
3128

3229
builder.bind(FileApiCacheRepository::class) { it.with(DefaultFileApiCacheRepository::class).singleton() }
3330

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/actions/FieldsToMessageAction.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import com.intellij.psi.PsiType
88
import com.itangcent.common.logger.traceError
99
import com.itangcent.idea.plugin.config.EnhancedConfigReader
1010
import com.itangcent.idea.plugin.rule.SuvRuleParser
11-
import com.itangcent.idea.utils.CustomizedPsiClassHelper
1211
import com.itangcent.idea.utils.RuleComputeListenerRegistry
1312
import com.itangcent.intellij.config.ConfigReader
1413
import com.itangcent.intellij.config.rule.RuleComputeListener
@@ -20,7 +19,6 @@ import com.itangcent.intellij.extend.guice.with
2019
import com.itangcent.intellij.file.DefaultLocalFileRepository
2120
import com.itangcent.intellij.file.LocalFileRepository
2221
import com.itangcent.intellij.jvm.JvmClassHelper
23-
import com.itangcent.intellij.jvm.PsiClassHelper
2422
import com.itangcent.intellij.logger.Logger
2523
import com.itangcent.intellij.psi.ContextSwitchListener
2624
import com.itangcent.intellij.util.ActionUtils
@@ -54,7 +52,6 @@ abstract class FieldsToMessageAction : BasicAnAction {
5452
builder.bind(LocalFileRepository::class) { it.with(DefaultLocalFileRepository::class).singleton() }
5553

5654
builder.bind(RuleComputeListener::class) { it.with(RuleComputeListenerRegistry::class).singleton() }
57-
builder.bind(PsiClassHelper::class) { it.with(CustomizedPsiClassHelper::class).singleton() }
5855
builder.bind(ConfigReader::class) { it.with(EnhancedConfigReader::class).singleton() }
5956
}
6057

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/actions/YapiExportAction.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ class YapiExportAction : ApiExportAction("Export Yapi") {
3434
builder.bindInstance("file.save.default", "yapi.json")
3535
builder.bindInstance("file.save.last.location.key", "com.itangcent.yapi.export.path")
3636

37-
builder.bind(PsiClassHelper::class) { it.with(YapiPsiClassHelper::class).singleton() }
38-
3937
builder.bind(YapiTokenChecker::class) { it.with(YapiTokenCheckerSupport::class).singleton() }
4038

4139
builder.bind(AdditionalParseHelper::class) { it.with(YapiAdditionalParseHelper::class).singleton() }

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/cache/CachedRequestClassExporter.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import com.itangcent.idea.psi.PsiMethodResource
1616
import com.itangcent.idea.psi.resourceMethod
1717
import com.itangcent.intellij.context.ActionContext
1818
import com.itangcent.intellij.extend.withBoundary
19+
import com.itangcent.intellij.jvm.psi.PsiClassUtil
1920
import com.itangcent.intellij.logger.Logger
20-
import com.itangcent.intellij.psi.PsiClassUtils
2121
import com.itangcent.intellij.util.ActionUtils
2222
import com.itangcent.intellij.util.FileUtils
2323
import java.io.File
@@ -87,7 +87,7 @@ class CachedRequestClassExporter : ClassExporter {
8787
actionContext.withBoundary {
8888
delegateClassExporter.export(cls, requestOnly { request ->
8989
docHandle(request)
90-
val fullName = PsiClassUtils.fullNameOfMember(cls, request.resourceMethod()!!)
90+
val fullName = PsiClassUtil.fullNameOfMember(cls, request.resourceMethod()!!)
9191
requests.add(
9292
RequestWithKey(
9393
fullName, request
@@ -116,7 +116,7 @@ class CachedRequestClassExporter : ClassExporter {
116116
cls: PsiClass, fileApiCache: FileApiCache, requestHandle: DocHandle,
117117
) {
118118
fileApiCache.requests?.forEach { request ->
119-
val method = request.key?.let { PsiClassUtils.findMethodFromFullName(it, cls as PsiElement) }
119+
val method = request.key?.let { PsiClassUtil.findMethodFromFullName(it, cls as PsiElement) }
120120
if (method == null) {
121121
logger.warn("${request.key} not be found")
122122
return@forEach

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/cache/FileApiCache.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class RequestWithKey {
7777
/**
7878
* maybe full name of method
7979
*
80-
* @see com.itangcent.intellij.psi.PsiClassUtils.fullNameOfMethod
80+
* @see com.itangcent.intellij.jvm.psi.PsiClassUtil .fullNameOfMethod
8181
*/
8282
var key: String? = null
8383

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/dashboard/ApiDashboardService.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,8 @@ import com.itangcent.intellij.extend.guice.singleton
5555
import com.itangcent.intellij.extend.guice.with
5656
import com.itangcent.intellij.extend.withBoundary
5757
import com.itangcent.intellij.file.LocalFileRepository
58-
import com.itangcent.intellij.jvm.PsiClassHelper
58+
import com.itangcent.intellij.jvm.psi.PsiClassUtil
5959
import com.itangcent.intellij.logger.Logger
60-
import com.itangcent.intellij.psi.PsiClassUtils
6160
import com.itangcent.intellij.util.FileType
6261
import com.itangcent.suv.http.CookiePersistenceHelper
6362
import com.itangcent.suv.http.HttpClientProvider
@@ -168,7 +167,6 @@ class ApiDashboardService(private val project: Project) {
168167
builder.bind(ClassExporter::class) { it.with(CachedRequestClassExporter::class).singleton() }
169168
builder.bind(LocalFileRepository::class) { it.with(ProjectCacheRepository::class).singleton() }
170169
builder.bindInstance(ExportDoc::class, ExportDoc.of("request"))
171-
builder.bind(PsiClassHelper::class) { it.with(CustomizedPsiClassHelper::class).singleton() }
172170
builder.bind(MethodFilter::class) { it.with(CustomizedMethodFilter::class).singleton() }
173171
builder.bind(ConfigReader::class) { it.with(EnhancedConfigReader::class).singleton() }
174172
builder.bind(RuleParser::class) { it.with(SuvRuleParser::class).singleton() }
@@ -577,7 +575,7 @@ class ApiDashboardService(private val project: Project) {
577575

578576
private fun Request.cacheKey(): String {
579577
return actionContext.callInReadUI {
580-
PsiClassUtils.fullNameOfMember(resourceClass(), resourceMethod()!!)
578+
PsiClassUtil.fullNameOfMember(resourceClass(), resourceMethod()!!)
581579
} ?: path?.url() ?: ""
582580
}
583581

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/core/RequestClassExporter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ import com.itangcent.intellij.jvm.duck.DuckType
3131
import com.itangcent.intellij.jvm.duck.SingleDuckType
3232
import com.itangcent.intellij.jvm.element.ExplicitElement
3333
import com.itangcent.intellij.jvm.element.ExplicitMethod
34+
import com.itangcent.intellij.jvm.psi.PsiClassUtil
3435
import com.itangcent.intellij.logger.Logger
3536
import com.itangcent.intellij.psi.ContextSwitchListener
36-
import com.itangcent.intellij.psi.PsiClassUtils
3737
import com.itangcent.intellij.util.*
3838
import kotlin.reflect.KClass
3939

@@ -804,7 +804,7 @@ abstract class RequestClassExporter : ClassExporter {
804804

805805
this.intelligentSettingsHelper.inferEnable() && !duckTypeHelper.isQualified(duckType)
806806
-> {
807-
logger.info("try infer return type of method[" + PsiClassUtils.fullNameOfMethod(method.psi()) + "]")
807+
logger.info("try infer return type of method[" + PsiClassUtil.fullNameOfMethod(method.psi()) + "]")
808808
methodReturnInferHelper!!.inferReturn(method.psi())
809809
}
810810

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/feign/RequestLineRequestMappingResolver.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.itangcent.idea.plugin.api.export.spring.SpringRequestMappingResolver
88
import com.itangcent.idea.plugin.condition.ConditionOnSetting
99
import com.itangcent.intellij.jvm.AnnotationHelper
1010
import com.itangcent.intellij.logger.Logger
11-
import com.itangcent.intellij.psi.PsiClassUtils
11+
import com.itangcent.intellij.jvm.psi.PsiClassUtil
1212
import com.itangcent.order.Order
1313
import com.itangcent.order.Ordered
1414
import java.util.regex.Matcher
@@ -40,14 +40,14 @@ class RequestLineRequestMappingResolver : SpringRequestMappingResolver {
4040
annotationHelper.findAttrAsString(psiElement, SpringFeignClassName.REQUEST_LINE_ANNOTATION) ?: return null
4141

4242
if (requestLineValue.isEmpty()) {
43-
logger.error("RequestLine annotation was empty on method ${PsiClassUtils.fullNameOfMember(psiElement)}.")
43+
logger.error("RequestLine annotation was empty on method ${PsiClassUtil.fullNameOfMember(psiElement)}.")
4444
return null
4545
}
4646
val requestLineMatcher: Matcher = REQUEST_LINE_PATTERN.matcher(requestLineValue)
4747
if (!requestLineMatcher.find()) {
4848
logger.error(
4949
"RequestLine annotation didn't start with an HTTP verb on method ${
50-
PsiClassUtils.fullNameOfMember(
50+
PsiClassUtil.fullNameOfMember(
5151
psiElement
5252
)
5353
}"

idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/export/generic/GenericMethodDocClassExporter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import com.itangcent.intellij.jvm.element.ExplicitMethod
2929
import com.itangcent.intellij.jvm.element.ExplicitParameter
3030
import com.itangcent.intellij.logger.Logger
3131
import com.itangcent.intellij.psi.ContextSwitchListener
32-
import com.itangcent.intellij.psi.PsiClassUtils
32+
import com.itangcent.intellij.jvm.psi.PsiClassUtil
3333
import com.itangcent.order.Order
3434
import com.itangcent.utils.disposable
3535
import kotlin.reflect.KClass
@@ -371,7 +371,7 @@ open class GenericMethodDocClassExporter : ClassExporter {
371371
return when {
372372
needInfer() && (!duckTypeHelper!!.isQualified(duckType) ||
373373
jvmClassHelper.isInterface(duckType)) -> {
374-
logger.info("try infer return type of method[" + PsiClassUtils.fullNameOfMethod(methodExportContext.psi()) + "]")
374+
logger.info("try infer return type of method[" + PsiClassUtil.fullNameOfMethod(methodExportContext.psi()) + "]")
375375
methodInferHelper!!.inferReturn(methodExportContext.psi())
376376
// actionContext!!.callWithTimeout(20000) { methodReturnInferHelper.inferReturn(method) }
377377
}

0 commit comments

Comments
 (0)