« first day (1656 days earlier)      last day (1524 days later) » 

12:00 AM
RELOAD!
[bruglesco/fleet-command] 1 commit. 27 additions. 8 deletions.
[rubberduck-vba/Rubberduck] 17 commits. 2 opened issues. 2 closed issues. 11 issue comments. 3938 additions. 386 deletions.
 
 
3 hours later…
3:43 AM
Add the AttributeValueOutOfSyncInspection

This inspection finds instances where a Rubberduck attribute annotation is used, the attribute exists, but the values do not agree.

This commit also changes the default severity of the realated MissingAttributeInspection to Warning.
Add AdjustAttributeQuickFix

This quickfix adjusts an attribute out of sync with a corresponding annotation to the value corresponding to the annotation.
[rubberduck-vba/Rubberduck] MDoerner pushed commit cbaa468b to next: Fix AttributeOutOfSync default settings
Fix Attributes HasHiddenMemberAttribute

Includes another suggestion from the review comments on PR #4641
Make the MemberAttribute annotation work for variables

Member variables can have attributes, too.
[rubberduck-vba/Rubberduck] MDoerner pushed commit 59c2a334 to next: Perform minor improvements based on comments to PR #4642
Merge pull request #4642 from MDoerner/AttributeValueOutOfSyncInspection

Attribute value out of sync inspection
 
@Duga @MathieuGuindon All of the comments are resolved at this point.
 
4:05 AM
@Comintern so... it's good to merge then
 
Should be. There are a couple UI annoyances that I sorted out, but that's it.
 
The world isn't ready for 2.4
 
[rubberduck-vba/Rubberduck] build for commit c5be87b5 on next: AppVeyor build succeeded
 
This 2.4 release is going to break records =)
 
4:10 AM
Heh. My next PR closes about 90% of the open CE issues.
3
 
Here we go!
 
[rubberduck-vba/Rubberduck] retailcoder pushed 22 commits to next (only showing some of them below)
[rubberduck-vba/Rubberduck] comintern pushed commit 9bc9d809 to next: Add inital ReferenceSettings support.
[rubberduck-vba/Rubberduck] comintern pushed commit ead66d29 to next: Tweak priority button visibility, search and browse layout.
[rubberduck-vba/Rubberduck] comintern pushed commit b1f3dc51 to next: Add user project folder support for references.
[rubberduck-vba/Rubberduck] comintern pushed commit f63202e5 to next: Wire up references event handlers.
[rubberduck-vba/Rubberduck] comintern pushed commit 43d7092b to next: Add references command to context menus.
[rubberduck-vba/Rubberduck] comintern pushed commit ecf8307c to next: Add unit tests, address results.
[rubberduck-vba/Rubberduck] comintern pushed commit aa014706 to next: Add view model tests, inject file dialogs.
[rubberduck-vba/Rubberduck] comintern pushed commit 421c2137 to next: Various UI tweaks.
[rubberduck-vba/Rubberduck] comintern pushed commit 39439883 to next: Clean up MockedCodeExplorer ctors.
Merge pull request #4601 from comintern/refs

💯
 
5:39 AM
> Closed via #4601
[rubberduck-vba/Rubberduck] comintern project card. Enough said.
[rubberduck-vba/Rubberduck] comintern is bored so why not move a project card
> Has this popped up again? This should have been either resolved by #4240 or mitigated to the point where the fail rate is acceptable.
 
 
2 hours later…
7:21 AM
Pre-release build is here! https://github.com/rubberduck-vba/Rubberduck/releases/tag/Prerelease-v2.3.1.4330 https://twitter.com/rubberduckvba/status/1071282923129765891
 
 
4 hours later…
10:54 AM
 
11:21 AM
> On top of other suggestions that would make working with VBA "independently" of Excel, it would be neat if it would be possible to export also the visual folder structure when you export a project.

Other issues I sort of think are related and really useful if you want to e.g. reuse a module in a different project (say a folder containing a class hierarchy)

- Ability to export a single folder #3972
- Ability to import project (or specific folder) #4012

If we had all of these 3 then
 
 
1 hour later…
12:25 PM
@IvenBach Are those the ones you got from your Christmas party claw machine??
@MathieuGuindon self promotion seems to work. :)
@TweetingDuck you're all 404 dude
Test drives new Add/Remove References box. Likes what he sees.
Discovers minor issue:
Where be my buttons?
Seems the default box size isn't wide enough to display the ordering buttons
 
12:44 PM
It also doesn't seem to save changed window sizes. (If that's the intention...)
Otherwise I *really* like it. :thumbsup:
 
