Skip to content

Releases: rubberduck-vba/Rubberduck

ParameterCanBePassedByVal quickfix and RemoveParametersRefactoring hotfix

08 Jul 06:24
Compare
Choose a tag to compare

This version fixes the following (minor) issues:

  • Quickfix for inspection result "Parameter can be passed by value" no longer breaks code when parameter is explicitly passed by reference (previous 1.4 releases would result in a parameter with both ByRef and ByVal modifiers).
  • "Remove parameters" refactoring no longer allows breaking the code by removing the last parameter of a Property Let or Property Set class member.
  • Added a few French translations that were missing, in the ToDo Exporer feature.

Installation

  • If this is a new install, simply download and run the setup executable.
  • If you already have a previous version of Rubberduck, please uninstall it before proceeding; this installer will not automatically remove a previous installed version.
  • If you're running an anti-virus software, you may need to authorize this executable to run on your computer.
  • Administrative privileges are required for proper registration of the COM-visible API that enables unit testing and other API's.

Installation will register the add-in for the administrator account. If you want to use Rubberduck from a non-admin account, you need to run the following PowerShell commands to create the registry keys for your user:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

New-Item -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Force

New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Name Description -PropertyType String -Value 'Rubberduck'

New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Name FriendlyName -PropertyType String -Value 'Rubberduck'

New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Name LoadBehavior -PropertyType DWord -Value 3

See version 1.4 release notes for more information.

Cancel Rename and Resolver Hotfix

05 Jul 06:40
Compare
Choose a tag to compare

This release fixes an issue with cancelling the Rename dialog which, depending on how the refactoring was invoked, could lead to crashing Rubberduck and the VBE.

It also fixes an issue with the resolver, involving ambiguous identifiers (i.e. same name) inside a returning member (i.e. Function or Property Get members).

This code now correctly resolves all Foo's:

Function Foo() As Integer
    With New Foo
        With .Foo
            .Foo = 42
        End With
        Foo = .Foo.Foo
    End With
End Function

Installation

  • If this is a new install, simply download and run the setup executable.
  • If you already have a previous version of Rubberduck, please uninstall it before proceeding; this installer will not automatically remove a previous installed version.
  • If you're running an anti-virus software, you may need to authorize this executable to run on your computer.
  • Administrative privileges are required for proper registration of the COM-visible API that enables unit testing and other API's.

See version 1.4 release notes for more information.

Resolver Hotfix

03 Jul 05:55
Compare
Choose a tag to compare

This release fixes a number of resolver issues:

  • #677 Shorthand notation for accessing string-indexed default property (rs!Name) is no longer a problem.
  • #676 Fixed grammar and rebuilt parser to pick up rs!Name as a member call. This fixes a false positive with the "type hint usage" inspection, since the grammar was picking them up as type hints.
  • Fixed an issue involving With blocks, where the qualifier and its type were being referenced at the same Selection coordinates, causing an InvalidOperationException when FindAllReferences was being launched from that selection.

Installation

  • If this is a new install, simply download and run the setup executable.
  • If you already have a previous version of Rubberduck, please uninstall it before proceeding; this installer will not automatically remove a previous installed version.
  • If you're running an anti-virus software, you may need to authorize this executable to run on your computer.
  • Administrative privileges are required for proper registration of the COM-visible API that enables unit testing and other API's.

See version 1.4 release notes for more information.

Rubberduck 1.4

29 Jun 16:54
Compare
Choose a tag to compare

This version introduces a number of new features, and addresses a number of important and/or annoying bugs and/or issues, notably:

  • Fixed memory leak / Excel crashing on exit
  • Parser/resolver now displays a progress status instead of just freezing up the IDE
  • Code Explorer parses asynchronously, without blocking the IDE
  • Code Inspections run asynchronously as well*

*Note: modifying the code while inspections are running can (read: will) throw off the navigation of issues, and can lead to unexpected results when applying quick-fixes.

Installation

  • If this is a new install, simply download and run the setup executable.
  • If you already have a previous version of Rubberduck, please uninstall it before proceeding; this installer will not automatically remove a previous installed version.
  • If you're running an anti-virus software, you may need to authorize this executable to run on your computer.
  • Administrative privileges are required for proper registration of the COM-visible API that enables unit testing and other API's.

New Features

  • Form designer context menu now enables refactor/rename on form controls
  • Project Explorer context menu now includes items from the Code Explorer context menu
  • Navigation
    • Go to implementation: finds all implementations of an implemented interface class, or of an implemented interface method.
    • Find symbol: search for and navigate to any identifier.
  • Refactorings
    • Remove parameters: remove unused parameters from a procedure's signature, and ripple to all call sites.
    • Reorder parameters: change the order of parameters in a procedure's signature, and ripple to all call sites.

Beta Features

  • GitHub-Integrated Source Control: it's here, it works. It's just not as perfect as we'd like it to be, so we're calling it a "beta feature". Works both locally & remotely.

Source Control API

  • Licensing

    In order to allow you to use the Source Control API under the MIT license and stay in compliance with the GPL license of the overall project, we have to provide a separate distribution. If you want to license code you write using SC API under anything other than the GPL, you'll need to download the Rubberduck.SourceControl.zip. If you're okay with with the GPL license, then all you need is the Setup.exe file.

  • Changes

    There were breaking changes to the library between RD v1.22 and v1.4. Please see the Source Control API change log for details.

Code Inspections HotFix

05 May 03:02
Compare
Choose a tag to compare
Pre-release

This release is a hotfix release that addresses the code inspections regression bugs of 1.3, more specifically:

  • #431 ObsoleteCallInspection throwing an ArgumentNullException
  • #432 to #438 QuickFixes throwing a NullReferenceException

Also... #430 variables in Input# and Line Input# statements are now considered as assigned.

Also, added more communities and contributors to the about box: many thanks to @rossknudsen for his hard work on the InnoSetup script that unified the installers!

Still marking as pre-release, for the reasons described in this Rubberduck News entry


This installer also addresses #440, which means the default install folder has changed yet again, hopefully for the last time.

1.3

04 May 04:34
Compare
Choose a tag to compare
1.3 Pre-release
Pre-release

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:

"buzz" referenced on lines 12 and 16; refactor/rename prompts for a new name

This version introduces a context menu in the code pane and Code Explorer:

code pane context menu
code explorer context menu

The options dialog had a facelift:

new Rubberduck options dialog

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

31 Mar 22:51
Compare
Choose a tag to compare

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:

'Rubberduck' could not be loaded. Remove it from the list of available add-ins?

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

17 Mar 05:20
Compare
Choose a tag to compare

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):

add-in could not be loaded

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)

04 Mar 20:57
Compare
Choose a tag to compare

(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 in C:\Users\[username]\AppData\Roaming\Rubberduck\rubberduck.config.

New Features

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

25 Feb 17:08
Compare
Choose a tag to compare
Pre-release

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.