pmd/docs/pages/release_notes.md
2019-05-17 16:21:53 +02:00

6.0 KiB

title permalink keywords
PMD Release Notes pmd_release_notes.html changelog, release notes

{{ site.pmd.date }} - {{ site.pmd.version }}

The PMD team is pleased to announce PMD {{ site.pmd.version }}.

This is a {{ site.pmd.release_type }} release.

{% tocmaker is_release_notes_processor %}

New and noteworthy

Enhanced Matlab support

Thanks to the contributions from Maikel Steneker CPD for Matlab can now parse Matlab programs which use the question mark operator to specify access to class members:

classdef Class1
properties (SetAccess = ?Class2)

CPD also understands now double quoted strings, which are supported since version R2017a of Matlab:

str = "This is a string"

Enhanced C++ support

CPD now supports digit separators in C++ (language module "cpp"). This is a C++14 feature.

Example: auto integer_literal = 1'000'000;

The single quotes can be used to add some structure to large numbers.

CPD also parses raw string literals now correctly (see #1784).

New Rules

  • The new Apex rule {% rule "apex/codestyle/FieldNamingConventions" %} (apex-codestyle) checks the naming conventions for field declarations. By default this rule uses the standard Apex naming convention (Camel case), but it can be configured through properties.

  • The new Apex rule {% rule "apex/codestyle/FormalParameterNamingConventions" %} (apex-codestyle) checks the naming conventions for formal parameters of methods. By default this rule uses the standard Apex naming convention (Camel case), but it can be configured through properties.

  • The new Apex rule {% rule "apex/codestyle/LocalVariableNamingConventions" %} (apex-codestyle) checks the naming conventions for local variable declarations. By default this rule uses the standard Apex naming convention (Camel case), but it can be configured through properties.

  • The new Apex rule {% rule "apex/codestyle/PropertyNamingConventions" %} (apex-codestyle) checks the naming conventions for property declarations. By default this rule uses the standard Apex naming convention (Camel case), but it can be configured through properties.

Modified Rules

  • The Apex rule {% rule "apex/codestyle/ClassNamingConventions" %} (apex-codestyle) can now be configured using various properties for the specific kind of type declarations (e.g. class, interface, enum). As before, this rule uses by default the standard Apex naming convention (Pascal case).

  • The Apex rule {% rule "apex/codestyle/MethodNamingConventions" %} (apex-codestyle) can now be configured using various properties to differenciate e.g. static methods and test methods. As before, this rule uses by default the standard Apex naming convention (Camel case).

Deprecated Rules

  • The Apex rule {% rule "apex/codestyle/VariableNamingConventions" %} (apex-codestyle) has been deprecated and will be removed with PMD 7.0.0. The rule is replaced by the more general rules {% rule "apex/codestyle/FieldNamingConventions" %}, {% rule "apex/codestyle/FormalParameterNamingConventions" %}, {% rule "apex/codestyle/LocalVariableNamingConventions" %}, and {% rule "apex/codestyle/PropertyNamingConventions" %}.

Fixed Issues

  • apex
    • #1321: [apex] Should VariableNamingConventions require properties to start with a lowercase letter?
    • #1783: [apex] comments on constructor not recognized when the Class has inner class
  • cpp
    • #1784: [cpp] Improve support for raw string literals
  • dart
    • #1809: [dart] [cpd] Parse error with escape sequences
  • java-bestpractices
    • #1738: [java] MethodReturnsInternalArray does not work in inner classes
  • java-codestyle
    • #1804: [java] NPE in UnnecessaryLocalBeforeReturnRule
  • python
    • #1810: [python] [cpd] Parse error when using Python 2 backticks
  • matlab
    • #1830: [matlab] [cpd] Parse error with comments

API Changes

External Contributions

{% endtocmaker %}