« first day (1475 days earlier)      last day (1705 days later) » 
00:00 - 20:0020:00 - 00:00

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 2 opened issues. 1 closed issue. 5 issue comments.
 
@Duga Didn't use VS for the git commit or git push. Slow and steady has been working.
Time to start picking up some of the duckling-01 for 2.2 release.
Home time.
 
@IvenBach 2.3.0 ;-)
@Vogel612 that
Going to have to hack it up =)
...with regex
1
Q: Are 1H 2018 OSS ads showing up?

Mathieu GuindonClick stats for the 1H 2018 community-ads campaign are unusually low (to say the least), across the board. Contrast against the 2017 and 2016 figures, is rather stark. It looks like the only clicks any 2018 ads ever got, came from the community ads post itself. Something's up.

^ @Vogel612 any echoes from TPTB?
 
@MathieuGuindon uBlock Origin FTW!
 
People used ad blockers in 2017 and 2016 too
Pretty sure the 2H 2018 post will be "oops, we goofed again"
 
SE is so screwed.
They are burning money worse than my company. And paying their people 2-2.5x as much.
 
12:30 AM
[rubberduck-vba/Rubberduck] build for commit 2dc3a81c on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=h1) Report
> Merging [#4114](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4114 +/- ##
===========================
[rubberduck-vba/Rubberduck] build for commit 2dc3a81c on unknown branch: 52.65% (target 0%)
 
And working on irrelevant annoying new UI features continuously introducing new bugs
Seriously who asked for that reactive UI crap?
 
@MathieuGuindon Both. That's how they are burning money.
Now if my company rewrote everything... That wouldn't be a waste.
 
Gah, freakin' work getting in the way of RD again :-( All of a sudden it's 01:39. Looking like I won't get much RD time before the weekend.
At least they let me have SE chat open, better than the last place.
TTGTB
 
@mansellan night!
@mansellan eh, I've yet to figure out my wiring problem here
 
12:53 AM
@MathieuGuindon #WordFail
@Hosch250 Jump ship and ride it all the way down.
 
1:10 AM
@IvenBach And? You mean or?
 
Jump ship to SE and ride that one till its down. Then find another.
 
Oh, no, I would never fit in with SE.
They are too blatantly liberal, they'd never hire me.
And, I'm not good enough, yet.
I can't keep my mouth shut enough about my conservatism, but then, I shouldn't have to if they don't have to...
 
1:29 AM
2018-06-19 18:28:27.9370;ERROR-;Rubberduck.UI.DockableToolwindowPresenter;System.Runtime.InteropServices.COMException (0x800401F3): Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING))
   at Microsoft.Vbe.Interop._Windows.CreateToolWindow(AddIn AddInInst, String ProgId, String Caption, String GuidPosition, Object& DocObj)
   at Rubberduck.VBEditor.SafeComWrappers.VBA.Windows.CreateToolWindow(IAddIn addInInst, String progId, String caption, String guidPosition) in C:\Users\IvenBach\Source\Repos\Rubberduck\Rubberduck.VBEditor.VBA\SafeComWrappers\VB\Windows.cs:line 34
^ Getting that error when attaching VS to Excel.
 
Something something inspection results toolwindow something something side-effecting constructor blew up
 
Should I open an issue?
#TIL Test Explorer group by duration.
 
 
1 hour later…
2:43 AM
In other news regarding MS. JavaScript isn’t reasonable but good to know C# is on their horizon...mspoweruser.com/…
 
 
2 hours later…
4:35 AM
#TIL: Tasks are not guaranteed to be non-reentrant.
 
@this ToDos are not guaranteed to be revisited
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.03%`.
> The diff coverage is `45.67%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
=======================
 
@ThunderFrame perhaps so but at least it doesn't misleadingly imply that it will be.
 
4:51 AM
[rubberduck-vba/Rubberduck] build for commit 266ae636 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.03%`.
> The diff coverage is `46.72%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 266ae636 on unknown branch: 52.67% (target 0%)
 
