« first day (284 days earlier)      last day (2896 days later) » 
00:00 - 17:0017:00 - 00:00

5:00 PM
> that should be it. how isn't regasm.exe finding the assembly?!
> the cmd window is running with admin privileges right?
> Sounds dumb, but have you tried not using the `%HOMEPATH%` environment variable?

*Grasping at straws* :cry:
> Argh here's what I just tried:

![image](https://cloud.githubusercontent.com/assets/6598675/6692867/5e434258-cc9d-11e4-8192-13fc6d9ec74b.png)

This is me trying as admin:

![image](https://cloud.githubusercontent.com/assets/6598675/6692903/903974ee-cc9d-11e4-9071-df523b0bb515.png)

Progress!
> the warning is normal. launch excel now, I'm expecting it to work! :)
> F YAAAAAAA!

![jackpotttttttttt](https://cloud.githubusercontent.com/assets/6598675/6692990/23f68424-cc9e-11e4-91d8-4151b8d36895.png)
> (where's the "like" button?) :+1:
> looks like there's still a bit of work/testing to do with the registration of the x64 install.
> @retailcoder perhaps there's an issue with the *.tlb file provided with the installer? Or the keys perhaps?
 
5:15 PM
Oh god. I've just entered the realm of circular references in VBA...
Private Type TTreenode
    Children
    Parent
    Siblings
End Type
 
> Has to be the keys... the tlb is only for the unit testing. But then I got the keys from regasm /regfile off the very last build... could I have accidentally rebuilt the dll when building the installer? Hmmm....
 
*it's actually for everything we're making COM-visible... including the SC API
Fixed
 
> Yes this is a highly desirable feature for me. #1 on my list :) I have hundreds of one- or two-letter procedure names and variable names that need to be (safely) renamed to something meaningful.
 
5:30 PM
@Mat'sMug What's fixed? I'm waiting for all the 2013/64 issues to start flowing in.
@Duga Oh my...
 
> @christophocles it's number 1 on my list as well! ;)
 
That's it. @RubberDuck you started the SC integration?
 
Barely.
What's it? I'm so confused.
 
I'll be working on the grammar rebuild and refactor/rename
 
Okay. Sounds like a plan.
Thanks for making the pretty GUI for me to work with. =;)-
 
5:35 PM
I couldn't resist making it!
 
> I am a C# novice but I have many years of VBA experience. I can also test 32-bit Office 2013
 
@Duga Fork buddy, fork!!
@SimonAndréForsberg @Duga is handling Rubberduck releases very well. I hope your server isn't steaming too much!
3
 
@Mat'sMug I'll catch up with them as soon as I can clean up the build instructions.
 
@RubberDuck Adding the regasm.exe fix?
 
Huh? No.... Maybe.
I was thinking of the mess where the solution doesn't like to build if you don't have InstallSheild LE installed.
 
5:41 PM
Oh. Just add it as a requirement then
 
But yeah, the dev instructions need to include proper registration of the x64 environment.
Which, you seem to know how to do now. =;)=
Woah! My goatee's getting bigger.... ^
 
Let's remove the .reg files from the repo. They're just misleading.
lol
 
I didn't do that yet?
Oops.
Meant to.
 
@Mat'sMug I'm doing just fine, thanks!
 
Dev registration is as simple as creating the addins/addins64 key for Rubberduck.Extension. rest registers itself upon building.
 
5:44 PM
Oh. That's right. Build configs....
 
So 1. Get IS Express; 2. Create the addins/addins64 reg key; 3. Download nuget packages... and done.
 
So you finally got x64 version working?
Something tells me that @Duga will have lots to talk about on reload
 
I wish I had constructors right now.
 
(had to)
@SimonAndréForsberg Yeah. Ended up manually adding the keys.
 
6:20 PM
> :+1: @christophocles feel free to fork the repository! We're using Microsoft Visual Studio Community 2013 (a free download). You'll need to enable/download InstallShield Express, and VS should prompt you to download the Nuget packages we're using; you already have the Addins/Rubberduck.Extension key registered so it should just work :) If you have a Stack Exchange account (with at least 20 reputation points), @ckuhn203 and I (Mat's Mug) can be found in the...
VBA Code Review Stack Exchange chatroom, where the Duga chat bot is keeping us aware of everything that's going on in this repository. If you don't have a SE account, .........make one on Code Review, review some VBA code (or post some of your VBA code up for review) and we'll make sure you get the 20 points!
 
@Mat'sMug sounds like a quite easy solution. You knew this was the problem?
 
had to be a registration issue
otherwise ...there wouldn't be any COM add-ins for MS-Office x64, right?
and yeah, easy in retrospect
 
> We also have the ability to grant rights to chat, but I would encourage you to check out Code Review anyway. Also, 20 points on any SE site (excluding SO) will get you into the room.
 
@Mat'sMug Ain't it always?
 
damn right
geez.. 4 days
 
6:27 PM
Sounds about right for the installer...
 
what does?
 
3 mins ago, by Mat's Mug
geez.. 4 days
 
@Mat'sMug you support internationalization? I'd love to translate "RubberDuck" into the Swedish "Gummianka"
 
On the list.
 
@SimonAndréForsberg that would be awesome, once we get the resource files up, if you could translate to Swedish!!
..but Rubberduck ought to remain Rubberduck ;)
Every programmer needs a gummianka
 
