Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@marschwar
Copy link
Contributor

@marschwar marschwar commented Jul 17, 2022

closes #4873

I know this is a completely different approach than originally outlined and quite a change set but it turned out that checking for exhaustiveness could just be a part of to already existing config validation. If this is not the direction we want to go, just let me know. It is totally fine.

Refactoring prior to adding the feature:

  • I moved everything that is concerned with config validation to the package config/validation.
  • I refactored the config validation function (in ValidateConfig.kt) into separate config validators (one for invalid properties and one for deprecated properties)

The feature itself:

  • Added a checkExhaustiveness: false to the config block in the detekt default configuration
  • If validation is true this flag is also true a new validator checks if all rules from the default configuration are mentioned in the user config (unless the entire rule set is marked as active: false)

@codecov
Copy link

codecov bot commented Jul 18, 2022

Codecov Report

Merging #5089 (bddc965) into main (829fae2) will increase coverage by 84.92%.
The diff coverage is n/a.

❗ Current head bddc965 differs from pull request most recent head 3f0c6e9. Consider uploading reports for the commit 3f0c6e9 to get more accurate results

@@             Coverage Diff             @@
##             main    #5089       +/-   ##
===========================================
+ Coverage        0   84.92%   +84.92%     
- Complexity      0     3613     +3613     
===========================================
  Files           0      502      +502     
  Lines           0    11886    +11886     
  Branches        0     2237     +2237     
===========================================
+ Hits            0    10094    +10094     
- Misses          0      689      +689     
- Partials        0     1103     +1103     
Impacted Files Coverage Δ
...rbosch/detekt/rules/naming/ObjectPropertyNaming.kt 100.00% <0.00%> (ø)
...tekt/formatting/wrappers/SpacingAroundOperators.kt 100.00% <0.00%> (ø)
.../exceptions/ExceptionRaisedInUnexpectedLocation.kt 95.65% <0.00%> (ø)
...kotlin/io/gitlab/arturbosch/detekt/api/Severity.kt 100.00% <0.00%> (ø)
...n/io/github/detekt/metrics/processors/util/LLOC.kt 80.00% <0.00%> (ø)
...etekt/rules/coroutines/RedundantSuspendModifier.kt 65.11% <0.00%> (ø)
...rbosch/detekt/rules/style/EqualsOnSignatureLine.kt 72.72% <0.00%> (ø)
...t/core/reporting/console/AbstractFindingsReport.kt 100.00% <0.00%> (ø)
...h/detekt/formatting/wrappers/SpacingAroundComma.kt 100.00% <0.00%> (ø)
...ekt/formatting/wrappers/TypeArgumentListSpacing.kt 100.00% <0.00%> (ø)
... and 492 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@BraisGabin
Copy link
Member

And thanks for the refactor! This code looks way better now :)

@marschwar
Copy link
Contributor Author

Do we want this feature or should I open a PR with just the refactoring?

@BraisGabin
Copy link
Member

LGTM

@cortinico cortinico added the notable changes Marker for notable changes in the changelog label Aug 8, 2022
@cortinico cortinico added this to the 1.22.0 milestone Aug 8, 2022
@BraisGabin BraisGabin merged commit 2645549 into detekt:main Aug 21, 2022
@marschwar marschwar deleted the feat/check-exhaustiveness branch September 19, 2022 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core notable changes Marker for notable changes in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mode or task to ensure configuration file is exhaustive

3 participants