cachéQuality 1.2.0

SonarQube compatibility

6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6 (LTS), 5.5, 5.4, 5.3, 5.2

Caché compatibility

2017.1, 2016.2

Java compatibility

Oracle JDK 8

Release notes

This version ends support for SonarQube 5.1 or previous one. You need to upgrade to a newer SonarQube version if you have not done it already.

What's new

  • Compatibility with SonarQube 5.2 or higher
  • Added support for MAC/INT/INC in UDL (appeared in 2016.2) or RO format
  • Added ##safeexpression directive support
  • Added #include preprocessor directive
  • #def1arg preprocessor directive
  • support for ##sql directive
  • $zobj(var/mode/ref) functions added
  • Support for private/public procedures


  • Macro in #Define can start with %
  • Fixes errors in parsing XData body
  • Ignore case for ##continue directive
  • Only '%' it is also valid identifier for methods or for variables.
  • SqlName modifier for classes and methods can be in quotes
  • comments in flowctl before code block
  • Fixed grammar for BREAK command
  • CodeMode = generator for Trigger
  • WHILE command can have multiple comma delimited conditions
  • @indirection with global variable
  • BREAK command with an argument (extend or flag)
  • CLOSE command with multiple arguments
  • comment just after DO command dots line in the same line with label
  • legacy if command without any arguments
  • ZT is a short for ZTRAP command
  • in block with curly braces, first statement can be without space
  • fixed error with macro comments
  • #dim with "class" in double-quotes
  • Trigger code syntax access to property
  • Triple slash comment for documentation
  • Some fixes in Pattern Matching
  • $[zobj][class]method().prop
  • {Property*N} or {Property*n} ignore case
  • $MVV on left side of SET command
  • PatternMatching also can be used with indirections
  • NEW command can be used with indirection
  • ZKill fixed parsing different types of arguments
  • Fixed parsing XData