> Version 2.3.1.4330
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

Loving the new Add/Remove References dialogue box. Unfortunately, the default box size isn't quite big enough to show the the "Change Priority" (?) buttons:
![2018-12-18 07_37_43-microsoft visual basic for applications - roireport - form_satsummary code](https://user-images.githubusercontent.com/11889733/50154754-49536f00-0298-
 
@Inarion Nope. Yup!
 
:D
 
counter ninja edit!
:realizes he has a metric crap-ton of references in this project:
 
Sorry for that. There was this issue popping up in my face and interfering with my coherent-consecutive-comment style. So I had to change plans. :D
@FreeMan Yup. Been there, realized that.
How to get that headduck?
I mean: Duck hat?
 
12:49 PM
@Inarion lower head
19 hours ago, by Hosch250
You get the Rubberduck hat :)
then scroll up...
to the previous Hosch post
Also, noticed this:
@Comintern Is the lack of ordering buttons on VBA intentional?
 
@FreeMan Hah, that's just perfect! :)
 
@FreeMan that could make for messy references and/or a pain in the butt if someone removes, saves & readds unintentionally.
where "Unintentionally" means without realizing the consequence of his actions.
 
@FreeMan isn't that on the left listbox?
it's by alphabetical order, and priority is irrelevant. Were you wanting to pin it?
 
@this mmmm... no... VBA is pinned by default. I was looking at the pinned references wondering why it was empty (realizing that's because there were no unselected, pinned references). So I unselected VBA, it appeared in the left-side box under Pinned, then I reselected it.
 
12:57 PM
@FreeMan note the padlock icon =)
 
It was moved to the right hand box at the bottom of the list with no option to move it back to the top.
I cancelled.
@MathieuGuindon Yes, but the new dialogue allows me to deselect it from the list.
I'm in a live project so I'm not willing to save to find out if it's automatically put back at the top of the list...
 
The API wouldn't let that happen anyway
 
Woah, you shouldn't be even able to unselect VBA from the project
 
bug #2?
 
yeah
 
12:59 PM
^ yup
 
esp. since the padlock says that you shouldn't be able to do anything with it
 
:closes live project: :creates test Access project for breakage:
 
@this curious about whether that actually throws
 
pretty sure that if you try to apply it'll throw an exception and won't actually do it, as Mat said.
 
can't wait to get to work
 
1:00 PM
gettin' there...
 
@MathieuGuindon to work work?
;-)
 
> This PR simplifies the annotation scoping. After this PR, the rules will be as follows, where annotations and comments are considered to be whitespace. - Annotations on non-whitespace logical lines are illegal and do not annotate anything. - Annotations annotate the next physical non-whitespace line below them. - Whether an annotation annotates a construct on the annotated line depends on its AnnotationType. - Module annotations annotate the module, provided the annotated line is at most...
the first line of the first module body element, if there is any. In addition, this PR changes the GetDescendent<TContext>() extension to a depth first search approach from traversing the entire tree collecting all candidates, then sorting them and finally taking the first.
 
Yeah, well, ya know
 
whew!
brand new empty project:
Makes bone-head n00b mistake:
Clicks apply several times with no apparent change, clicks OK. Reopens Refs box
 
@FreeMan this definitely shouldn't be allowed to happen
 
1:03 PM
^
 
the good news is that @Comintern did protect us from ourselves, just not quite as smoothly as we may all want...
 
there should have at least been a message box Ha ha, you moron!
3
 
lol
> It looks like you're trying to un-reference the VBA standard library. Would you like to spill coffee on your keyboard instead? #SureShotWaysToBrickYourStuff
5
 
throw in the Clippy waving frantically, and it's golden.
 
> Version 2.3.1.4330
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

Still loving the new dialogue, and it even protects me from making bone-headed n00b mistakes, but it isn't quite obvious that it's doing so.

I start with a brand new Access project and its default references:
![2018-12-18 08_00_53-microsoft visual basic for applications - testing](https://user-images.githubusercontent.com/11
 
1:08 PM
@MathieuGuindon that's the kind of LOL I needed before heading into a meeting from 09:00 to 16:00 today! Thanks.
At least they're providing lunch...
yain't gonna see much of me today #NotKillingMyBatteryLikeMugDoes
 
79%, and the day hasn't even started yet
 
ha. I drive in about 50 minutes and I'm at 80%. I have the screen on the whole way using GPS.
Yes, I know how to get to my office, but Waze warns me about traffic and OMG COPS!!!
 
> Just to note that there's probably 2 separate issues in this one bug report:

1) we shouldn't allow moving of padlocked references (obviously)
2) there should be an error message if the Apply/Ok wasn't entirely successful, so the users aren't surprised when there has been a different error and the dialog apparently not doing what they thought it did.
 
