代码之家  ›  专栏  ›  技术社区  ›  Anton Shkurenko

仅适用于kotlin的自定义Android Lint(无java)

  •  2
  • Anton Shkurenko  · 技术社区  · 7 年前

    detekt ktlint

    UAST PSI com.intellij.psi 包装)东西,什么时候 德特克 使用其子级(仅限kotlin) org.jetbrains.kotlin.psi

    我明白了 com.android.tools.lint.detector.api.Detector 有办法 createPsiVisitor 返回 JavaElementVisitor ,还有这个 是的子类 com.intellij.psi.PsiElementVisitor . 有没有可能使用 org.jetbrains.kotlin.psi.KtVisitor 相反

    或者我如何写kotlin特定的支票 Detector.UastScanner

    我想(举例来说)为

    科特林隐藏成本系列文章( 1 , 2 , 3 )

    德特克 ,但我想使用默认的Android Lint。

    我发现 com.android.tools.lint.checks.InteroperabilityDetector . 也许可以写一点 KotlinVisitor JavaVisitor 在本课程中)。还有这个 KotlinVisitor 就在附近 KtVisitor ?

    2 回复  |  直到 7 年前
        1
  •  5
  •   Tor Norbye    7 年前

    在版本3.4中,Kotlin PSI可直接用于自定义lint检查(它位于类路径上)。当您收到一个UFile(Java和Kotlin AST之上的UAST抽象)时,它有一个sourcePsi字段,该字段为您提供KtFile。

    有一个“lint-dev”谷歌小组,你可以阅读/加入它,更详细地讨论lint-check的开发。

        2
  •  0
  •   Ramzy Hassan    7 年前

    我正在为kotlin使用android lint check,它自android studio 3.1以来得到了改进,并提供了改进代码的好方法。 我想你可以看看这个 documentation