« first day (631 days earlier)      last day (2549 days later) » 

12:01 AM
RELOAD!
[Hosch250/Rubberduck] 3 commits. 303 additions. 34 deletions.
[retailcoder/Rubberduck] 1 commit. 29 additions. 82 deletions.
[rubberduck-vba/Rubberduck] 9 commits. 29 issue comments. 10236 additions. 10498 deletions.
 
12:34 AM
@Mat'sMug sent you an email
 
Got it - dude that's friggin AWESOME!!
 
12:58 AM
@nolnefm @StackOverflow on @StackCodeReview we call these questions "zombies" :-)
@nolnefm @StackOverflow @StackCodeReview well, the unanswered ones at least
 
1:16 AM
I got a Tumbleweed badge just this week.
 
Aww
downloading media_iso.rar
hmm.. I can open the .chm, but can't read any topic
 
What's up?
@SimonForsberg The Tweeting Duck image disappeared :(
 
grr.. got nothing to open .rar files 7zipped. time to burn!
 
1:35 AM
@Mat'sMug What's up?
 
burning VB6SDK
 
Burning it?
 
to disc
 
To a disk?
And what are you doing to do with the VB6 SDK?
 
no idea
see if there's anything useful for Rubberduck in there
 
1:37 AM
Rubberduck can't run VB6, can it?
Doesn't it have to be a .NET project to include it?
 
oh, forgot the A
it's VBA6SDK
 
What version are we using?
 
VBA7
doesn't matter
 
Why would VBA6 have anything VBA7 doesn't?
Or are you suggesting we cater some features specifically to VBA6?
 
it's the SDK
like, I could make an application that's a VBA host
except... I'm not sure I want to do this on this machine
 
1:41 AM
Ohhh, you mean ... build our own IDE?
 
no
build a VBE host
 
OK, so what is a VBE host?
 
....well, Excel is one
AutoCAD is another
Sage300
 
OK.
So, how does that pertain to Rubberduck?
 
not sure
but it could shed some light on the VBE API
...and it's utterly cool, too :)
 
1:51 AM
[retailcoder/Rubberduck] retailcoder pushed 13 commits to CodeExplorer (only showing some of them below)
[retailcoder/Rubberduck] Hosch250 pushed commit e680e793 to CodeExplorer: Set adjustable button width in settings, use readonly commands
[retailcoder/Rubberduck] autoboosh pushed commit 888c0a11 to CodeExplorer: fix endOfLine should be replaced by endOfStatement everywhere (#1145)
[retailcoder/Rubberduck] autoboosh pushed commit 0ae919f0 to CodeExplorer: fix chained method calls should allow line continuation (#1145)
[retailcoder/Rubberduck] autoboosh pushed commit be130765 to CodeExplorer: first few vbaparser tests (#1145)
[retailcoder/Rubberduck] autoboosh pushed commit 82977388 to CodeExplorer: fix line continuations are allowed between the dictionary call '!' operator (#1145)
[retailcoder/Rubberduck] autoboosh pushed commit 46c06972 to CodeExplorer: switch to xpath for asserts (#1145)
[retailcoder/Rubberduck] autoboosh pushed commit f27a6219 to CodeExplorer: fix line continuation not allowed after member call '.' (#1145)
Merge pull request #1147 from autoboosh/fixeos

fix grammar line continuation issues + add first vbparser tests to prevent regressions
Merge pull request #50 from rubberduck-vba/next

sync with merged PR's in main repo
 
working on the resolver bug with @Pitterling's code. parser state has 2279 declarations.
aaaaand... exception trapped!
identifierContext.GetText() is returning Select. Interesting. That would match a built-in declaration.
let's see, what's context saying..
implicit call to lcRange, dot, implicit call to Range member.
it should be resolving to the built-in Range.Select method
parentType.ComponentName is "Excel"
parentType already resolved correctly to global class Range
hmm
is that a resolver bug, or a bug in the declarations of the ExcelObjectModel?
 
2:20 AM
meh, who burns CDs (or even has an optical drive)? Just Mount the ISO.
 
lol, I do :)
I don't have a VM.. never done that either
 
IIRC, Windows 8 has ISO mounting built-in.
 
yeah I can right-click and select "Mount"
 
And 7-zip can explore ISO without mounting.
7-zip can explore an xlsx too, and even explore the VBA.bin file inside the xlsx.
 
ok, but if I want to install the thing I need a VM, no?
 
2:25 AM
Just use the 7-zip Open-Inside context menu item.
Yeah, I'd install it on a VM.
 
and for that I need an OS, no?
 
Trial ISO OS would do.
But you can unzip the ISO with 7-zip, and you don't need to install anything to browse the CD.
 
I can do that already, I burned it, and have it mounted
There's a sample VB6 project :-)
 
There's an eval key in there.
And a Google of that key returns a github repo.
 
huh
 
 
@Mat'sMug it seems the API is unlocked with a key assigned to an API property, and the CHM has details of an Evaluation key.
 
I can't read anything in the chm
 
Windows 8?
 
10
 
OK, either you don't have a CHM viewer, or the CHM need to be marked as safe (under file properties)
 
2:49 AM
I mean, I can open it and see the topics list, but "open topic" doesn't do anything
 
I don't get these messages
 
OK, when I open mine, it creates a file in the same folder, so you need to get off read-only media.
 
I have the file in the same folder
 
On CD?
 
2:52 AM
lol, I burned the disc and put it in a case
right next to "Microsoft Visual Studio 6.0"
 
And did you right click the CHM in Explorer, and choose unblock.
?
 
huh? there's no "unblock" option
 
In file explorer, on the file properties dialog.
 
oh wow, that was it
I never knew about that checkbox
 
Yeah, you have to do it for a few file types.
 
2:56 AM
ok that's pretty cool
I'm looking at the VBA SDK documentation!
> Multithreaded Projects
TIL, VBA can do MT
 
IIRC, the unsafe marker is kept inside an NTFS Alternate stream, so the problem doesn't occur on FAT32 drives.
 
> Multithreading support was one of the most frequently requested enhancements to Microsoft Visual Basic for Applications version 5.0.
no shit
 
Only in hosts that support MT.
 
> The new MT Designer included with Microsoft Visual Basic for Applications version 6.0 allows users to create multithreaded projects that run as stand-alone DLLs.
one day you think you know everything there is to know about VBA
next day you realize you never knew anything
this means Rubberduck can possibly get loaded into VBA hosts that do support MT
in Rubberduck 12.0 we'll run the unit tests on separate VBA threads when the host supports it :)
 
and suddenly it gets utterly complicated
 
3:00 AM
The feature probably got removed in 7.x
 
@Vogel612 damn right
@ThunderFrame I don't think so. It's just that Office doesn't support MT VBA
well, AFAIK
 
3:17 AM
> Update: the exception was thrown in the resolver because of a bug in the ...`ExcelObjectModel` class, which had the `Select` member existing 3 times under a different `ParentDeclaration`, but under the same `QualifiedModuleName`. The entire workbook parses and resolves correctly now.

Next step, get it to parse *once* - that'll considerably improve overall performance :-)
[retailcoder/Rubberduck] retailcoder pushed commit d614aa53 to CodeExplorer: fixed bug in ExcelObjectModel causing InvalidOperationException in resolver. closes #1145
 
^^ @Mat'sMug shouldn't that go into next?
 
lol, watch
 
^^ :)
 
I think the wiki entry regarding PIA is wrong. After being convinced Windows Update had changed my TlbImp.exe, I inspected the CorelDRAW DLL in Rubberduck, and it seems I forgot to include the /primary switch.
But including the /primary switch requires a key file to sign the dll, and prove the dll was created by the original author of the TLB.
 
3:22 AM
so... if you're not Corel you can't make a CorelDRAW PIA that works?
 
[rubberduck-vba/Rubberduck] build for commit d614aa53 on unknown branch: AppVeyor build succeeded
 
You can't make a Primary dll, but you can make a DLL.
 
[rubberduck-vba/Rubberduck] retailcoder pushed commit c10bb34b to next: removed the possibility for RuntimeBinderException by reflecting on the context type to locate the method to use. Kept (dynamic) cast because deemed less expensive than refl
Merge pull request #50 from rubberduck-vba/next

sync with merged PR's in main repo
[rubberduck-vba/Rubberduck] retailcoder pushed commit d614aa53 to next: fixed bug in ExcelObjectModel causing InvalidOperationException in resolver. closes #1145
 
It's whether you choose to trust a non Primary IA.
 
Merge pull request #1148 from retailcoder/CodeExplorer

ExcelObjectModel + resolver fix
 
3:23 AM
But because we embed types, I don't think it matters.
I inspected the DLLs in RD, using ILDASM, and they all seem to be PIAs, presumably sourced from the vendors.
 
[rubberduck-vba/Rubberduck] build for commit f98aa570 on next: AppVeyor build succeeded
 
@ThunderFrame well... I wrote that one... I never did that
 
@ThunderFrame what's the commandbar id again for the play button?
 
3:39 AM
@Mat'sMug The parser seems to stop at Parsed the first time through, but goes to Ready after I refresh it.
 
parser isn't triggered at startup, it's only triggered by the VBProjects and VBComponents handlers ATM
and it's running twice
 
[Hosch250/Rubberduck] Hosch250 pushed 11 commits to BugBlipper (only showing some of them below)
[Hosch250/Rubberduck] autoboosh pushed commit 888c0a11 to BugBlipper: fix endOfLine should be replaced by endOfStatement everywhere (#1145)
[Hosch250/Rubberduck] autoboosh pushed commit 0ae919f0 to BugBlipper: fix chained method calls should allow line continuation (#1145)
[Hosch250/Rubberduck] autoboosh pushed commit be130765 to BugBlipper: first few vbaparser tests (#1145)
[Hosch250/Rubberduck] autoboosh pushed commit 82977388 to BugBlipper: fix line continuations are allowed between the dictionary call '!' operator (#1145)
[Hosch250/Rubberduck] autoboosh pushed commit 46c06972 to BugBlipper: switch to xpath for asserts (#1145)
[Hosch250/Rubberduck] autoboosh pushed commit f27a6219 to BugBlipper: fix line continuation not allowed after member call '.' (#1145)
[Hosch250/Rubberduck] autoboosh pushed commit 9934908a to BugBlipper: typo fix
 
@Mat'sMug Can you pull that in a special branch and check it out?
 
Merge pull request #1147 from autoboosh/fixeos

fix grammar line continuation issues + add first vbparser tests to prevent regressions
 
Nothing works yet, I just want feedback on the UI.
 
3:41 AM
[Hosch250/Rubberduck] Hosch250 pushed commit 2d5d501b to BugBlipper: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into BugBlipper
[Hosch250/Rubberduck] Hosch250 pushed commit 652be6c8 to BugBlipper: New Branch view
[Hosch250/Rubberduck] retailcoder pushed commit c10bb34b to BugBlipper: removed the possibility for RuntimeBinderException by reflecting on the context type to locate the method to use. Kept (dynamic) cast because deemed less expensive than reflection invok
 
Don't do it in Code Explorer, or it will accidentally get merged to Next, and I don't want that to happen yet.
 
Merge pull request #50 from rubberduck-vba/next

sync with merged PR's in main repo
[Hosch250/Rubberduck] retailcoder pushed commit d614aa53 to BugBlipper: fixed bug in ExcelObjectModel causing InvalidOperationException in resolver. closes #1145
Merge pull request #1148 from retailcoder/CodeExplorer

ExcelObjectModel + resolver fix
 
I'm going to go do the dishes, I'll be back in a couple hours.
 
[Hosch250/Rubberduck] Hosch250 pushed commit 6e5600ae to BugBlipper: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into BugBlipper
 
4:26 AM
@Hosch250 sounds like a lot of dishes.
 
@ThunderFrame ok so I have the CommandBarButton for ID 5415 / "Run Macro". how do I go about clicking it programmatically?
 
Get the CommandBarButton, then call the Execute method.
 
oh, duh
I have a FallbackApp implemented
all that's left to do is set the selection per the qualifiedMemberName parameter, and boom, unit tests will work in all VBE hosts
 
Do you persist the original codepane selection?
 
I can't assume the previous method is going to be in the same module...
 
4:35 AM
Sure, but can't you just remember which module and line(s) were selected, then reselect them?
 
1. Make it work
2. Make it right
 
Lol
1.5. Tweet that it works!
 
5:10 AM
@ThunderFrame well, first run I got a COMException and a blowing up host app
 
0.5. Boom.
2
 
hmm it's the _runButton.Execute(); line that blows up
ha, I think I know why
 
5:27 AM
Timer?
 
no
the ProcStartLine is before the method's signature
ugh
still blows up
 
Check the state is enabled before you execute? Maybe Rubberduck is blocking the execute?
Or sendkeys, F5
 
Hmm you click anywhere, you interfere with the test run.
 
@ThunderFrame 9 people, plus I was expecting to take my bath.
 
I think the test explorer having focus might be it
 
5:42 AM
Turns out I didn't take a bath, and we kind of were interrupted by siblings doing interesting things on the computer.
@Mat'sMug Did you check the Source Control view out?
 
Not yet, I'm trying to get FallbackHostApp to run unit tests. If this works, RD 2.0 will run tests in any host
 
NP.
 
Give me screenshots :-)
It's just the UI you wanted me to see right?
 
Not just now, that will take too much time.
I want you to see how parts of it interact.
Particularly the New Branch button and the buttons that adjust to fit the UI.
 
Ok. Crap it's already 1am
I'll pull it tomorrow promise
 
5:46 AM
NP, I've got more features coming for you to check out.
 
6:01 AM
I removed the @TestInitialize methods, and docked the test explorer. still no dice.
at least it doesn't blow up anymore
undocked does the same
 
[Hosch250/Rubberduck] Hosch250 pushed commit e3aa4184 to BugBlipper: Merge Branch grid
 
6:19 AM
[Hosch250/Rubberduck] Hosch250 pushed commit 01fb2d82 to BugBlipper: Delete Branch grid
 
6:33 AM
hmm.. interestingly, I'm getting the same automation error from VBA code
Application.VBE.ActiveCodePane.SetSelection 12,1,12,1 : Application.VBE.CommandBars(2).FindControl(Id:=5415).Execute
(immediate pane)
 
Just got home. I'll give it a go now
 
        public FallbackApp(VBE vbe)
        {
            _vbe = vbe;
            var mainCommandBar = _vbe.CommandBars[DebugCommandBarId];
            _runButton = (CommandBarButton)mainCommandBar.FindControl(Id: RunMacroCommand);
        }

        public void Run(QualifiedMemberName qualifiedMemberName)
        {

            var component = qualifiedMemberName.QualifiedModuleName.Component;
            var line = component.CodeModule.get_ProcBodyLine(qualifiedMemberName.MemberName, vbext_ProcKind.vbext_pk_Proc);
@ThunderFrame I'm going to comment-out the fallback app and commit, if you want to pick up where I'm going to leave it - it's time to go to bed here
 
[retailcoder/Rubberduck] retailcoder pushed commit a7b1ac47 to CodeExplorer: added FallbackApp; commented-out because, well, it blows up the host unfortunately. If anyone gets this to work, they get RD unit tests to work in any host.
 
I'm out
 
6:48 AM
Night. I'm leaving too.
 
@ThunderFrame SendKeys might work, haven't tried it yet
 
you have the wrong control
You're using Run Project
you need Run
ID is 186
 
7:15 AM
Sub test()

Dim cb As CommandBar
Dim cmd As CommandBarControl
Dim app As Excel.Application
Dim cp As VBIDE.CodePane

Set app = GetObject(, "Excel.Application")

Set cb = app.VBE.CommandBars("Debug")

app.VBE.ActiveVBProject.VBComponents("Module1").Activate

'Have to use AppActivate from Word, but probably don't need to from RD
AppActivate app.VBE.MainWindow.Caption
Set cp = app.VBE.ActiveCodePane
cp.SetSelection 11, 1, 11, 1

Set cmd = cb.FindControl(, 186)

cmd.Execute

'Return focus to Word's VBE
^That works from Word, running a proc in Excel
 
 
6 hours later…
1:02 PM
> CSV values are wrapped in double quotes if the value contains a comma or a double-quote CSV values that contain double-quotes, have the double quotes escaped with a leading double-quote CSV values that contain \r\n, have the \r\n replaced with \n HTML tries to be XHTML compliant HTML uses inline styles and nested DIVs in an effort to be compatible across email clients. HTML values are HTML encoded using WebUtility.HtmlEncode null values are encoded as NBSP. HTML and CSV don't yet...
have column headers, so they're next TODO.
[rubberduck-vba/Rubberduck] build for commit 5e0f54c3 on unknown branch: AppVeyor build succeeded
 
 
2 hours later…
2:38 PM
@ThunderFrame oh you gotta be kidding me!!
 
2:51 PM
@ThunderFrame ok, so ID 186 runs the tests without blowing up, but as I suspected the test results don't get picked up - everything passes and no message gets output
VBA breakpoints aren't hit either
 
 
1 hour later…
3:57 PM
hmm
the call isn't blocking, that's why
so the duration registered is only the 4-5ms it takes to issue the Execute call
and then the 2nd test doesn't run, but stops the first one instead
that's rather annoying
 
4:23 PM
it can't work
I'd need an AssertHandler per test method... but AssertHandler works because it's static
and well, the button click needs to be a blocking call, too.
 
[retailcoder/Rubberduck] retailcoder pushed commit 1009854e to CodeExplorer: documented why FallbackApp can't work :'(
> Here's a hacked together solution.

It works like this:
1. Generate VBA method that calculates which code paths are "alive"
2. Execute generated method in host application
3. Use result to comment out dead code
4. Pass processed code to normal parser

This code:

```
#Const DEBUG_ = True
#If DEBUG_ Then
Dim foo As Integer
#Else
Dim bar As Integer
#EndIf
```

Generates the following method:

```
Public Function Liveliness_2f91dcbd11204f7ba4c8dd2e645f3c10() As Boo
 
@Duga huh?
hey @awgaya
 
hi
 
> Well done @ThunderFrame! I'm merging the PR, but there will be a few changes needed (see commit comments)
Partial fix for project name sorting in Code Explorer

avoids unhandled exception of the Single method (because more than one
item returned by linq), and instead uses the First method.
Adds clipboard formats to CodeInspections

Adds ExportFormatter for converting jagged arrays into export formatted
string
Adds methods to ClipboardWriter for adding multiple formats to
clipboard.
HTML and CSV formats are WIP
[rubberduck-vba/Rubberduck] ThunderFrame pushed commit 1f41a584 to next: fixes conflixts
[rubberduck-vba/Rubberduck] ThunderFrame pushed commit 94aa9896 to next: Clipboard format tweaks
[rubberduck-vba/Rubberduck] ThunderFrame pushed commit a6bcb50b to next: Undoing prior rejected PR
[rubberduck-vba/Rubberduck] ThunderFrame pushed commit 5e0f54c3 to next: Undoing prior rejected PR2
Merge pull request #1149 from ThunderFrame/next

Adds HTML and CSV clipboard formats for CodeInspections copy
 
4:41 PM
@awgaya so, that would only work if the host app supports Application.Run, right?
 
yeah
 
it's a rather interesting approach ;-)
 
that and the run method has to support return values
the most lazy one :P
 
hmm
might be a bit too hacky though
 
[rubberduck-vba/Rubberduck] build for commit f737e14e on next: AppVeyor build succeeded
 
4:45 PM
yeah, the problem is that the evaluation rules are sometimes implementation defined so if we wrote an evaluator it wouldn't work in all cases either...
 
5:16 PM
@awgaya what do you mean?
IMO the hard part is to get the project-wide constant values, then we can run a first parse and implement a little interprerer that returns which lines to treat as whitespace in the "real" parse.. no?
 
Hi.
 
Hi!
 
How are things going?
 
Meh.. I wasted last night
 
I figured out some serious changes I should make to the Settings setup.
Mostly automated DI stuff.
 
5:29 PM
Cool
 
Trouble is getting an up-to-date branch without syncing directly to Next.
 
Merge next into your stuff?
 
That has merge conflicts. I want a fresh branch.
 
Better resolve them now than when you merge your changes later..
 
I'm just going to finish the source control and merge it, then refork.
 
5:34 PM
Why refork? You're asking for merge conflicts..
 
I'll trash this fork and refork so I'm brand-new-fresh.
 
5:59 PM
@Mat's Mug I thought I saw some places in the VBA spec where they mentioned that some things are implementation dependent
I've already written a small interpreter for literals + a few operators, I'll try and finish that one up then and push it to github as soon as it's done :)
 
6:10 PM
@awgaya sure, but failing to preprocess 2% of hosts is better than failing on everything we don't have PIA's for :-)
gtg, bbl
 
kk, cya
 
 
4 hours later…
9:49 PM
wow... German really can make long words..
Test Module Template -> Testmodulvorlage
 
> Right now translating multiline Strings is ... near impossible:

![multiline_failure](https://cloud.githubusercontent.com/assets/7288995/13375606/a7bb80d0-dda4-11e5-893e-093d23cc1c2a.png)

Add proper support for multiline Strings
> While Translating the last swoop of Changes I saw "Type" and "Module" at least thrice or so.

It might be interesting to find similar Words for Key-Maintenance. As such it might be helpful to support ordering the table alphabetically by Value and not by key
 
it's okay Duga...
 
> While Translating one might wonder how a certain phrase was translated.

It's important to be consistent and as such it helps if you can search for previous translations of the same word by checking through the previous values.
> Partially fixed for .2 Beta, carrying over into 1.0
 
10:17 PM
> Yep, agreed on all of the above. I kept seeing possible refactors (and bad variable names), and there are more fixes I have in mind, but I was primarily focusing on getting the data into HTML. Cross-client HTML is *hard*.

I still need to add headers (including translations), and handle formatting for numbers and dates. I'm planning on adding RTF and Spreadsheet XML, as extra formats actually make clients less dependent on the HTML.

Hopefully @Hosch250 can do some WPF magic and make some
 
10:28 PM
@Mat'sMug - Yay, so it runs... The mode of VBE will have switched to RunMode while the test procedure is running, (and presumably the state of the Run CommandBarButton will have changed), so you could perhaps wait until the mode has exited RunMode. That would at least let you know the duration of the test.
BTW - I spoke to the Lead Tester at work, he says we should absolutely record the start and end times for each test, as they're considered mandatory in a Test Execution Report (TER).
Also, what the heck was "Run Project" - Presumably that is for a Multi-threaded project?
 
10:49 PM
> @retailcoder does that window, but I can work on that after finish the SC window if he wants.
 
10:59 PM
> How is the interpreter going to be integrated into rubberduck? Is e.g. the DeclarationSymbolsListener going to give the interpreter an expression to evaluate and based on the result treat the code as dead/alive? Or should the interpreter use the approach mentioned in the last comment and simply comment out dead code?
 
11:26 PM
[Hosch250/Rubberduck] Hosch250 pushed commit d654c513 to BugBlipper: Some settings things, got to commit so I can switch branches
> @Hosch250 I'll be adding the richer copy functionality to all windows, so if we add an export/save button, a common export dlaiog would be ideal.
 
11:41 PM
> I was thinking of a "preparse" step, involving a dedicated listener/visitor, responsible only for telling which lines to be ignored by the "actual" parser. I'd prefer a non-obstructive solution; commenting-out users' code is less than ideal, it defeats the purpose of precompiler directives.

The listener (visitor?) is given a dictionary of constants and their respective values, adds any `#Const` it finds as the parse tree gets traversed, and then yeah, a visitor needs to be able to interpret
[Hosch250/Rubberduck] Hosch250 pushed commit e2df02fc to BugBlipper: Settings view is fully implemented in a beta sort of way.
 
@Vogel612 try 77,777 in German and you get siebenundsiebzigtausendsiebenhundertsiebenundsiebzig
3
 
seventyseventhousandsevenhundredandseventyseven
siebenundsiebzigtausendsiebenhundertsiebenundsiebzig isn't really much longer
 
11:58 PM
Except English uses spaces and maybe hyphens
 

« first day (631 days earlier)      last day (2549 days later) »