Release notes

v2.13.0 - November 2023

  • Supports MATLAB R2023b.
  • Added support for checking App Designer files.
  • Added preference to exclude Live Editor files and App Designer files from being checked (default false).
  • Added preference to exclude Simulink files from being checked (default false).
  • Added Compiler Compatibility configuration.
  • Deselected mexw32 as being required in default configuration.
  • Fixed report link to code for MATLAB Function blocks in a Simulink model.
  • Fixed missing default reports folder.
  • Fixed false positives on number of input arguments check.
  • Fixed false positives for use of Java check.
  • Fixed false positivies where file shadowed itself.
  • Fixed callback error when deselecting check in configuration editor.
  • Fixed files with only comments breaking cyclomatic complexity check.
  • Fixed copyright notice detection.

v2.12.2 - August 2023

  • Improved error handling for files that could not be analyzed.

  • Fix for false positive on try-catch without error handling.

v2.12.1 - July 2023

  • Improved change detection for Git repositories.

v2.12.0 - June 2023

v2.11.0 - October 2022

v2.10.0 - April 2022

v2.9.0 - November 2021

  • Added a Fix all button to the report. By clicking this button, all violations for a specific check in all checked files are fixed. Applicable to checks for which fixes are currently available. See section Automatic fixes.

  • Added a new Preference to the Preferences tab, with Smart indent files before checking enabled CC4M smart indents the selected files before checking them. See section Preferences.

  • When large files are selected for checking, you are now prompted to skip or check them. You can set a default response and the threshold for what is considered a 'large' file in the Preferences tab. See section Preferences.

  • Links to violations in Live Editor files no longer refer to incorrect line numbers for MATLAB R2020a and newer.

  • Added a parameter to checkCoderCompatibilityFunctionCalls that lets you choose whether or not to filter for unique violations.

  • Added a parameter to checkBuiltinFunctionCompatibility that lets you choose whether or not to filter for unique violations.

  • Added a parameter to checkMagicNumber that lets you choose whether or not to allow whole decimal numbers.

  • checkFunctionIndented no longer errors when a function is completely indented and it should be.

  • When configured, checkSurrBySpaces now reports equals signs in for-loop definitions if they are not surrounded by spaces.

  • Added a New button to the Configuration tab of the GUI.

  • Improved support for the Simulink Model Advisor. All configurations are available as "CC4M Task" and every individual check can be configured from the Model Advisor, when using them from the "By Product" section, see .

  • Supports MATLAB R2021b.

  • New checks:

v2.8.0 - March 2021

  • Added the Preferences tab with several new preferences. See section Preferences.

    • Use the Report violations when not entirely sure preference to possibly reduce the number of reported violations that are not actually violations of your coding standards. This replaces the IgnoreUnknownTypeVariables parameter of reportBinaryExpressions and the IgnoreUnknownTypeCells parameter of reportCellArrays.
  • The Any option was added to parameter Location of checkCopyrightNotice that allows the copyright notice to be placed at the top, before the main code, or at the bottom.

  • Added a parameter to checkLoopIteratorNaming that lets you choose whether or not to use subsequent alphabetical starting letters for iterator names in nested for-loops.

  • Added a parameter to checkSurrBySpaces that checks whether equals signs in Name=value syntax introduced in MATLAB R2021a are surrounded by spaces or not.

  • Improved detection of data types of variables, most notably for inputs of local and nested functions. This reduces the number of incorrect results, especially for struct-related checks. See Appendix Datatype detection.

  • Added the MAB predefined configuration file. See section Predefined Configurations.

  • Compatible with MATLAB R2021a.

  • checkNestingDepth no longer considers main and sub-functions as nesting depth 1.

  • New checks:

v2.7.0 - February 2021

  • Added Git support for the File and Folder options of the General tab.

  • Added the option to search for check configurations in the Configuration Editor. See section Find checks efficiently.

  • Added a parameter to checkFunctionIndented that lets you ignore violations related to tab characters.

  • Added two parameters to checkOneStatementPerLine that lets you choose whether or not multiple global or persistent variables are allowed to be declared on a single line.

  • Added two parameters to checkLoopIteratorNaming that lets you define a minimum length for iterator variable names, and that lets you choose whether or not to use the casing parameters for variable casing.

  • The lowercasing option was added for all casing checks (see section Casing checks).

  • New checks and reports:

  • Added an auto-fixer for checkMissingComma.

  • checkMagicNumber no longer reports lines of code where a number is compared to the output of nargin, nargout or exist.

v2.6.0 - December 2020

v2.5.1 - November 2020

  • Bug fix for running Code Checker for MATLAB in the Model Advisor.

v2.5.0 - October 2020

v2.4.0 - May 2020

v2.3.0 - August 2019

v2.2.4 - April 2019

v2.1.2 - September 2018