« first day (1648 days earlier)      last day (1532 days later) » 

7:00 PM
@this cracked pipe?
 
Any thoughts on where I should make the Add/Remove dialog available?
 
Cue that Wheezer song
@Comintern RD/Tools I guess
TBH I only really see myself using the CE context menu though
 
♫ Woo-ee-ooh, I look just like a crack hound ♫
 
But RD/Tools makes it available when you're not using the CE... whatever the reason for that might be
 
That song?
What about the CodeModule context menu?
 
7:03 PM
Nah, "You've got your problems... I've got my hash pipe"
 
The Buddy Holly song is always the first that pops to mind.
I blame top 40 radio.
 
I blame the Win95 CD for that
@Comintern IDK, doesn't strike me as code-related much
In a way, I mean.
 
what about project node, though?
each project has their own references, no?
 
It's active in all nodes of the CE now I think.
You basically just need to pass it a ProjectDeclaration.
 
what about hijacking the Tools-> References? >:D
 
7:07 PM
Is it in the vanilla PE context menu?
@this nah
But we could add it to the PE if it's not already there
 
By vanilla you mean rancid VBE PE?
 
@MathieuGuindon of course not. But definitely should once Avalon is a reality.
 
@Comintern lol
 
Where at? After Rename?
 
IMO, that should be its own group
at the bottom
 
7:11 PM
Why are some of those missing icons?
 
they aren't specified?
 
I'll check when I'm in there.
 
or, it made too many icons and looked weird. dunno.
 
I almost wonder if the icon should be available from CommandBase.
 
@Comintern I'm wondering if it would be wise to ditch the "Rubberduck" parent menu there, and make a group for our commands instead.
 
7:17 PM
I think that would just make an already long context menu longer.
 
^
 
IIRC that was brought up at one point and we (I?) said it's better to have all our commands under a "Rubberduck" submenu
 
it's only 2 level
 
We want to discourage its use anyway.
 
it's more of a problem if it's 3 level deep
 
7:17 PM
yeah
 
@Comintern needs more hot-keys and more consistent processing of hot-keys
 
ooh, is there a hotkey for it?
 
I have hotkeys?
Hotbuttons, sure, but I'm not sure about the keys.
@MathieuGuindon There could be.
 
isn't that a thing you define via command ?
 
@Comintern not that good with buttons, I prefer velcro
 
7:19 PM
derp, crashed on open
 
@FreeMan RD Hotvelcro it is then...
 
^^ takes it to the previous level
@Comintern WIN!
 
@FreeMan the VBE doesn't show them in any context menu.. we do specify them.
huh wait
they're not in the RD main menu either
 
Hotkeys != accelerators.
 
they used to be
 
7:20 PM
I meant like Ctrl-M to Indent Module
 
no, the hotkey combos
we used to be able to have them in the RD menu
 
Injection order issue maybe?
 
no sure. might have broken a looooooooooong time ago
 
That was always a PITA with hotkeys.
 
[rubberduck-vba/Rubberduck] build for commit f63202e5 on unknown branch: AppVeyor build succeeded
 
right.. yet we still re-localize the menu items when settings change. possible order changed and how the menus get created before the hotkeys are wired up
 
@MathieuGuindon musta been... I don't remember seeing them. I'd have probably complained if I noticed them disappear...
 
pretty sure you did ;-)
 
musta been a loooooooooooooooooooooooong time ago, then!
 
I'm not finding the IHotkey interface being used anywhere UI related though.
 
7:26 PM
IIRC, Rkapka changed how it worked
it's all driven in the settings, I think?
 
@MathieuGuindon fwiw if I ever get the toolbar setup thing finished, it should make it trivial to inject differing menu setups. At which point we could have a setting for context menus - using subfolder \ integrated.
 
Yeah, but if we were showing them anywhere we'd need to be accessing the key information to display it.
> // need to hook hotkeys before we localize menus, to correctly display ShortcutTexts
 
