3.1 (2016-03-01)
- Added full support including IDE integration for Embarcadero Studio XE8 and Seattle Update 1.
- Improved parsing of nested generic class definitions with methods with generic type parameters.
- Improved parsing and matching of calls to inherited generic methods hidden by non-generic methods.
- Improved parsing of nested generic class declarations and methods.
- Now display a more descriptive and helpful message when the version of Delphi that is set in the Project Preferences is not installed on the current machine.
- Fix: Fixed occasional parser error in use statements when a used unit has the same name as a Delphi directive (e.g. export).
- Fix: Fixed an occasional issue where CodeHealer could not find the source of a used unit that was not in the current folder or the Delphi Search paths.
- Fix: Fixed parsing of special case string constant in method parameter default value.
- Fix: Numerous other small fixes and improvements
3.0 (2015-02-16)
- Added full support including IDE integration for Embarcadero Studio XE4, XE5, XE6 and XE7.
- Command line parameters to specify expected metrics and analysis counts can now use '+' for 'greater than' and '-' for 'less than' in addition to '=' for 'equal to'. See the updated command line documentation for more details.
- Added /MTCC=nnn and /MTCP=nnn command line parameters for Metrics Target values for Cyclomatic Complexity and significant Comment Percentage. See the updated command line documentation for more details.
- Added /MXU=unitname command line parameter for Metrics results to eXport only the results for the named Delphi unit.
- New Project Wizard now defaults to using the latest installed version of Delphi rather than the version set in the Delphi project being imported.
- Improved detection of the correct Delphi version number when creating a new CodeHealer project from a Delphi project.
- Improved support for scoped enumerable types.
- Improved parsing error dialog box message that prompts whether or not to edit the source file in Delphi.
- Improved support for parsing assembler directives in ASM mode.
- Improved support for parsing binary and octal constants in ASM mode.
- Functions or procedures that are hidden by other functions or procedures explicitly tagged as overloaded are no longer flagged as hidden.
- Global Windows Message Handlers are no longer flagged as unreferenced globals.
- Improved documentation and examples for /UN and /UQ command line parameters to indicate that they can be used together to disable all user interactions.
- Fix: Fixed occasional Access Violation when Building and displaying entire source tree.
- Fix: Fixed occasional Access Violation parsing of nested generic array type definition in TMS FlexCel source.
- Fix: Fixed exception when clicking Library Search Path Browse button with an empty Library Search Path text box.
- Fix: Fixed parsing of certain complex nested generic type usages.
- Fix: Numerous other small fixes and improvements
2.8.1 (2012-11-20)
- Added full support for Embarcadero RAD Studio XE3 (Delphi 2013 for Win32).
- Improved the handling of project default namespaces and the detection of units in those default namespaces.
- Improved type matching of expressions that use class operators.
- Improved the handling of relative paths in Library search paths in Project preferences.
- Fix: Fixed issue with not importing the correct library search paths from Embarcadero RAD Studio XE2.
- Fix: Fixed detection of relative paths on include file definitions.
- Fix: Numerous other small fixes and improvements
2.8 (2012-02-09)
- Added full support for Embarcadero RAD Studio XE1 and XE2 (Delphi 2011 and Delphi 2012 for Win32).
- Added support for the $BDSBIN, $BDSCOMMONDIR, $BDSINCLUDE, $BDSLIB and $BDSUSERDIR macros in file and path names.
- Added support for the ASSEMBLER, CPUX86, NATIVECODE and UNICODE predefined compiler directives for the appropriate platforms.
- Improved parsing and support of generic types and anonymous methods.
- Improved matching of generic array element types for method overloading.
- Ensured that TObject and arrays declared as generic types are always treated as different parameter types for overloading.
- Updated the company name to Code Healer Group in the copyright notices, exported reports footers and elsewhere. This is just a company rename to better reflect the focus of our business and has no other significance or impact.
- Fix: Fixed the Edit In Delphi functionality when the highlighted item is in an include file.
- Fix: Fixed the display of the source browser file path for certain include files.
- Fix: Fixed syntax error on method assignment to inherited generic interface method (JVCL).
- Fix: Fixed occasional syntax error parsing complex expressions containing generic types.
- Fix: Fixed occasional assertion error causing abnormal termination checking generic parameters to procedural types declared with a forward declaration.
- Fix: Fixed occasional access violation on certain function methods with no parameters returning a generic array type.
- Fix: Fixed occasional parser type mismatches with Character and Character Pointer assignments for Unicode versions of Delphi.
- Fix: Numerous other minor fixes
2.6 (2009-10-20)
- Added full support for Delphi 2009 and 2010 for Win32 (CodeGear RAD Studio 2009 and Embarcadero RAD Studio 2010), generic types and anonymous methods.
- Now detect more instances of issues such as uninitialised variables and unused value assignments.
- Now detect more hidden symbols such as class properties, fields and methods hidden by method parameters of the same name.
- Parser and other error message boxes are no longer displayed when Unattended Quiet Mode is set from the command line.
- No longer display the A1004 Hidden Name message for class properties from the Delphi source folders that are hidden by local parameters, such as "parameter 'Action' hides the property of the same name in Forms.pas" that was occurring for all FormClose event handlers.
- Functions or procedures without parameters that hide functions or procedures with parameters and vice versa (so could not be confused) no longer fail the Hidden Name check.
- Locals, parameters etc that have the same name as built in System functions that take parameters (so could not be confused) no longer fail the Hidden Name check.
- Improved the automated operation log messages and added some basic counts to the log messages.
- Now automatically include all folders one level below the Delphi Source folder in the default search and include paths.
- Improved handling of dereferencing procedurals with pointer result types.
- Fix: Fixed empty automated exported analysis results when grouping the results by module.
- Fix: Fixed parsing of strict private and strict protected directives for old object types for Delphi 2005 and later.
- Fix: Currency, PAnsiChar, and PWideChar are now correctly distinct types for function and procedure overloading.
- Fix: Numerous other minor fixes
2.5 (2007-09-23)
- Added full support for .NET applications created with Delphi 8, Delphi 2005, Delphi 2006 and Delphi 2007 (CodeGear RAD studio 5).
- Added full support for Delphi 2007 for Win32 and for all the Delphi language extensions in Delphi 2006 and Delphi 2007.
- Added full compatibility with Windows Vista, including storing CodeHealer configuration files and all data in the application data folder for the current user.
- Audit and check failures in code that is enclosed by the {$HINTS OFF} and ($HINTS ON} compiler directives are no longer reported.
- Added an editable list of directive names to exclude from the "directives names used as identifiers" audit results.
- The source code file path is now displayed after its name and coordinates in the browser window title.
- Added support for UTF-8 source files.
- Changed the Exit shortcut key to Ctrl + Q.
- Fix: Greatly reduced the number of 'false positives' in the results of an analysis.
- Fix: Improved the handling of conditional expressions in compiler directives.
- Fix: Improved the automatic detection of the Delphi and BDS version and platform type from a Delphi or BDS project file.
- Fix: CodeHealer now restores to the correct monitor when it was previously maximised on a secondary monitor.
- Fix: Significantly improved the healing of code around existing multi-line comments.
- Fix: Reports are now exported even if the totals do not match their expected values when running unattended.
- Fix: A large number of other minor fixes
2.1.1 (2006-05-24)
- Added the ability to select multiple analysis failures and to copy their details to the Windows Clipboard using Ctrl+C.
- Added tracking of the inclusion point of include files for display in failure messages etc.
- Browsing for library search path folders now respects substitution macros at the start of the path.
- CodeHealer now recognises Delphi 2006 projects vs Delphi 2005 e.g. in the Wizard.
- Can now open and analyse CodeHealer project files that are marked as read only.
- Added a final line to the exported analysis report that shows the total number of failures that were found.
- Changed the missing files error message box type from an error to a question and improved its caption and text.
- No longer prompt for a confirmation when the Save button is clicked after a source file has been healed or modified.
- CodeHealer now defaults to not requesting confirmation of healing actions before applying them.
- CodeHealer now imports the Debug source directories from a project file as well as the Library search paths.
- CodeHealer now defaults to continuing to parse the project after a parse error.
- CodeHealer now defaults to allowing editing in the source code browser.
- CodeHealer now sets a default exported report file extension if none was specified on the command line.
- Fix: Assignment to certain pointer arithmetic expressions was being flagged as assignment to a constant.
- Fix: Fixed occasional exception on exit from CodeHealer due to a timing issue bug in the MS HTML Help viewer.
- Fix: Fixed the healing of an unused property with a default property specifier.
- Fix: WideStrings were always being treated as uninitialised rather than respecting the preference settings for strings.
- Fix: Fixed healing of unused resource strings and thread variables.
- Fix: Fixed assorted special case parsing errors and false positives.
- Fix: Automated operation now exports the analysis results report even if there are no failures.
- Fix: Other minor fixes
2.1 (2006-03-24)
- Added transparent and complete parsing of both text and binary Delphi form files for symbol usage tracking and analysis.
- Added comprehensive command line parameters for automated build tools such as Automated Build Studio and FinalBuilder.
- Can now select multiple modules on the metrics results to get totals for the selected modules.
- Added calculation of cyclomatic complexity and some other counts to the metrics results.
- Added a new check for assignment to constant items.
- Added the conditional symbol CODEHEALERANALYSIS that is always defined when analysing with CodeHealer.
- Enabled the preference setting to allow editing of source files in the source code browser.
- Significantly speeded up the metrics analysis by not updating the view of the module list until the analysis is done.
- Added check settings for including or excluding record fields to the unreferenced globals and unreferenced locals checks.
- Set the initial sort order for the analysis failures to description within module for more consistent reports.
- Changed the order of folder checking to allow the Delphi library folders to be manually excluded from processing.
- Moved the Undo Healing button next to the Heal Code button.
- Added Ctrl key shortcuts to the Analysis and Metrics toolbar buttons.
- Added a check to the start of the install and uninstall process for any of the IDE DLLs still being in use.
- Added a hidden names audit preference to include or exclude names from a different syntactic class.
- Added optional installation of Desktop and Quick Launch icons for CodeHealer.
- Ctrl Up and Ctrl Down can now be used to scroll tree lists.
- The Browse buttons on various edit controls can now be activated with Ctrl + Enter.
- Added a preference to optionally store a new CodeHealer project in the same folder as the first source file.
- Added a project preference setting to control whether the metrics results copy to the Clipboard and export to CSV arranged in lines or columns, and now default to arranging them in lines.
- Fix: Eliminated a large number of false positives in all categories of checks, and in particular in the Hidden Names, Unused Values and Uninitialised Variables checks.
- Fix: Numerous other fixes and improvements.
2.0 (2005-11-30)
- Initial version 2 release.
|
|