@Duga Yeah, I implied that. Was feeling too lazy to submit a 2nd 3rd issue.
supposed to be building a new dialogue of my own this morning. Testing the duck's new dialogue instead... #StoryOfMyLife
 
1:13 PM
The good news is that all these bugs are (should be) just trivial adjustments
 
^
BTW, @FreeMan what's up with that 4 and 6?
 
And that is why we have prereleases.
 
@this Not. A. Clue.
Was hoping that someone else would know...
 
you have it in the VBA's original reference dialog, too?
 
the what?
:)
 
1:17 PM
@this was wondering too!
 
uh. VBE's
 
@FreeMan LOL
 
nope
 
that might or might not be a bug.
 
1:18 PM
OK, so being able to remove locked references was a bit of a bonehead oversight...
 
"Rubberduck: inventing references for n00bs to add since 2018"
 
it might be OK, actually - since VBE's references is.... particular about what it lists.
 
WTF are 4 and 6?
 
and the 4 and 6 might have been there since forever for all I know.
 
@Comintern but at least you prevented people from catastrophically making a bonehead mistake themselves
 
1:20 PM
@FreeMan maybe check the paths for those 2? Maybe also add a reference and see what OB shows?
 
@FreeMan the VBIDE API does that, I believe
 
yeah, getting there
 
@MathieuGuindon what, it lets you remove a VBA reference?!?
 
@MathieuGuindon shhh... I'm trying to make Comintern feel better...
 
@this it doesn't AFAIK
you couldn't if you tried
 
1:21 PM
then I didn't understand your earlier assertion that VBIDE let you do boneheaded mistakes.
 
fully expecting that to throw a COMException
@this I didn't say that
 
it's legitimately there...
 
@FreeMan Meh, it's already fixed with a PR inbound ;-)
 
but it's referencing 4 within the UIAutomationCore.dll
 
@MathieuGuindon ah I think I misread that sentence the first time. I interpreted that in response to Freeman's comment about making catastrophically boneheaded mistake.
 
1:23 PM
as is 6:
 
@FreeMan now find that one in the vanilla dialog! oh, wait...
 
@FreeMan hmm. So it's indexed reference. That means it need to be fixed
that is a bug
wait, is the library literally 6?
as in the OB?
 
@this looks like it yeah
 
@this Kind of.
If the library doesn't have a name in the registry it tries to use the file name instead... which .NET thinks is 6.
 
if the library is in fact named 6 (which is a moronic name), then not much we can do aobut it.
 
1:25 PM
found!
 
That should be easy to enough to fix.
 
Well, if it's a matter of missing the library name, we can at least display the filename + the index.
 
hmm, so it does have a library name.
 
there are several, but it only lists 4 & 6.
 
1:26 PM
I guess the 6 is the UIAutomationCorePriv
 
That's my guess.
 
3, 5 & <blank> are not listed
 
nonetheless, I think that's what should be displayed on the reference explorer
 
@FreeMan You wouldn't want to track those down in the registry would you?
 
UIAutomationClient = <blank>
ClientPriv = 4
Core = 3
CorePriv = 6
CoreRes = 5
@Comintern I'll see what I can do for ya
 
1:28 PM
I assume Comintern wants the TypeLib entry, right?
 
Computer\HKEY_CLASSES_ROOT\Installer\Assemblies\C:|Program Files (x86)|Reference Assemblies|Microsoft|Framework|.NETFramework|v4.0|Profile|Client|UIAutomationCli‌​ent.dll
UIAutomationClient,version="4.0.0.0",publicKeyToken="31bf3856ad364e35",fileVers‌​ion="4.0.30319.1",culture="neutral"
 
[rubberduck-vba/Rubberduck] build for commit 963bac6e on unknown branch: AppVeyor build succeeded
 
value: )LVok2U508-yyaA2thDkF_NetFx_DTP>^]zIUVN9s=OXRoo1m*+M
 
that's not interesting
look inside HKCR\TypeLib
 
Computer\HKEY_CLASSES_ROOT\Installer\Assemblies\C:|Program Files (x86)|Reference Assemblies|Microsoft|Framework|.NETFramework|v4.5|UIAutomationClientsideProvider‌​s.dll
 
1:30 PM
^
 
UIAutomationClientsideProviders,version="4.0.0.0",publicKeyToken="31bf3856ad364‌​e35",fileVersion="4.0.30319.18020",culture="neutral"
 
