« first day (1153 days earlier)      last day (2027 days later) » 
00:00 - 19:0019:00 - 00:00

12:01 AM
RELOAD!
[retailcoder/SlimDucky] 6 commits. 358 additions. 35 deletions.
[rubberduck-vba/Rubberduck] 3 opened issues. 6 issue comments.
[rubberduck-vba/SlimDucky] 2 commits. 93 additions. 85 deletions.
[Zomis/FactorioMods] 3 issue comments.
 
@Mat'sMug OK, will take a look
 
@all Mind sharing this?
 
This page can’t be displayed
could be my work firewall
 
@Mat'sMug =( some of that VBA doc just doesn't exist anywhere else on the web. At least not at that quality.
 
but then, I'm one of the anti-facebook luddites that doesn't have an account
@RubberDuck Can RD lift the VBA Docs content without IP issues?
 
12:07 AM
I have to experiment a bit more, but I think we have not one but several issues in the tear down.
One is that the hooks are subclassing a window but do not seem to listen for the WM_DESTROY message.
and not to WM_RUBBERDUCK_SINKING.
 
@ThunderFrame yeah. It's all CC-BY-SA content.
Not to mention, the only contributors on some of those was Mug & I....
 
@shadowofsilicon Nope.
@ThunderFrame +1
@M.Doerner Our ship is sinking?
That doesn't sound good.
 
@ThunderFrame tbh the only thing I use FB for is to promote RD and see what my sister is posting
 
@Mat'sMug Be glad you are close enough with someone to have FB for them. I'm not that close with anyone.
Sometimes it hurts.
But it hurts to get close to people too.
 
I am
 
12:15 AM
@Hosch250 2 billion people can't be wrong can absolutely be suckered
 
You probably didn't grow up as part of a litter, though.
 
anyway the point is, if the campaign stagnates, I'll be getting a ton of RD swag and won't have any funds to ship it!
 
LOL. Give it a little time for word to get out.
Put it in the About and do a release.
 
@Mat'sMug popup and a jingle every 3rd rename refactor... shudders
 
LOL.
 
12:18 AM
@ThunderFrame over. my. cold. dead. body.
 
@Mat'sMug What do you think about writing a paid IDE?
If we supported multiple languages, I wouldn't be surprised if we could make a living after a while.
Or maybe I should start a competitor to R# with something like VSD.
I could start it with my Readonly Field analyzer.
 
@Mat'sMug IKR.... contemplates sponsored, enforced identifier names... Visit GoFundMe to unlock the Use Allow Meaningful Names inspection
^ It's only a matter of time until Google finds and hires me for Google AdWords for Office.
 
What would you expect this command to do?
gitnstats workspace/rubberduck -b branch --until 2017-02-24
I'm having trouble figuring out what to call the arg for the date filter.
 
Just caught another co-worker writing VBA code. Got him pointed to RD chatroom. We may acquire another visitor in the future.
 
gitnstats workspace/rubberduck -b branch --from 2017-02-24
??
 
12:28 AM
@RubberDuck DateBoundary, DateLimit, OffsetDate?
 
@Mat'sMug How do I register SlimDucky?
32 bit Office this time.
 
Home Time
 
@Hosch250 same as RD; needs a SlimDucky.Connect reg key under HKCU/Software/Microsoft/VBE/6.0/AddIns, and then you run 32-bit regasm.exe against your debug build, with /tlb /codebase switches
 
@Mat'sMug .Connect?
Oh, RD is .Extension.
 
