仅适用于kotlin的自定义Android Lint(无java)
我决定为Android编写定制的lint检查,我对Android lint有很强的信心,所以我不想使用仅适用于kotlin的自定义Android Lint(无java),java,android,kotlin,lint,Java,Android,Kotlin,Lint,我决定为Android编写定制的lint检查,我对Android lint有很强的信心,所以我不想使用detekt或ktlint来检查代码(它们不能解析xml文件等,我想使用单一工具) 但是当我阅读Android Lint的文档时,我发现他们有了这个新的UAST和PSI(com.intellij.PSIpackage)的东西,当detekt使用它的子级时(仅kotlinorg.jetbrains.kotlin.PSI) 我的项目中没有java代码,我想编写特定于kotlin的lint规则 我知道
detekt
或ktlint
来检查代码(它们不能解析xml文件等,我想使用单一工具)
但是当我阅读Android Lint的文档时,我发现他们有了这个新的UAST
和PSI
(com.intellij.PSI
package)的东西,当detekt
使用它的子级时(仅kotlinorg.jetbrains.kotlin.PSI
)
我的项目中没有java代码,我想编写特定于kotlin的lint规则
我知道,com.android.tools.lint.detector.api.detector
有一个方法createPsiVisitor
,它返回JavaElementVisitor
,这个JavaElementVisitor
是com.intellij.psi.PsiElementVisitor
的子类。有没有可能改用org.jetbrains.kotlin.psi.KtVisitor
或者如何在检测器.UastScanner
中写入kotlin特定检查
我想(举例来说)为
Kotlin隐藏成本文章集(,)
另外,我在detekt中成功地做到了这一点,但我想使用默认的Android Lint
[UPD]
我找到了
com.android.tools.lint.checks.InteroperabilityDetector
。也许可以编写一种KotlinVisitor
(在这个类中作为JavaVisitor
)。而这个KotlinVisitor
将只是包装KtVisitor
我正在为kotlin使用android lint check,它自android studio 3.1以来得到了改进,并提供了改进代码的好方法。
有两种方法可以自定义它,第一种是从GUI的“设置”进入“检查”子菜单,然后检查您需要的任何内容。它将在您的构建过程中应用,或者使用kotlin的xml规则进行自定义配置
在3.4版中,Kotlin PSI可直接用于自定义lint检查(在类路径上)。当您收到一个UFile(Java和Kotlin AST之上的UAST抽象)时,它有一个sourcePsi字段,该字段为您提供KtFile
有一个“lint-dev”谷歌小组,你可以阅读/加入该小组来更详细地讨论lint-check的开发。是的,我知道,但我想编写自定义lint规则如下:你是说android gradle插件的3.4版?