5:30 AM
So I got a new Rubberduck code inspection I've never seen before regarding breaking encapsulation. I have a global level variable in one module and I access it from another module. In this inspection, does the encapsulation mean that I'm not bundling data (the variable) with the methods that use it (in the current module)? I looked up encapsulation but it says it has two meanings. Also the SO tag's questions confuse me a bit.

In this particular case I have an API key variable that's global (Module1) and has a public function to retrieve it (module1). In module2 I have a function that needs
 
> I copied everything from https://github.com/rubberduck-vba/Rubberduck/blob/next/RubberduckTests/UnitTesting/AssertTests.cs to make tests for the `PermissiveAssertClass`.

Edited https://github.com/IvenBach/Rubberduck/blob/InvestigatingPermissiveAssertClass/RubberduckTests/UnitTesting/PermissiveAssertTests.cs#L322 since test is expected to pass.

Something that doesn't seem right is https://github.com/IvenBach/Rubberduck/blob/InvestigatingPermissiveAssertClass/RubberduckTests/UnitTesting/Pe
> I copied everything from https://github.com/rubberduck-vba/Rubberduck/blob/next/RubberduckTests/UnitTesting/AssertTests.cs to make tests for the `PermissiveAssertClass` which are found https://github.com/IvenBach/Rubberduck/blob/InvestigatingPermissiveAssertClass/RubberduckTests/UnitTesting/PermissiveAssertTests.cs.

Edited https://github.com/IvenBach/Rubberduck/blob/InvestigatingPermissiveAssertClass/RubberduckTests/UnitTesting/PermissiveAssertTests.cs#L322 since test is expected to pass.
 
Bed time.
 
 
3 hours later…
9:24 AM
@MathieuGuindon Jon Chan might be a bit busy ATM with the new-nav feedback and the question wizard feedback
 
9:34 AM
TL is quiet..
hum... only 10 minutes of reading transcript. wasn't so busy a day, it seems
 
 
2 hours later…
11:22 AM
@Raystafarian if it's in Module1 and only ever used in Module1, then it doesn't need to be public. That's what the inspection is telling you basically.
 
> Just to clarify, @MDoerner - neither ParseAll nor ParseInternall has a pre-existing Cancel() in their bodies; we would not be moving the call; we would be adding a brand new Cancel() call between the taking suspension read lock and before entering the monitor. Is that what we want to do?
 
11:46 AM
> For information :

- Any object (form, report, module) more than 600

- Number of active code lines more than 129 000
 
12:01 PM
@Duga I can hear ducky say "woah, that's not what I signed up for!"
 
> What I meant is to move the Cancel from ParseRequested between the two locks.
 
Really, RD should be able to handle that. After all, that is what any decently sized properly modularised project looks like.
 
> Just for reference why an out of memory error occurs for much less memory consumption than the memory you have installed. Since the Office running is a 32 bit application, it will never see more than a little short of 2 GB of memory.
 
12:41 PM
@Duga I wonder if that's a cause for maintaining the parse tree & other cached tree out of the process. Strip the add-in down to being a client and use interprocess communication.
 
1:00 PM
> Hmm. Moving the Cancel out of the ReparseRequested method and SuspendParser and placing it between the locks in the ParseInternal and ParseAll causes deadlocking for the Test_RPS_SuspendParser_Interrupted_Deadlock test.
> Just for reference why an out of memory error occurs for much less memory consumption than the memory you have installed. Since the Office running is a 32 bit application, it will never see more than a little short of 2 GB of memory.

More precisely, it will not be able to use more memory for two reasons. First, the developers of Office apparently did not set the `LARGEADDRESSAWARE` flag. (Otherwise, the limit would be 4 GB on a 64bit system.) Second, we do not go through the hoops to map ad
 
I also thought that pushing things to an in memory nosql database might be beneficial.
However, that will be quite a refactoring.
Moreover, we should really look at what a memory profiler is telling us.
The last time I used dotMemory it was telling me that a very large part of the memory used was unmanaged memory.
The downside of interprocess communication is that it is much slower than in process communication.
 
