Added the option to generate a JSON summary, this feature is only available with the Pro license.
In the HTML report at most one violation of the same type per line of code will be shown for the following checks:
checkCharacterArray
checkFollowedBySpace
checkLogicalOperators
checkMagicNumber
checkMissingComma
checkMissingSemicolon
checkParenthesesMathematicalOperators
checkSurrBySpaces
checkStringDataType
checkTabCharacterUsed
Added severity levels to the check configurations. Existing configuration files without severity levels configured take over the default values. If the user wants to change the severity level of a check, this can be done in the Configuration Editor.
Added a parameter tocheckOperatorsLineContinuation↑ that lets you choose whether or not to check equals signs used in assignments as well.
Bugfix: checkNoInputArg↑: Scripts called from functions are now correctly considered scripts and can no longer violate this check.
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 3.11↑.
Added a new Preference to the Preferences tab, with Smart indent files before checking enabled the Code Checker for MATLAB smart indents the selected files before checking them. See Section 3.3.4↑.
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 Section3.3.4↑.
Links to violations in Live Editor files no longer refer to incorrect line numbers for MATLAB R2020a and newer.
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 3.2↑.
Added the Preferences tab with several new preferences. See Section 3.3.4↑.
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 tocheckLoopIteratorNaming↑ 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 B↓.
Added the MAB predefined configuration file. See Chapter 5↑.
Compatible with MATLAB R2021a.
checkNestingDepth↑ no longer considers main and sub-functions as nesting depth 1.
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 4.3↑.
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 tocheckLoopIteratorNaming↑ 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 3.7.76↑).
Exemptions can now be added to your code by the click of a button. See Section 3.9.1↑.
Checks can now be configured multiple times, allowing for a more precise mapping of your rules onto your configuration file. See Section 3.4.3↑.
All functions accessible through the command window interface now support inputs of type string.
Fixed a bug where reports could not be exported to PDF/Word format form Simulink ModelAdvisor.
Added the option to run checks based on priority (Mandatory, Strongly recommended, Recommended).
Before checking the code, the containing folders are now temporarily added to the MATLAB path. See Section 3.3.1↑.
checkEditorWarnings is now configurable. See Section 3.7.20↑.
Completed checkOneStatementPerLine↑: it now checks whether only one statement per line is used. Previously only lines of code containing multiple keywords were reported by this check.
checkSurrBySpaces is now configurable and can check for more operators. See Section 3.7.66↑.
The oldest supported MATLAB release is now R2017b instead of R2016a.
Implemented limited object detection (see Chapter Considerations and known limitations↑). This means that assigning property values is no longer in all cases reported as a struct field declaration/assignment.