Skip to content

1.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Nov 22:36
· 242 commits to master since this release

Added

  • Custom rules plugin API:
  • Rule metadata for the new Clean Code Taxonomy.
  • sonar.delphi.file.suffixes property to specify the file extensions that should be analyzed.
  • sonar.delphi.exclusions property to specify file path patterns to exclude from analysis of Delphi files.
  • sonar.delphi.test.attribute property to specify an attribute that will cause annotated types to be treated as test code.
  • Support for the DCCOSXARM64 toolchain.
  • Support for the DCCIOSSIMARM64 toolchain.
  • Support for attributes in semantic analysis.
  • Support for identifiers prefixed with 2 ampersands (&&).
  • OleVariant overloads for VarArrayRedim and VarClear intrinsics.
  • InlineAssembly analysis rule, which flags inline assembly usage.
  • DigitSeparator analysis rule, which flags numeric literals that should use digit separators to improve readability.
  • DigitGrouping analysis rule, which flags numeric literals that use non-standard digit groupings.
  • AddressOfCharacterData analysis rule, which flags attempts to manually get the address of the first character in a string.
  • NonLinearCast analysis rule, which flags unsafe object and pointer casts.
  • IndexLastListElement analysis rule, which flags places where TList.Last should be used instead of manually indexing into the list.

Changed

  • Rename all rule keys. (For example, ClassNameRule is now ClassName)
  • Rewrite all rule descriptions.
  • Rename plugin key from delphi to communitydelphi.
  • Rename language key from delph to delphi.
  • Rename repository key from delph to community-delphi.
  • Rename repository from Delphi to Community Delphi.
  • Rename sonar.delphi.bds.path property to sonar.delphi.installationPath.
  • Rename sonar.delphi.compiler.toolchain property to sonar.delphi.toolchain.
  • Rename sonar.delphi.compiler.version property to sonar.delphi.compilerVersion.'
  • Rename sonar.delphi.sources.searchPath property to sonar.delphi.searchPath.'
  • Rename sonar.delphi.testSuiteType property to sonar.delphi.testType.
  • Clean up descriptions of all plugin properties.
  • Exclude dpr and dpk files in UnusedImport.
  • Exclude dpr and dpk files in ImportSpecificity.
  • Exclude uses clauses of dpr and dpk files in LineTooLong.
  • Include routines in UnitLevelKeywordIndentation.
  • Include implicit attribute constructor calls in ForbiddenRoutine.
  • Always enforce the Attribute suffix in AttributeName.
  • Allow the Attribute suffix to be omitted for attribute references in MixedNames.
  • Allow the extended type name to be anywhere in the helper name (rather than requiring it at the start) in HelperName.
  • Take a fully-qualified type name for the parent type in InheritedTypeName, instead of a regular expression.
  • Improve name resolution for declarations within types.
  • Improve type resolution for array accesses into variants.
  • Improve type resolution around constructor calls following array accesses in primary expressions.
  • Improve parsing and type modeling around AnsiString types with specified code pages.
  • Improve type modeling around type aliases.

Removed

  • XPathTemplateRule analysis rule template.
  • MemoryManagementRule analysis rule.
  • EmptyTypeSection analysis rule.
  • sonar.delphi.coverage.tool property.
    (Delphi Code Coverage is the only supported coverage tool.)

Fixed

  • OSX(64) symbols weren't treated as defined on macOS.
  • MACOS(32|64) symbols weren't treated as defined on iOS.
  • Name collisions between generic and non-generic forward declarations.
  • Incorrect type conversions from pointers to arrays.
  • Fixed arrays were overly-eager to convert to dynamic arrays.
  • Parsing errors around In operator overloads.
  • Parsing errors around anonymous methods in array constructor expressions.
  • Self was not consistently shadowed by method parameters.
  • Incorrect token range calculation for binary expression nodes.
  • Units referenced via DCCReference tags were not indexed in the symbol table.
  • NPE on empty argument lists in TrailingCommaArgumentList.
  • add is no longer colorized as a keyword in the SonarQube web interface.
  • remove is no longer colorized as a keyword in the SonarQube web interface.
  • variant is no longer colorized as a keyword in the SonarQube web interface.
  • Parsing errors on unusual whitespace characters.
  • Parsing errors on unusual escaped character, hex integer, and binary integer literals.