yeah everything got flipped around, there's no notion of hotkeys in CommandMenuItem anymore
 
one thing i'm not happy with is that our menus are not customisable with the built-in editor, as we create them new each time. iiuc that's because teardown issues?
 
@mansellan not sure, worth experimenting with
 
7:31 PM
I think it might be.
 
@MathieuGuindon agreed
@Hosch250 not sure though if that was ever fully confirmed, or just (strongly?) suspected
 
seems the only place that knows what hotkey goes to what command, is the hotkey settings
so, menus need to know about hotkey settings - and the hotkey wiring order doesn't matter anymore
(as long as we still re-caption the menu items when (language || hotkey) settings change)
 
@Comintern yeah saw that - not sure why though?
 
The settings were\are horribly intertwined.
 
ah ok
 
7:34 PM
@mansellan that comment dates back from when CommandMenuItem knew about hotkeys
 
oh ok
 
@Comintern would be worth investigating an ambient context pattern - be it just for that
 
Ambient context?
 
RDContext.Current.Settings.IndenterSettings -> gets you the current indenter settings
 
you know, when you enclose something in amber.
 
7:36 PM
Like candle-light and stuff?
 
so someone can then make a park out of whatever duck you enclosed it in.
 
Oh wait that's "Ambiance context".
 
did they misspell "Ambulance" there?
 
The main roadblock to RDContext.Current.Settings.IndenterSettings etc. is the settings window.
IIR, it was the stupid hotkeys that kept me from doing that years ago.
 
7:38 PM
RDContext.Current.ParserState could possibly help with the CE holding on to the parser state and leaking it though
 
That could help with a lot of potential leaks.
 
hmm, wasn't it also held up as an anti-pattern?
 
not quite. depends
 
e.g. ASP.NET's Current caused a lot of grief with testability.
 
By purists.
If you build the context container correctly, it doesn't have to impact testability.
 
7:40 PM
it's effectively global state, I get it. point is, we do have state that needs to be global
@Comintern that
 
Yeah, I agree. As long it's substiutable, no problem on my part.
 
meh, just use a public static
;-)
 
something like public static IRubberduckContext Context, I guess.
 
ttqw
 
In fact it would probably make test setup way easier.
IMHO we completely underutilize IoC in the test suite.
 
7:43 PM
because we can now mock VBE's insanity?
which reminds me. need to get back to 4072.... Get it going
 
@Comintern not sure. tests run sequentially, right?
 
They can.
 
the thread-safety in there needs to be A-1
 
I shudder to think how long that would take though.
 
how do you not mangle the parser state when you have 200 concurrent tests constantly tweaking the RPS?
 
7:50 PM
aren't they mainly managed with locks?
 
it's one thing to have 1 IDE running concurrent parses against 1 context
it's another thing to have 200 (mock) IDEs doing the same against ....1 context
 
@MathieuGuindon In the tests, it can return the parser state in transient context.
 
I guess that's what .Current tracks
 
That's part of what I mean by "underutilize IoC in the test suite".
 
8:09 PM
On parse, I think it would be a good idea to keep the CE ducks spinning during Resolving references. There's nothing RD related that can be done while that's happening, so they may as well.
 
the idea was to have the CE available as soon as it's usable
Resolving references means CE nodes can be navigated
 
You can navigate from it at that point, IIRC...
 
most commands are disabled until parser state is ready though
 
hmmm... I guess I can dbl-click a method to navigate, but usually I'm renaming 1/2 a dozen things in a row, so I'm finding it a bit frustrating.
Maybe it's just my use case at the moment...
I see the ducks stop spinning and hit ctrl-shift-r and... nothing happens. then D'oh!
 
watch the parser state label instead of the spinning ducks?
 
8:15 PM
Yeah, but I often pop in here while it's parsing. My browser is only about 1/2 screen, so I can see the ducks next to it. They stop, I alt-tab, ctrl-shift-r... then watch the label for bit.
I guess it's just me.
it often is...
 
hmm. if it was made a bit less opaque to indicate background processing, would that help?
 
