« first day (1266 days earlier)      last day (1914 days later) » 

12:00 AM
I feel so smrt. Implemented everything that needed to occur except the caller that gets everything started throw new NotImplementedException(); for the win!
 
RELOAD!
[retailcoder/Rubberduck] 25 commits. 4331 additions. 1468 deletions.
[rubberduck-vba/Rubberduck] 9 commits. 1 closed issue. 6 issue comments. 672 additions. 606 deletions.
 
@IvenBach I see... so you're that sort of coder who enjoy lying to people about things being not implemented.... how despicable!
 
I only lie to myself.
I left it there knowing I'd be distracted with other office stuff and need it. Indeed I was right.
 
@this Okay, kind of have it. Tomorrow is a day too. Thanks for the help :-)
 
Duck check: why does Foo[n] = Bar work exactly? Is it because Foo as a List<T> has an indexer that allows it to occur?
 
12:12 AM
<guessing>it's accessing the object directly at the index position. OTOH, a IndexOf() returns a result so it can't be assigned to.` That's why lambda may be needed if you use functions instead of indexer.</guessing>
@SonGokussj4 you're welcome!
 
The difference between the result and actual access I now understand.
 
Or are you lying to yourself that you understand? :p
 
@SonGokussj4 Coding while tired: If you can avoid it, then do so. I've done terrible things while tired. Had to rewrite them and have a CodeReview with Tired-Last-Night-Self full choice words and head scratching.
@this IndexOf() is returning a value a la style of a get property whereas Foo[n] is allowing you to grab at it directly a la style of field. That's what I understand.
This is why so often I Rubberduck out loud to make sure I've understood it.
 
@IvenBach IList<T> exposes an indexer, yes
 
:AirFistPump: Awwww yeh! I can be learned.
 
12:20 AM
Next step: build reflexes "c# list<t> interface" should take you to the MSDN page with the interface members in a split-second ;-)
 
Mug.
As far as C#6 and 7-ification.
should I concern myself with naming convention?
 
^^ Primary source documentation always win.
 
@IvenBach always. what's the concern?
 
fooBar as opposed to FooBar for private methods.
 
Uh, nope. Members are PascalCase regardless of accessibility...
Tweak your R# settings to match the conventions in place where needed
...not sure where these settings are exactly though
 
12:23 AM
Ok. There's a few names that are camelCase instead of PascalCase.
IIRC they were mostly private methods.
 
What namespace?
Don't take anything under ExtractMethod for cash ;-)
 
Rubberduck.UI I kept getting the notice for it. Of course I can't find any now that I'm looking.
 
Actually don't change anything under ExtractMethod namespaces, or @this will find you =)
(truth be told, all current code is likely ending up wiped out, so it would just all be for nothing)
 
I'm going to work sequentially through. Top -> Bottom
<sidenote>I was given a guitar and mandolin. Now I've got 3 stringed instruments to fail on</sidenote>
How comes your harmonica-ing?
 
@this wiki edits look good :+1:
@IvenBach got my Hohner Crossover in key of C for a few weeks, but I can't seem to let go of my 1896 Marine Band (Bb). I want a Crossover in Bb now =)
 
12:33 AM
@Mat'sMug Tools>Options>TextEditor>C#>CodingStyle>Naming?
 
Probably, yeah
Hopefully I get a Bb Crossover for xmas
I got Sonny Boy's "Help Me" pretty much down now
 
Seems like you're learning songs really fast.
 
I also have Indiara Sfair's improv pretty much down too =)
Nowhere near her technique though. Gotta work on my tremolo
And I still practice Whammer Jammer, but that one's got no expectations for the next 5 years
 
Not sure what's up with that...
@IvenBach FWIW, my R# just uses the default settings.
 
^ mine too
 
12:48 AM
@Mat'sMug Thanks!
 
Actually, @this, that's what I logged in to say. Looks fine.
Just forgot to actually say it :P
 
Thanks, too, @Hosch250
now that I'm done with my work project, I can get to do some more RD work.
 
Are you a freelancer?
 
Nope. I work for a company. I suck as a freelancer, anyway.
 
I brought my work laptop home... Gotta work on that order form
 
12:51 AM
Ah, cool.
Just curious, because I finished my project, and didn't have anything to do.
 
Used to be one, but the sales part is daunting for me. Then I found my current boss and now he's basically my agent. :p
 
So I made a Linq-to-Entities query go from some 18 seconds/call to about 4 seconds.
 
would your company frown on moonlighting? Generally they do.
 
And I just got a new project today.
 
lol. So beggars do ride after all!
 
12:53 AM
Actually, I got two new projects today.
 
is your company a consulting company?
 
@this Not sure I grok that statement.
No.
 
Referencing the old saying "if wishes were horses, the beggars would ride."
 
We are a motivation company.
@this Oh, I know that saying. Just not sure how it fits in context.
 
I hope you don't mean you actually make those motivation posters.
A convoluted way of saying that wishes do come true.
 
12:55 AM
No. We have a website.
The website has widgets.
So, clients' employees can, for example, send each other ecards.
Or managers can run promotions.
 
Aha, I see.
 
We make our money by a point system, where people can send other people points for good behavior.
These points are worth so many dollars (customized per client), and the employees can buy stuff from our store with them.
So, for example, if Mat's company came out with a new suit, they could run a promotion "If you sell N suits in this time period, you get Y points".
 
Rephrasing - it's basically a internal store used by fortune 10 companies' employees to get stuff for their performance.
 
Or if they like his new "webapp", they could send him a "recognition" and/or "eCard" with or without points.
Yeah.
 
I see. Makes the motivation a bit more tangible. That's nice.
 
12:58 AM
Well, we have about 20 clients, all Fortune 500.
Most Fortune 100, or just barely not.
And the recognition could be public or private, and we have a "message center" that displays this kind of stuff.
And if anyone comes to the company referred by me, I get lots of points :)
 
Aha, I see. That was a hint ot IvenBach to get his company to sign up, right. :p
 
Or Mat's :P
 
Huh?
I have negative clout where I work. I'm just an underling in the kogs.
 
See, you doing it wrong, man.
 
#GottaStartSomewhere #MustFeedWifeAndDuckling
 
1:03 AM
You go to your PHB, say, "I'm feeling so de-motivated. I really wish there was a way to motivate me to do my job. My friends' companies use hosch's company and they get cool toys. It'd be a great place to work if we had that...."
 
HOME TIME! I'ma go get me some Uke practice.
 
cool.
 
Most of our webpages look nicer, and this stuff is 100% customizable.
Gosh. 4-bar internet, and I can't get even a chat message to load for 20 tries...
 
Duck check: regression tests. Are they possible for RD? I'm ducking out loud to know if it's possible to have them to be notified when one happens.
 
1:12 AM
Every single unit test we have is a regression test, isn't it?
Upload speed = 100 kilobits/sec. Download = 3 megabits/sec.
 
cable or DSL or ?
 
WiFi.
We are supposed to be able to download a GB in a couple seconds...
Suppertime.
 
1:33 AM
Regarding the code-smell with 3 news for the presenter+VM 2 layers.... is this insane?
    public interface IRefactoringPresenter<TViewModel, TModel>
    {
        TViewModel ViewModel { get; }
        TModel Model { get; }
        void Initialize(TViewModel viewModel, TModel model);
    }

    public class RefactoringPresenterFactory
    {
        public TPresenter Create<TPresenter, TViewModel, TModel>(TModel model)
            where TPresenter:IRefactoringPresenter<TViewModel, TModel>, new()
            where TViewModel : new()
        {
            var presenter = new TPresenter();
brb
 
@ThunderFrame 3 votes.
Do I get new votes each day?
 
unsure - i think you get a fixed quota
 
So, what happens when I use them all?
 
I'd think you'd used them all by now :P
 
2:54 AM
there, 20 votes.
each UV implement their votes differently
you can always reallocate whenever but whenever the item get closed (either resolved or not), you will get your votes back
i already have my 20 votes all tied up already. :(
 
OK.
I have 13 left.
 
there's one about programmability and a bunch about improving ODBC & SQL.
 
I don't care.
I don't use Access, and 99% sure I won't ever need to.
 
3:10 AM
An organ with a duck stop: youtube.com/watch?v=o_oA3Mig7Gk
 
@Hosch250 I saw that just yesterday.
 
LOL.
Also, @Mat'sMug, I should totally get you one of these sometime: amazon.com/Hohner-Panther-3-Row-Diatonic-Accordion/dp/…
 
@Hosch250 I'm thinking about the regression of the insert/delete of modules. There's no test for that, or can there be?
 
Not sure.
FWIW, I've had that problem for a while. When was our last release?
 
It's not a unit test.
Mug said 2.1 it was valid. So some prerelease after that.
I think it'd be good to review previous issues for regressions and make tests for them. That way we have another degree of surety that RD is progressing forwards.
 
3:29 AM
Another one with the duck stop:
@IvenBach Eh, who has the time? That's what the unit tests are for.
And users.
 
Something doesn't sit well with the idea that 'users will find the issue', for me. Once something is fixed is should stay fixed.
 
Sure.
But I for one don't have the time to manually inspect every one of our zillions of documented and undocumented bug fixes and features.
 
Can unit tests invoke a parse? I'm quacking out loud cause I don't know.
 
Duh, yes.
How do you think we have several hundred inspection/refactoring tests?
 
I've warned you about my duckheadedness. :p
 
3:35 AM
Heck, we have a zillion tests just making sure the grammar parses certain constructs.
 
Could bundle RegressionTests in with UnitTestes.
 
Uh, that's what unit tests are for...
To make sure we don't break features primarily when fixing bugs, but also when adding new ones.
Anyway, I have to go.
Time to wash the dishes.
> Unit test: Specify and test one point of the contract of single method of a class. This should have a very narrow and well defined scope. Complex dependencies and interactions to the outside world are stubbed or mocked.

Integration test: Test the correct inter-operation of multiple subsystems. There is whole spectrum there, from testing integration between two classes, to testing integration with the production environment.

Smoke test (aka Sanity check): A simple integration test where we just check that when the system under test is invoked it returns normally and does not blow up.
A regression test is a unit test that targets a specific bug.
There isn't any difference after the fact, really.
Unit tests target the core functionality and edge cases.
Regression tests are unit tests for cases we missed the first time around.
> Acceptance test: Test that a feature or use case is correctly implemented. It is similar to an integration test, but with a focus on the use case to provide rather than on the components involved.

System test: Test that tests a system as a black box. Dependencies on other systems are often mocked or stubbed during the test (otherwise it would be more of an integration test).

Pre-flight check: Tests that are repeated in a production-like environment, to alleviate the 'builds on my machine' syndrome. Often this is realized by doing an acceptance or smoke test in a production like envi
So, most of our tests are system tests, really.
(According to this guy.)
And terminology can differ based on whatever. We do more blackbox testing than whitebox testing, so...
764
A: What is Unit test, Integration Test, Smoke test, Regression Test?

ddaa Unit test: Specify and test one point of the contract of single method of a class. This should have a very narrow and well defined scope. Complex dependencies and interactions to the outside world are stubbed or mocked. Integration test: Test the correct inter-operation of multiple subsystems. T...

 
 
4 hours later…
7:27 AM
> Rubberduck version: 2.1.6535.41637 doesn't have this error. All adds and deletions invoked a reparse.
> While deleting a module if you choose to export it and then subsequently cancel without saving, the module remains and is not `Remove`able. The option is grayed out and requires a reparse to enable the option again.

Version: 2.1.6535.41637

Status by design?
 
 
1 hour later…
8:51 AM
> The first of many.

Update for Rubberduck.UI folder.
[rubberduck-vba/Rubberduck] build for commit 55aac186 on unknown branch: AppVeyor build succeeded
 
I've been thinking. What is the chance (is it even possible?) to implemement DocString help in VBA Editor?
I really like the docstring help in Python when you're in a middle of parameters of a function
VBA is displaying only the "first row"
Is there a chance to implement a functionality that would for example show docstring bellow/above function/sub for example between ''' string? Like:
Public Function InCollection(ByVal item as String, ByVal col as Collection) as Boolean
    '''Checks if Item (string) is in Collection of items (should be strings)'''
    ' Code Here
End Function
 
9:13 AM
@Duga F5 tested and Unit tested. Because of the time F5 testing isn't greatly confident.
var control = module.Parent.Controls.Where(item => item.Name == target.IdentifierName).FirstOrDefault(); is prompted to become var control = module.Parent.Controls.FirstOrDefault(item => item.Name == target.IdentifierName);. Higher brain function has long since left the building. TODO: look at with fresh eyes.
Found in Rubberduck.Refactorings.Rename.RenameRefactoring
 
9:27 AM
This bug is stil here. I tried to find him in Issues but not sure how to look for it there. Because BUG or DEBUG or TODO are really common words regarding issue...
Todo Explorer:
 
9:45 AM
@SonGokussj4 ^ Does the above image provide what you're looking for?
I use Ctrl+J when having to type in longer-ish names as my poor mans Intellisense.
 
> I thought a bit about the problem with the dependency cycle again and another point at which we could break the cycle came to my mind: between the commands and the presenters.

In the particular example of `RunAllTestsCommand`, all the command does with the presenter is to show the window before running the tests. This is a bit strange from a design perspective since it pollutes the command with UI concerns while everything else deals with non-UI concerns.
Instead, there could be `RunTestsR
 
            foreach (var oRef in item.References)
            {
                foreach (var rule in _emRules)
                {
                    var byteFlag = rule.setValidFlag(oRef, selection.Selection);
                    flags = (byte)(flags | byteFlag);

                }
            }
