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.

New build MZ-Tools 8.0.0.189

It has been a while since the last update, I know. After build 8.0.0.178 (March 1) a new build 8.0.0.180 was released on April 1 that contained a change in the implementation of keyboard shortcuts for features, code templates and error handlers of VB/VBA. The Microsoft API for VB/VBA add-ins doesn’t provide support for keyboard shortcuts, so each add-in has to use some trick to provide them. For years MZ-Tools has used global hotkeys of Windows, but they have some issues (because hotkeys are global, the add-in must unregister them when the IDE is not active and re-register them when the IDE becomes active again). In build 8.0.0.180 a new more robust approach was used but it didn’t work as expected and crashes and duplicated insertions of code templates/error handlers were reported in the first day so that build was retired. Yesterday, after some months without updates, a new build has been released with the bugs reported since April.

This new build introduces also an important and somewhat breaking change if you are still using Visual Studio 2012 or 2013: MZ-Tools 8.0 for Visual Studio was provided in two ways:

  • As an “add-in” (Tools > Add-In Manager) for Visual Studio 2005, 2008 and 2010
  • As a “package” (Tools > Extensions and Updates) for Visual Studio 2012, 2013, 2015 and 2017

The functionality is roughly the same in both cases (only the installation and the Check for Updates mechanism is different).

Due to some upcoming changes in Visual Studio 2017, it’s increasingly difficult to provide the same package for Visual Studio 2012, 2013, 2015 and 2017. New Visual Studio APIs only support Visual Studio 2015 and 2017, so rather than providing a new different download for those two versions (there are already 5 download buttons on the Download page!), the add-in in build 8.0.0.189 supports not only Visual Studio 2005, 2008 and 2010 but also Visual Studio 2012 and 2013, and the package no longer support them.

This means that if you are using MZ-Tools for Visual Studio 2012 / 2013 you must:

  • Make a backup of your personal / team options, just in case, although the same location (C:\Users\<user>\AppData\Roaming\MZTools Software\MZTools8\VS) is used for the add-in and for the package.
  • Go to Tools > Extensions and Updates, Installed section, locate MZ-Tools and click the Uninstall button to uninstall the package.
  • Download the add-in setup for MZ-Tools 8.0 for Visual Studio 2005-2013 and install it.

The complete changelog is the following:

