[java] Allow CPD suppression through comments#250
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This one has been a big missing feature for quite some time. Even old comments on the code (now deleted) wondered on being able to do this.
I didn't reuse the
CPD-START/CPD-STOPliterals since I found them unintuitive. START is to tell CPD to stop looking, STOP is to resume analysis. This even contradicted the preexisting// NOPMDcomments. Again, a negative to suppress.The start / stop may work given it's within a
@SuppressWarnings(so we get a "suppress warnings cpd start"), but certainly wouldn't be the same for stand alone comments. To avoid issues, I simply created new literals.I also updated the docs and moved the annotation based approach to legacy due to lack of flexibility.
Porting this approach to other JavaCC based languages is still pending. I can't find a way to do it in a reusable manner, since each parser generates it's own
Tokenclass, and thespecialTokenis a public field, not accessible through a getter. Ideas are welcomed.