6:32 PM
nooooo... Gummianka!
Alla programmerare behöver en gummianka
3
 
lol
I feel like tweeting that
..holding off until we've MOVED ALL THE STRINGS
 
@Mat'sMug you definitely should :)
#swedish
 
@SimonAndréForsberg I'm serious. If I tweet in Swedish, it's to announce 1.3 will be localized in Swedish.. you'll do it?
 
@Mat'sMug absolutely
 
awesome!
 
6:39 PM
I'll even do it without using Google Translate!
3
 
it's out
anytime, @StackExchange!
 
Alla programmerare behöver a gummianka! (v1.3 will be localized!) #swedish #localization #vba #rubberduck
3
 
7:05 PM
@SimonAndréForsberg I'm holding you to it!
 
I will keep my promise!
@StackExchange @Mat'sMug s/a/en/
just please have the localization as optional
 
Why do I have a feeling 1.3 is going to end up being 2.0 by time we get it done.
2
@SimonAndréForsberg What do you mean?
 
a) Alla programmerare behöver en gummianka.
b) Don't force Swedish on users just because they live in Sweden.
some horrible apps force you to use it in a specific language, just because that's your language
 
@SimonAndréForsberg Oops
 
@SimonAndréForsberg Ohhhhh. Yeah. No. Localization should be optional.
 
7:14 PM
@RubberDuck There ya go, something to put in the general settings tab!
 
I would actually prefer to pick up the IDE's language setting by default, and store the user's settings in our config file. Let them change it.
LOL. I was just thinking that.
 
'@TestMethod
Public Sub TestMultipleInstances()

    globalVar = ""

    Dim thunk1 As DelegateProj.Delegate
    Set thunk1 = DelegateProj.Delegate.Create(AddressOf HelloWorld)

    Dim thunk2 As DelegateProj.Delegate
    Set thunk2 = DelegateProj.Delegate.Create(AddressOf GoodByeWorld)

    Assert.AreEqual "", globalVar, "Check initialization"
    thunk1.Run
    Assert.AreEqual HELLO_WORLD, globalVar, "First Thunk call"
    thunk2.Run
    Assert.AreEqual GOODBYE_WORLD, globalVar, "Second Thunk call"
Multiple instances.
don't touch the predeclared instance though or you break excel
2
 
your code breaks Excel, or Rubberduck does?
 
My Code
 
good to hear!
/s/hear/read
@RubberDuck seriously... what makes 2.0, 2.0?
 
7:26 PM
Its nasty now. I replace the address of a blank sub method with the address given to Create. However that is messing with the Global Definition of Delegate not the local instance like I would like it to.
 
@Mat'sMug Whatever we decide really. If we stick to semantic versioning, a breaking API change.
 
like what?
 
Is there a way to check if the an object is the Predeclared object of a class or a locally created?
 
@cheezsteak make a reference check against the default instance
Set defaultInstance = DelegateProj.Delegate
Set someInstance = DelegateProj.Delegate.Create(xyz)
If someInstance Is defaultInstance Then
or
 
Okay.... I'm having a long day. Any idea why this would raise #438 property or method not supported?
' Returns index of item if found, returns 0 if not found
Public Function IndexOf(ByVal node As TreeNode) As Long
    Dim i As Long
    For i = 1 To this.Count
        If this.Item(i) = node Then
            IndexOf = i
            Exit Function
        End If
    Next i
