Add support for API Consumers to add suppressions #2428
Merged
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.
Description
Adding a ktlint suppression in the AST is not trivial. Not all nodes in the AST can be annotated. The
insertSuppression
extension function on thektlintRuleEngine
can be used to add one single suppression at either the file level or at a specific offset. If the AST node at the given offset can not be annotated, then the annotation will be added to the closest parent of the node on which the annotation can be placed.Most of the logic for the new helper method is extracted from the
KtlintSuppressionRule
which handles the legacy ktlint-directives. The logic regarding insertion/modification of the 'Suppress' annotation has been extracted to an internal class which is used by the new helper function and theKtlintSuppressionRule
.KtlintSuppressionRule:
Checklist
Before submitting the PR, please check following (checks which are not relevant may be ignored):
Closes #<xxx>
orFixes #<xxx>
(replace<xxx>
with issue number)Documentation is updated. See difference between snapshot and release documentation