Skip to content

[Suggestion] 允许使用 object 而非 class 定义 HookItem #10

@Ujhhgtg

Description

@Ujhhgtg

建议内容概述 / Suggestion Overview

如标题所示

建议的背景与原因 / Background & Motivation

HookItem 一般只会初始化一次,那么使用 object 声明单例会比较方便

建议的具体实施方案 / Proposed Implementation

将 HookItemScanner 中的:

addStatement("val %N = %T()", valName, typeName)

替换为:

val isObject = symbol.classKind == com.google.devtools.ksp.symbol.ClassKind.OBJECT
if (!isObject) {
    addStatement("val %N = %T()", valName, typeName)
}
else {
    addStatement("val %N = %T", valName, typeName)
}

预期效果 / Expected Outcome

可以使用 object 定义 HookItem

关联的现有功能 / Related Features

No response

补充材料 / Supplementary Materials

已在我的 Fork 中测试通过,没有发现异常

提交前确认 / Confirmation

  • 我已在 Issue Tracker 中搜索过,未发现相同或高度相似的建议。
    I have searched the Issue Tracker and found no duplicate suggestions.

  • 我承诺建议内容不涉及违规信息。
    I confirm that this suggestion complies with community guidelines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions