1.3
Pre-releaseThis version brings us a rebuilt grammar, lexer & parser with improved parser support for 64-bit VBA, and addresses a number of long-standing grammar issues. It also brings us a much more robust way of discovering identifiers and their respective references.
We have fixed a number of installation issues, but since we've changed the installer from InstallShield to InnoSetup, we recommend a manual uninstall first.
One script to rule them all
This download is meant to work out of the box, for both 32-bit and 64-bit versions of Office.
New Features
The biggest, most visible new features are the new rename refactoring and find all references tool:
This version introduces a context menu in the code pane and Code Explorer:
The options dialog had a facelift:
It's just a sexier UI, really - no new functionality was added here.. except there's no more message box when closing the dialog (changes are still only applied after reloading the add-in, as the General Settings tab indicates).
There's a number of new code inspections and quick-fixes, too:
ProcedureNotUsedInspection
finds all procedures that are never used, and its quick-fix lets you remove this dead code with a single click.ObsoleteTypeHintInspection
will locate all usages of type hints, and its new quick-fix replaces the declaration with the corresponding explicit type, and removes type hints on all references of that identifier, wherever they are.
Bug Fixes
- #368 Applying the quick-fix for an implicitly typed constant when it's declared along with other constants in the same instruction, no longer wipes out all other declarations in that instruction. Thank @comintern for that one.
- #283 Applying a quick-fix that would change the signature of a method that's implementing an interface (making the code non-compilable), is no longer allowed. Thank @PetLahev for that one.
- #378 "Parameter can be passed by value" is now only recommended for primitive types, thanks to @daFreeMan's feedback. This prevents applying a change that could result in a decreased performance.
- #259 "Function returns no value" is now ignoring interface members (but not their implementations) - note that an interface is only recognized as such if it's implemented somewhere. The wording for that inspection result has also been modified a bit - it now reads "Return value for member '{0}' is never assigned", which is much clearer what the inspection result means.
- #356 the new parsing strategy fixes a number of false positives as far as identifier usage inspections are concerned; if an identifier usage inspection returns a false positive, the issue likely isn't with the inspection, but with the parsing - which means an identifier usage issue would also affect the find all references and refactor/rename features.
Known Isuses
There are a number of things that slipped, and will be addressed in the next few releases:
- Parser is still application-independent, so
ProcedureNotUsedInspection
will return false positives for handler procedures attached to worksheet controls. - Project references are stil ignored, so cross-project identifier usages are not accounted for.
- Refactor/Rename will warn you if you're renaming a method that's implementing an interface, but not if you're renaming an event handler - renaming an event handler will break the code.
- There is no "Rename" command available in the UserForm designer, so the only "proper" way of renaming controls (and their handlers) is by selecting a reference to that control in the code. This isn't ideal and will be addressed as soon as possible.
- See our issues list for everything else on the roadmap.