That is true.
I did find it odd that the unmanaged memory amount is larger than the managed memory memory. I've wondered in back of my head if our managed memory allocation causes a corresponding allocation in the unmanaged memory amount.
 
1:17 PM
There are a two immediate suspects: the unmanaged side of the RCWs and the WPF windows, which use the unmanaged DirectX backend.
 
The first one would be a big surprise, since according to the documentation, RCW will only be bound to only one unmanaged object
 
LOL.
> He has since moved to California, where he belonged
 
1:33 PM
@this @Duga Did you switch the order of the read lock and Monitor.Enter as I suggested in my comment?
 
Yes
I did those suggestions first before I got to the Cancel() suggestion
just as a FYI - setting up that particular unit test was problematic, due to the fact that we have a synchronous parse and we have to coordinate the tasks to happen in a certain way. It was also failing because it would pick up same thread, which caused the debug assertion to fail
hmm. that made me think. In that unit test, the fix was to always provide a cancellation token, even though it wasn't used. That prevents inlining of the Task.Run. I wonder if we need to ensure that all Task.Run() in the production code has that also.
 
1:54 PM
Just to be sure, you also moved getting the cancellation token from the source between the locks, right?
Otherwise, your test will enter into a never ending loop waiting for result2 to became non-null.
The token has to be retrieved after the cancellation of the previous one. (It swaps the sources.) Moreover, both should happen within one lock.
 
all take the same source.
oh. Wait, You're saying that repeated invocation of source.Token won't be the same?
 
Take a look at how Cancel is implemented.
 
very well will do
 
We swap in a new source, then cancel and dispose the old one.
 
I see that but in the unit test we only use one source
 
2:08 PM
No, you have tokens from one source you pass to your tasks, but that has absolutely nothing to do with the source used when parsing.
 
oh, so we're talking about the source inside the ParseCoordinator, not the unit test.
I think i got it
 
Yes
 
