MZ-Tools 8.0.0.2237 released

The update of this month (8.0.0.2237) brings several bug fixes to improve your user experience, mainly with the VBA editor. One of the fixes is important if you use the Sort Code Elements feature in VB/VBA with conditional compilation in the General-Declarations section, since it could mess the code.

The complete changelog is the following:

MZ-Tools 8.0.0.2237 released (October 1, 2020)

  • Fixed [#15320] (VB/VBA): The declaration of a method/property with the body in the same line was not parsed correctly, which affected the performance of the Method Callers feature.
  • Fixed [#15321] (All): NullReferenceException could happen with some files.
  • Fixed [#15367] (All): InvalidCastException could happen importing code templates if a code template name had the same name than a folder.
  • Fixed [#15281] (VB/VBA): The Code Elements Order Review was not consistent with the order when both a Let and Set properties were present.
  • Fixed [#15316] (VBA): The VBA host was incorrectly identified as a Microsoft Office app in some cases.
  • Fixed [#15351] (VB/VBA): The access of Declare Sub / Declare Function was not correct if the declararation is indented.
  • Fixed [#15328] (VB/VBA): The Sort Code Elements feature didn’t handle correctly conditional compilation in some cases.
  • Fixed [#15374] (VBA): The Open Files scope of the Find Text feature didn’t work correctly with Microsoft Access.
  • Fixed [Internal] (VBA): Deleting a tab page of the MultiPage control of VBA Forms using the Control Explorer caused an exception.
  • Fixed [Internal] (VBA): Deleting a control using the Control Explorer didn’t remove it from the treeview.
  • Fixed [Internal] (VBA): Deleting a child control using the Control Explorer along with its parent caused an exception.

MZ-Tools 8.0.0.2264 released

The update of this month (8.0.0.2264) is also quite small, with some bug fixes. There have been actually two updates because the first one (8.0.0.2261) introduced a problem with the digital signature of the setups. The complete changelog is the following:

MZ-Tools 8.0.0.2264 released (June 2, 2020)

  • Fixed [#15044] (All): The digital signature of the setups was not validated.

MZ-Tools 8.0.0.2261 released (June 1, 2020)

  • Fixed [#14933] (VB/VBA): System.InvalidCastException could happen while trying to retrieve typelibs with controls.
  • Fixed [#14876] (All): The Method Callers feature didn’t show late-bound calls to VB.Form or MSForms.UserForm.
  • Fixed [#15023] (VS): The Method Callers feature caused NotImplementedException when getting references of some web site projects.
  • Fixed [#14915] (VS): The Convert Field to Property feature didn’t parse correctly enum fields with an initializer.

MZ-Tools 8.0.0.2237 released

The update of this month is quite small but it brings an important improvement for some VB/VBA users: you can now use the Sort Code Elements feature even if the General-Declarations section contains conditional compilation. The complete changelog is the following:

  • Enhanced [#14870] (VB/VBA): MZ-Tools now locates buttons on toolbars and menus by Id instead of by FaceId to allow picture customization.
  • Enhanced [#14898] (VB/VBA): The Sort Code Elements feature now allows conditional compilation inside the General-Declarations section.
  • Fixed [#14867] (VBA): NullReferenceException could happen when getting the code elements of a file.
  • Fixed [#14876] (All): The Method Callers feature was unable to resolve the type of the expression ‘With New … End With’.

New build 8.0.0.2221 released

I hope everyone reading this is OK and healthy. Here at Spain we have entered the 4th week locked-down at home, and the forecast is to remain so another four weeks at least. Things don’t necessarily stop due to that situation, so past April 1 I released a new build of MZ-Tools 8.0 (build 8.0.0.2221) fixing small bugs and annoyances that some of you have reported me in the past weeks.

The list is below. Take care.

  • Fixed [#14715] (VB/VBA): Single-line declaration of methods in results window generated from multi-line declaration could contain extra spaces.
  • Fixed [#14753] (VB/VBA): The expansion keyword feature for code templates didn’t indent correctly the code in some cases.
  • Fixed [#14604] (VB/VBA): The Generate HTML Documentation could cause problems with “\Doc” folder.
  • Fixed [#14818] (VB): NullReferenceException could happen during line indenting review.
  • Fixed [#14575] (VS): The Dead Code Review could cause error “Couldn’t get SDK folder” in some Visual Studio versions.
  • Fixed [#14816] (VBA): The MZTools8VBAPortable.exe.config file contained the “safemode” value which is not required.
  • Fixed [Internal] (VBA): The version for Office 2016 or higher is now shown as “2016/2019/365” since all of them are version number 16.0.
  • Fixed [Internal] (VS): Toolwindows didn’t change colors when changing the theme from light to dark or viceversa.

New build 8.0.0.2173 released

A new build of MZ-Tools was released on Feb 1. Since on Jan 1 there was no new build, this one has quite a few small fixes and a couple of enhancements. Also, the help files have been updated to better explain installation issues and advanced scenarios.

The complete changelog is the following:

  • Enhanced [Internal] (All): Buttons on toolbars of toolwindows can be reached now with the Left/Right keys.
  • Enhanced [Internal] (All): The Check for Updates feature now downloads the new setup to the desktop folder instead of the temp folder when using the Download and Install button.
  • Fixed [#14577] (All): In the Find Text dialog (English) access keys were duplicated.
  • Fixed [#14577] (All): In toolwindows, holding the Alt key to show access keys moved the focus to the main menu.
  • Fixed [#14587] (VS): The help file did not document correctly the prefixes for MZ-Tools commands (“MZTools” for Visual Studio 2015 and higher and “MZTools8” for Visual Studio 2013 and lower).
  • Fixed [#14589] (VB/VBA): The Method Callers feature didn’t parse correctly declarations ending with comments causing long delays in some cases.
  • Fixed [#14548] (VB/VBA): The Dead Code Review didn’t recognize as unused a method variable or field whose name was the same than its type.
  • Fixed [#Internal] (All): Pressing the Esc key to close a modal dialog launched by a toolwindow closed the toolwindow too.
  • Fixed [#Internal] (All): If a modal dialog was shown from a toolwindow, after closing it the focus didn’t return to the toolwindow.
  • Fixed [#Internal] (VBA): The portable edition didn’t enforce the required .NET Framework 3.5 on Windows XP / Windows Server 2003, only enforced .NET Framework 2.0.

New build 8.0.0.2066 released

A new build of MZ-Tools 8 has been released, 8.0.0.2066, with some bug fixes and more importantly with improvements when sorting listviews.

All lists now use the previous sorting column as secondary sorting column when two values of the primary sorting column are the same. For example, in the Code Explorer feature of VB/VBA, if you want to order by Kind and then by Name, you would click the Name column and then the Kind column: if two code elements have the same Kind (say, “Sub”), then they are sorted using the Name as secondary criteria.

Also, for listviews that make sense (Code Explorer, Task List, Favorite Code Elements), their sorting criteria is now remembered between sessions.

Finally, the Code Explorer now allows to sort in ascending / descending order like previously, but also to sort as code elements appear in code. So, its columns go through three states.

The complete list of changes is the following:

  • Enhanced [#14399] (VB/VBA): The Code Explorer now allows 3-state sorting: ascending / descending / as in code.
  • Enhanced [#14399] (All): Listviews now use the previous sorting column as secondary sorting column.
  • Enhanced [#14399] (All): The Favorite Code Elements toolwindow now remembers the sorting column between sessions.
  • Enhanced [#14399] (VB/VBA): The Code Explorer and Task List toolwindows now remember the sorting column between sessions.
  • Fixed [#14393] (VBA): The Check for Updates feature didn’t use the original command-line options when restarting Office applications.
  • Fixed [#14436] (VBA): In Office 2000/2002 after locating a result if the code editor was previously closed the comboboxes at the top of the VBA code editor were not repainted or an System.AccessViolationException was thrown.
  • Fixed [#14428] (VS): Error getting SDK folder in Visual Studio 2019 when only .NET Framework 4.8 is installed.
  • Fixed [Internal] (VS): The Control Names Assistant showed white background in textboxes when using the dark theme.
  • Fixed [Internal] (VS): The Control Names Assistant didn’t change names of controls.

New build 8.0.0.1644 released

A new build (8.0.0.1644) of MZ-Tools has been released, that includes some enhancements to remember between sessions your last settings for operations, clickable columns for the Code Explorer (VB/VBA) and support for priority in code tasks, using “[+]” or “[-]” in the line that contains the TODO code task:

Also, the screenshots of the documentation have been updated and unified (using the ones for the VBA IDE) and several bugs have been fixed.

The complete list of changes is the following:

MZ-Tools 8.0.0.1644 released (May 1, 2019)

  • Enhanced [#14013] (All): In the options dialog for the Insert Headers feature, the selected code elements to insert headers to are now remembered, even between sessions.
  • Enhanced [#14013] (All): In the options dialog for the Review Quality feature, the selected reviews to execute are now remembered between sessions.
  • Enhanced [#14013] (All): In the options dialog for an operation, the selected scope is now remembered between sessions.
  • Enhanced [#13939] (All): The Control Assistants are now available in the VBA editor of Access if the user has added the Insert > UserForm menu entry.
  • Enhanced [#13977] (All): The last used scope is now preselected in the operation scope dialog.
  • Enhanced [#13972] (VB/VBA): The columns of the Code Explorer are now clickable to allow sorting.
  • Enhanced [Internal] (VB/VBA): Code tasks now support priority using “[+]” or “[-]” in the line of code containing the “TODO” token.
  • Fixed [#13995] (VBA): The TabIndex Assistant could show error “The algorithm that calculates the correct Tab Index has returned a number of controls different to the number of controls in the Tab Index Assistant list” when moving up/down a deleted control.
  • Fixed [Internal] (All): NullReferenceException could happen in the Generate HTML/XML Documentation features.
  • Fixed [Internal] (VS): Removed checkbox in setup to use COM Shim or not for Visual Studio (not required).

New build 8.0.0.1502 released

Yesterday a new build (8.0.0.1502) was released. While it only introduces a minor enhancement to sort the code tasks of the Task List, it fixes two important bugs that have caused problems to a number of German and Asian users during the past years. Finally MZ-Tools 8.0 can coexist with SmartTools AccessToExcel 4.0 für Access (and similar popular German add-ins for Access) and can handle correctly text that uses double-byte encodings (Asian languages, for example). Hopefully those two errors are fixed for good. There are also minor fixes to provide an even better user experience:

MZ-Tools 8.0.0.1502 released (February 1, 2019)

  • Enhanced [#13731] (VB/VBA): The Code Tasks of the Task List can be sorted now by column.
  • Fixed [#13690] (All): The Convert Field to Property feature removed the comment of a field.
  • Fixed [#11754] (VBA): A System.Runtime.InteropServices.SEHException (0x80004005) happened at startup when using SmartTools AccessToExcel 4.0 für Access.
  • Fixed [#13702] (VB/VBA): Several features didn’t work correctly with double-byte encodings such as Chinese, etc.
  • Fixed [#13653] (VB/VBA): An sporadic COMException that can happen during startup to restore toolwindows of the last session is now ignored.
  • Fixed [#13529] (VB/VBA): The add-in was initialized twice causing errors in some cases.
  • Fixed [#13716] (VB6): The clipboard text was not preserved when loading MZ-Tools.
  • Fixed [#13775] (VS): Some features could cause NullReferenceException with .cpp files.
  • Fixed [#13788] (VBA): The TabIndex Assistant, Control Names Assistant and Control Explorer showed the message “There is no active document window” instead of “The active window is not a window with a designer (Form, UserControl, etc.)”.

Happy New Year! And a new build ( 8.0.0.1469)

Happy New Year to all! I have been working the last couple of months fixing the bugs that some of you have reported, and also adding support for Visual Studio 2019 and for the R language (Find feature, code templates, etc. just in case you work with statistics). There is also an enhancement to avoid making an executable before a quality review in VB6, better support for the OLEDB Provider for ODBC and some memory for the Code Explorer. The complete list of changes is the following:

  • Enhanced (VS): Added support for Visual Studio 2019.
  • Enhanced (VS): Added support for the R language.
  • Enhanced [#13629] (VB6): The Review Quality feature no longer requires to build the project.
  • Enhanced [#13599] (All): New predefined variable “Year” ($P[YEAR]) (useful for copyrights).
  • Enhanced [#13614] (All): The Database Connection String Assistant now includes the Microsoft OLE DB Provider for ODBC Drivers.
  • Enhanced [#13476] (VB/VBA): The Code Explorer now remembers filters on the toolbar across sessions.
  • Fixed [#13486] (VS): System.NullReferenceException could happen using the Method Callers feature.
  • Fixed [#12937, #12330, #12644, #13517] (VS): System.EntryPointNotFoundException could happen using the Statistics feature.
  • Fixed [#13529] (All): The sporadic COMException that can happen showing a toolwindow is now reported as a friendly error rather than as a bug.
  • Fixed [#13572] (All): The “I” access key (used by the “Insert” button) was duplicated in other controls of the New Method Assistant dialog.
  • Fixed [#12852] (VS): NullReferenceException happened with expression-bodied properties that had an attribute.
  • Fixed [#13586] (VS): NullReferenceException happened with expression-bodied properties that used a separate line for the => operator.
  • Fixed [#13595] (VB/VBA): The Find Text feature showed results at the first line of the code window not showing previous lines of code.
  • Fixed [Internal] (All): NullReferenceException happened if the IDE was closed just after showing a toolwindow from the previous session.
  • Fixed [13684] (VB/VBA): The Database Connection String Assistant showed as exception to report the error “System.ArgumentException: Provider is not registered.
  • Fixed [13683] (VS): The Convert Field to Property feature didn’t work correctly with C# fields that lack an explicit access in the declaration.

New build 8.0.0.1368 released

Yesterday I released a new build (8.0.0.1368) of MZ-Tools 8.0. If you keep track of build numbers you will notice that the last one (August 1) was 8.0.0.189, so why this big increment? The reason is that these months I am migrating the system to produce builds to the Azure DevOps (formerly Visual Studio Team Services) build/release pipelines, and I have implemented a new auto-increment logic for build numbers. Although this migration is causing that (temporarily) I don’t release a new build each month as in the past, when finished it will allow me to send a pre-production build with a fix to the customer reporting a bug as soon as I check-in the fix in source code, all in a 100% automated fashion.

This new build introduces some enhancements, such as async package for Visual Studio 2015/2017 (Microsoft will require async packages in future versions) and a new browser-based local help instead of the old HTML Help (.chm) technology that was created for Windows 98 and hasn’t been updated by Microsoft since then. Also, it fixes quite a few bugs:

MZ-Tools 8.0.0.1368 released (November 1, 2018)

  • Enhanced (All): The local help has changed from HTML Help format (.chm) to browser-based web help.
  • Enhanced [#13427] (VB/VBA): The External Utilities feature now supports the Selected Text predefined variable, useful to pass a selected URL in code to a browser.
  • Enhanced (VB/VBA): Added checkbox in setup to use COM Shim or not.
  • Fixed [#13261] (All): If an exception happens loading a xml document, a friendly error message is now shown.
  • Fixed [#13330] (All): When using the Replace Whole Line(s) With New Line(s) option of the Replace feature, an entire final line was removed if the searched text included \r\n.
  • Fixed [#13330] (All): When using the Replace Whole Line(s) With New Line(s) option of the Replace feature, NullReferenceException happened if the Compose New Line button was not clicked.
  • Fixed [#13342] (All): Operations that modify code silenced some exceptions.
  • Fixed [#13288] (VB/VBA): The Task List didn’t show System.IO.IOException as friendly messages.
  • Fixed [#13286] (VB/VBA): The keyboard shortcuts editor didn’t show used shortcuts in German.
  • Fixed [#13388] (VB/VBA): The dead code review didn’t detect as unused variables with the same name than recordset fields using bang syntax.
  • Fixed [#13287] (VB/VBA): The line indenter didn’t parse correctly type fields that used end block keywords as the name of the field.
  • Fixed [#13425] (VB/VBA): Error parsing block with colon and line continuation before end statement of the block.
  • Fixed [#13403] (VBA): The default options for Control Explorer didn’t include MSForms controls.
  • Fixed [#13438] (VB.NET): The feature Convert Field to Property didn’t work correctly with VB.NET generic types.