Yeah. I went with the standard name for IDTEXTENSIBILITY2 implementations this time
(didn't know it was a convention back in 2014)
 
12:37 AM
Clean exit.
But, it might be because it is so lightweight.
And, it might be the inspections window (I'll disable that one sometimes and see if it fixes it for me).
 
@Mat'sMug OK, MockFolderBrowserFactory is definatley not making a FolderBrowser while a real IFolderBrowserFactory does when running RD. wth?
 
@Hosch250 aye. and it rules out WPF being a problem, doesn't it?
 
To a certain extent.
Maybe a certain WPF component causes it. Or maybe we just have too many to clean up in time.
@shadowofsilicon Two things. Mocks, and DI.
Mocks don't create actual objects, they mock them.
 
12:53 AM
@Hosch250 @M.Doerner thinks there might be a timing issue as well
 
Ninject injects the right object in the right place.
@Mat'sMug Might be.
 
@shadowofsilicon welcome to the beauty of DI!
The test code injects fake dependencies, the real code injects the real deal
 
@ThunderFrame --date-filter 2017-02-24
-df 2017-02-24
no. -d
 
@Mat'sMug so, one would expect that the MockFolderBrowserFactory.CreateFolderBrowser() returns null?
 
@RubberDuck -d "= 2017-02-24" | -d "!= 2017-02-24" | -d "> 2017-02-24" | -d "< 2017-02-24" | -d ">= 2017-02-24" | -d "<= 2017-02-24" | -d "2017-01-01 - 2017-02-24" | -d "!2017-01-01 - 2017-02-24"
huh... this seems odd...
74
Q: How do I get the name of captured groups in a C# Regex?

Luiz DamimIs there a way to get the name of a captured group in C#? string line = "No.123456789 04/09/2009 999"; Regex regex = new Regex(@"(?<number>[\d]{9}) (?<date>[\d]{2}/[\d]{2}/[\d]{4}) (?<code>.*)"); GroupCollection groups = regex.Match(line).Groups; foreach (Group group in groups) { Conso...

ah, .NET 4.7 adds Group.Name - msdn.microsoft.com/en-us/library/…
 
1:12 AM
@shadowofsilicon it returns whatever you tell it to return - as long as it implements the interface of the factory method's return type ;-)
that's what makes the abstract factory such a great tool
 
augh! I feel like the captain of the Titanic... there must be an entire iceberg that I'm not seeing here
2
 
That setup call where you tell it to return the mock...
2
 
mockFolderBrowser.Setup(m => m.SelectedPath).Returns(_path); ?
 
Indeed, no setup and the mock factory returns a null reference. But your test is setting it up to return a mock dialog which is setup to return DialogResult.OK
and the path for its selecteditem
 
@Mat'sMug I think you're trying to tell me to pass the execute command the setup mockFolderBrowser... but I can't, ExportAllCommand requires a IFolderBrowserFactory because Ninject
 
1:18 AM
There's a "strict" mode where anything not explicitly set up will throw an exception instead. I prefer it, but I didn't know what I was doing when I wrote that ^
@shadowofsilicon what are you up to?
@ThunderFrame sigh good point.
Thanks.
Holy carp it's the ticker!
Forgot that was there.
 
@RubberDuck Other than smashing my face against the keyboard?? This: github.com/rubberduck-vba/Rubberduck/compare/…
The Export All command works when clicked on in the Rubberduck -> Tools menu, but the unit test is kicking my a$$!
 
@shadowofsilicon no. you setup your Mock<IFolderBrowserFactory> to return a Mock<IFolderBrowser>, and then you pass that mock factory to your command. Then you can test the command without popping a dialog.
You already had that setup code done when I checked earlier... what happened?
 
+            var mockFolderBrowserFactory = new Mock<IFolderBrowserFactory>();
+            var mockFolderBrowser = new Mock<IFolderBrowser>();
+
+            mockFolderBrowser.Setup(m => m.SelectedPath).Returns(_path);
+            mockFolderBrowser.Setup(m => m.ShowDialog()).Returns(DialogResult.OK);
+            mockFolderBrowserFactory.Setup(m => m.CreateFolderBrowser(_path)).Returns(mockFolderBrowser.Object);
That ^ looks more or less right to me.
ExportAllCommandTests.cs Line 53
 
> Joel Spolsky liked your reply
6
 
` [TestCategory("Commands")]
[TestMethod]
public void ExportAllModule()
{
var builder = new MockVbeBuilder();

var projectMock = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
.AddComponent("Module1", ComponentType.StandardModule, "")
.AddComponent("ClassModule1", ComponentType.ClassModule, "")
.AddComponent("Document1", ComponentType.Document, "")
.AddComponent("UserForm1", ComponentType.UserForm, "");

var project = projectMock.Build();
var vbe = builder.AddProject(project).Build();
augh! why can I not format a block of code as a block of code!!!!
 
1:31 AM
@shadowofsilicon multiline chat messages can't be markdown-formatted
But no need to markdown-format code... Just click the fixed font button
 
@Mat'sMug code can, but probably not with the "`"
@Mat'sMug that
 
asdf
asdf
ugh
 
^ 2 headbutts?
 
brain. fried.
@ThunderFrame yeah, pretty much.
enough for today. time for vegetation in front of the boob tube then bed.
Thanks for all you help today, @Mat'sMug. I really do appreciate it!
 
coup de tête vs coup d'état - so close, and yet so different...
 
1:35 AM
@ThunderFrame I had to google coup de tete.... nice lol
 
"whim"
 
@Mat'sMug headbutt?
 
So when people refer to a "a political coup" they literally mean "a political stroke" or "a political blow"... I did not know that. Neat.
 
@shadowofsilicon État = State... États-Unis = United States
 
@ThunderFrame I had figured that out just recently... read something in Frech and wondered why they were clearly talking about the United States but were refering to it as E.U.
Don't remember what or where though... I might have been in Canada at the time...
 
1:56 AM
 
@shadowofsilicon I can't can find the article now, but there was nearly an awkward diplomatic incident a few years ago when diplomats were going to have to sit around a table in alphabetical order. I forget which 2 feuding countries were going to be adjacent to each other, but a quick-thinking host switched the names into French... Crisis averted.
> But an eleventh-hour switch to French in a reworked table plan left the surprised Mr Kuchma seated next to the president of Turkey, seven places away from Tony Blair of "Royaume Unis" and 30 seats away from President George Bush of "Etats Unis".
genius
 
@ThunderFrame lol oh wow
 
 
2 hours later…
@Duga maybe an RD setting to use current VBE setting?
 
@ThunderFrame that's not a bad idea
 
 
3 hours later…
7:00 AM
@Mat'sMug @puzzlepiece87 would you define a class that ensures SQL is arranged better in practice? hackernoon.com/…
 
 
3 hours later…
9:34 AM
@rubberduckvba looks *everywhere* for suspect code https://t.co/2ZuDOpaJxU
 
 
1 hour later…
10:58 AM
> Ah ok. Thank-you for the explanation! Btw, you're making my VBA-Excel life a lot more bearable!
2
 
 
2 hours later…
12:40 PM
@Mat'sMug Ok, I got it working this morning. For the .CreateFolderBrowser, I have to use the exact same parameters in the mockFolderBrowserFactory.Setup() that are used in the ExportAllCommand. Can someone explain to me why that is?
 
1:10 PM
Seriously. That is the accepted answer? stackoverflow.com/questions/45461112/…
 
@BrandonBarney Agreed; wtf.
 
@shadowofsilicon because that's what moq is tracking, per your instructions =)
 
Kaz
@BrandonBarney On Error GoTo -1. Did not know that was a valid command.
 
Anyone can confirm if 2.1 2020 handles jagged arrays? Can't remember..
Your code is doing too many things. One handler per procedure. You can't handle a new error while handling an error, you need to handle the first error first. On Error is useless inside an error handler, you're already in an error state, what do you expect to happen? FWIW this will soon be a Rubberduck inspection. — Mat's Mug 10 secs ago
 
1:30 PM
@Mat'sMug What exactly is the reason that we host our dockable tool windows in a subclass of a Winforms UserControl?
 
@M.Doerner afaik it has to be a UserControl
@Kaz good, so you're not a pasta chef! =)
 
Hm, it cannot be another Winforms control?
Like an ElementHost?
 
@Kaz Me either. I thought it was On Error GoTo 0. Shows what I know :)
 
I like On Error GoTo Jail.
6
 
@M.Doerner hmm, never though of it. That's a possibility!!
Does On Error GoTo True treat True as a label? #StupidEdgeCase
 
1:35 PM
Have I ever mentioned how much I hate my less-experienced, a few months ago, self?

Sub Macro1()
    Dim arrHolder() As Variant
    Dim arrLastName() As Variant
    Dim arrStudents() As Variant

    Dim arrMatches() As Variant

    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim l As Long

    Dim match As Integer

    l = 1

    arrHolder() = ThisWorkbook.Sheets("Default Report").ListObjects(1).ListColumns(2).Range.Value
    arrLastName() = ThisWorkbook.Sheets("Default Report").ListObjects(1).ListColumns(3).Range.Value
2
@Mat'sMug I imagine so, assuming that there is an implicit type conversion of True to -1.
 
Now you can get even better cleaning that up
 
@Hosch250 Hell no. Rewriting the parser entirely lol.
 
@BrandonBarney cleaning that up will be great refactoring experience =)
Oh
 