^ Above becoming V below is another learning opportunity
flags = (from oRef in item.References from rule in _emRules select rule.setValidFlag(oRef, selection.Selection))
    .Aggregate(flags, (current, byteFlag) => (byte) (current | byteFlag));
Sleep time!
 
10:04 AM
@IvenBach No, the functionality I have in mind does not exists in VBA Editor. I mean not parameter info but DocString. So that I can view a "special comments" bellow the Funcion/Sub and there I can have examples of how to use this sub/function or more info about parameters etc...
I'm not sure if you can modify what is seen when you press ctrl+i or create a whole new window for that. That would dissapear after a click.
The example of written docstring in Python is this:
VBA Editor would just show obj2sctype(ByVal rep As Variant, Optional ByVal default as Variant) (for example for this function) but NOT the docstring bellow.
I really miss this because I forgot what should I put into parameters when using the sub/function and I have to RightClick it, press Definition, that would open another Module with this function and there I can read my comments.
 
10:22 AM
@SonGokussj4 This should be possible once we start using AvalonEdit. There's also an issue (ripe for reopening) for .NET XML docs: github.com/rubberduck-vba/Rubberduck/issues/…
 
11:20 AM
@ThunderFrame This looks awesome! I kind of searched the internet what is AvalonEdit and don't know what you're trying to do here but if it works, wow! :-) I'm really looking forward to this. Keep the good work!
 
