问题标签 [detekt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kotlin - 如何使用 detekt 及其访问者浏览给定 Kotlin 文件的 AST?
我需要检查如何浏览给定文件的 Kotlin AST。我不知道如何传递此文件以获取生成的 AST,也不知道如何使用访问者模式在其节点上导航。我的目标是检查给定 Kotlin 文件中某些 Kotlin 运算符的使用情况。谁能帮我这个?
先感谢您!
我已经尝试使用 Kastree ( https://github.com/cretz/kastree ),但如果我更改其示例代码的任何部分,它就不起作用。我找不到如何使用 detekt ( https://github.com/arturbosch/detekt ) 做到这一点。
android - ktlint 作为 detekt 中的格式化程序
我正在使用带有 ktlint 的 detekt 来格式化我的代码,如下所示。
detekt.gradle
detekt-baseline.yml
项目级build.gradle
如您所见,我在 detekt.gradle 中添加了用于格式化的 detekt插件。我还在detekt-baseline.ymlautoCorrect
中启用了。但是当我运行
Generated html report 时没有格式化代码显示没有发现,但显示了指标。./gradlew detekt
当我在detekt.gradle./gradlew detekt
中注释掉以下行后运行时。
它确实显示了我的发现,包括格式问题(例如:不必要的空行)
如何配置 detekt 以根据 ktlint 自动格式化代码?
这是一个安卓项目。
android - 在所有版本上运行 detekt
可以在构建之前运行 detekt 吗?(运行,释放...)
我跟着这个https://arturbosch.github.io/detekt/gradletask.html
但是check.dependsOn detekt
在 build.gradle (app) 不要什么都不做......
我已经尝试check.dependsOn detekt
过preBuild.dependsOn detekt
也试过...dependsOn detektCheck
了...
有什么错误?我不能在构建之前使用 detektCheck 任务?
maven - Detekt 插件无法从 Maven 中心下载
我正在使用 Kotlin 并希望使用 Detekt 插件进行静态分析。我的问题是,当我想从 Maven 中央存储库下载它时,它给了我以下错误。但是当我使用公司的存储库(Nexus)时,它不会给我任何错误并且可以顺利下载。我不明白这一点。
有人能告诉我为什么会这样吗?我想使用这个插件,还没有找到任何其他选择。
以下是我的错误:
请在下面找到我的 POM 文件。
android - Detekt:自动更正功能不起作用
我在我的项目中包含了 detekt ( https://github.com/arturbosch/detekt/ ):
根构建.gradle
应用程序构建.gradle
android { // .. 只是默认值 }
规则文件../detekt/detekt-config.yml
虽然我用属性设置了一些规则,但autoCorrect: true
执行时代码没有重新格式化
创建分析报告并显示问题,但未进行自动更正。
detekt - 如何在 detekt 中启用类型解析?
detekt 正在提醒我有关SpreadOperator
规则的信息。根据这个问题,在启用类型解析的某些情况下,可以抑制规则。不过,我找不到任何有关如何启用类型解析的文档或示例。我可以看到 cli 选项似乎与类型解析有关,但不清楚如何实际打开类型解析(或验证它是否已经打开)--jvm-target
。--classpath
如何在 detekt 中启用类型解析并验证它是否已启用?
gradle - 仅在没有检查任务的情况下运行 Detekt 任务才会失败
我正在将 detekt 从 1.0.0.RC7-2 迁移到 1.0.1 并更改为使用新的插件语法。我设法使它工作,但只有在执行完整检查任务时。
如果只执行 detekt 任务,则会显示错误。
detekt 任务失败并出现以下错误:
detekt.gradle
build.gradle(项目):
build.gradle(模块):
kotlin - 从 Kotlin PSI 获取注解参数(或注解实例)
我有一个 Kotlin 注释:
它可以通过两种方式在 Kotlin 类上使用:使用命名参数语法,或使用位置参数语法:
我在我的自定义检测规则中使用此注释进行一些额外的检查。我需要提取type
参数的值以基于它执行一些检查。我这样做:
但是此代码仅适用于“命名”参数语法,并且对于位置参数无效。无论使用什么语法,有什么方法可以获取注释参数的值?如果我可以直接从 PSI / AST / s获取我的Type
注释实例并像往常一样使用它,那将是完美的。KtElement
是否可以从 PSI 树实例化注释?
kotlin - IntelliJ / Kotlin PSI中的注释与注释条目
我有一个 Kotlin 注释:
它可以用于 Kotlin 类:
我正在使用detekt分析此源代码,它提供对Kotlin PSI的访问。要获得注释,我使用如下代码:
其中,klass
有一种KtClass
来自 Kotlin PSI 的类型。我注意到,它KtClass
有两个属性:annotations
并且annotationEntries
对于annotations
上面的带注释的类是空的。
annotations
我应该使用什么以及annotationEntries
何时应该使用什么之间有什么区别?
kotlin - 如何在 Kotlin PSI 中获得类的完全限定域名?
我有一个 Kotlin 数据类:
我正在用detekt分析它,它提供了对Kotlin PSI的访问。
我正在尝试获取我班级的 FQDN:
其中,klass
有一种KtClass
来自 Kotlin PSI 的类型。但是该代码只打印了我的班级的一个简短名称,例如Example
,而我想得到a.b.c.Example
.
如何在 Kotlin PSI 中获得类的完全限定域名?