FWIW, I told this team I wouldnt keep parsing their data for them if they wouldnt update their survey to give me the thing I actually need. Now they literally have to put in a request for this data (for the next file) and they wont get it without fixing their survey.
And that code is so bad it literally isnt worth refactoring. It asks the user if the match it found is correct every time
 
Seen on Rubberduck's #github repository: "you're making my VBA-Excel life a lot more bearable!" Enjoy #VBA!
4
 
1:44 PM
@RubberDuck I contributed a couple of little bits. You're officially free to use those.
@Hosch250 I have no clue how the internals work, but would it be possible/reasonable to create/dispose of the WPF components on-demand/as-needed? If your theory is correct, that should minimize the number of windows to close on shutdown.
 
1:56 PM
Umm, I don't know. We are using DI to create them.
 
The problem I see is that the VBE destroys windows only on shutdown.
 
And the way we have to wire them to the commands mean they have to get created pretty early to get injected into the commands.
But we could maybe not add them to the VBE until they are needed?
 
If you close a window in the VBE, it gets resized and moved offscreen.
 
Yeah, which is a bloody pain for unload, reload.
Because all our windows already exist when we try to create them.
 
After looking at a lot of Debug output, I think the order in which the tear down happens is not deterministic.
 
1:59 PM
I'm sure not.
Probably depends on the order they are added to the VBE. It probably just iterates the list.
 