made what less opaque?
 
right now it's blue, right?
reach the Resolved references stage, then make it almost transparent blue
then at Ready, spinning ducks genocide.
But TBH, I'm a bit ambivalent on that.
 
don't kill the duckies, just... shoo them away
 
@this lol
 
8:17 PM
@FreeMan Won't someone please think of the ducklings?!
 
easter egg: correctly click all duckies in sequence, and they fall to the bottom of the toolwindow
 
since a background processing indicator usually has to be out of the way so you can interact with the CE.
 
It's ok, it's prolly just me.
 
@this needs another IsBusy state for that
 
> This has been fixed before. This is probably a regression introduces by the fix for Call statements.
 
8:18 PM
yeah. the label itself is kind already doing that job.
 
suppose it could be like Excel 2016 when code is running:
 
?
 
surely you're not holding this up as a paragon of UX....
 
@Duga indeed. and worrying that no test failed for it
 
8:20 PM
@this oh, absolutely! It's the way MS does it, it must be right! Right?
 
More whacking for you, Mat.
 
starting to wonder if any of the SCP tests are worth anything
@FreeMan riiiiight
 
@FreeMan I guess so. they're the bright sparks that gave us ribbons.
 
I've come to love the ribbons
 
@MathieuGuindon FWIW I'm sure you wouldn't get as far had you kept with the original untestable implementation.
 
8:21 PM
 
Meh. Ribbon is just a lateral move. Not exactly better, not exactly worse. Just different.
 
Sadly, it used to work great in 2010. Window stayed properly lit, Application.StatusBar got refreshed as expected (in colors or colours) that could be read. It was pretty great. then... "upgrade"
 
@Duga Added high-DPI instructions
 
@MathieuGuindon still ugh
 
@this yeah... except I would expect a red-then-green test to turn back red when something breaks... would be nice.
 
8:23 PM
yeah agreed. I guess you need more tests because IINM, the behavior could be different given a different sequence of inputs.
 
At least there's the option to unpin the ribbon and get my screen real estate back. Then, it's pretty much like a "menu" gasp!. Sadly 99% of the people I work with use laptops with low resolution screens and refuse to hide the ribbon, even after I show them how much screen they get back, so they end up seeing like 4 rows of their spreadsheet...
@MathieuGuindon is that how tests are supposed to work???? Who knew!
:)
 
Regarding the SCP tests, it is simply that the assumptions about what the VBE does are wrong.
Whether it swallows pairs of parentheses at the end of a line depends on the context.
 
some tests are taking shortcuts, too
yeah
 
In a call statement it does, in a method declarations, it doesn't.
 
every test that isn't passing an original, prettified, and reprettified code strings, is cutting corners
 
8:33 PM
Actually, it even adds them in a method declaration.
So, in a method declaration, you get the SCP simply by reprettifying and swallowing the keypress.
 
I kinda hate that tests need to specify how the VBE will prettify and re-prettify the original code, ...otoh I can't quite think of a way around it.
 
[rubberduck-vba/Rubberduck] build for commit e0d7df7b on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
"prettify" -> the original code, prior to adding/processing the autocode
"reprettify" -> the prettified code, after adding/processing the autocode
 
chocolatey is getting on my nerves.
 
rebuilding
 
8:41 PM
 
woot! 70 more and we hit the jackpot!
 
hmm. it might be possible to get rid of the poo-lately entirely.
 
[rubberduck-vba/Rubberduck] build for commit e0d7df7b on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
They need to rename NuGet to PeanutButter, then Chocolatey and PeanutButter need to merge...
:)
 
8:43 PM
it looks like there are nuget packages already
we might be able to bypass the poo-lately entirely that way.
The only uncertainty is the OpenCover; we're asking for OpenCover.Portable but I don't see a exact corresponding nuget package.
 
[rubberduck-vba/Rubberduck] build for commit e0d7df7b on unknown branch: AppVeyor build failed
BUILD FAILURE!
[rubberduck-vba/Rubberduck] build for commit e0d7df7b on unknown branch: AppVeyor build failed
 