@SonGokussj4 It's pretty exciting - it will effectively allow us full control of codepane rendering, intellisense, collapsible code, syntax highlighting, draggable tabs, etc.
pretty much anything that Visual Studio can do, but in the VBE
 
11:40 AM
So you mean to tell me that it's the end of those horrible horrible windows and no coloring of functions and bad way to do almost anything in the "editor"?
That is fantastic! Any ETA? Month? Year?
 
Okay don't freak out, this is experimental stuff. But yes, this is a subclassed codepane in the #VBA editor.
 
[rubberduck-vba/Rubberduck] Vogel612 [commented on RetailCoder.VBE/UI/Refactorings/EncapsulateField/EncapsulateFieldView.xaml.cs]‌​(github.com/rubberduck-vba/Rubberduck/pull/…) of pull request #3562: Rubberduck.UI folder C#6&7 update
 
12:01 PM
@ThunderFrame Wow it's an old thing, 1.5 years old tweet, nice! So another reason to look forward version 3 :-)
 
@SonGokussj4 the developer that got that working left the project, but we've since worked out how to do it, and IIUC, it's one of the main goals for 3.0
 
I'll be glad to test the sh*t out of it when the time comes :-)
It's a shame I can't (I think) help you with the developement of RB...
Anyway, what about the: chat.stackexchange.com/transcript/message/41313205#41313205 should I open an Issue?
 