so instead of just Cancel(); (which was what I did originally, I do this:
if (!_parsingSuspendLock.IsWriteLockHeld)
                {
                    _parsingSuspendLock.EnterReadLock();
                }
                lock (_cancellationSyncObject)
                {
                    Cancel();
                    token = _currentCancellationTokenSource.Token;
                }
                Monitor.Enter(_parsingRunSyncObject, ref lockTaken);
 
That indentation threw me off quite a bit.
 
and with that change, the test no longer waits indefinitely on a null result2
sorry. Bad copy'n'paste
 
2:12 PM
And yes.
 
#TIL - taking a particular token does matter when you need to arrange the executions among tasks.
 
Yep
 
the multithreading rabbit hole get deeper and deeper
one thing I do worry about is accidental deadlocking. As you saw if I do not set up the unit tests right, it can go into infinite waiting. That's why I wrote the last unit test to verify that timeout is working as expected and added that debug assertion.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.03%`.
> The diff coverage is `46.72%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
=======================
 
With that I hope we've addressed all concerns, with one exception of refactoring both ParseAll and ParseInternal into a virtual method.
@Hosch250 Gee, apparently perpetual motion machines weren't good enough.
 
@Duga yuck, I should have known better. Will fix.
 
[rubberduck-vba/Rubberduck] build for commit 21160f99 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
[rubberduck-vba/Rubberduck] build for commit 21160f99 on unknown branch: 52.67% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
 
2:57 PM
[rubberduck-vba/Rubberduck] build for commit 87819b2d on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
[rubberduck-vba/Rubberduck] build for commit 87819b2d on unknown branch: 52.67% (target 0%)
 
3:18 PM
If a nuke used conventional explosives, it wouldn't be a nuke. — Hosch250 46 secs ago
LOL.
 
@Hosch250 All nukes use conventional explosives, they wouldn't go off otherwise. — Ash 25 secs ago
he does have a point ;-)
 
Ah, I misread it.
 
@MathieuGuindon nukes are basically the coals of explosvies.
 
Auxetics are structures or materials that have a negative Poisson's ratio. When stretched, they become thicker perpendicular to the applied force. This occurs due to their particular internal structure and the way this deforms when the sample is uniaxially loaded. Auxetics can be single molecules, crystals, or a particular structure of macroscopic matter. Such materials and structures are expected to have mechanical properties such as high energy absorption and fracture resistance. Auxetics may be useful in applications such as body armor, packing material, knee and elbow pads, robust shock absorbing...
 
3:51 PM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
 
@Duga Miss the forest behind the blade of grass.
 
Hey, you only missed once. I missed it like ... too many times. hangs head in shame
 
We both need to hang our heads in shame. The non-native English speaker caught it.
 
[rubberduck-vba/Rubberduck] build for commit 21d61265 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@Duga I thought that was my PR. Whew...
 
4:13 PM
i thought I ran tests before pushing. Evidently not.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
[rubberduck-vba/Rubberduck] build for commit 093cdc98 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=h1) Report
> Merging [#4114](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4114 +/- ##
=======================================
[rubberduck-vba/Rubberduck] build for commit 093cdc98 on unknown branch: 52.65% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=h1) Report
> Merging [#4114](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4114 +/- ##
=======================================
> Thanks for reporting this (typo?).

Quickfixes normally operate on a single inspection result. However some quickfixes can be executed in a batch, at various scopes:

- In the same procedure as the selected inspection result: "Fix occurrences in procedure"
- In the same module as the selected inspection result: "Fix occurrences in module"
- In the same project as the selected inspection result: "Fix occurrences in project"
- Across all processed projects: "Fix all occurrences"

So
 
4:34 PM
@Duga FWIW, one way to make it even more clearer would be something like Fix all detected occurrences
 
@this I was looking for a reasonable alternative wording, and couldn't come up with anything that felt right. this does. @IvenBach "Fix all detected occurrences" would work ;-)
 
> Thanks for reporting this (typo?).

Quickfixes normally operate on a single inspection result. However some quickfixes can be executed in a batch, at various scopes:

- In the same procedure as the selected inspection result: "Fix occurrences in procedure"
- In the same module as the selected inspection result: "Fix occurrences in module"
- In the same project as the selected inspection result: "Fix occurrences in project"
- Across all processed projects: "Fix all occurrences"

So
 
Next git good goal: Figure out how to properly squash history so it looks like I always get it right the first time.
 
Memo to myself: more and -er is bad. :\
 
lol
@this it's even worse more badder when you're a native speaker too ;-)
 
4:39 PM
soooo... good thing I'm not? :p
 
ooh, look 'ma, I'm on Hot Meta Posts now
19
Q: Are 1H 2018 OSS ads showing up?

Mathieu GuindonClick stats for the 1H 2018 community-ads campaign are unusually low (to say the least), across the board. Contrast against the 2017 and 2016 figures, is rather stark. It looks like the only clicks any 2018 ads ever got, came from the community ads post itself. Something's up.

 
No wonder the rest of the world laughs at Americans and their crappy incorrect English...
@Duga I'll hold a bit in hopes of clarification before pushing any change.
 
I remember pinging GraceNote a couple of times in February about not seeing any of the qualifying community ads. 6 months later the stats have proven me right
@IvenBach I'm totally fine with "fix all detected occurrences"
it says exactly what it needs to say
although, it doesn't make the scope any clearer
arguably "fix all detected occurrences in procedure/module/project" would work just as well
hmm
meh, "fix all occurrences" should be fine. or should we ask on UX.SE?
 
the problem is w/ word occurrences
if we interpret to mean "any thing that we found", then it's fine as is
but if we define it as "anything that we may not have found", then....
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=h1) Report
> Merging [#3956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/3956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `46.9%`.


```diff
@@ Coverage Diff @@
## next #3956 +/- ##
========================
 
4:44 PM
truth is, I don't understand OP's confusion.... but I can't say I'm unbiased on the subject
 
[rubberduck-vba/Rubberduck] build for commit 94251a62 on unknown branch: 52.67% (target 0%)
[rubberduck-vba/Rubberduck] build for commit 94251a62 on unknown branch: AppVeyor build succeeded
 
I changed it because I was a bit surprised by Fix all occurrences. I own up to me lack of knowledge on it though.
 
You need to read some discussions on classes in VBA, specifically about Factories. See the Rubberduck Blog and these ramblingsPeterT 14 mins ago
 
If you take the latter interpretation of occurrence above, that'd sound funny, and thus detected adjective is needed.
 
You now have people evangelizing RDelizing for your.
 
4:46 PM
IMO it's kind of implied by Rubberduck only ever working against what it can see though
OTOH, we do have a bit of an "insider" view on that
 
You have a thorough understanding of what is expected of RD.
 
TBH, I hate it when technology sector use the word "evangelize". It just sounds sooo wrong.
 
it's not proselytization though, so there's that
I wonder if I spelled that right off the top of my head
 
Mugs got RD promoters.
 
4:48 PM
I wouldn't be surprised if that's the next thing. "Hi, I'm a xyz proselyte!"
and I'll probably lose all my teeth from the grinding.
 
Digging in now. You may have found a stinker on this one. The OSS ads for the rest of our sites seem to be running fine, but I'm not seeing anything for SO. Should have this resolved soon and will post an update below. — stevvve ♦ 24 secs ago
 
@this if I encounter anyone that says that without a humungous dose of sarcasm, I'll be finding the closest Oxford Dictionary and smack their head with it
 
Please do.
 
Should detected be added to each or just QuickFix_All for clarification?
What about hover text for buttons?
 
TBH I'm growing more and more irritated with the inspections toolwindow. it needs to die.
 
4:52 PM
lol
 
how about replacing it with a "Inspection Results - {module name}" tab in the search results toolwindow?
 
you're getting ahead of yourself
 
@MathieuGuindon that sounds bad, actually
 
again
hm
 
4:53 PM
because you're turning the search results toolwindow into something that's not the search results
which is .... confusing to say the least
 
yeah.... while removing a TW and slowly getting our users used to seeing tabs in the VBE?
"Search Results" is just a caption ;-)
 