Does this look like a wrapper leak to anyone else?
 
BUILD FAILURE!
 
    return
        _state.AllUserDeclarations.SingleOrDefault(d =>
                d.DeclarationType == DeclarationType.Project && d.IdentifierName == Vbe.ActiveVBProject.Name);
 
i think so yes. Need to double check inside the ActiveVBProject definition
 
8:49 PM
Is it just me or @chocolateynuget isn't working on @appveyor anymore? It says it can't find the @InnoSetup package, getting 403/forbidden. Any ideas? Rebuilding PR for the 3rd time...
 
but I'm pretty sure that's going to return a new SCW for VBProject in which case will leak.
 
Yup, it's leaking.
 
Just get the name prior to the LINQ statement.
 
stick your finger in there and hang on tight.
 
FML, leaking all over:
private Declaration GetTarget()
{
    if (Vbe.SelectedVBComponent == null)
    {
        return
            _state.AllUserDeclarations.SingleOrDefault(d =>
                    d.DeclarationType == DeclarationType.Project && d.IdentifierName == Vbe.ActiveVBProject.Name);
    }

    return _state.AllUserDeclarations.SingleOrDefault(
            t => t.IdentifierName == Vbe.SelectedVBComponent.Name &&
                    t.ProjectId == Vbe.ActiveVBProject.ProjectId &&
                    new[]
                        {
 
8:51 PM
Anyway, that must be really old; it is using `AllUserDeclarations in a stupidly inefficient way.
 
Does the analyzer not find chained access in anon functions?
 
Where is this?
 
@Comintern sieve of eratosthenes?
 
those aren't technically chained members
no, wait, it should be catching that.
 
ProjectExplorerRefactorRenameCommand
 
8:52 PM
@FreeMan Sieve of Mr. MacGregor.
 
Is Vbe a property on the class?
 
Sieve of Mr. Magoo.
@this It's a property of the base class.
 
hmm. that might be causing the analyzer to miss that
 
♫ Rabbit stew, rabbit stew... ♫
 
Those types, aren't that all types with the Module flag?
 
8:56 PM
If it isn't it probably should be.
 
Why is it so difficult for people to look at the calendar of all the invitees when scheduling a meeting in Outlook?
 
does anyone look at Outlook calendars?
or maintains them?
 
Me.
 
We use them at work.
@FreeMan Use the Scheduling Assistant.
It shows everybody's calendars right there with busy parts blocked off.
 
8:58 PM
Other Person: Hey can we meet on Friday?
Me: Sure, my Outlook calendar is up to date
OP: schedules a meeting on top of two other overlapping meetings
Me: _declines_ I've got a meeting until 2pm, we'll have to meet after that
OP: OK
Me: _looks for new meeting invite._
 
@Duga re-rebuilding
 
I will have to look at them starting in March.
 
[rubberduck-vba/Rubberduck] build for commit e0d7df7b on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
well that was fast
 
@Hosch250 yeah, I know how to do that, it doesn't seem that anyone else has a clue...
 
8:59 PM
#FailFast
 
fail fast
 
@MathieuGuindon FWIW, it's at poo-lately server's side.
so kicking the build won't do anything
 
ok but AV is claiming all services green
 
@MathieuGuindon blame caching...
 
hmm given that it's giving 403, try and login to the poo-lately using the same credentials that AV'd be using
 
9:02 PM
like I know what AV is using.. some generated passphrase, encrypted once and never looked at ever again...
 
ah
 
Thet method from above should probably look something like the following:
private Declaration GetTarget()
{
    string selectedComponentName;
    using (var selectedComponent = Vbe.SelectedVBComponent)
    {
        selectedComponentName = selectedComponent?.Name;
    }

    string activeProjectId;
    using (var activeProject = Vbe.ActiveVBProject)
    {
        activeProjectId = activeProject?.ProjectId;
    }

    if (activeProjectId == null)
    {
        return null;
    }

    if (selectedComponentName == null)
    {
        return _state.DeclarationFinder.UserDeclarations(DeclarationType.Project)
 
@M.Doerner I'll go ahead and fix it.
 
Is the DaaS message important, or should I unpin it?
 
@rubberduckvba @chocolateynuget @InnoSetup This was side effect of datacenter move we started last week. We synchronized new IPs witch @chocolateynuget people and things should be good now. Sorry for the trouble.
 
9:11 PM
> Sorry, that page doesn’t exist!
 
I'm slow... was just gonna say that
 
They deleted the tweet to fix a typo lol
 
it's still there?
or was there another typo besides witch?
 
the new tweet yes
LOL
yeah
 
i'm sure they did great in the speeling bee contests.
 
9:14 PM
^that
 
Might be voice-to-tweet.
@this I'd have done "spilling bee"
Oh. My. Gosh.
11
Q: Why is my D string showing a C♯ on my tuner

EttieneI was playing for a bit and didn't tune any string, but when I wanted to tune it in at the end of my session my tuner kept saying C♯ instead of D. Can anyone please tell me how to get my D string back to its original state?

LOL.
 
@Hosch250 BECAUSE YOU'RE NOT IN TUNE
saw that one yesterday, thought "play kazoo, it's simpler"
</evil>
 
LOL.
I really need to get one of those plastic trumpet things and prove they have more than one note.
 
Is it just me or @chocolateynuget isn't working on @appveyor anymore? It says it can't find the @InnoSetup package, getting 403/forbidden. Any ideas? Rebuilding PR for the 3rd time...
@appveyor 3rd build failed as well, status page all green, nothing changed since the last successful build.. Why the 403? https://ci.appveyor.com/project/rubberduck-vba/rubberduck/builds/20909440
 
9:29 PM
@MathieuGuindon consider this, though - if he managed to sing out Beethoven's 13th symphony on a kazoo, that's an incredible feat than if he did it on a guitar. ;-)
 
Beethoven's 13th symphony?
 
To be fair I tuned my guitars by ear for as long as I remember. Got a tuner, only used it to get the A tone (5th string), tuning would be too sharp if I did all strings as per the tuner. Might have something to do with the $15 price tag though
 
Whatever it was that he's famous for.
 
I used to be able to tune my siblings violins for them by ear. I played the clarinet--minimal tuning required.
 
I probably conflated that for 5th symphony with Mozart's, IDK.
 
9:33 PM
@this You mean the symphony with the chorus? That's the 9th.
 
whatever, that.
 
And the 5th is the da-da-da-DA one.
 
The point being - if he can play any symphony with only a kazoo, that's impressive, no?
 
Yes.
 
and thus making Mat look a chump in the process. ;-)
 
9:34 PM
Unless it's one of those post-modern ones.
 
Post modren anything => worthless
 
@this I'll be impressed with 3rd movement of Moonlight Sonata on kazoo
 
I don't care what they do, throwing a bucket on a canvas and calling it an art is not going to cut it for me. Likewise for banging on grate and calling it high form of music.
 
I'm listening to the 5th on kazoo right now.
 
I'm watching that vid on mute, and I can feel the song just by looking at the fingers dance
 
I think that's everything but the unit tests.
 
^ ^^ those are 2 funny messages back-to-back
 
Hosch listening to 5th symphony on kazoo, Mat listening to a metal rendition of Moonlight Sonata?
 
No.
 
9:42 PM
ah, I'm missing the joke then :)
 
The video has all the features but the unit tests.
 
Would that be an integration test?
 
I'm not sure whether Beethoven would've smashed that guy's guitar over his head or loved it.
 
He wouldn't have heard a thing.
 
Mozart would probably have loved it, then wondered how that big loud box could be hooked up to his harpsichord
When this PR is merged, you'll have the list of referenced libraries in the Rubberduck Code Explorer, with an awesome new dialog to add/remove references. But yeah until then, it's Tools > References, then ...pain. — Mathieu Guindon 7 secs ago
 
10:09 PM
hmm. why did he decide to import it into vb6 today, though....
feels like a step backward, esp if he's going to have 64-bit office.
 
[rubberduck-vba/Rubberduck] build for commit 43d7092b on unknown branch: AppVeyor build succeeded
 
10:28 PM
@Comintern wondering - did you see / play with this before? easyhook.github.io/api/html/T_EasyHook_COMClassInfo.htm
 
As a matter of fact, I did. I'd considered using it for RD Mocks.
 
Cool. Have you done any experimenting?
 
Not yet. It's kind of been lurking on the radar though.
 
OK
 
10:42 PM
@Comintern RD Rocks Flocks Blocks Mocks
 
Just one more way to mock PowerPoint.
 
> Currently, the `MissingAttributesInpsection` finds all instances where an annotation linked to an attribute is present in the code, but the corresponding attribute is missing. Unfortunately, there is no quickfix. So fixing the issue entails manually exporting the module, adding the attirbute, and then reimporting.

There should be a quickfix that adds the missing attribute.
> Is the inspection only firing for module-level annotations? Because we can't have RD tweak member attributes, we lose them whenever we rewrite the module. Good idea for module-level ones though.
> I intend to add missing member attributes as well.
Fixing the removal of member attributes on rewrite will be in another PR.
 
@Duga We have nearly everything in place to readd member attributes after a rewrite.
 
would that require multiple parses?
 
10:49 PM
Yes, two.
 
But the one could happen entirely in the background?
Without affecting anything of the visible parse>
 
We cannot readd them in the original rewrite.
 
Oh.
 
The original rewrite that erases them is for the code pane code.
The attributes can only be added via the exported code.
 
@M.Doerner that would be awesome
 
10:54 PM
Enabling this is one reason I introduced the IRewriteSession and IRewritingManager.
 
will the 2nd rewriting be done automatically?
 
Anybody noticing excessively sloooow page loads using Firefox? I'm on 63.0.3 64-bit and the last several days, it's been exceedingly slow to load stuff.
Even the management pages for my local server are painfully slow, so I know it's not my network connection
 
is anyone else getting an security alert dialog (like ones from IE6 days) about invalid SSL certificate when loading symbols in Visual Studio debuggers?
 
Having the second parse start automatically was the plan.
Implementing the quickfix for the MissingAttributeInspection will bring me half the way to readding the attributes.
 
11:11 PM
Ok, that does concerns me because I know that I can cause parser errors if I try to work with code while parse is running in the background. Since parsing must run and we can't assume there are no user inputs, how do you ensure the state is not disordered again?
 
Basically, I could check whether the code pane code is dirty, but then you will not get your attributes back, if you change the module during the first parse.
 
That makes sense. I suppose one could have a additional status indication on the status bar to warn that attributes aren't synchronized.
 
Anyway, with the current implementation of the AttributesRewriteSession, the code pane for the module will close.
 
But at the point it's more important that the parser doesn't end up in a parser error state because I did not want to wait for it to finish.
 
And it will not reopen, because that is not implemented yet.
 
11:18 PM
Good. closing & reopening code pane also makes it less likely that that one will get edited in midparse.
 
The problem is that that only applies to the second parse, not the first.
What would be a good place in Rubberduck.Parsing for something adding attributes to members?
Unfortunately, this cannot go into Rubberduck.Refactorings because I need it in the RewritingManager to readd the attributes.
 
11:38 PM
My wife passed me a joke...the oldest computer can be traced back to Adam and Eve...it’s was an a apple with extremely limited memory. Just one bite, everything crashed.
 
@PeterMTaylor LOL
Seems like it may have been an issue with memory. Resource Monitor was showing Memory Compression running at 25+% CPU, even though there was no indication that I was really out of memory. A reboot and MC is at 0%.
wonders if just restarting FF on occasion will "fix" it
 

« first day (1648 days earlier)      last day (1532 days later) »