You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+97-7Lines changed: 97 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -81,17 +81,19 @@ LibGit2Sharp is the library that has allowed us to integrate Git right into the
81
81
82
82
Which basically means it's a reimplementation of Git in C. It also [happens to be the technology Microsoft uses for their own Git integration with Visual Studio](http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx).
83
83
84
-
###[WPF Localization Using RESX Files](http://www.codeproject.com/Articles/35159/WPF-Localization-Using-RESX-Files)
84
+
###[AvalonEdit](http://avalonedit.net)
85
85
86
-
This library makes localizing WPF applications at runtime using resx files a breeze. Thank you [Grant Frisken](http://www.codeproject.com/script/Membership/View.aspx?mid=1079060)!
86
+
Source code looks a lot better with syntax highlighting, and AvalonEdit excels at it.
87
87
88
-
> Licensed under [The Code Project Open License](http://www.codeproject.com/info/cpol10.aspx) with the [author's permission](http://www.codeproject.com/Messages/5272045/Re-License.aspx) to re-release under the GPLv3.
88
+
> AvalonEdit is a WPF-based text editor component. It was written by [Daniel Grunwald](https://github.com/dgrunwald) for the [SharpDevelop](http://www.icsharpcode.net/OpenSource/SD/) IDE. Starting with version 5.0, AvalonEdit is released under the [MIT license](http://opensource.org/licenses/MIT).
89
89
90
-
###[Using Raw Input from C# to handle multiple keyboards](http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard)
90
+
We're currently only using a tiny bit of this code editor's functionality (more to come!).
91
+
92
+
###[WPF Localization Using RESX Files](http://www.codeproject.com/Articles/35159/WPF-Localization-Using-RESX-Files)
91
93
92
-
A library using the Raw Input API for reacting to low level keyboard/mouse events.
94
+
This library makes localizing WPF applications at runtime using resx files a breeze. Thank you [Grant Frisken](http://www.codeproject.com/script/Membership/View.aspx?mid=1079060)!
93
95
94
-
> Licensed under [The Code Project Open License](http://www.codeproject.com/info/cpol10.aspx).
96
+
> Licensed under [The Code Project Open License](http://www.codeproject.com/info/cpol10.aspx) with the [author's permission](http://www.codeproject.com/Messages/5272045/Re-License.aspx) to re-release under the GPLv3.
95
97
96
98
##Icons
97
99
@@ -107,4 +109,92 @@ If you can't or don't want to provide attribution, please [purchase a royalty-fr
Icons in the `./Resources/Custom/` directory were created by (or modified using elements from) the SharpDevelop icon set licensed under the [MIT license](https://opensource.org/licenses/MIT).
112
+
Icons in the `./Resources/Custom/` directory were created by (or modified using elements from) the SharpDevelop icon set licensed under the [MIT license](https://opensource.org/licenses/MIT).
Since the project's early days, JetBrains' Open-Source team has been supporting Rubberduck - 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.
121
+
122
+
<sub>Note: Rubberduck is not a JetBrains product. JetBrains does not contribute and is not affiliated to the Rubberduck project in any way.</sub>
123
+
124
+
---
125
+
126
+
# Overview
127
+
128
+
The first thing you will notice of Rubberduck is its commandbar and menus; Rubberduck becomes part of the VBE, but at startup you'll notice almost everything is disabled, and the Rubberduck commandbar says "Pending":
129
+
130
+

131
+
132
+
This button is how Rubberduck keeps in sync with what's in the IDE: when it's Rubberduck itself making changes to the code, it will refresh automatically, but if you make changes to the code and then want to use Rubberduck features, you'll need Rubberduck to *parse* the code first.
133
+
134
+
The status label will display various steps:
135
+
136
+
-**Loading declarations**: Rubberduck noticed new project references and is retrieving information from the COM type libraries.
137
+
-**Parsing**: Rubberduck is creating a parse tree for each new module, and/or updating the parse trees for the modified ones.
138
+
-**Resolving declarations**: The parse trees are being traversed to identify all declarations (variables, procedures, parameters, locals, ...line labels, *everything*).
139
+
-**Resolving references**: The parse trees are being traversed again, this time to locate all identifier references and resolve them all to a specific declaration.
140
+
-**Inspecting**: At this point most features are enabled already; Rubberduck is running its inspections and displaying the results in the *inspection results* toolwindow.
141
+
142
+
That's if everything goes well. Rubberduck assumes the code it's parsing is valid, compilable code that VBA itself can understand.
143
+
144
+
It's possible you encounter (or write!) code that VBA has no problem with, but that Rubberduck's parser can't handle. When that's the case the Rubberduck commandbar will feature an "error" button:
145
+
146
+

147
+
148
+
Clicking the button brings up a tab in the *Search Results* toolwindow, from which you can double-click to navigate to the exact problematic position in the code:
149
+
150
+

151
+
152
+
The *Code Explorer* will also be displaying the corresponding module node with a red cross icon:
You'll find the *Code Explorer* under the *Navigate* menu. By default the Ctrl+R hotkey to display it instead of the VBE's own *Project Explorer*. The treeview lists not only modules, but also every single one of their members, with their signatures if you want. And you can make it arrange your modules into folders, simply by adding a `@Folder("Parent.Child")` annotation/comment to your modules:
157
+
158
+

159
+
160
+
The *inspection results* toolwindow can be displayed by pressing Ctrl+Shift+i (default hotkey), and allows you to double-click to navigate all potential issues that Rubberduck found in your code.
Rubberduck also features a port of the popular "Smart Indenter" add-in (now supports 64-bit hosts, and with a few bugfixes on top of that!), so you can turn this:
165
+
166
+
````vb
167
+
SubDoSomething()
168
+
WithActiveCell
169
+
With.Offset(1,2)
170
+
If.value>100Then
171
+
MsgBox"something"
172
+
Else
173
+
MsgBox"something else"
174
+
EndIf
175
+
EndWith
176
+
EndWith
177
+
EndSub
178
+
````
179
+
180
+
Into this:
181
+
182
+
````vb
183
+
SubDoSomething()
184
+
WithActiveCell
185
+
With.Offset(1,2)
186
+
If.value>100Then
187
+
MsgBox"something"
188
+
Else
189
+
MsgBox"something else"
190
+
EndIf
191
+
EndWith
192
+
EndWith
193
+
EndSub
194
+
````
195
+
196
+
...with a single click.
197
+
198
+
---
199
+
200
+
There's *quite a lot* to Rubberduck, the above is barely even a "quick tour"; the project's [website](http://www.rubberduckvba.com/) lists all the features, and the [wiki](https://github.com/rubberduck-vba/Rubberduck/wiki) will eventually document everything there is to document. Feel free to poke around and break things and [request features / create new issues](https://github.com/rubberduck-vba/Rubberduck/issues/new) too!
0 commit comments