so you want to do away with the different TWs
I think what you want is something like the behaviour VS has with the different views it exposes
 
IMO, we're overdue for a tabbed window.
Yes, like that.
that would work for test explorer, inspection results and code metrics.
heck, throw in the immediate window in there (?)
that would be a good small step toward the one mega toolwindow that Thunderframe has been fantasizing about
 
we just need to get AvalonEdit panes as such Tabbed window panes as well and we can take over the whole VBE
 
yeah - I think that putting those TWs into that new tab container would be very helpful. Right now it's very awkward for me to use TE, CM and immediate.
 
5:01 PM
[rubberduck-vba/Rubberduck] build for commit d5ddd9ef on unknown branch: AppVeyor build succeeded
 
CE is ok because it's usually on the left side and is kind of its own thing.
 
@Vogel612 I just had the Pinky & the Brain theme song play because of your "take over the whole VBE"
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=h1) Report
> Merging [#4114](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4114?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/38be73730ae7a05dcca540a83c1c029fc6505fb0?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4114 +/- ##
=======================================
[rubberduck-vba/Rubberduck] build for commit d5ddd9ef on unknown branch: 52.65% (target 0%)
 
@Vogel612 "just", lol
 
shhhhh don't make my plan look so hard
 
5:10 PM
@IvenBach thanks, now I have it too :)
 
Sorry.
 
> The same thing as every night, Pinky: we take over the VBE!
5
 
haven't seen more than two episodes of that, soo ... I'm scot-free here :=)
2
 
@MathieuGuindon awesome ref :-)
 
it's kind of sad there were so few of them. I thought they were probably the best materials to come out of WB for a while.
 
5:18 PM
@this I just remembered, the actor doing the voice-over for Brain in the French version, was the same actor doing the voice-over for Doc in Back to the Future, and it was PERFECT
 