@Mat'sMug mockFolderBrowserFactory.Setup(m => m.CreateFolderBrowser("Select a directory to Export Project as Source Files...", true, @"C:\")).Returns(mockFolderBrowser.Object);
 
No, what I mean is tho order in which the messages are processed by the loaded components.
 
@Mat'sMug I'm shocked @ThunderFrame hasn't thought of that! prepares for incoming weaponization
 
Hmm. I have to go do real work now, anyway. TTYL.
 
^ so this is setting up the Mock to look for a FolderBrowserFactory that matches one that would be generated by a CreateFolderBrowser?
 
2:01 PM
Sometimes the windows see our WM_RUBBERDUCK_SINKING first, sometimes the WM_DESTROY.
 
@M.Doerner I think the only difference between 1.x and 2.x that's causing the crash, might be Ninjecting them.
 
Moreover, the COM provider seems to be unloading in parallel.
 
I'll try to setup basic IoC in SlimDucky to see if I can prove it
 
In one run, I got a fatal error when requesting the handle to the main window of the VBE.
I think, when tearing down, we cannot rely on anything being there that we do not own.
In particular, the VBE's main window might have already been destroyed when we shut down.
When destroying windows, they get destroyed top down.
This would be much easier if the VBE had the decency to send a WM_QUIT.
 
I think we might not need to do anything to clean up the dockables, VBE does it for us, or at least seems to in SlimDucky. Problem is what's in the dockables; I think we might need to inject factories and make the dockables own their stuff instead of leaving it to Ninject.
@FreeMan IKR!
 