> Sounds more like status missing a failing test ;-)

If the deletion was cancelled, RD state should ideally remain what it was before. Are we too eager to remove the module from parser state?
> Fixed without a referencing commit then?
 
12:34 PM
> Hold on - if the yes/no/cancel msgbox is ours, then we can fix it. If it's the VBE's, then it's essentially the same problem as when closing the last host document and then cancelling: the VBE unloads its add-ins and we never get to know about the cancellation... So that would be "by sorry design".
 
1:09 PM
> I do not know what the code explorer does, but the parser really does not care whether something got removed directly. There is just a reparse that figures out what is in longer there by comparing the saves modules with those on the projects. So, I guess this is simply a problem about deactivating the command too early.
 
 
3 hours later…
3:53 PM
> C# 7.2 ships with the 15.5 release of Visual Studio 2017.
:)
I'll let you know when it's safe to upgrade to it.
Ugh, they did go with private protected: docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
 
4:09 PM
hmm. 17 ExtractMethod files touched in that PR. Conflict galore coming up.
 
> Seems to me 17 files were ExtractMethod variety which is being worked upon which will create unnecessary conflicts. I'd request to stash those files from the PR.
> I am still not 100% sure that we can get rid of the dependency cycle without using techniques described in **Breaking the Cycle** section.