how would it be phrased in French? (saw the Google translation but I don't trust it)
La même chose que chaque nuit, Pinky, nous envahissons le monde! was what it suggested.
 
They're Mugy and his flock
Yes Mugy and his flock
One is a Mug
The others are his ducks
They're opensourcing work
Is to make the VBE work
They're monking
They're Mugy and the ducks, ducks, ducks, ducks, ducks, ducks, ducks, ducks, ducks, ducks

Before the days is through
Their work will be reviewed
Through the effort of each day
They'll find a better way

They're Mugy and his flock, yes Mugy and his flock
Their daytime charades
Are funny to observe
To improve the coders life
They'll give them better tools
3
 
@this tenter de conquérir le monde!
And it was "Minus et Cortex"
 
ha! Knew it'd get it wrong. It probably took the `"take over" too literally.
Minus just doesn't have the same ring as Pinky does.... but maybe I just don't know the French context.
 
@IvenBach that's... excellent!
 
5:26 PM
A blind pig can succeed every now and then.
 
@MathieuGuindon Would that be the "cereal cortex", Pinky? :D
 
If I had more than 5 mins I could come up with something that flows a bit better.
 
@IvenBach If I had 5 days, I wouldn't come up with something near as good!
about to leave for 18 days vacation, so y'all will be rid of me for a while!
 
finally some time to crack down on that bug-backlog
 
5:32 PM
@FreeMan I grew up on Mystery Science Theater 3000. My dad always messed with lyrics to stuff. These things just come to me.
 
@MathieuGuindon Is that a mouse and a cat?
Or two mice?
 
they're lab mice
trapped in their cage
 
OK. I didn't watch the show.
 
You're making us feel old Hosch...
 
@Vogel612 :D
 
5:34 PM
coming up with a nefarious plan to escape and conquer the world every night :)
 
@IvenBach Eh, we just didn't have a TV.
 
yeah, no kidding!
 
how old are you all?
 
turned 36 last week
 
5:35 PM
D'oh! I need a mod to ninja edit a :Quack: at the footer of the lyrics.
 
@awgaya Turning 23 in c. 40 days.
 
OK, 29 here
 
wait hang on... I'm older than you, Hosch?
 
@Vogel612 By a year, IIRC?
 
turned 23 a month ago
 
5:36 PM
33
 
Oh, by two months. OK.
 
> [RubberduckLog.txt](https://github.com/rubberduck-vba/Rubberduck/files/2120436/RubberduckLog.txt)

Code:

Option Explicit

Sub testReDim()
Const length As Long = 2
ReDim Result(length) As String
End Sub

Sub testDimReDim()
Const length As Long = 2
Dim Result() As String
ReDim Result(length)
End Sub
 
Kids. Y'all are kids! I'm 50. Now GET OFFA MAH LAWN!
explains why he wrote COBOL for a living at the beginning of his career.
 
what's worse, VBA or COBOL?
 
5:46 PM
define "worse"?
 
maybe unintuitive? not doing what you expect etc
 
MULTIPLY SUBTOTAL BY TAX-RATE GIVING TAX-AMOUNT
ADD TAX-AMOUNT TO SUBTOTAL GIVING TOTAL
you tell me...
 
@Hosch250 yeeeaaaa nope. not going to happen
one does not get to propose to a poly GF
 
and you only get 80 characters per line. Except that the first 7 are reserved.
 
[rubberduck-vba/Rubberduck] build for commit a9710e75 on unknown branch: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] build for commit a9710e75 on unknown branch: 52.65% (target 0%)
 
5:49 PM
also ... wow I missed some important news there
 
> That's a tough one. The resolver currently isn't treating `ReDim` statements as declarations, because it literally can't *know* whether the identifier is or isn't `Dim`'d elsewhere (e.g. a global array declared in another module) in scope.

VBA `ReDim` statements are dual-purposed: they serve as executable declaration statements, *and* as a statement that resizes a dynamic array.

