After a bit of arm-wrestling with the Visual Studio eventing model to ensure that some really weird corner cases are handled and the treeview isn’t rebuilt like 100 times when an obscure edit happens and invalidates the tree’s being in sync with the editor window content, I am (finally) ready to make available the v1.0 Release Candidate 2 (RC2) build of the DX_SourceOutliner.
For details on this project and its features, see this post category on my blog here for all the related posts.
For installation details, see this post here.
The RC2 binary is available for download here.
As before all comments, feedback, bug-reports, and other are welcomed. Assuming there is nothing else more seriously wrong with this build, the final RTM should be forthcoming pretty soon along with the release of the source code and probably also a series of blog posts where I will go into the process of developing this add-in in some depth in case anyone is interested in the process and effort that went into this thing.
Hi Steve,
excellent extension you’ve created here! I never even *knew* how many things I missed in the “Source Outline” powertoy 😉 So far, DX_SourceOutliner works like a charm – no bugs or oddities to report.
GREAT WORK!! Thanks a lot. Guess you should put together a bunch of screencast on DX extensions (“The Winter of CodeRush extensibility” maybe??) 🙂
Greetings from Switzerland,
Marc
Yes this is cool stuff.
for future releases it would be nice to see regions and maybe be able to move members to regions.
btw: looking forward to the next installment of Autumn of Agile 🙂
@Valdimar:
Don’t get me started on the anti-regions holy-war 😉
Actually, even though *I* would rather be caught dead than hiding my mess by sweeping it under a #region tag, that’s actually a pretty good suggestion (at least to show them) for people who use them — I’ll give that some thought for a future feature!
Thanks!
-Steve B.
@Marc:
Good to hear you’re enjoying it (and that its not misbehaving for you). The RC2 release has some of the odd re-build-tree-two-and-three-times-in-a-row behaviors weeded out of it so it should be both more performant and more stable (hopefully!).
Sure, we might just be in for ‘Winter of extending CodeRush’ 😉 We’ll see.
Good to hear from you again,
-Steve B.
Hi Steve,
DX_SourceOutliner is a great replacement for the “old” one, thanks! But it seems I have accidently found a little bug: Using more than one “*” in the filter text box leads to a visual studio crash. At least it does here…
Regards,
Phil
ps: I am also looking forward to the next installment of Autumn of Agile 😉
@Phil:
Thanks for the feedback — that would certainly sound like a bug and I will look into it.
This is a great example of “you never really know how people will use your software until you release it”. 🙂
Frankly, it never even dawned on me that someone would use wildcards in the pattern-matching filter textbox…the way I’d *intended* it to be used was as a partial text match against the *beginning* of the name of elements in the tree (e.g., typing ‘get’ would filter all the method that begin with ‘get’).
Your use-case is actually quite interesting; I assume you’re doing something like ‘*employee’ and filtering on any element that starts with anything but then contains the word ’employee’.
I’ll have to experiment a bit with how I wrote the pattern-matching algorithm (its a regex under the hood) to see if I can support what you’re trying to do here (I’m assuming you’re trying to enter a pattern along the lines of ‘*employee*update’ in order to filter for methods like ‘DoEmployeeFullTimeUpdate’, ‘DoEmployeePartTimeUpdate’, etc.) and this crashing VS b/c in the end its producing an invalid REGEX (and I don’t think I’m doing this in a try-catch block and so the exception is bubbling up unhandled into VS and resulting in your crash.
Thanks for the bug report — I’ll dig into ASAP. Also, can you post a comment with the exact pattern string that you are entering into the textbox just so I can be sure I’m properly understanding this –?
Hi Steve,
your assumption about what I was trying to do is totally correct. But there maybe something else to mention: The “*” that was typed by me before crashing is duplicated by something, so there appears “**” in the text box. I am quite sure that it’s not my shaky fingers… 😉
The error report that VS wants to send to microsoft says that an System.ArgumentException occured.
When I enter “Load*” for example (I know this doesn’t make any sense as the filtering should show all elements beginning with “Load” even without the “*” but anyway…) it is changed to “Load**” even on typing only one “*”.
@Phil:
Nope — I suspect that this a ‘bug’ (unhandled condition) in my code; I am passing whatever you type into the box as the constructor arg to the REGEX without first verifying it to be a ‘legitimate’ input string for the REGEX.
Will try to take care of this today over lunch and post an RC3 before the end of the day.
Thanks again~!
-Steve B.