« first day (1687 days earlier)      last day (1493 days later) » 
00:00 - 16:0016:00 - 00:00

4:03 PM
After winning the US Open, Martina Navratilova told her teammates that she was going to go see the sights and do some shopping with her earnings. Once she slipped away from her handlers, she made a bee-line to the nearest US Embassy and asked the lady at the front desk, "Do you cache Czechs?"
#ColdWarJokes #OnlyWorksInWriting
#CacheAllTheThings
escorts himself out the door
@Comintern - remind you of earlier today? commitstrip.com/en/2019/01/18/its-not-magic
or was that late yesterday...
 
OK, I'm striking out on what you're referring to. I must need more coffee.
 
Hi all. What's the syntax for subfolders in the folder tag..? Mathieu mentioned it to me once, but now I'm trying it but can't get it to work... Such as... '@Folder("Folder\Subfolder")
 
'@Folder("Folder.Subfolder")
 
The () aren't necessary, but don't hurt. (i.e. I don't use 'em but it still works)
 
I thought the `\` was supposed to work, too?
 
4:11 PM
Although it's a little borked if you're on the current build pending merge of #4721
@this When I was in there, it was a hard coded delimiter.
 
i'm probably in need of more caffeine myself but I could have sworn I saw an issue few weeks ago about folder using \ delimiters
 
@Comintern Martina was the dominant women's tennis player in the 80s. She was from the Czech Republic - then behind the Iron Curtain. It's a joke about defecting, cash == cache, checks == Czechs. Figured I'd have to explain it. That makes it not funny...
#RandomThingsThatWanderThroughMahBrain
 
I'm sorry, I never heard of a Chech Republic.
 
Oh, I got that one. I couldn't figure out this one:
10 mins ago, by FreeMan
@Comintern - remind you of earlier today? https://www.commitstrip.com/en/2019/01/18/its-not-magic/
 
@Comintern oh, or was it the CommitStrip? You & this were working through compile/build issues.
@this me neither. No idea what you're talking about. ;)
 
4:17 PM
Ah yes.
 
@FreeMan said the guy who bought it up....
 
more
1 min ago, by FreeMan
#RandomThingsThatWanderThroughMahBrain
 
@this I seem to remember discussion at a couple points about supporting different delimiters, but it would need to have the folder settings follow the project and not the user.
 
@FreeMan I think that'd be even funnier to @IvenBach
Ah, maybe. I'm always conflating.
 
Otherwise, my folder foo\b.ar would render differently with different settings.
 
4:19 PM
yeah that wouldn't be too cool.
 
It's definitely Friday. Some of the ladies in the office just printed out pictures & names of all the girls on The Bachelor and are placing bets on who will be next to leave. Or something like that - I've never seen the show
 
ew
 
@this valid point...
 
I never will understand the pop television shows...
 
4:19 PM
But, but... it's "reality" TV!
meh
 
I totally can see a douchebag director say "I only film what I see, baby"
 
While the producer is laughing behind the director's back...
 
It's almost as convincing as saying that WWE is "real" wrestling.
 
You sure? I would think the producer is too busy rolling in cash.
 
that
 
4:23 PM
Ahhh ok ... '@Folder("Folder.Subfolder") worked. Thank you.
 
@spinjector just so's ya' know, you can also do '@Folder("Folder.Subfolder.SubSubFolder") if you need more organizational levels
 
just don't go crazy and put each "file" in its own folder.
 
:waits for it...:
 
The UTC brown, squishy, smelly stuff struck the spinning blades.
 
lol
 
4:31 PM
@FreeMan I like it.
 
That sounds like something that would come out of a college writer's colony.
 
LOL.
 
4:42 PM
out of curiosity, has anyone else bothered with re-implemented Scripting.Dictionary, similar to what Tim Hall did?
 
TBH, I never saw a point to it.
 
me neither.
but it is annoying when it's latebound.
 
I'm curious how it benchmarks against a late bound Scripting.Dictionary.
 
in my typical usage, it's just baiscally Exists()/dic(key) and dic(key) = value
not really much of looping/enumerating.
For that reason, the difference will be nil.
The annoyance is mainly a developer's problem (no intellisense, compile-time validation, etc.)
 
Oh, I meant Tim's replacement.
 
4:51 PM
i guess I should follow my own advice regarding using conditional compilation but...
ooh
I wouldn't be surprised at all that it's slower
you do have to jump trhough the wrapper, after all
 
Me either, but there's degrees of "slower".
 
again, if it's hard to really notice performance between early bound and late bound Scripting.Dictionary, I'm not sure you'll really notice between late-bound Scripting.Dictoinary and re-implemented version.
 
Does Collection do hashed item lookups the same way though?
 
I would think no, since I understand there's been claims that Scripting.Dictionary is much faster than VBA.Collection.
 
I've generally considered the key look-ups to be better with the scripting version, but I don't remember if I ever benchmarked it.
 
4:56 PM
but I have no idea how they work internally.
I think I remember someone saying that VBA.Collection basically stick keys in an array so you end up enumerating all the keys to find a key.
 
OK, so in answer to your earlier question, no, I haven't bothered to re-implement it, but I wouldn't do it with Collections.
@this That has a ring of familiarity to it.
 
I don't think Tim Hall used VBA.Collection internally on Windows.
Maybe he did for the Mac (which was the real reason for him reimplementing Scripting.Dictionary)
 
I frequently use a Dictionary keys only as a hashset.
 
Busy cleaning the brown stuff off the twirling blades as more keeps landing on them...
 
#If Mac Or Not UseScriptingDictionaryIfAvailable Then
    Set dict_pKeyValues = New Collection

    Erase dict_pKeys
    Erase dict_pItems
    Set dict_pObjectKeys = New Collection
#Else
    Set dict_pDictionary = CreateObject("Scripting.Dictionary")
#End If
@Hosch250 Much better to be cleaning it than having it blowing at you.
 
4:59 PM
I hope you are wearing a hazmat suit, though.
can't have you inhaling that brown stuff.
 
^
I wonder what the "lung equivalent" to pink-eye is.
 
Tuberculosis?
 
Interesting - he uses two VBA.Collections to re-implement Scripting.Dictionary.
 
lol
 
That can only be horrid.
 
5:00 PM
Or emphysema?
 
Emphysema is more fibrous.
Brown lung?
 
well black lung is a thing. So why not brown?
 
I'm guessing it would be pneumonia. Isn't that a general term for a bacterial infection of the lungs?
 
@Comintern Are you saying TB is a subset of pneumonia?
Ouch.
 
That sounds right to me, but I'm not a medical professional.
Hmmm, guess not. Pneumonia seems to describe the inflammation symptom.
 
5:05 PM
Paging Dr. Howser.
 
I think it might be a decent idea to support all three of '.', '/' and `\` as hard-coded subfolder delimiters.
 
How would we choose which one to use?
Just all of them?
 
Yep
Maybe add a mixed folder delimiters inspection.
 
but what about foo\b.ar?
that would be unintuitive.
 
I'd be up for that, although it's possible it would be a breaking change.
 
5:08 PM
True
 
IMO, if we're going to change how delimiters work, we would need to conform to the filesystem's naming rules.
else, exporting/importing will be unnecessarily difficult.
 
Although I'm not sure how much of an impact it would be or how much I care if the user did something like name a folder foo\b.ar.
 
Taking all three would simply add the delimiters of the two major filesystems.
 
That would simplify any future path matching.
@this I'm not sure if we should enforce that as much as inspect it.
 
If we ever implement export to folder, we really do not want the file system directory delimiters in the folder names.
 
5:11 PM
I.e., if I'm working on from a Linux share, the rules are different.
 
Making them special circumvents that problem.
 
I think we should ask - will we normalize the names as part of import/export?
 
Is that even possible?
 
If answer is no, then we should use the LCD of allowed characters/delimiters
 
@this I'm in an anti-magic sphere apparently.
 
5:12 PM
On export, sure, but IIR there's no guarantee in Windows that your casing will match after a round-trip.
 
Personally, I wouldn't want to try to. There are some Windows API functions that helps with changing between ` and /` or something like that but I don't know if that's a general solution.
 
@IvenBach Did you try the build PR one?
 
And even if we could normalize, users may not like the strange behavior --- Why is my folder "foo/b.ar" coming out as FOO/B/AR?!? or whatever
 
Hi all. I'm fiddling with a collection sort "caller function" that does validation * error handling for the main function that actually does the sorting. I'd like to test it with a collection that does not have a 'Count' property, or it does but it's got a different name like 'Size' or something. Can anyone think of any collections that might be that way.....?
 
A: Because you used a dumb folder name?
 
5:14 PM
Limiting to the LCD of the 3 major filesystems would avoid all that.
lol
 
I thought about adding the two characters as possible delimiters primarily because it would help discoverability of the feature.
 
It's a trivial change ATM - not sure how it would impact what you're working on though.
 
I'm not really worried about how we handle the delimiters on CE. It's our ballpark and we can play the ball whatever we want to. When it's time to play ball with the filesystem....
 
@Comintern Not yet. Once I finish with a cell styles tutorial I'll give it a go.
 
@spinjector An array? You could roll your own pretty easily.
 
5:16 PM
Ya know, I just realized that's not specifically an RD question. Sorry for going off-topic. I;ve come to think of you guys as a good resource for all things VBA when I get stumped. =-)
 
^
 
@M.Doerner Other than the comment marker, are you good with #4721?
 
what about the unit test?
 
@spinjector Maybe at some point we could do a scholarly study of the amount of conversation in this chat room that was even VBA related.
 
@this We already only support one at a time.
 
5:17 PM
@Comintern yea that's not a bad idea. I could roll my own class in VB6 that is an enumerable collection, but doesn't have a Count property. Thanks.
 
They set which one they want to use in the settings.
@Comintern A lot of it is C# related.
 
That's true.
A lot is database related too, because, day jobs.
 
@Comintern lol sorry I'm used to getting spanked by the StackOverflow army when I go off-topic. =-)
 
@this Which one?
 
Max suggested it in his comments on #4721
> Could we get a test testing that everything still works in case the folder annotation is not the first annotation in an annotation list?
 
5:21 PM
Gah, I completely missed that. I'm used to looking for them in the diff. I'll add those over lunch.
 
yeah for whatever reasons, Duga does not display those comments.
 
Nor did my email notification.
 
5:45 PM
@Comintern I have not really looked at the rest of the changes. I would require some time to first understand how the CE actually works. (I have never looked at that part of the RD codebase.)
Since the folder name is just for display purposes, the test would be rather unrelated, but I think having at least one test for that case would make sense.
 
No worries. It should be a simple add.
TBH, I should probably just get rid of the FolderAttribute property entirely to avoid future confusion. It's kind of a vestigial property at this point anyway.
The implementation can go directly in the description.
@M.Doerner somewhat related question - were you intending on consuming Declaration.CustomFolder anywhere? I couldn't tell if that was added specifically for the CE.
I'd really like to strip the enclosing quotes at the Declaration level. They're a really PITA to handle everywhere else.
 
@Hosch250 mercy chuckle, but I'll take it!
 
@FreeMan No, I do like it.
I got it too, even though I didn't know about that person.
 
well, thank you. To be fair, my high school aged read it somewhere shortly after learning the meaning of "cache", and I've liked it ever since.
I'm pretty sure it was longer, too, but that'll do to get the punchline delivered
 
6:09 PM
Shared it with work.
People posted a bunch of groan emoji.
 
@FreeMan I liked it.
 
@Hosch250 in particular, see paragraph 2
 
@Comintern I did not even know that property existed.
 
OK, cool. I'm going to remove the quotes there then.
 
They are probably there because of some old versions of the annotation system, I guess.
They are optional around annotation arguments and you need them if the argument contains an @.
 
6:25 PM
AFAICT they are trimmed everywhere they're used.
 
@Duga I'm probably being oblivious again but the annotations in the new tests looks exactly the same?
 
@this I added a predeclared annotation to both of the added modules.
If I put it in the code it would be testing the parser instead of the CE.
 
ahh I see it now. I was looking for it in the code.
Like I said, oblivious.
 
7:10 PM
[rubberduck-vba/Rubberduck] build for commit 20731550 on unknown branch: AppVeyor build succeeded
 
7:46 PM
I think I know how to implement #4705.
 
@Comintern Trigger the invalidation when we start the test?
 
Store the code from the last test in the TestMethodViewModel.
Between that and the QualifiedName, it should be all the invalidation criteria you'd need.
 
Our build server just ran out of memory on the build.
I think because we cache so many old ones.
 
 
1 hour later…
9:02 PM
That reply is perfect 👀
 
lol
 
9:16 PM
> **Rubberduck version information**

Rubberduck version 2.3.1.4441 loading:
Operating System: Microsoft Windows NT 10.0.17134.0 x64
Host Product: Microsoft Office x86
Host Version: 16.0.11126.20266
Host Executable: EXCEL.EXE;

**Description**
Excel crashing when I try to increase size of VBE/ fullscreen it

**To Reproduce**
1. Open new Excel workbook
2. Open VB Editor (Alt + F11)
3. The editor opens very small, so try and fullscreen it or resize it

**Expected behavior**
> I'll take as much of the blame here as anyone else, but we have controls, converters, providers, and behaviors kind of strewn all over the place. I'm thinking this lends itself to a lot more wheel reinventions that it really should.

The current folder structure is fine, although I'd make a couple suggestions:

1. We could use a Behaviors folder. Implementations have a `UIElement` type constraint, so there's no reason these should be tied to a specific window or dialog.
2. Any converters
> Hi all,

I realise this was closed a looong time ago, but I've been doing some [research](https://github.com/sancarn/VBA-STD-Library/blob/master/docs/STD_Types_String.md) that you might be interested in! :)

I'm mainly researching this because I want to add String interpolation into my class 🙂

Happy coding! 😄
> FWIW, before submitting this issue I had just updated from the latest stable release to the latest pre-release to try and fix the problem, but no joy. That is I had this problem both before and after updating, so I don't think my issue is version specific.
> Hi all,

I realise this was closed a looong time ago, but I've been doing some [research](https://github.com/sancarn/VBA-STD-Library/blob/master/docs/STD_Types_String.md) that you might be interested in! :)

I'm mainly researching this because I want to add String interpolation into a String class I'm building for an Open Source VBA library 🙂

Happy coding! 😄
 
@Duga OHAI.
 
> FWIW, before submitting this issue I had just updated from the latest stable release to the latest pre-release to try and fix the problem, but no joy. That is I had this problem both before and after updating, so I don't think my issue is version specific.
 
@Comintern don't you think we should be trimming the Rubberduck.Core into just Rubberduck.UI?
 
e.g. anything that's not UI should be somewhere else?
 
@this I think that's basically what it is now. There are some service type classes that might have better homes elsewhere.
The VM classes should be with the UI IMO.
And the Models.
 
fyi it's a bit weird w/ VM/Models
IINM, 4072 has Models and VM interface over in the Refactoring project
while the VM implementations are still in UI Core.
 
Yeah, I noticed that too.
That might be a good comment there.
 
I think that's fine for the models -- they are just data.
and logically they belong in their respective projects.
but interfaces for viewmodel? That makes me go hmmm.
 
I keep finding myself hopping back and forth between Core\Foo and Core\UI\Foo
 
9:28 PM
oh yeah, UI folder is totally useless.
I think in the end it should be just Rubberduck.UI with the appropriate folders
 
> When you say "before updating", what version are you referring to? Did it include the updated Code Explorer UI?

As an aside, the last call in the log is on `IOleInPlaceSite::OnPosRectChange()`, so I'm presuming this is related to communication between the WinForm and the WPF host.
 
I'm trying to remember if we've run into that ^^ before.
 
Well, Vogel did put in a hack somewhere....
 
I seem to remember a similar hack a couple years ago.
 
don't you love it when VBE sends bogus messages to itself?
 
9:34 PM
> Possibly related to #4607, see also #2936
 
IKR?
It's the stupid MDI hack.
Wow, that person who posted on the old issue completely hacked up string interpolation in VBA by abusing either foreign identifiers or evaluate:
Debug.Print String.[This is my cool string! It can have quotes " and stuff in it too!]

Dim interpolation as string
interpolation = "magic!"
Debug.Print String.[It also has $(interpolation)]
 
> Multithreading in VBA?
 
> @sancarn That certainly looks intriguing, and I'm looking forward to examining it in more depth.

How are your c# chops (hint, hint)?... 😄
> @comintern Honestly, I've only ever worked with C# once to make a super basic app. Otherwise I'm a complete noob, mostly due to complete incompatibility with all IT systems I've worked with so far :P That being said, I am going to try to host CLR from VBA at some point to maybe get around that... 😛
 
@Duga Nice! Now get events working for late-bound objects. :D
 
LOL
WTH is the base address coming from?
 
9:49 PM
? It's already been done, but with Wayne's black magicâ„¢ technology.
Not sure what you mean by base address - I don't think CLR loads the same way as a PE does?
 
Oh, I was referring to the base address of what is presumably the stack.
In the linked code from above.
 
 
No, for the String stuff -
 
oh sorry. crossed the stream back there
 
> First point to realise is that the variables cotnained within the current scope in VBA are stored in a table for each individual sub-routine / function
> Another important distinction that should be noticed is the difference in stack depth when calling the stackDepth function in different ways.
I could bend that ^^...
> The fact that there is a 2 unit offset between printStackDepth() and calling the function from the immediate window however indicates to me that:

'When run button is clicked:
Run Button Pressed --> Application.Run "<name>" called --> Sub <name> called --> stackDepth() called (returning 1)

'When ran from immediate window calls `Sub <name>` directly:
Immediate window called --> Sub <name> called --> stackDepth() called (returning 0)

'When ran from immediate window calls `stackDepth()` directly:
O_O
Huh. I wonder if we could create a VBA memory profiler with CoRegisterMallocSpy.
Interesting. I need to read up on IChannelHook over the weekend.
 
10:29 PM
Duck checking: VBA userforms only pass information to or from a model. They don't contain it.
 
@IvenBach That's more or less right - you want to decouple the data from the presentation.
 
10:52 PM
I flounder mightily with UI interaction.
A little less each time I do it.
 
11:05 PM
Hi all. I've accidentally unmarked the "Find All References" window as "Dockable". How do I undo that? Now that the window is acting like an MDI window, it lost the titlebar right-click menu, and with it went the "Dockable" option.
 
:(
that's a known issue. :(
let me see if I can dig out a VBA command to fix that...
 
...so of course I run into it. Never fails, lol.
Ok.
 
there's also other code further down that may work, too
 
If I just close everything an reopen, will that fix it..? Or has this been written into the settings somewhere..?
*and
 
nope, too late.
You have to fix it
of course if you don't mind doing it all again, you can brute force it by deleting the Dock registry key
which will destory all the window placements and you'll have to restore it all back
but that'll fix your issue, too.
 
11:10 PM
Bleh.
 
don't undock it next time. ;-)
(yeah I know, not helping, sorry)
 
Ok I see the name codeExplorerToolWindow is as such. Is the other findAllReferencesToolWindow...? or what exactly..?
Nah it's ok, I know RD is a massive work in progress, and trying to to the impossible with the VBIDE. =-)
 
i'd enumerate all the toolwindows first
use Windows to enumerate them all
 
Ok gotcha.
 
and once you know which's which, manipulate that.
 
11:12 PM
Ima do this tomorrow or Monday. Time to go find some dinner.
Indeed. Thanks.
Ciao..!
 
bye!
 
> FWIW, I think it's more important that we strip out all non-UI stuff out of the `Rubberduck.Core` and properly make it a `Rubberduck.UI` project. I really dislike the fact that we have both `Rubberduck.Core` and `Rubberduck.Main`, which amounts to having 2 junk drawers for the solution. 😆

Once that is done, we can get rid of the now superficial folder `UI` which only add one more level.

Also, I'd add that all models for the UI should go to their respective projects - they're just data.
 
11:43 PM
> There is one more further consideration we need to put to properly implement the mocking framework. It all lies with the fact that the type equivalence is fundamentally broken. [See this report for details](https://developercommunity.visualstudio.com/content/problem/422208/typeisequivalent-does-not-behave-according-to-the.html). The expectation is that it will not be fixed anytime soon so we must work around it.

The tenative idea was to create a `CachedTypeService` class which would static
 
00:00 - 16:0016:00 - 00:00

« first day (1687 days earlier)      last day (1493 days later) »