Skip to content
This repository was archived by the owner on Mar 8, 2026. It is now read-only.

Commit 2cf881a

Browse files
authored
Merge 0574202 into 1f1b1a3
2 parents 1f1b1a3 + 0574202 commit 2cf881a

32 files changed

Lines changed: 343 additions & 122 deletions

README.md

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,34 @@
11
<!-- ![banner](https://user-images.githubusercontent.com/5751684/113501222-8edfe880-94f1-11eb-99a9-64583e413ef3.png) -->
2-
[**Installing**](https://github.com/rubberduck-vba/Rubberduck/wiki/Installing)[Contributing](https://github.com/rubberduck-vba/Rubberduck/blob/next/CONTRIBUTING.md)[Attributions](https://github.com/rubberduck-vba/Rubberduck/blob/next/docs/Attributions.md)[Blog](https://rubberduckvba.blog)[Wiki](https://github.com/rubberduck-vba/Rubberduck/wiki)[rubberduckvba.com](https://rubberduckvba.com)
32

4-
<a href='https://ko-fi.com/N4N2IWEIG' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Support us on ko-fi.com' /></a>
3+
## Links
4+
5+
- [**Installing**](https://github.com/rubberduck-vba/Rubberduck/wiki/Installing)
6+
- [Contributing](https://github.com/rubberduck-vba/Rubberduck/blob/next/CONTRIBUTING.md)
7+
- [Attributions](https://github.com/rubberduck-vba/Rubberduck/blob/next/docs/Attributions.md)
8+
- [Wiki](https://github.com/rubberduck-vba/Rubberduck/wiki)
9+
- [Website](https://rubberduckvba.com)
10+
- [Blog](https://rubberduckvba.blog)
11+
- [Shop](https://ko-fi.com/rubberduckvba/shop)
512

6-
## Build Status
13+
<a href='https://ko-fi.com/N4N2IWEIG' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Support us on ko-fi.com' /></a>
714

8-
|Branch | Build Status | Release notes &amp; Download Links |
9-
|------------|--------------|-|
10-
| **main** | ![main branch build status][mainBuildStatus] | [latest release](https://github.com/rubberduck-vba/Rubberduck/releases/latest) |
11-
| **next** | ![next branch build status][nextBuildStatus] | [pre-releases](https://github.com/rubberduck-vba/Rubberduck/releases) |
15+
## Releases
1216

13-
[nextBuildStatus]:https://ci.appveyor.com/api/projects/status/we3pdnkeebo4nlck/branch/next?svg=true
14-
[mainBuildStatus]:https://ci.appveyor.com/api/projects/status/we3pdnkeebo4nlck/branch/main?svg=true
17+
- The [latest release](https://github.com/rubberduck-vba/Rubberduck/releases/latest)
18+
- See [all releases](https://github.com/rubberduck-vba/Rubberduck/releases) including pre-release tags
1519

1620
---
1721

1822
## [License (GPLv3)](https://github.com/rubberduck-vba/Rubberduck/blob/next/LICENSE)
1923

20-
Copyright &copy; 2014-2021 Rubberduck project contributors.
24+
Copyright &copy; 2014-2023 Rubberduck project contributors.
2125

2226
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
2327

2428
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.en.html) for more details.
2529

2630
---
2731

28-
## [JetBrains](https://www.jetbrains.com) | [ReSharper](https://www.jetbrains.com/resharper/)
29-
30-
[![JetBrains ReSharper logo](https://cloud.githubusercontent.com/assets/5751684/20271309/616bb740-aa58-11e6-91c9-65287b740985.png)](https://www.jetbrains.com/resharper/)
31-
32-
Since the project's early days, JetBrains' Open-Source team has been supporting Rubberduck with free OSS licenses for all core contributors - and we deeply thank them for that. ReSharper has been not only a tool we couldn't do without; it's been an inspiration, the ultimate level of polished perfection to strive for in our own IDE add-in project. So just like you're missing out if you write VBA and you're not using Rubberduck, you're missing out if you write C# and aren't using ReSharper.
33-
34-
<sub>Note: Rubberduck is not a JetBrains product. JetBrains does not contribute and is not affiliated to the Rubberduck project in any way.</sub>
35-
36-
---
37-
3832
## What is Rubberduck?
3933

4034
The Visual Basic Editor (VBE) has stood still for over 20 years, and there is no chance a first-party update to the legacy IDE ever brings it up to speed with modern-day tooling. Rubberduck aims to bring the VBE into this century by doing exactly that.
@@ -43,11 +37,11 @@ Read more about contributing here:
4337

4438
[![contribute!](https://user-images.githubusercontent.com/5751684/113513709-071dcc80-9539-11eb-833d-d21532065306.png)](https://github.com/rubberduck-vba/Rubberduck/blob/next/CONTRIBUTING.md)
4539

46-
The add-in has *many* features - below is a quick overview.
40+
The add-in has *many* features - below is a quick overview. See https://rubberduckvba.com/features for more details.
4741

4842
### Enhanced Navigation
4943

50-
The Rubberduck *command bar* displays docstring for the current member
44+
The Rubberduck *command bar* displays docstring for the current member.
5145

5246
![command bar](https://user-images.githubusercontent.com/5751684/113501975-25fb6f00-94f7-11eb-9189-fcf2a0dd98da.png)
5347

@@ -77,7 +71,7 @@ Special comments that become a game changer with Rubberduck processing them: org
7771

7872
### More?
7973

80-
Of course there's more! There's tooling to help synchronizing the project with files in a folder (for source/version control), some auto-completion features like self-closing parentheses and quotes; there's a regular expression assistant, a replacement for the VBE's *add/remove references* dialog, and so many other things to discover, and yet even more to implement.
74+
Of course there's more! There's tooling to help synchronizing the project with files in a folder (useful for source/version control!), some auto-completion features like self-closing parentheses and quotes; there's a regular expression assistant, a replacement for the VBE's *add/remove references* dialog, and so many other things to discover, and yet even more to implement.
8175

8276
---
8377

@@ -93,3 +87,25 @@ Rubberduck isn't a lightweight add-in and consumes a large amount of memory. So
9387
Join us on our [Discord server](https://discord.gg/5Nbb8j6R) for support, questions, contributions, or just to come and say hi!
9488

9589
For more information please see [Getting Started](https://github.com/rubberduck-vba/Rubberduck/blob/next/docs/GettingStarted.md) in the project's wiki, and follow the project's blog for project updates and advanced VBA OOP reading material.
90+
91+
---
92+
93+
## Roadmap
94+
95+
After over two years without an "official" new release, Rubberduck version jumped from 2.5.2 to 2.5.9, adding minor but interesting features to an already impressive array.
96+
97+
### The road ahead
98+
99+
Rubberduck 2.x is now planned to end at 2.5.9.x, perhaps with a number of small revisions and bug fixes, but nothing major should be expected, as the developers' attention is shifting to the 3.0 project:
100+
101+
- Parsing and understanding VBA code is moving to a language (LSP) server
102+
- We're making a new editor _inside_ (for now) the Visual Basic Editor that will be the LSP client
103+
- Baseline server-side feature set for 3.0 is everything 2.5.9 does
104+
- Baseline client-side feature set for 3.0 is the 2.5.x UI (perhaps tweaked a bit/lot) hosted in the Rubberduck Editor
105+
106+
Fully controlling the editor opens Rubberduck to everything we ever dreamed of:
107+
108+
- In-editor syntax and static code analysis reporting and quick-fixing
109+
- Full editor theming, custom syntax highlighting
110+
111+
See the [Rubberduck3](https://github.com/rubberduck-vba/Rubberduck3) repository for more information.

Rubberduck.Core/Rubberduck.Core.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
<PackageReference Include="NLog.Schema">
8585
<Version>4.5.10</Version>
8686
</PackageReference>
87+
<PackageReference Include="Octokit" Version="6.0.0" />
8788
<PackageReference Include="System.IO.Abstractions" Version="12.2.1" />
8889
<PackageReference Include="System.ValueTuple">
8990
<Version>4.5.0</Version>

Rubberduck.Core/UI/About/AboutControl.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<ResourceDictionary Source="../Styles/DefaultStyle.xaml"/>
1414
</ResourceDictionary.MergedDictionaries>
1515

16-
<BitmapImage x:Key="RD" UriSource="pack://application:,,,/Rubberduck.Resources;component/Rubberduck.png" />
16+
<BitmapImage x:Key="RD" UriSource="pack://application:,,,/Rubberduck.Resources;component/Rubberduck_Banner.png" />
1717
<Style x:Key="NormalLabel" TargetType="TextBlock">
1818
<Style.Setters>
1919
<Setter Property="FontFamily" Value="Segoe UI" />
@@ -76,7 +76,7 @@
7676
<RowDefinition Height="Auto"/>
7777
</Grid.RowDefinitions>
7878

79-
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Margin="10">
79+
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Margin="10" BorderThickness="0,1" BorderBrush="Black">
8080
<Image Source="{StaticResource RD}" Stretch="Uniform" />
8181
</Border>
8282
<Border Grid.Row="1" Grid.Column="0" Style="{StaticResource SectionBorder}">

Rubberduck.Core/UI/CodeExplorer/CodeExplorerControl.xaml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@
148148
<MenuItem Header="{Resx ResxName=Rubberduck.Resources.CodeExplorer.CodeExplorerUI, Key=CodeExplorer_AddTemplatesSubMenu}" IsEnabled="{Binding AnyTemplatesCanExecute}">
149149
<MenuItem.ItemsSource>
150150
<CompositeCollection>
151-
<CollectionContainer Collection="{Binding Source={DynamicResource BuiltInTemplatesViewSource}}" />
152-
<CollectionContainer Collection="{Binding Source={DynamicResource UserDefinedTemplatesViewSource}, Mode=OneWay}" />
151+
<CollectionContainer Collection="{Binding Source={StaticResource BuiltInTemplatesViewSource}}" />
152+
<CollectionContainer Collection="{Binding Source={StaticResource UserDefinedTemplatesViewSource}, Mode=OneWay}" />
153153
</CompositeCollection>
154154
</MenuItem.ItemsSource>
155155
<MenuItem.ItemContainerStyle>
@@ -159,7 +159,7 @@
159159
<Setter Property="ToolTip" Value="{Binding Description}" />
160160
<Setter Property="CommandParameter">
161161
<Setter.Value>
162-
<MultiBinding Converter="{DynamicResource TemplateCommandParameterToTuple}">
162+
<MultiBinding Converter="{StaticResource TemplateCommandParameterToTuple}">
163163
<Binding Path="Name" />
164164
<Binding Path="DataContext.SelectedItem" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" />
165165
</MultiBinding>
@@ -182,7 +182,7 @@
182182
<Setter Property="BorderThickness" Value="0" />
183183
</Style>
184184

185-
<Style x:Key="ToolbarImageOpacity" TargetType="Image" BasedOn="{DynamicResource ToolbarIconStyle}">
185+
<Style x:Key="ToolbarImageOpacity" TargetType="Image" BasedOn="{StaticResource ToolbarIconStyle}">
186186
<Setter Property="Margin" Value="0" />
187187
<Style.Triggers>
188188
<Trigger Property="IsEnabled" Value="False">
@@ -355,27 +355,27 @@
355355
<MenuItem.Items>
356356
<MenuItem IsCheckable="True" Header="8" Style="{DynamicResource MenuItemStyle}">
357357
<MenuItem.IsChecked>
358-
<Binding Path="FontSize" Converter="{DynamicResource BoolToDouble}" Mode="TwoWay" ConverterParameter="8" />
358+
<Binding Path="FontSize" Converter="{StaticResource BoolToDouble}" Mode="TwoWay" ConverterParameter="8" />
359359
</MenuItem.IsChecked>
360360
</MenuItem>
361361
<MenuItem IsCheckable="True" Header="10" Style="{DynamicResource MenuItemStyle}">
362362
<MenuItem.IsChecked>
363-
<Binding Path="FontSize" Converter="{DynamicResource BoolToDouble}" Mode="TwoWay" ConverterParameter="10" />
363+
<Binding Path="FontSize" Converter="{StaticResource BoolToDouble}" Mode="TwoWay" ConverterParameter="10" />
364364
</MenuItem.IsChecked>
365365
</MenuItem>
366366
<MenuItem IsCheckable="True" Header="12" Style="{DynamicResource MenuItemStyle}">
367367
<MenuItem.IsChecked>
368-
<Binding Path="FontSize" Converter="{DynamicResource BoolToDouble}" Mode="TwoWay" ConverterParameter="12" />
368+
<Binding Path="FontSize" Converter="{StaticResource BoolToDouble}" Mode="TwoWay" ConverterParameter="12" />
369369
</MenuItem.IsChecked>
370370
</MenuItem>
371371
<MenuItem IsCheckable="True" Header="14" Style="{DynamicResource MenuItemStyle}">
372372
<MenuItem.IsChecked>
373-
<Binding Path="FontSize" Converter="{DynamicResource BoolToDouble}" Mode="TwoWay" ConverterParameter="14" />
373+
<Binding Path="FontSize" Converter="{StaticResource BoolToDouble}" Mode="TwoWay" ConverterParameter="14" />
374374
</MenuItem.IsChecked>
375375
</MenuItem>
376376
<MenuItem IsCheckable="True" Header="16" Style="{DynamicResource MenuItemStyle}">
377377
<MenuItem.IsChecked>
378-
<Binding Path="FontSize" Converter="{DynamicResource BoolToDouble}" Mode="TwoWay" ConverterParameter="16" />
378+
<Binding Path="FontSize" Converter="{StaticResource BoolToDouble}" Mode="TwoWay" ConverterParameter="16" />
379379
</MenuItem.IsChecked>
380380
</MenuItem>
381381
</MenuItem.Items>
@@ -419,7 +419,7 @@
419419
Background="{DynamicResource BackgroundWhiteBrush}"
420420
HorizontalContentAlignment="Stretch"
421421
ItemsSource="{Binding Projects}"
422-
ItemContainerStyle="{DynamicResource TreeViewContainerStyle}"
422+
ItemContainerStyle="{StaticResource TreeViewContainerStyle}"
423423
FontSize="{Binding FontSize, Mode=OneWay}"
424424
BorderThickness="0,1"
425425
VirtualizingPanel.IsVirtualizing="False"
@@ -455,7 +455,7 @@
455455
<MenuItem Header="{Resx ResxName=Rubberduck.Resources.CodeExplorer.CodeExplorerUI, Key=CodeExplorer_Annotate}" IsEnabled="{Binding CanBeAnnotated}">
456456
<MenuItem.ItemsSource>
457457
<CompositeCollection>
458-
<CollectionContainer Collection="{Binding Source={DynamicResource AnnotationsViewSource}}" />
458+
<CollectionContainer Collection="{Binding Source={StaticResource AnnotationsViewSource}}" />
459459
</CompositeCollection>
460460
</MenuItem.ItemsSource>
461461
<MenuItem.ItemContainerStyle>
@@ -464,15 +464,15 @@
464464
<Setter Property="Header" Value="{Binding Path=., Converter={StaticResource AnnotationToCodeString}}" />
465465
<Setter Property="CommandParameter">
466466
<Setter.Value>
467-
<MultiBinding Converter="{DynamicResource AnnotateDeclarationCommandParameterToTuple}">
467+
<MultiBinding Converter="{StaticResource AnnotateDeclarationCommandParameterToTuple}">
468468
<Binding Path="." />
469469
<Binding Path="DataContext.SelectedItem" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" />
470470
</MultiBinding>
471471
</Setter.Value>
472472
</Setter>
473473
<Setter Property="Visibility">
474474
<Setter.Value>
475-
<MultiBinding Converter ="{DynamicResource AnnotateDeclarationCommandVisibility}">
475+
<MultiBinding Converter="{StaticResource AnnotateDeclarationCommandVisibility}">
476476
<Binding Path="." />
477477
<Binding Path="DataContext.SelectedItem" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" />
478478
</MultiBinding>
@@ -595,9 +595,9 @@
595595
</ContextMenu>
596596
</TreeView.ContextMenu>
597597
<TreeView.ItemTemplate>
598-
<HierarchicalDataTemplate DataType="codeExplorer:ICodeExplorerNode" ItemsSource="{Binding Children}" ItemContainerStyle="{DynamicResource TreeViewContainerStyle}">
598+
<HierarchicalDataTemplate DataType="codeExplorer:ICodeExplorerNode" ItemsSource="{Binding Children}" ItemContainerStyle="{StaticResource TreeViewContainerStyle}">
599599
<HierarchicalDataTemplate.Resources>
600-
<Style x:Key="TreeViewItemStyleModified" TargetType="{x:Type TextBlock}" BasedOn="{DynamicResource TreeViewItemStyle}">
600+
<Style x:Key="TreeViewItemStyleModified" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource TreeViewItemStyle}">
601601
<Setter Property="Text" Value="{Binding Name}" />
602602
<Style.Triggers>
603603
<DataTrigger Binding="{Binding ElementName=DisplaySignatures, Path=IsChecked}" Value="True">
@@ -611,7 +611,7 @@
611611
<Image Style="{DynamicResource ToolbarIconStyle}"
612612
ToolTip="{Binding Converter={StaticResource DeclarationTypeNameConverter}}">
613613
<Image.Source>
614-
<MultiBinding Converter="{DynamicResource NodeToIcon}">
614+
<MultiBinding Converter="{StaticResource NodeToIcon}">
615615
<MultiBinding.Bindings>
616616
<Binding RelativeSource="{RelativeSource Self}" Path="DataContext"/>
617617
<Binding Path="Declaration" />
@@ -650,7 +650,7 @@
650650
</Grid.ColumnDefinitions>
651651
<Image Grid.Column="0" Style="{DynamicResource ToolbarIconStyle}">
652652
<Image.Source>
653-
<MultiBinding Converter="{DynamicResource NodeToIcon}">
653+
<MultiBinding Converter="{StaticResource NodeToIcon}">
654654
<MultiBinding.Bindings>
655655
<Binding Path="SelectedItem"/>
656656
<Binding Path="SelectedItem.Declaration" />

Rubberduck.Core/UI/CodeMetrics/CodeMetricsControl.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,15 @@
7272
</Style>
7373
</HierarchicalDataTemplate.ItemContainerStyle>
7474
<HierarchicalDataTemplate.Resources>
75-
<Style x:Key="TreeViewItemStyleModified" TargetType="{x:Type TextBlock}" BasedOn="{DynamicResource TreeViewItemStyle}">
75+
<Style x:Key="TreeViewItemStyleModified" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource TreeViewItemStyle}">
7676
<Setter Property="Text" Value="{Binding NameWithSignature}" />
7777
</Style>
7878
</HierarchicalDataTemplate.Resources>
7979
<StackPanel Orientation="Horizontal">
8080
<Grid>
8181
<Image Style="{DynamicResource ToolbarIconStyle}">
8282
<Image.Source>
83-
<MultiBinding Converter="{DynamicResource NodeToIcon}">
83+
<MultiBinding Converter="{StaticResource NodeToIcon}">
8484
<MultiBinding.Bindings>
8585
<Binding RelativeSource="{RelativeSource Self}" Path="DataContext"/>
8686
<Binding Path="Declaration" />

0 commit comments

Comments
 (0)