Rubberduck can't treat them as executable declaration statements, so "variable 'Results' is not declared" isn'
 
@Vogel612 "poly GF". Is that a girlfriend made out of polygons? /old man questions.
 
polyamorous
 
ah.
 
it's not a terribly new concept in and of itself, but it kinda precludes the idea of marriage, both "civil" and "ecclesiastic"
 
5:56 PM
indeed it would.
 
damn, some adjectives are weird
 
 
1 hour later…
7:09 PM
"So uh, what do we do tonight, brain?"
 
great pic :)
 
Late to the show, but I am 32.
 
7:31 PM
@Duga wouldn't that end up as being a part of the compilation pass that's been talked about for a while?
 
@this no, it would have to run before the pass that collects Declarations
i.e. complete tree traversal for the entire project, on the off chance that there might possibly be a ReDim statement used for declaring an array somewhere
 
I don't follow. Don't you need to know the declarations first to know there's a public variable that may be Redim'd in a given local procedure missing a declaration?
 
the problem shows its ugly head when ReDim is used for declaring things
hmm
right, it couldn't be global
 
Seems to me that when resolving the expression for Redim, you only need to find any publicly accessible variable whenever you're missing a local Dim statement for that procedure.
 
but, ReDim is executable and thus can be conditional, which makes things... complicated
IOW ReDim as a declaration statement screws us over
 
7:35 PM
hm, why does that matter?
 
@this and if there isn't, then we need to create a Declaration and add it to the finder
 
we are not asking whether a Redim in a if statement will get executed; we are only asking what expression the Redim is going to use.
 
Option Explicit
Sub Test()
    ReDim foo(1 To 10) 'legal
End Sub
 
Correct, just as if the Option Explicit was turned off. (Dumb, dumb, dumb)
 
yes
the resolver pass that creates the declarations can't just pick up ReDim statements and blindly go and create a Declaration for it
 
7:37 PM
so still thinking the resolution would be basically be 1) are there local variable with same identifier? 2) If no then, are there any publicly accessible variable with the same identifer? 3) If no, then make it implicitly Variant.
but don't you already resolve the implicit variants? That'd be the same place you'd solve for the Redim since you now know about any explicit declarations.... right?
 
See ya, kids! I'm off to Europe for 18 days. @MathieuGuindon - you've got my address (thanks for the swag!) so if you don't mind keeping an eye on the place, I'd appreciate it.
 
I'll buy you a beer if you ever visit Switzerland :p
 
@FreeMan fly free!
 
@MathieuGuindon umm .... the declaration that we ReDim needs to have been found previously, if it exists, right?
can we not look up for a relevant declaration and create it if it doesn't exist yet?
 
7:42 PM
5 mins ago, by this
so still thinking the resolution would be basically be 1) are there local variable with same identifier? 2) If no then, are there any publicly accessible variable with the same identifer? 3) If no, then make it implicitly Variant.
(though to clarify the #3, "make it" ought to be "make a new declaration that's implicitly variant)
 
@FreeMan House party while he's gone!
 
yeah
hmm
the resolver bit that creates the Declaration for an undeclared implicit Variant could check to see if the identifier is in a ReDim statement?
 
That would be a logical place, since at that point, we already know about the public variable declarations, so we can check the #1 and #2 pretty easily at that point. Right?
 
I think so
 
I think there's even a comment for this problem here: github.com/rubberduck-vba/Rubberduck/blob/…
if resolvedefault on line 254 fails we could add a new declaration or something like that?
 
7:57 PM
hmm, that looks about right
except how do you know if ResolveDefault failed or not?
 
line 172, ExpressionClassification.ResolutionFailed
 
ah
#HaventToyedWithResolverMuch ;-)
 
there should be a log entry in the person's log who wrote the issue
 
i only have a weak understanding of the resolver but the code implies it's resolving the index expressions, not the array variable name?
 
00:00 - 20:0020:00 - 00:00

« first day (1475 days earlier)      last day (1705 days later) »