we want to see how the TypeLib key is built - it's where reference explorer is building the list from
 
getting there
 
and the "friendly name" is a default key on the GUID of the library
 
I searched for UIAutomationClient and those are the only 2 references
 
1:32 PM
um.
that can't be right.
 
wait...
no, there were just several that looked a lot alike
Computer\HKEY_CLASSES_ROOT\TypeLib\{944DE083-8FB8-45CF-BCB7-C477ACB2F897}\1.0
(Default)
data: UIAutomationClient
 
^ then it's a definitely a bug
 
then:
Computer\HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\{944DE083-8FB8-45CF-BCB7-C477ACB‌​2F897}\1.0
(Default)
UIAutomationClient
 
wait... it's all the same DLL.
 
1:34 PM
> Closes #4649. This also pulls in a minor bug fix for #4334
 
oh balls, I think we have to load the library to get the name.
 
and search wraps back to the installer section
 
@Duga well that was fast!
 
in that case, I guess the fix is to just concatenate the dll name and the index on the explorer if Comintern doesn't want to load the library just to get the name.
 
slacker
 
1:35 PM
lol
 
he did say something about "trivial"
 
Wait so how would the VBE list any libs it can't load then?
 
very, very carefully
 
@MathieuGuindon maybe it does so at a lower level than the VBA itself requires?
e.g. it would be just a simple LoadTypeLib, then read the description, then unload it? IDK.
but I can't imagine it actually loading all of them....
unless it's using some kind of cache? That would totally explain all the weirdness with listing/not listing....
 
Are those all the keys for that GUID?
 
1:38 PM
yeah, pretty sure that was it.
closed regedit already, let me pull it back up
 
Interesting. Do you know what software install that belongs to?
 
yes, those were the only 2 keys for the TypeLib GUIDs
No, not a stinking clue...
Corporate machine.
 
hmm. interesting. I have 2 entries for UIAutomation here
strangely, they are put in C:\Temp
 
we have all kinds of management crap on 'em. including 3 different AVs
I've got Webex Assistant, RightFax, Cisco Jabber, Citrix Receiver... those are just the ones that have an icon in the tool tray.
There's some sort of application checker that runs itself daily at noon. (and steals focus about every 3 seconds, so good luck typing while it runs for about 2 minutes!)
all kinds o'crap!
 
hmm. they don't actually exist there.
they're in the smae path as @FreeMan found them.
but i still can't even load them, with or without index....
 
1:46 PM
I wonder if I already fixed that.
 
@Comintern i wonder if there's a difference in the registry between freeman's and yours?
 
Oh crap. I missed a commit in that PR for #4334. Build's gonna fail.
@this Not sure. Key's in the same place.
So is it better to wait for AV to fail before I push the associated unit test fixes?
 
wouldn't make a difference. AV queues things.
 
1:59 PM
i suppose one w/ the priv can go in and cancel the AV build (which Duga will still holler as a failure), if you don't want to wait.
 
Didn't want to wait. :-D
 
[rubberduck-vba/Rubberduck] build for commit 0bb18583 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@Duga Called it!
OK, I just checked my diff and there's nothing that changed in the registry reads compared to next.
A bit puzzled why I'm reading those keys and FreeMan isn't.
 
Microsoft Excel 2016 MSO (16.0.9126.2282) 64-bit reported by the Excel instance, Microsoft Project Standard 2010 Version 14.0.7214.5000 (32-bit) reported by the Project instance — Malcolm Farrelle 4 hours ago
That should be literally impossible to run in-process, right?
 
2:15 PM
Another (very minor) issue: Moving the selection with the arrow keys past the beginning or end of the references list will cause the list to lose focus. You need to re-select with a click to be able to use the keys again.
 
Huh. That must be the default ListView input behavior. I'm assuming you'd expect to have to tab focus off the control?
 
probably as a part of tabbing, but with arrow keys?
Seems unintuitive.
 
It does. That's why I'm a little surprised. I might just be missing a tab order setting or something.
 
no 4 or 6 here but I only have this:
cannot browse to \4 nor \6
I just noticed that it's also in C:\Windows\System32 & C:\Windows\SysWOW64` and in that case, I can browse to the UIAutomationCore.dll` but I cannot access the index.
 
2:33 PM
[rubberduck-vba/Rubberduck] build for commit 0397e49e on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
Wut?
 
probably not so trivial after all. ;-)
 
No, those were the tests that were wrong.
I think I just need to push another commit from my local.
 