2:10 PM
@Hosch250 Source? :P
@ThunderFrame You are obviously good at sussing out the message behind the message haha @RubberDuck
 
Jul 19 at 5:06, by Mat's Mug
@contributors: AppVeyor build releases now include a link to the AppVeyor build. This means your PR descriptions become the "release notes".
@Mat'sMug - it seems that the issue number(s) resolved by a release are usually listed in the PR description. Is it possible to somehow make that a link for a quick & easy trip to see what was closed? Or do I just not know enough about how to use GitHub and it's already there...
@Hosch250 On Error DoNotCollect$200
 
@FreeMan the link points to the AppVeyor build, which contains the commit description. In this case:
> Merge pull request #3204 from MDoerner/FixFor3189
Sorry it's a bit roundabout, but this is all automated, I can't put automatic release notes in the tags.
 
Right, I got that. I was hoping that the 3189 could be made a link to the actual GH issue.
I suppose that would be up to the person creating the Push to embed a link in the comment, right?
 
Maybe there's an AppVeyor variable I could use to pull the PR description into the tag, IDK
 
Look into that, would you! You're not doing anything else...
 
2:23 PM
@FreeMan AppVeyor only sees a description, there won't be a link.
 
if the description included a link, the browser would (might?) render it as a link? Or at least there'd be a quick copy/pasta to the address bar to go directly there.
Not a critical issue, just more being lazy™
 
If there's a variable for the PR# then I can probably craft a url out of it. https://github.com/rubberduck-vba/Rubberduck/pull/$(PRNumber)
 
Does the PR include a link back to the original issue that it's fixing?
@ticker, @BrandonBarney:
0
Q: Not able to login to a webpage using excel, error 424 object required

Deepak PandeyI am trying to login to this webpage, https://www.fois.indianrail.gov.in/ecustomer/JSP/QryInsight.jsp using VBA. Debugging shows me that the VBA throws an error 424 object required when username line is active (apparently it is not able to fill the username data). Here's the code: Sub Test() ...

 
APPVEYOR_PULL_REQUEST_NUMBER
 
Since you've become quite the expert in the last 48 hours!
 
2:28 PM
@FreeMan it should, but that's on the contributor
 
we could beat them about the head with a shrubbery if they don't!
 
@shadowofsilicon My question exactly :P
@Hosch250 Ah, conspiracy theory/joke then :P
@shadowofsilicon Some theories are realer than others.
@shadowofsilicon Aliens.
 
 
@FreeMan Lol, thats easy :)
 
@Hosch250 Eyewitness reports on the ground are already incredibly unreliable. Eyewitness reports of stuff moving at high speed thousands of feet up is nearly useless :P
 
2:33 PM
@puzzlepiece87 I know... It makes sense but without proof it can't be much more than conspiracy theory. Sounds like something that would be discussed on the No Agenda Show noagendashow.com
 
@BrandonBarney write it up, I'll give you an upvote. ;) Voting ring established. Shhh... don't tell the new mods!
 
@Hosch250 Occam's razor: engineering is actually quite difficult and expensive, especially when asked to make an everything plane. Boeing/Lockheed Martin/other national security contractors have almost unlimited job security and contracts set up in a format that are to their extreme benefit. Therefore, they really are just wasting a ton of money on an everything plane.
 
Let's see if that worked :)
2
 
anxiously awaits the next PR
 
2:39 PM
Note, I'm relying on GitHub to turn #1234 into a link
 
Aw
Nope
 
[rubberduck-vba/Rubberduck] build for commit c3525d29 on next: AppVeyor build succeeded
 
@shadowofsilicon The US is also the EEUU in Spanish - Estados Unidos, with double letters because it's plural (like how some people use MM for millions)
 
2:43 PM
@puzzlepiece87 Did not know that either. Boy, there is a lot of knowledge in this pond! =)
 
@ThunderFrame genius
 