`HotkeySettingsProvider` creates `HotkeySettings`. Default hotkeys are a part of `HotkeySettings`, so the provider will have to deal with commands, be it directly or indirectly.
 
4:58 PM
> File was modifed on remote, deleted on local: delete!
I did tell him to ignore anything under ExtractMethod namespaces though
@Duga agreed
 
 
2 hours later…
6:44 PM
@Mat'sMug You did...
 
7:36 PM
> Let me explain why I think that the need break a cycle depends on whether we only want to provide settings for commands that are loaded or do not care.

Provided, we do not care that we might provide hotkey settings for commands that are not really loaded, the `HotkeyProvider` does not need to know which commands have been loaded. Neither the `HotkeySettings` nor the `DefaultHotkeySettings` is really a problem since both only need to know of an identifier identifying commands, i.e. the type
 
7:54 PM
You there Mug?
 
not really
 
Anybody at home? No.
 
For bool return values is there any standard for them? I noticed in one spot a property is getting another bool. The calling is IsSourceControlEnabled and the one called SourceControlEnabled. Is there any desire to standardize them?
 
Kind of depends.
I like the first on there.
 
with the Is?
 
7:58 PM
Yeah.
 
Is- and Has- are the standard
 
I've seen others with Can... which lends it to a bool feel for the return type
 
Or Can-
Yup.
 
Ok. I'll make that minor mod.
Sorry about hitting ExtractMethod namespace. I reverted them.
 
8:08 PM
[rubberduck-vba/RubberduckWeb] Hosch250 pushed commit f2849420 to master: Make the indenter stop crashing when the user enters strings with <>&
 
Whoops.
Well, I guess I made a mistake there.
 
@Duga I'm not following...
 
Stick this in the indenter:
Sub DoSomething()
Dim foo As String
foo = "<test>"
End Sub
That crashes the webpage.
I fixed that.
Basically, I told it not to validate the input.
 
8:24 PM
by introducing a dependency on System.Windows.Interactivity.WPF??
 
8:43 PM
Duck check: Is the use of nameof in the following proper use?
        public static Selection GetVariableStmtContextSelection(this Declaration target)
        {
            if (target.DeclarationType != DeclarationType.Variable)
            {
                throw new ArgumentException("Target DeclarationType is not Variable.", nameof(target));
            }

            var statement = GetVariableStmtContext(target) ?? target.Context; // undeclared variables don't have a VariableStmtContext
            return statement.GetSelection();
        }
Rubberduck.Common.DeclarationExtensions is where it's found.
 
nameof(target) will be "target"
so, yeah
 
Just making sure. Felt confident in the suggestion.
 
Hey everybody!
 
hi!
 
I have some questions for you tonight :D
 
8:54 PM
Heyyo.
 
I have been experimenting a huge amount of crashes recently
 
Ask away. Questions help us.
:thumbsdown: Sorry about the crashes.
 
since I built the current 'next' branch
and I have also had corrupted files
like, once crashed, the file I was working on would crash excel again every time I try to open it
don't know where all these crashes are coming from, but to be honest I'm exited about them
but I need to ask, which one was the last "most stable" commit? can I suppose it was 'master'?
and, what has it changed since then? (sorry, a ton of commits to read changing a ton of files, anybody to give me an overview?)
I'm not sure where to get started, it's a very recurrent problem when I get involved into huge wetlands
 
9:10 PM
@NelsonVides upstream next is always "stable", meaning it passed all tests, and hopefully whoever submitted the PR tested it with F5/debug :)
upstream master is always "stable", except it's the last "green release", which would exclude all commits made to upstream next since
 
9:23 PM
What crashes are you experiencing?
 
> The current behavior when Rubberduck fails to load is that the RD menus and windows simply don't appear. The error are logged just peachy. Nonetheless, this makes for a confusing user experience because they've already seen the splash form and thus naturally assume/expect RD to be loaded.