3:04 PM
Bring on the issue reports!😀 https://twitter.com/rubberduckvba/status/1074885649994563585
ReSharper Ultimate 2018.3 is released! Give it a try: - Inline parameter name hints - Early support for VS 2019 - Auto-detect code formatting style - Improved C# 7 deconstruction - Improved C++/CLI support https://www.jetbrains.com/resharper/whatsnew/ https://blog.jetbrains.com/dotnet/2018/12/18/resharper-ultimate-2018-3-released/
 
morning gents
 
here's a trippy one....
Public Sub test()
    On Error Resume Next
    Debug.Print 1 / 0

    Debug.Print Err.Number, Err.Description

    If Err.Number Then
        Err.Raise 5
    End If

    Debug.Print Err.Number, Err.Description

    On Error GoTo 0
End Sub
yields: 11, Division By Zero, followed by 5, Division By Zero
 
3:20 PM
Err.Raise n == rethrow
IOW OERN + Err.Raise == WTF
 
I've done that.
 
@MathieuGuindon yep pretty much.
 
that's actually inspection-worthy, I think
 
I actually was expecting the Err to be reset entirely (e.g. get the default caption for the error #5)
 
3:25 PM
that's what Err.Clear does
Err.Raise n is documented to raise the specified error number with the last error message
> If you use Raise without specifying some arguments, and the property settings of the Err object contain values that have not been cleared, those values serve as the values for your error.
 
FML. RTFM
 
^
:)
ok wtf is this
> Not all Visual Basic host applications can create objects. See your host application's documentation to determine whether it can create classes and objects.
 
hmm that'd be news.
i'm inclined to think that note is outdated.
maybe there was a VBA 3 that only did modules no classes?
IDK
OTOH, the ErrObject is weird, too.
 
Well this is fun.
Sub ErrorInfo()
    With ActiveSheet
        Dim idx As Integer
        On Error Resume Next
        .Cells(1, 1).Value = "Number"
        .Cells(1, 2).Value = "Description"
        .Cells(1, 3).Value = "HelpFile"
        .Cells(1, 4).Value = "HelpContext"
        For idx = 1 To 100
            Err.Raise idx
            .Cells(idx + 1, 1).Value = Err.Number
            .Cells(idx + 1, 2).Value = Err.Description
            .Cells(idx + 1, 3).Value = Err.HelpFile
            .Cells(idx + 1, 4).Value = Err.HelpContext
 
what was the first version of VBA to support objects?
 
3:32 PM
VB5
(I think)
Nope. It was VB4:
> Class modules have (without wanting to sound too evangelistic) revolutionized
VB. The whole style of writing VB programs has changed since version 4.0 of VB
was launched, bringing the VB/VBA language closer than ever to being a true
object-oriented language.
 
thought so... VB4 was my first exposure to VB, and VB had always had classes... #confused
 
hmm, but did they still have objects in VB4?
it's a big difference between being unable to use any kind of objects vs. being unable to create your own objects.
 
Not sure. I don't think I ever used VB3.
 
but reading the error doc again, it really sound like they can't even use object, either.
 
3:46 PM
I think that's referring to the availability of creatable co-classes in the host object model. Really poor wording though.
 
^
 
in any case, it's not host-specific at all, it's VBA version-specific
no host running VBA6 can say "I don't do objects"
 
I'd be surprised if it's possible to deliver VBA host solution that had classes disabled.
Esp. since that the main feature of VB6 is events. Kinda of need objects for that.
 
^
You can't do events without a dispatch interface.
 
that does explain where the "VBA isn't OOP" mindset is coming from
they tuned-out at or before version 3
 
3:49 PM
FWIW in VBA books I've read, they say that VBA isn't 100% OOP, but call it "object-based"
 
inheritance is over-rated
 
probably basing on the fact that there's no type inheritance.
For me I care more about the missing constructors.
(parameterized ones, I mean)
 
new from template > class with PredeclaredID > parameterize away
 
i know
 
> There's a noticeable delay when the registered libraries are being loaded; mouse cursor should reflect that busy state until the dialog is displayed.
 
3:53 PM
I'd love inheritance in VBA. A well designed base class can eliminate a boatload of duplicate code.
 
oh, me too
 
@Duga What about just spinning off a task to read them on startup?
 
given that won't happen, does it make sense to provide AOP?
 
IIR I cached them anyway.
 
the delay feels like it happens every time though
 
3:55 PM
the only downside is that we could end up being like JS -- using tooling to fix deficiencies with the language to the point that it's no longer just the language.
 
it's not major; a spinning-circle wait-cursor would do fine
 
Hmmm... I wonder if that's a WPF rendering thing.
 
could be
 

« first day (1656 days earlier)      last day (1524 days later) »