Public Sub Register(ByVal logger As ILogger)
    If Not this.Loggers.Exists(logger.Name) Then
        this.Loggers.Add logger.Name, logger
    Else
        Err.Raise vbObjectError + 1098, "LogManager.Register", "There is already a logger registered with name '" & logger.Name & "'."
    End If
End Sub
@Mat'sMug - Do I need to create a Release function to remove from this.Loggers?
 
I suppose. Didn't deem it necessary =)
 
2:47 PM
When testing, I'm running into error 1098 because I created it. My code runs to completion, so I'd have thought that it would end when execution stops
 
[rubberduck-vba/Rubberduck] build for commit 7ef8a4ef on retailcoder-patch-1: AppVeyor build succeeded
 
@PeterMTaylor I read and enjoyed this article but only partly understand your question? Are you asking if I would enforce that SQL be written a certain way? If so, no, I learned from @Mat'sMug long ago not to try to parse another language (html, SQL, etc.) in VBA. In my mind, enforcing a convention would be too similar to parsing.
 
@FreeMan ah, yes. If the logmanager default instance is still alive, you get that.
You'll want to have a Clear method
 
2:52 PM
@Duga what a monumental failure
 
[rubberduck-vba/Rubberduck] retailcoder deleted tag Rubberduck-v2.1.2025
[rubberduck-vba/Rubberduck] web-flow pushed commit 58f9485b to next: Update appveyor.yml
 
Screwit
 
@puzzlepiece87 Use ANTLR or some other real parser for it.
 
@Mat'sMug Ok. Will do. thx
@Mat'sMug thanks for the effort!
 
@Hosch250 That would be a good option too.
 
3:20 PM
@Mat'sMug that's very possible.
 
3:44 PM
@BrandonBarney Well that didn't take long. Loot at that sweet sweet HN you got going on. I'm sure @puzzlepiece87 is envious of that usage.
 
@IvenBach Note that I said it was a younger, less experienced me :). I never said I never used HN. Heck, if I never used it I wouldnt know first-hand how much it hurts one's ability to learn and grow!
 
We're all learning here. #GottaStartSomewhere
 
in Cardshifter and other projects, 16 hours ago, by Duga
[rubberduck-vba/SlimDucky] 2 commits. 93 additions. 85 deletions.
@RubberDuck @Mat'sMug Wait wait wait, hold on here... Now you're building a duck for the duck?
5
 
Just MVCE's.
RD got so big we are having trouble with some of the interaction with the VBE.
 
4:17 PM
@SimonForsberg lol
I've been polluting the rubberduck namespace with totally unrelated things to boot....
 
4:30 PM
@SimonForsberg It's #DucksAllTheWayDown. @Mat'sMug Gone off the deep end this time.
 
@SimonForsberg #meta =)
3
 
aw damnit... i hate VMware Player
Had to forcefully power off my host machine, now my VM disk image is corrupt
and does VMware Player include the utility to repair a disk image? Of course not.
 
5:18 PM
I just tried to reduce what we are doing on shutdown and got the access violations down to just one. However, that one, which happens in the combase.dll, triggers the restart.
 
@M.Doerner Thanks for your hard work.
4
 
I need to learn C# snippets. Just saw an example of using one in a switch against an enum and c# Auto generated the values for you. #MindBlown
 
@IvenBach Sounds like the analyzer/fix I wrote for VS to add them for you.
You have to tell it to add them, but it does do it.
 
@IvenBach shouldn't that be C#mindblown?
2
 
5:33 PM
channel9.msdn.com/Series/Programming-in-C-Jump-Start/… sets it up and at 23 mins the magic happens.
This may be 'simple' stuff but to someone new that's wanted these capabilities for so long...
@Mat'sMug Once RD hijacks the windows would there be a way to provide this kind of code generation?
 
Anyone can write them, but it sure is harder than working on RD.
 
@FreeMan Indeed.
 
C is both simpler and more complicated than VBA.
 
@Hosch250 I'd say any competent developer could write it.
 