I'd suggest that when RD does fail to load, the user should be at least alerted to the fact, and perhaps helpfully linked to the log so that the user is aware that something went wrong and can take action
> That is *not* by design. Failure to initialize is intended to go through this path:

catch (Exception exception)
{
_logger.Fatal(exception);
System.Windows.Forms.MessageBox.Show(exception.ToString(), RubberduckUI.RubberduckLoadFailure,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}

[This line](https://github.com/rubberduck-vba/Rubberduck/blob/next/RetailCoder.VBE/Extension.cs#L224) seems suspiciou
 
@Duga yes, I know, I'm the one that put that comment in there
again
 
I see...
these crashes are sometimes a bit unpredictable
one I think it looks recurrent is when there's a parse error
 
wait a parse error on startup brings down the whole thing??
 
if the parse didn't work, and instead of reparsing again until the parse is successful, I close the IDE, then the whole excel goes down
not on startup, at least :)
 
9:37 PM
@Mat'sMug No, that was just to get it to build.
 
weird
 
The main RD UI relies on that. Not sure what's up with the web needing it.
 
probably because it's a dependency of Rubberduck.dll
 
Probably, but it's still kind of weird.
 
wait that doesn't quite add up
yeah
 
9:38 PM
I'm gonna try to reproduce this crash under F5/Debug mode and give you more details, I can't promise anything yet
 
I built and published the website as it was on [master]
 
It crashed loading it into Ninject.
Also, the indenter needs more visibility on the home page.
 
^ agreed
 
there are some issues with the source control but that was always experimental
and I don't remember what else there was... anybody has had crashes I could be aware of?
 
@NelsonVides host app crashing on shutdown isn't anything new. it's massively improved since a few releases, but we're somehow still not cleanly shutting down... and it's a huge PITA
do you have repro steps?
 
9:44 PM
open some file what cannot be parsed for any reason, click on parse, and once it's on "Parse Error" status, close the IDE (?)
let me tell you more precise details later, so far this is more of an intuition than a logged fact
but me asking, what has made the host app crash in the past that has already been fixed? Maybe there's some relationship (?)
 
Memory leaks.
 
@NelsonVides if that's all it takes and it's consistent, we should create an issue for it
 
@Mat'sMug Then simply uncomment, change the comment to // For the love of all that is holy, do not uncomment this line or you will start World War III Problem solved.
 
@this lol, sounds like it
 
I'll try to gather more info and tell you :)
memory leaks? I'm gonna be a C++ pedant and laught at Garbage Collectors alone in my room now :D
If anybody knows of any more crashes I'd like to know and have a mental map of what could go havoc, please :)
 
10:02 PM
It might not be just memory leaks - M.Doerner did mention that it might be a matter of improperly releasing resources we don't own or not releasing resources we do own.
 
@this - I got in touch with the Access Program Managers - they've reproduced the Frame control bug (surprise!), and are looking into it.
 
Great!
The $64,000 question, however, is whether they'll actually fix it.
 
indeed
 
ugh
And how to I specify the item? — Luiza 39 secs ago
By actually reading the answer? Name:=aLinks(1)Mat's Mug 2 mins ago
 
funny thing happened while I was testing it - I ended up with a visible VBMdiChildHack window.
 
10:06 PM
@ThunderFrame wut!!
 
on where the frame was supposed to be?
@Mat'sMug I know your thanksgiving was a month ago, but that's a moment to be thankful that you have questions to answers. :)
 
yeah... not a great crop today :/
 
no, I dismissed the errors and then closed the form, and there was VBMdiChildHack sitting there visible. I could resize it but it didn't repaint very well, and it just had a white background
 
hmm. that's not normal....
at least I don't remember seeing a white thing
 
IKR - I haven't been able to reproduce it since
 
11:10 PM
 
11:23 PM
@Mat'sMug - ^ that's the window hierarchy of RD's CodeExplorer when it is made not Dockable.
IDK what all those junk window classes are below the "Code Explorer -GenericPane" window, but I assume they're WPF magic.
which means an AvalonEdit window would sit in a similar hierarchy:
 
11:47 PM
@ThunderFrame which means we will have the exact same teardown issue
 
maybe - but maybe the undockable windows get torn down in a different order?
also, once we have a single undockable "RDMdiChildHack " ToolWindow, in theory we could convert all the other ToolWindows to being WPF ToolWindows. There'd only be a single window to be torn down.
 

« first day (1266 days earlier)      last day (1914 days later) »