Extract interfaces from detekt Gradle tasks #7662
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Move common detekt Gradle task parameters into interfaces.
There are lots of ways to do this of course, so I'm open to feedback & suggestions on improvements on structure & naming.
Quick overview:
DetektBase
- these are detekt-specific configuration parameters. Anything used to configure detekt sits here.CommonCompilationArgs
- common compiler args that apply to all compilations, including non-JVM targets. Separating fromJvmCompilationArgs
means we can addJsCompilationArgs
and others in future.JvmCompilationArgs
- JVM-specific compiler argsDetektCliTool
- it's unlikely we switch to tooling API for DGP 2.0.0 but separating this interface may make it easier to make the switch in future.This will evolve as there's more I'd like to do to separate concerns in future PRs:
args
parameter toDetektCliTool
and use common functions to launch the application using either worker API or the current default method.It's enough though to fix #5940.