MZ-Tools 8.0.0.189 released (August 1, 2018)

  • Changed (VS 2012, 2013): MZ-Tools is now provided as an add-in for VS 2012 and 2013 rather than as a package.
  • Enhanced [#13217] (All): Added support for headers in enum items.
  • Enhanced [#13154] (VB/VBA): Added menu entries for line numbering and indenting to the context menu of the code window.
  • Enhanced [#13168] (All): MZ-Tools ensures now that toolwindows are completely inside some screen when shown.
  • Enhanced [#13144] (All): The Favorite Code Elements toolwindow no longer shows a modal messagebox when a code element is not found. Now it shows the message in a column.
  • Fixed [#12956, #12957] (VB/VBA): The mechanism for keyboard shortcuts introduced in build 8.0.0.180 didn’t work well and has been reverted.
  • Fixed [#11324, #12941] (VB/VBA): The initial indentation of MsgBox statements generared by the MsgBox Assistant was always fixed.
  • Fixed [#12964] (All): Typo in German language in the Task List.
  • Fixed [#12914] (All): MZ-Tools could hang when trying to show an exception dialog if some project reference was invalid or missing.
  • Fixed [#13202] (All): NullReferenceException could happen unloading MZ-Tools.
  • Fixed [#12914] (VB/VBA): The Method Callers feature could take a long time if a referenced type name didn’t have the correct upper/lower case.
  • Fixed [#13066] (VB/VBA): The indenter removed labels that are only numbers.
  • Fixed [#13040] (All): The Switch Assignment feature didn’t work correctly with the comment character inside quotes.
  • Fixed [#12874] (VS): The Find Text feature didn’t locate results if the end point of a result using regular expressions was between the \r and \n characters.
  • Fixed [#12873] (VB/VBA): The type of a member of a UDT was not parsed correctly if it contained a comment or the “New” keyword.
  • Fixed [#12918] (VB/VBA): Declare Sub and Declare Function were not parsed correctly if they contain comment or blank lines before the declaration.
  • Fixed [#12890] (VBA): Updating MZ-Tools from the VBA editor of Outlook caused error “Cannot start Microsoft Outlook. The command line argument is not valid. Verify the switch you are using.”
  • Fixed [#12922] (VBA): MZ-Tools crashed when closing Microsoft Project.
  • Fixed [#13105] (VS): Operations made active inactive .xaml windows.
  • Fixed [Internal] (VB/VBA): The icon of methods (Sub/Function) was not retrieved correctly in the Favorite Code Elements toolwindow.
  • Fixed [Internal] (VS): Declarations of attributes using the characters “{}” were not parsed correctly.
  • Fixed [Internal] (VS 2012/2013/2015/2017): The Insert Headers buttons has been moved to the left of the Insert Header button.
  • Fixed [Internal] (VB/VBA): The Insert Headers operation didn’t insert headers for child members in some cases.
  • Fixed [Internal] (VS): The scope selector did not show the down arrow in the button of ‘Files matching regular expression’ scope.

New build MZ-Tools 8.0.0.180

A new build of MZ-Tools, 8.0.0.180, has been released today, fixing some bugs. Some of them are quite important, though: one of them fixes crashes that happened unloading Microsoft Project (the root cause is a bug in the extensibility model of that product, but hopefully I have found workarounds to avoid it). Another one for Microsoft Outlook will prevent an error when auto-updating in the next month. And finally, this new build fixes a problem that was happening since 15+ years ago: keyboard shortcuts were executed in Office even if the VBA editor was not the active window (potentially conflicting with keyboard shortcuts of Office). This new build avoids the use of global hotkeys and also recognizes when the VBA editor is active.

The complete changelog is the following:

MZ-Tools 8.0.0.180 released (April 1, 2018)

  • Fixed [#12874] (VS): The Find Text feature didn’t locate results if the end point of a result using regular expressions was between the \r and \n characters.
  • Fixed [#12873] (VB/VBA): The type of a member of a UDT was not parsed correctly if it contained a comment or the “New” keyword.
  • Fixed [#12918] (VB/VBA): Declare Sub and Declare Function were not parsed correctly if they contain comment or blank lines before the declaration.
  • Fixed [#12890] (VBA): Updating MZ-Tools from the VBA editor of Outlook caused error “Cannot start Microsoft Outlook. The command line argument is not valid. Verify the switch you are using.”
  • Fixed [#12881, #11396, #11942] (VB/VBA): Keyboard shortcuts were executed even if the IDE was not the active window.
  • Fixed [#12922] (VBA): MZ-Tools crashed when closing Microsoft Project.

New build MZ-Tools 8.0.0.178

Last week a new monthly build of MZ-Tools, 8.0.0.178, was released with some enhancements and fixes that you have reported in the previous month. The changes are the following:

MZ-Tools 8.0.0.178 released (March 1, 2018)

  • Enhanced [#12782] (All): When closing a result tab, now the previously selected result tab is selected.
  • Enhanced [#12814] (VB): When locating a result, the code window is not scrolled if the line of the result is already visible in the code window.
  • Fixed [#12833] (All): The Replace feature didn’t support “\r\n”, “\r” or “\n” in regular expressions.
  • Fixed [Internal] (All): The Replace feature used \number instead of $number to replace capture groups in regular expressions”.
  • Fixed [#12808] (VB): The line indenter did not parse correctly Type declarations with fields named Type in some cases.
  • Fixed [#12815, #12824] (VB): The line indenter and other features could cause “System.InvalidOperationException: Invalid new line counter” when using conditional compilation and duplicated procedures
  • Fixed [#12799] (VS): The Sort Code Elements feature added quotes to inserted regions in C#.
  • Fixed [#12830] (VS): The Insert Header feature deleted the selected code when executed.
  • Fixed [#12797] (VS): The New Property Assistant didn’t support initializers in auto-implemented properties in Visual Studio 2015 and higher.
  • Fixed [Internal] (VS): The New Property Assistant didn’t support read-only auto-implemented properties in Visual Studio 2015 and higher.
  • Fixed [Internal] (VS): The New Property Assistant didn’t make visible the Automatic style radiobutton after making it invisible.

New build MZ-Tools 8.0.0.176

Today a new monthly build of MZ-Tools 8.0 has been released, with just three bug fixes and a minor enhancement for users of VB6: toolbars are now hidden when entering debug-time or run-time. Since VB6 only allows add-ins to work at design-time, it hides buttons of add-ins at debug/run time. MZ-Tools now hides the whole toolbars, to gain space. This was also the behavior of MZ-Tools 3.0.

Also, starting this month, the setups are digitally signed with a code-signing certificate.

MZ-Tools 8.0.0.176 released (February 1, 2018)

  • Enhanced [#12748] (VB6): The toolbars are now hidden when entering debug-time or run-time.
  • Fixed [#12745] (All): The Private Clipboards didn’t check that the document window was the active window.
  • Fixed [#12757] (VB/VBA): The Find Text feature showed infinite results searching the last word of a code file.
  • Fixed [#12763] (VB6): The content of the clipboard in RTF or image formats was not preserved when loading MZ-Tools.

Happy New Year! And a new build MZ-Tools 8.0.0.175

Happy New Year! A new build 8.0.0.175 was released last January 1 with some enhancements and minor bug fixes.

  • Enhanced [#12708] (All): The previous version of Options files are now kept with the .old extension.
  • Enhanced [#12708] (VB/VBA): The previous version of Task file is now kept with the .old extension.
  • Enhanced [#11687, #12684] (All): Added context menu to the code template editor to cut, copy and paste text.
  • Enhanced [Internal] (VB/VBA): The Code Explorer now sets the focus on the code window when double-clicking a code element or pressing the Enter key.
  • Fixed [#12691] (All): The Show Code Elements toggle button on the toolbar of the results window didn’t reflect the state of the selected tab.
  • Fixed [#12691] (All): The Show Code Elements toggle button on the toolbar of the results window didn’t initialize the Show Code Elements checkbox of the Find Text toolwindow.
  • Fixed [#12722] (VB/VBA): The preselected file or project in the scope selection window of an operation was not correct when using the context menu of the Project Explorer.
  • Fixed [#12721] (VB/VBA): The New Method/Property Assistant generated invalid code if all the lines from the insertion point until the end of the document were blank lines.
  • Fixed [#12465, #12474, #12591, #12724] (VB/VBA): The Code Explorer didn’t parse correctly multiline constants.

MZ-Tools 8.0.0.174 released with two new predefined variables and some bug fixes

The last public build of MZ-Tools 8.0 this year was released a couple of days ago (next one is scheduled for January). This build 8.0.0.174 introduces two new predefined variables for code templates, etc. and some bug fixes:

  • Enhanced [Internal] (All): The Nomenclature Rules Review now shows a better message when the case of the name is not correct and it uses prefixes or suffixes.
  • Enhanced [#12625] (All): New predefined variable “Guid” ($P[GUID]).
  • Enhanced [#12581] (All): New predefined variable “Method Property Kind” ($P[METHOD_PROPERTY_KIND]).
  • Fixed [#12591] (VB/VBA): Hidden types (such as Excel.CheckBox) were not shown in the type tag editor.
  • Fixed [#12591] (All): The Nomenclature Rule editor showed a wrong example when using the $P[TYPE_TAG_WITH_UPPER_CASE] predefined variable.
  • Fixed [#12634] (VBA): COMException HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER) could happen in some VBA hosts.
  • Fixed [#12654, #12631] (VS): The dialog to select the exception handler or header crashed Visual Studio.

MZ-Tools 8.0.0.172 released with bug fixes

A new monthly build of MZ-Tools 8.0 was published last November 1. It introduces an enhancement to replace contents of existing VBA files when importing, rather than duplicating the file, and some bug fixes. The complete change log is the following:

  • Enhanced [#12516] (VBA): The Import Files feature now replaces the contents of existing items.
  • Fixed [#12553] (VB/VBA): The Line Indenting feature didn’t handle correctly line continuations at the end of a comment followed by a blank line.
  • Fixed [#12559] (VB/VBA): The Select Case Assistant didn’t work in properties, only in methods.
  • Fixed [#12562] (VBA): The Development Environment Settings Review did not run on startup.
  • Fixed [#12575] (All): Entering by accident in the dialog to enter user-defined variable values a user-defined variable name hung the IDE.