I doubt it.
You'll suddenly appreciate that RD requires valid code. The C# compiler doesn't, and it will still create a mostly valid parse tree.
So, you'll expect a child node to be required, but suddenly your code will blow up as you are typing.
Because it compile that frequently.
 
5:37 PM
@IvenBach we'll have to get the parser able to fully process a line of code the moment you hit ENTER for that
 
@Mat'sMug More like the moment you press any key.
 
^ true because the user could edit the line
 
<sarcasm>That shouldn't be too hard, right?</sarcasm>
I mean, what could go wrong?
 
@Hosch250 the VBE only processes a new line of code when you leave that line
 
You guys don't realize how much we rely on the VBE to enforce valid code.
@Mat'sMug OK.
 
5:39 PM
@Hosch250 oh, I do.
 
@Hosch250 is referring to ducks like me I bet.
 
@Mat'sMug Make it so the parse can handle any input and create a valid parse tree down to a couple bad characters, and you'd be surprised at what would break.
Everything would break.
It would be as unstable as 1.2's grammar.
 
Antlr error handling strategy would need to change, suddenly a parse tree with error nodes would still be valid
 
Yeah, but think about running an inspection on the invalid parse tree.
 
Guess how Eclipse works
@Hosch250 you don't inspect error nodes
You highlight them in red
 
5:41 PM
@Mat'sMug No, you expect a child node in a parent node and get an NRE.
Maybe you expect a name on a function. Boom.
Maybe you expect a type on a parameter. Boom.
Maybe you except Dim on a declaration. Boom.
 
You wouldn't have a function node, the grammar doesn't allow a nameless function
The whole line would be an error node
 
That's like how it is in C#.
It creates a valid parse tree down to that tiny bit.
You have to check almost everything for null when doing an analyzer.
It's hard to do it right.
 
Youd be surprised to see Antlr's error recovery
 
I'm sure C#'s parser has error recovery too. It just still creates a parse tree and sends it off for use.
 
But yeah, some null-checks would need to be added. Big deal...
 
5:46 PM
I'm just saying that you have to know C# really well to do a stable analyzer/code-completion stuff.
So, @IvenBach's switch statement. What happens when you think a switch was created, but it really was just the argument type changed?
You can't add the body, braces and all. You have to insert just the case nodes.
And to do that, you have to inspect the node to see what already exists.
Or what if the text "changed", but didn't (maybe the user selected 'a' and typed 'a').
Then, you can't just add all the nodes, only the ones for that type that don't exist yet.
 
Hm, the access violation in combase.dll happens after the vbe7.dll has been unloaded.
Could it be that we access some com components in the disposal code called by Ninject?
 
Hmm, maybe.
 
I already found out that the SubclassingWindow did not guard against freeing its resouces twice in case Dispose is called multiple times. However, fixing that did not solve the problem.
 
OK, going off break now. TTYL.
 
@M.Doerner I think the dockable presenters are ninjected indeed
 
5:59 PM
@Hosch250 Explaining details like this helps me get a better understanding of auto code generation. Thank you.
 
@Hosch250 aye. and it wouldn't be any simpler in VB.NET than in C#... or VBA ;-)
Still, we could have a "generate select cases" quick fix that could work off parsed code
...which isn't half as cool as having them generated as you type
@Hosch250 ha! I do that all the time!
@M.Doerner the part that baffles me is how vbe7.dll is unloaded before VBE add-ins return from their OnDisconnect handlers
 
6:18 PM
@Mat'sMug Right. It is very hard to do right. Working on Roslyn was much harder than working on RD.
 
6:28 PM
Alternatively, we do not dispose of something we should.
Does Ninject call Dispose concurrently?
In that case, it might still be running after the handler returns.
 
@M.Doerner that's a non-null possibility...
 
6:49 PM
That's totally dependent on the host application. No VBA host is obligated to even have a concept of an "active document", let alone for that document to have "variables". BTW it's PowerPoint, not PowerPony. — Mat's Mug 12 secs ago
 
00:00 - 19:0019:00 - 00:00

« first day (1153 days earlier)      last day (2027 days later) »