End Function
On
If this.Item(i) = node Then
this is a module level Collection.
 
7:30 PM
what's the type of this.Item(i)?
 
TreeNode.
 
odd coincidence
5
Q: VBA: how to test for object equality (whether two variables reference the same object)

SwiftslideWhat is the operator or function to test whether two variables of the same custom object type refer to the same object? I've tried If myObject = yourObject Then But get a runtime error 438 object doesn't support this property or method. I'm guessing that's telling me to override the '=' operat...

 
I'm an idiot......
Is. omg.
Yup. That ^^^
Passing test. Thanks @Mat. Brain fart over here.
 
np
your test will break if Index(i) isn't an object
 
@Mat'sMug So in the class Definition. I can guard against people using the default instance with If Me Is List Then ...
 
7:33 PM
probably.. gosh that reads awkward though!
 
@Mat'sMug Always will be. Custom collection.
 
I can't restore BlankProc after being overwritten though.
 
What do you mean @cheezsteak? In the file, or in memory?
 
> x64: 1 download | x86: 3 downloads (since release was unified)
 
Wow. Fast.
 
7:49 PM
not as much as I would have thought
 
in The 2nd Monitor, 2 mins ago, by RubberDuck
Does it make sense to have a Tree data structure with only one property? A Root of type TreeNode?
It's only been like twelve hours Mug.
 
hey @Blackhawk! Long time no see!
 
@RubberDuck in memory
 
Ohhhh ouch.
 
@RubberDuck 14
 
7:51 PM
Hey @Blackhawk! It has been a while. How've you been?
 
...
 
Delegate.BlankProc has it's address overwritten by AddressOf WhateverProc. And I want to store it before overwriting then put it back when done.
So i can raise an error when .BlankProc is called instead of crashing excel.
 
Brave soul ^
I don't frak with raw memory.
Unfortunately, the guy to talk to just left...
 
8:07 PM
Hi :)
@Mat'sMug busy... I took a management position and it's taken me away from coding day-to-day, which is sad :'(
 
good to see you!
'grats on the new position!
 
Yeah, glad to see you guys are keeping it going!
 
(I need to update the screenshots, especially for the Code Explorer)
 
"IDE-integrated source control coming up in v1.3!" oooooh!
3
 
^^ damn right!
 
8:12 PM
writing export/import scripts is a PITA
 
@Blackhawk Very sad indeed.
@cheezsteak Word.
 
8:27 PM
TDD FTW!
I wish it was easier to do this when I'm writing code for RD.
 
> Create Tree
> Create TreeNode
> Create TreeNodes.cls
> Rename TreeNode to TreeNode.cls
> Rename Tree to Tree.cls
 
@Blackhawk can you look at Delegate.cls and its TestModule, please?
 
> Create TreeTests.bas
 
@RubberDuck why are my branches in your repo? I am so confused.
 
ooooh, copymemory :D
 
@cheezsteak Because it's your repo and I'm submitting a pull request.
Or wait. Which fork have you been updating?
 
@BlackHawk It works as much as I want it to for now but there is one issue. I want to restore BlankProc to it's original state after calling Run but I believe I am storing it's original state wrong or reverting it wrong.
@RubberDuck I should have been updating mine. I swore I created branch Delegate from my repo but it's there. but just the original creation. I have modified it since...
 
Yeah, I tried modifying vftables as well and it would always eventually crash :S
I'm gonna go find my code for comparison...
 
@cheezsteak I'll figure it out later and submit the pr when I think it's ready.
 
@Blackhawk would you happen to have the slightest clue where to start looking for VBA stack trace?
 
8:44 PM
technically there is the built-in call stack
in the View menu
 
I know. I want Rubberduck to access it, and expose it through a COM API
 
but for catching it after the fact, the best thing I've found is the same as @RubberDuck: make your own
 
..so that VBA code can access an ErrStack object :)
 
