diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 83c4d3cabb..308d1c5c2b 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -14,6 +14,22 @@ This is a {{ site.pmd.release_type }} release. ### New and noteworthy +#### Changes in how tab characters are handled + +In the past, tab characters in source files has been handled differently in different languages by PMD. +For instance in Java, tab characters had a width of 8 columns, while C# used only 1 column. Visualforce instead +used 4 columns. + +This has been unified now so that tab characters are consistently now always 1 column wide. + +This however might be a **incompatible** change, if you're using the properties "BeginColumn" or "EndColumn" +additionally to "BeginLine" and "EndLine" of a Token/AST node in order to highlight +where a rule violation occurred in the source file. If you have logic there that deals with tab characters, +you most likely can remove this logic now, since tab characters are now just "normal" characters +in terms of string processing. + +See also [[all] Ensure PMD/CPD uses tab width of 1 for tabs consistently #2656](https://github.com/pmd/pmd/pull/2656). + #### New Rules * The new Java rule {% rule "java/bestpractices/AvoidReassigningCatchVariables" %} (`java-bestpractices`) finds @@ -90,6 +106,7 @@ This is a {{ site.pmd.release_type }} release. ### External Contributions +* [#2656](https://github.com/pmd/pmd/pull/2656): \[all] Ensure PMD/CPD uses tab width of 1 for tabs consistently - [Maikel Steneker](https://github.com/maikelsteneker) * [#2659](https://github.com/pmd/pmd/pull/2659): \[java] StringToString can not detect the case: getStringMethod().toString() - [Mykhailo Palahuta](https://github.com/Drofff) * [#2662](https://github.com/pmd/pmd/pull/2662): \[java] UnnecessaryCaseChange can not detect the case like: foo.equals(bar.toLowerCase()) - [Mykhailo Palahuta](https://github.com/Drofff) * [#2677](https://github.com/pmd/pmd/pull/2677): \[java] RedundantFieldInitializer can not detect a special case for char initialize: `char foo = '\0';` - [Mykhailo Palahuta](https://github.com/Drofff)