Releases: rubberduck-vba/Rubberduck
1.3
This 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.
Version 1.22 - Unit Testing Discovery HotFix
HotFix release for issue #354 - unit test discovery is using the VBE API and tries to discover test methods in protected VBProjects. This manifested as a refusal of the Test and Todo Explorers to open.
Use the x86 installer for 32-bit versions of Office, even if you're running a 64-bit system.
Use the x64 installer only for 64-bit versions of Office.
x64 Specifics
This version will install under C:\Program Files (x86)
, unlike the previous release; therefore we recommend manually uninstalling the previous version before running the setup program.
Despite our efforts to properly configure the setup, it's possible that even after a successful x64 install, starting a Microsoft Office application and opening up the VBE brings up this message:
If this happens, click 'no' and close the Microsoft Office application, then run this command from an administrative command prompt:
c:\windows\microsoft.net\framework64\v4.0.30319\regasm.exe "c:\program files (x86)\rubberduck\rubberduck\rubberduck\rubberduck.dll" /codebase /tlb
This will correctly register the add-in with the Windows Registry, a step that the installer is intended to be doing automatically. Note that pull requests are welcome, if anyone has an idea of exactly what we're doing wrong here.
Version 1.21 Bug Fixes & UI Improvements
Rubberduck is now licensed under GPL3; you will be prompted to accept the license terms when installing.
Installing
- Download and use the x86 installer for 32 bit versions of Office
- Download and use the x64 installer for 64 bit versions of Office
This installer requires administrative privileges.
Issue with x64 installer
The x64 installer is trying to prepare the ground for a per-user install without admin rights, and will register the COM classes under HKEY_CURRENT_USER; as a result, you could be seeing this message when starting Excel (or your favorite Office application):
It appears the keys have to be registered under HKEY_LOCAL_MACHINE (which means installing will require admin rights no matter what). To fix this, you will have to run this command from an administrative command prompt:
c:\windows\microsoft.net\framework64\v4.0.30319\regasm.exe c:\users\{username}\appdata\roaming\rubberduck.install\rubberduck.dll /codebase /tlb
Future releases will not require that step.
System Requirements:
- Windows Vista, 7, or 8
- .Net Framework 4.5
- Microsoft Office
Note about supported Office Versions:
We've had users report successful installations on versions of Office as old as 97 and as new as 2013, but the only officially supported versions are 2007 and 2010.
We've had some issues reported with the 2013 environment. If you'd like to join the team and help us add support for Office 2013, please respond to issue #316.
Changes
- Code Explorer now not only has class module icons and proper sorting (#267), it also displays an icon for document (Office) objects, user forms, and optionally regroups object types into folders like the VBE's Project Explorer - folders can be toggled, and the treeview can also display full signatures (and declarations) instead of just method/member names.
- Unit Testing now supports setup & teardown methods with
@ModuleInitialize
,@ModuleCleanup
,@TestInitialize
and@TestCleanup
attributes/magic-comments, respectively for methods to execute once before all tests in a test module, after all tests in a test module, before each test and after each test (#293). - Error-handling in test method stubs has been simplified (#271), and adding a test module also adds method stubs for the setup & teardown methods.
- Completely redesigned "About" window, now linking to rubberduck-vba.com and our social media accounts; design is more in line with our official website, too (#308).
- Code Inspection results can now be copied to clipboard.
- Added a
DeleteBranch
method to the API
See the MileStone for a Complete List of Closed Issues.
Bug Fixes
- Protected workbooks no longer crash the parser (#289) and are now displayed in the Code Explorer with a padlock icon.
- Used variables no longer cause "variable not used" false positives in Code Inspections (#282).
- Navigating to a deleted code module no longer crashes Code Explorer (#279).
- Multiple identically named projects no longer crashes Code Explorer navigation (#280) - navigating may not activate the expected module though, but then there's only so much we can do: best solution is to actually name your VBA projects.
- Various bug fixes with Extract Method refactoring (#275, #276).
- TODO Explorer is no longer loaded empty when there are TODO items to be displayed (#285).
Click Here for a complete list of bugs fixed in this release.
Version 1.2 (32-bit Office)
(We are currently working on getting a 64-bit Office build up)
Installation & Upgrading
- Just download and run the setup.exe. There's no longer a need to uninstall previous version of Rubberduck prior to upgrading.
- The installer should no longer overwrite the
rubberduck.config
file. However, we still recommend backing the file up prior to upgrading. It can be found inC:\Users\[username]\AppData\Roaming\Rubberduck\rubberduck.config.
New Features
- Tons of new Code Inspections!
- Extract Method Refactoring #168
- Exposed the beta version of our Source Control API.
Enhancements
- Swapped out our home brewed parser for one powered by ANTLR.
- Enabled late binding of the
AssertClass
. #114 - The ToDo Explorer is now sortable (yay!). #161
- Better and more consistent UX. #171, #183, #195, #269
Bug Fixes
- #169 Fixed an issue that was causing dockable windows to crash and burn.
- #199 Running anything other than "All Tests" failed to update the Unit Testing window. Works great now.
Version 1.2 Pre-Release 2
There's no longer a need to uninstall prior to upgrading.
The installer also no longer overwrites the rubberduck.config
file, but we recommend backing it up anyway.
Version 1.2 Pre-Release
v1.2-pre.1 Version 1.2 pre-release build
v1.1
Installation
- Previous versions of Rubberduck need to be un-installed prior to installing the latest release.
- Be sure to back up the
rubberduck.config
file in the\AppData\Roaming\Rubberduck\
directory prior to installation. - If you had one of the v1.01-alpha releases installed, the configuration file will be broken. The easiest thing to do is let Rubberduck repair it with a default configuration then restore your settings manually. Either through the GUI or by manually editing the XML file.
New Features
- #101 - Added Unit Testing support for Access and Word in addition to Excel.
- #9 - No one likes editing XML files by hand. Added GUI for various add in settings.
Code Inspections/Analysis
Rubberduck now has the ability to help you write better/cleaner code by analyzing your code base and alerting you to potential issues. Only a handful have been implemented, but this will be an area of active development.
- #99 Function Returns An Implicit Variant
- #58 Use of Obsolete
Rem
syntax - #40 Parameter is Implicitly passed ByRef
- #15 Use Option Explicit
- #26 Separate Multiple declarations onto multiple lines
- #30 Variable type not declared
- Added Quick Fix option
Enhancements
- #65 - Better user experience and handling of a bad/missing configuration file. Per #131 a default configuration is used in either case.
Bug Fixes
v1.01-alpha2
v1.01-alpha
Testing some bug fixes and prototypes of some new features.
- Added prototype for UI for Saving TodoList settings.
- Added prototype for Code Inspections.
- Fixed an issue with the parser that was causing issues with refreshing the Code Explorer and Todo List.
- Miscellaneous bug fixes.
To install this version of the software, you must first uninstall any existing versions of Rubberduck from your machine via the Control Panel.
If you're using the Unit Test functionality, you will also need to update your reference to the *.dll in each of your projects.
Tools>>References>>Uncheck Rubberduck>>Ok
Tools>>References>>Re-Check Rubberduck>>Ok
Initial Release ver 1.0
- Unit Testing
- Todo List
- Code Explorer