« first day (1658 days earlier)      last day (1522 days later) » 

12:01 AM
RELOAD!
[bruglesco/fleet-command] 1 commit. 25 additions. 14 deletions.
[bruglesco/fleet-command-rewrite] 1 commit. 3 additions.
[rubberduck-vba/Rubberduck] 3 commits. 3 opened issues. 6 closed issues. 18 issue comments. 7 additions. 7 deletions.
[rubberduck-vba/Rubberduck] build for commit e653531a on unknown branch: AppVeyor build failed
BUILD FAILURE!
> I thought I had the latest version, apparently I did not, new version does indeed work, thank you so much!
 
@Duga and if that's 2.3.1 you're still not running the latest awesomenese =)
 
I really start to regret making my RD folder case sensitive.
 
> @tallguyjenks make sure you picked up the latest pre-release build - if you haven't been following the [project's blog](https://rubberduckvba.wordpress.com) or [social media](https://m.facebook.com/story.php?story_fbid=2266342446982944&id=1570311533252709) posts there's a big surprise feature currently in pre-release!

Feel free to star us here on GitHub, too :smiley:
 
12:20 AM
> Rubberduck.Setup.2.3.1.4308.exe (3.89 MiB) - downloaded 495 times. Last updated on 2018-12-10
> Rubberduck.Setup.2.3.0.4221.exe (3.88 MiB) - downloaded 490 times. Last updated on 2018-11-25
 
Oh crap, I can't test that. Duh...
 
[rubberduck-vba/Rubberduck] build for commit 3d06094c on unknown branch: AppVeyor build succeeded
> Which references do we want included in the search results for this? The current method in the `DeclarationFinder` for identifying if a reference is "used" looks at all identifier references for the library and all uses of its declared types (i.e. `Dim Foo as Worksheet`). We could easily do that, but for an enormous project, that might make for an... extensive... list of results for the host project, and probably even more for the VBA reference.

Should we use the same rule (match the "dimme
> 'Nuf said.
> This is currently handled through VbeEvents and subclassing. Closing as obsolete.
> I wouldn't exclude any libraries... could identifier refs be cached by typelib in [yet another] dictionary? That could simplify the code that identifies unused libraries.
 
12:51 AM
@Duga I mean, if you ask for all uses of the VBA stdlib, you gotta expect it to take a little while...
...but excluding it feels wrong though
esp. given we can already find refs for e.g. MsgBox
 
> I'm don't think the un-cached performance is really that bad ATM. I was mainly coming at it from the standpoint of Find all references... --> OK, here's a dialog with a couple thousand results.
 
@Duga wondering if that could be a perf killer though
Right
Well a toolwindow anyway
Hmm.. maybe limit the number of results to, IDK, 255?
 
Perf killer on the WPF side. It's already doing the exact same lookup for the reference dialog.
Also for the CE in my local.
 
Find all references... OOM.
 
12:55 AM
Or see how many results that is, and offer to write them straight to clipboard instead of rendering an OOM?
if > x, I mean
 
[rubberduck-vba/Rubberduck] build for commit 46e5a9a9 on unknown branch: AppVeyor build succeeded
 
meh. probably better off just disabling the command on libs
 
What about a dialog box with a threshold?
> Warning: This operation could potentially display a large number of results. Continue? [Yes] [No]
Smaller libs like scripting would be entirely reasonable, and getting the count to test against is trivial.
> Warning: You are about to display 10000 search results. This could adversely impact performance. Continue?
 
Sounds feasible.. I just wouldn't want that to go way overboard... easy scope-creep potential there =)
 
TBH, it's just a matter of injecting a messagebox (I might already have one where I need it), and popping it. Whole thing will take 10 minutes.
 
1:04 AM
 
@Duga woot, 715!
 
hmm. I don't see any utility in dumping 100000 results in a messagebox/toolwindow.
with that many results, I'm more liable to want it in say, an Excel or Access table.
you know, with the filtering capabilities built-in.
sure, it's static, not dynamic but again, 100000 results is not something I'd want to just browse for funnies.
 
5 minutes to export to the clipboard. We already have that functionality.
First I need to see WTH in the merge with next busted all my nice green tests.
 
1:20 AM
[rubberduck-vba/Rubberduck] build for commit 3ddbec30 on unknown branch: AppVeyor build succeeded
 
is there a case where IDispatch's v-table doesn't follow IUnknown's v-table?
 
I'm not sure that's legal.
Unless maybe it isn't declared as dual interface and just randomly implements IUnknown for some reason.
 
yeah, feels iffy. In this case, we are assuming it's dual
 
1:43 AM
This looks horrendously inefficient:
                () =>
                    _referencesByModule = declarations
                        .SelectMany(declaration => declaration.References)
                        .GroupBy(reference =>
                            Declaration.GetModuleParent(reference.ParentScoping).QualifiedName.QualifiedModuleName)
                        .ToReadonlyDictionary(),
                () =>
                    _referencesByMember = declarations
                        .SelectMany(declaration => declaration.References)
That coalesces the identifier references 3 times.
Nope, 4 times.
 
hmm that could be a problem....
 
Do we care?
 
well, we're trying to use .NET Core?
(at least for the building stuff)
 
Meh, as long as we can reference the assemblies that we need...
 
probably not understanding - I read it as to say that .NET Core won't have Marshal witha ll the COM goodness we've been using all over the code basee.
 
2:03 AM
I don't see why they would. But there isn't anything that prevents referencing a non-Core assembly from a Core one is there?
 
TBH, I'm still a bit fuzzy on what's what.
AIUI, .NET Fx can reference .NET Core, but not the other way around
and I think we are using .NET Core's SDK?
 
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
FML 109 failing tests post merge. Nice.
 
 
2 hours later…
3:55 AM
OK, tried it on my horror show project.
CE is a bit sluggish with that many nodes - especially the filtering.
LOL
 
 
7 hours later…
10:39 AM
> In the grouping grid in the `InspectionResultsControl` we bind to the `Result` collection on the view model, which is an `ObservableCollection<IInspectionResult>`, and base the grouping on the `Inspection` property of the items.
Since `IInspectionResult` does not extend `INotifyPropertyChanged` this leaks all inspection results.

The cleanest way to fix this is probably to introduce an `InspectionResultViewModel` that implements `INotifyPropertyChanged` to wrap the results.
 
@this shouldn't be an issue. We're not targeting standard, and it's highly unlikely we will ever do so
 
11:05 AM
@Vogel612 good - I was a bit fuzzy because for builds I had to consult .NET Core references to make sense of the new csproj formats
 
11:39 AM
user image
5
 
 
1 hour later…
12:40 PM
> As an alternative to the additional view model, we could change the binding mode to OneTime, which makes the UI use a snapshot and avoids registration to the value changed event.
 
@Vogel612 guessing we may switch to core at some point though, once all the UI stuff is done and stable?
 
@mansellan for the build alone we could probably
I don't know how that plays with COM registration and the VBE, though...
 
indeed, too early to tell i think
 
staying on Framework means no switching, and no uncertainty
 
@Comintern not often that one expects a failure and then is disappointed
Got my copy of Head First C#: A Learner's Guide to Real-World Programming with C#, XAML, and .NET last night. That's a tome! When I'm done with it, I'll use it to prop up the wobbly couch.
I got through the preface last night. Not sure I'll really dig into it before Christmas, but after, it's on
 
1:01 PM
@this wait, what is this sorcery!?
 
No sorcery yet. All COM objects are interfaces at their heart, so it is amatter of slapping a Moq.Mock on it.
 
I mean, how does Debug.Print produce an output with the breakpoint set onto it?
huh it's literally a Moq wrapper? Clever!!
 
Lol. Thats second invocation
what will be sorcery is mocking VBA classes.
 
@MathieuGuindon is AC block completion currently broken/removed?
I've got all 3 block completion check boxen ticked (off) yet For each {x} in {y} <enter> just gets me a new blank line
 
Speaking of which, I may need @WaynePhillipsEA help. I get a null reference exception deep within mscorlib when calling Marshal.GetTypeForITypeInfo on a VBA's ITypeInfo, though the pointer is valid.
 
1:15 PM
@FreeMan not rewritten yet
 
May want to consider disabling the options in the settings, at least for now.
 
1:47 PM
strike <s>through</s>
how come neither of those seem to be working on SE comment boxen right now? Didn't it used to support minimal HTML like <s> </s>?
 
2:17 PM
Chat, comments, posts and generally every input field in SE has it's own supported flavor of Markdown
 
I thought one of those worked in comments. Oh well...
 
2:45 PM
Yay! Ghost breakpoints in my Access project again. Time for another decompile...
Anyone know why these happen, but it seems that it's only Access that's susceptible to them?
he asks as he finds a ghost breakpoint in his Excel project. :/
 
it's nto an Access only problem. I've seen it in VBE in general.
It might be that you see it more in Access because if you are saving your code while you're in break mode, and possibly with open Access forms in design view, you end up saving the breakpoints into the stream.
 
what do they look/act like? Execution halts but no breakpoint is visibly set?
 
Technically breakpoints aren't supposed to be saved and should be stripped but obviously that doesn't always happen, hence "ghost" breakpoint.
@Inarion pretty much. Just as if there was a breakpoint.
 
Hm, I see. I think I've not encountered one so far.
 
BTW, FYI - decompile isn't required to fix it -- simply deleting the line and pasting it back will work, too.
I think it is only encountered if you edit and save your code in break mode.
Not easily reproducible but it does happen.
 
2:49 PM
Ah. I've done plenty of the editing in break mode, but I don't think I usually save then.
 
Mind, I might be wrong about that. It might be possible to get phantom breakpoints without the editing stunts.
 
Normally I try to remember saving before executing. (Especially when it's "risky" code like new Do ... Loop constructs...)
 
I never really paid enough attention to that problem.
esp. that it can be usually fixed by the cut'n'paste and the longstanding rule of always delivering decompiled codebase.
 
yeah, if it's only present in the compiled code, it should be manageable.
 
@this Thanks, that'll save some time & effort. Hadn't thought about that one.
@this That seems reasonable. I'm sure I've done quite a bit of that.
:Slaps hand: Stop it! <-- saves everyone the trouble
Bad Habits™: They're hard to break
 
3:02 PM
Easy to get into, hard to get rid of?
Like every addiction mankind has ever had? :D
 
pretty much...
 
feh. I edit'n'continue a lot.
I do make a point of stopping if I need to break the interface.
but within a procedure and as long I'm not redefining variables....
 
Since I know know a good way to fix the problem, I probably won't worry about the cause too much, but getting into a better habit is a good thing to do
changing Dim statements automatically stops execution anyway. Though you get a lovely little warning
 
> Of those options, it seems like the more reasonable one (at least in the short term) would be to switch to `OneTime` binding. I'd assumed that was what we were doing but that's apparently not the case. I can't really think of a situation where an inspection result would "change" with our current inspection architecture unless the entire `ObservableCollection` was being replaced.

If we ever do change the overall architecture to allow more dynamic inspection, that would be the time to add an
 
@this Avalon feature? [X] Disable code edits in debug mode.
 
3:12 PM
^might build better habits.
 
Imo, it can save time when developing. I find myself often modifying an expression, then dragging the execution pointer up again, then F8. But I usually finish or stop the run before I save.
Might only be me, though. (Looking at my 2-year-old spaghetti... it takes time to get to that certain point in the code...)
 
@Comintern don't see utility in that.
it's far too useful to edit 'n' continue.
 
Thus the setting. I'd personally keep it on to prevent myself from doing things like editing out a loop exit condition or changing a pointer for an API call (both of which can take a host down).
 
@Duga I fully agree.
 
I'd personally keep it ---on---off to ---prevent---allow myself <s>from</s> doing things like editing <s>out</s>in a loop exit condition ;)
 
Meh?
 
I think it's pretty important that we at least fix the obvious memory leaks.
@Inarion here, it's 3 dashes
 
d'oh...
you have ...too little... time left for editing. Now that comment will live forever in here... in shame.
 
I know. I always have to remember which is which in where
lol
 
Maybe it's time for an International Markdown Standard? (Not quite serious here.)
 
3:33 PM
yes! One more standard will fix it for reals!
 
One standard to [make the number of standards increase by one]
 
3:56 PM
@Inarion I do that a ton, too.
 
@Inarion It's the two---three dashes but there ---can't be needs to be a space at the "outside" edges of the dashes
ha!
the space between the --- and be--- needs were the triggers for the strikethrough
OK, just 'bout time for the next pig-out fest. Company Department Christmas gathering. Then tomorrow starts vacation. But the boss scheduled me into a meeting at 3:30 this afternoon... :(
 
4:19 PM
free flags...
-1
A: How to access data from a table on the web on vba?

manger5fruitetlegumeparjourSalut, moi aussi je suis bilingues, avec l'avis d'un marabout je te conseille de vendre ton âme au plus offrant et de rajouter du sel autour de ton espace de travail, cela éviteras d'attirer les démons du code de merde. En effet le code de merde sais ce que tu nous sort la espèce de Bic mac à qua...

gotta be the funniest NAA I've ever seen though
 
4:46 PM
@MathieuGuindon not going to lie, that john gruber dude sounds like a bit of a... jerk... to keep it tame.
 
5:06 PM
@MathieuGuindon had to use Google Translate...
 
wth it's still up
 
> 3. Don't differentiate routine names solely by number
I've had that come back to haunt me.
Do we have an inspection for names with numbers?
 
Use Meaningful Names does that
 
Figured. :+1: for that too.
 
5:28 PM
@MathieuGuindon gone. but... whaaaaat??????
was that funny in French?
I mean, I translated (thanks Google!), but I think it may have lost something...
 
> Version 2.3.1.4340
OS: Microsoft Windows NT 10.0.15063.0, x64
Host Product: Microsoft Office 2016 x64
Host Version: 16.0.4711.1000
Host Executable: MSACCESS.EXE
 
@Duga huh?
ok... and what should/would that new quickfix be?
 
@MathieuGuindon that's not enough info?
before I finish that... (Accidentally hit Enter while in the subject line)
How does Fix all detected occurrences differ from Fix all occurrences in project?
 
if there's only 1 project opened, they're the same thing. if there's 2 or more projects, "all detected occurrences" affects all projects that spawned a result for that inspection
 
5:44 PM
why must all VPN clients be such a PITA POS?
I've yet to see a VPN client that actually worked out of the box
 
@MathieuGuindon not quite as obvious as it could be... :D
@this I've got the OpenVPN client on my phone & connect to my home server without issue.
 
sure, but i'm referring to installing and configuring.
after you whack it enough hard, it eventually work.
but holy moly do it have to be so infuriating?
 
@this NordVPN is pretty good
 
that's one I've not had to use.
mind, I don't get to choose. Those are my clients'.
 
5:51 PM
@this mmm... yeah. It wasn't tooooo bad to get it configured. But, if you're stuck with what you're stuck with, then, well, good luck!
 
oh for love of ....
a stupid admin dialog hidden behind the installer.
Infuriating is exactly the right word for the lots of them.
 
thanks Windows on @this's behalf
 
I'm not so sure it's Windows.
then again, it might. IDK and IDC. I shouldn't be wasting my time on this IT crap. I'm not in IT.
 
but... but... you know how to spell "PC", so you have to be able to help me fix my problem...
 
6:13 PM
only wizards know how the magic picture boxes work, fix my magic picture box, preferably for free.
 
6:43 PM
and this is why we don't use Magic Numbers in our code, children:
  With Err
    If .Number = -2147024809 Then  'WHAT IS THIS MAGIC NUMBER????????
hangs head. raises hand
I still don't know what that error code is and why I'm specifically ignoring that one error.
 
That error number means Magic number not found, everyone knows that....
FWIW - sometime it helps to convert that to hex. You might be able to google for the hex instead. Like here
> 0x80070057 E_INVALIDARG One or more arguments are not valid
 
@this D'oh! I shoulda knowed that...
hrm... that hexlates to 7ff8ffa9 and that doesn't seem to be much more googlable
wonders why @this linked to the Cryptography error codes
 
7:01 PM
did you forget to hex the negative sign?
?hex(-2147024809) => 0x80070057
@FreeMan lol. I saw Common HRESULT values and assumed it was a generic. It is in fact generic, not just for cryptography; but I guess they decided to re-list those in their documentation.
 
@this I googled a hex converter and it ignored the -. Well, actually, it stuck it on the beginning of the string it returned. Guess it's not that good a converter...
 
the problem is that hex converter in general assumes an unsigned number
 
that's not turning up much either. Most of what I'm finding is related to issues with Windows when updating from Win7 to something newer...
This is in a method that loops through all the pivot tables on a worksheet and refreshes them, so it's probably related to that, but I don't have a clue how...
maybe I should take it out and see what happens!'
 
7:44 PM
I'm getting a Parameter 'x' can be passed by value inspection for a class parameter in the Interface definition.
I suppose this is correct because A) it's a class so it doesn't really matter whether it's ByRef or 'ByVal`, I'll still get my data back. But B), a property of the class is assigned to in at least one of the implementations.
I get that I can pass this ByVal and it will still work, but somehow this seems wrong.
Is it simply because I've got a case short-timer's since today is my last day before vacation?
 
@Duga Well that's a really helpful description of the issue...
 
about as bad as mine!
give it time... coulda been a fat-finger of the enter key...
 
> I just installed RD to a non-admin user on a new PC,64 bit Excel 2016 in O365. The Add-in Manager shows it Loaded, and on Startup. but there is no Rubberduck menu in the VBE. I unchecked and rechecked Loaded but it did not appear. Should I reinstall as admin?
 
see!
 
7:55 PM
> I just installed RD to a non-admin user on a new PC,64 bit Excel 2016 in O365. The Add-in Manager shows it Loaded, and on Startup. but there is no Rubberduck menu in the VBE. I unchecked and rechecked Loaded but it did not appear. Should I reinstall as admin?
> Can you please upload the trace log?
 
8:12 PM
> 2018-12-20 19:54:03.9404;INFO-;Rubberduck._Extension;Rubberduck is shutting down.;
2018-12-20 19:54:04.0664;INFO-;Rubberduck._Extension;No exceptions were thrown.;
2018-12-20 20:12:05.2856;INFO-;Rubberduck._Extension;Rubberduck is shutting down.;
2018-12-20 20:12:05.2856;INFO-;Rubberduck._Extension;No exceptions were thrown.;
> Is that the whole log?
 
8:26 PM
> YesOn 20 Dec 2018 20:13, Brett Shepard <notifications@github.com> wrote:Is that the whole log?

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.
 
Something's not right. Doesn't the log normally have the environment information at start?
 
8:54 PM
Yeah. in other news, I just ran into something weird... the CE's "add" menu items all disappeared. one minute they were there, the next they weren't. no idea what happened.
 
the blank menu with just a vertical line?
that did happen to me, too.
 
yeah. then I tweaked the font size to see if it would fix it, toggled it back, and then the menu was no longer just empty - it was completely gone
well, collapsed, I guess
puts a T in WPF
 
ok, that I didn't experience.
and indeed a big T.
 
9:20 PM
I just got your 'puts a T in WPF`...
 
Y'all have a great Christmas and New Year's!
I'll try to stop in, but I may not...
 
worst case, happy holidays to you as well!
 
9:38 PM
Any update from Thunder recently?
 
hmm, last post 20 days ago
last seen on SO Nov.29
I hope all is well
 
Wish him the best.
 
9:57 PM
Jul 22 '17 at 12:35, by ThunderFrame
Melbourne
 
Pretty sure he was here last week. Certainly the week before last.
 
Last seen 11days ago on SO.
 
yeah, can't be him. ...
 
I just had a CommitStrip idea where they get robbed.
A play on words with cash and cache.
 
 
1 hour later…
11:16 PM
0
Q: Test Module VBA

Kusii'm trying to write a test module to test one of the modules I wrote. In specific, I have a if statement I would like to trigger using the test module by giving the module the wrong initial parameters. The module I would like to test is: Function TPR_TNR_FPR_FNR(expected_vals As Range, pred_vals...

 
11:43 PM
You're going to need to leverage the Rubberduck Fakes API in order to cover the code paths involving MsgBox - otherwise these tests will pop a msgbox, which you don't want in an automated unit test. Alternatively, throw an error and let the caller show the msgbox, and test for that specific error being raised given invalid inputs. — Mathieu Guindon 22 secs ago
Would it be too specific to have an inspection that flags Range.Select calls passed as arguments to anything?
 
how about flagging everything that's Select?
There's at best a handful of use-cases for it in the first place
and most scripts don't really serve any of them.
 

« first day (1658 days earlier)      last day (1522 days later) »