:(
callstack, that is
 
yeah callstack
but I can't make my own from C# code...
 
8:46 PM
I built one the same as I'm sure you guys both have with a stack plus boilerplate code at the beginning and end of each function
 
nope.
it's useless clutter
well
 
yep
 
I want Rubberduck to access wherever the actual call stack is located, (if it takes unsafe code to do this, then let there be unsafe code to do this) and expose an object that VBA code can use to tap into the call stack programmatically.
 
Eh.. I settled on a universal error handling technique and passing the name of the procedure to the error handler.
At least it gives me a clue where in the 13k LoC it came from.
 
@RubberDuck that's all moot once your VBA code can do MsgBox Rubberduck.CallStack.CallerName
 
8:48 PM
Would creating a custom Error class help?
 
@Mat'sMug You figure that out I'll owe you beers for life.
2
 
@cheezsteak the only way the managed C# code can "see" what's going on in the VBA runtime is by tapping into wherever the call stack is
 
Okay... I've got a tree to work with. Now I need a DirectoryBuilder that takes in a tree...
 
@Twisty that's very bad advice. On Error Resume Next just shoves whatever error you get, under the carpet, letting the code happily continue with bad/unknown values. Handle errors, don't hide them! — Mat's Mug 6 secs ago
 
@Mat'sMug I think the only hope is looking through the function exports from the msvbmxx.dll file
 
8:51 PM
that's a starting point! thanks!
 
@Mat'sMug Wish I had a star for that....
 
especially the comment on the only answer
 
9:07 PM
And that's why we've missed you around here @Blackhawk.
 
:D
I've missed hanging out with you guys while I coded - the management thing means I'm often trying to explain technology to people who (a) have no understanding and (b) don't want to learn
OH MY GOD, I WORK WITH HELP VAMPIRES
5
 
I may be out of stars, but I can still pin shit.
lol... I wish I didn't know the feeling.
 
I GOT IT TO WORK
It errors instead of crashing good lord.
 
LOL.
I need to learn to be stingier with my stars...
Now this is how you build a directory structure.
Public Sub Build(directoryTree As Tree)
    Dim t As Tree
    Dim node As TreeNode
    For Each node In directoryTree.Root.Children
        If node.HasChildren Then
            CreateDir node.ToString

            Set t = New Tree
            Set t.Root = node
            Build t
        End If
    Next
End Sub

Private Function CreateDir(filePath As String) As String
    Dim fldr As String
    fldr = Dir(filePath, vbDirectory)
    If fldr = "" Or fldr = Null Then
        MkDir filePath
    End If
 
That was a PITA. The vftable modifications persist over re-compiles, and restarts. You must remove the module and re import it to reset it.
 
9:19 PM
WHAT
EW
 
I somehow set Delegate.Create instead of Delegate.BlankProc to HelloWorld a shit was getting banaynays.
@Blackhawk I suspect the compiler only re-compiles when certain elements are modified not files.
Lesson: don't screw it up. do it right the first time..
 
aw, out of stars
@Blackhawk wait, does that mean I need to ship a 250MB installer??
because, F it
I don't think so. If the VBE itself can retrieve the call stack, there is a way, somehow.
Who ever said VB6 was elegant anyway? — RubberDuck May 28 '14 at 10:51
 
@Mat'sMug Where the hell did you find that?
 
wherever you put it!
 
hahaha fair enough.
I'm out boys. Brain fried and I'm not sure this tree is going to help after all.
 
9:30 PM
later!
I'm out too
 
@cheezsteak that makes sense
Oh! I just meant that you could load the pdb file to find out what dll function is likely being called to get the callstack
^ @Mat'sMug
 
Thanks
 
9:45 PM
Boy that commute down the stairs is killer! =P
 
10:12 PM
Bye all!
 
11:07 PM
See ya @Blackhawk!
 
Come back anytime @Blackhawk!
I wonder.... perhaps we can end up calling our unit tests straight from the vb runtime... ok maybe that's a stretch
 
11:40 PM
Technically possible I suppose, but I'm not sure I'd want to tackle that yet.
 
> @christophocles I could also use some help with the ANTLR grammar file (see the GrammarIsFun branch), which generates our parser - all of Rubberduck's code analysis and refactoring capabilities are only as good as the grammar we're using -- and that grammar has issues as you noticed ;) The grammar definition language is pretty straightforward, but overcoming the current limitations and fixing the bugs is a tedious task that requires pretty deep knowledge of the VBA language and its...
syntax.
 
@RubberDuck That'll be for 3.0 I guess ;)
I don't even want to try doing anything with the vb runtime until we're done with the issues we have now
But I'm very curious about sniffing what's going on in the VBE when it's displaying a call stack...
 
Yeah. Can't say I'm not curious myself.
 
11:59 PM
RELOAD!
 
00:00 - 17:0017:00 - 00:00

« first day (284 days earlier)      last day (2896 days later) »