Contents tagged with English
-
Code Snippet for Debugger.Break()
Name: Debugger Break Description: Inserts a call of System.Diagnostics.Debugger.Break() Shortcut: brk Download: DebuggerBreak.snippet -
GhostDoc is one of "10 Must-Have Add-Ins" in MSDN Magazine
MSDN Magazine 12/2005: Visual Studio Add-Ins Every Developer Should Download Now
Wow… GhostDoc is one of them… I’d only wish the example would have been just a little bit more convincing (
SavePerson()
-><summary>Saves the Person<summary>
— hmm… ok…). But I must admit that it’s pretty tough to really show off GhostDoc’s features in only about a dozen sentences. I’d recommend you watch the video, or even better download and install GhostDoc. In case you’re impatient, the help file has a short chapter “How do I see some action without reading boring stuff?” ;-). -
GhostDoc 1.9.0 (for Visual Studio 2005) Released
The highly anticipated version of GhostDoc for Visual Studio 2005 has just been released (download on the GhostDoc homepage)
Originally I had planned to give it the version number 2.0, but for various reasons I couldn’t do much more than just porting version 1.3.0 (the most recent release for 2003) to Visual Studio 2005.
So the big feature is: GhostDoc 1.9.0 runs inside Visual Studio 2005 and the dialogs more or less match the style of the GUI (icons, general look). Unfortunately I didn’t have time to update the screenshots in the help file, but no functionality has changed so I’m pretty sure you can live with that ;-)
Umm… OK… one more thing: Anyone interested in VB.Net support? I’ve added what I call “experimental support”. In Visual Studio 2005, the CodeDOM for VB.Net now supports the DocComment property, so it was pretty easy to get this running in principle (some adjustments had to be done, though). But to be honest, I didn’t have the time (and experience in VB.Net) to test this enough to be an official feature of GhostDoc 1.9.0. So VB.Net support is turned off by default and you have to turn it on in the configuration dialog, on the “Options” tab. To the VB.Net developers out there: give it a try and tell me what you think. Oh, it would be very nice if somebody could port the demo project to VB.Net – the VB syntax keeps my head spinning… (sorry, I’m a curly braces guy since Turbo C 2.0).
By the way, this release is my entry for the Larkware 2005 Developer Tool Programming Contest; let’s see how things turn out for me and what the other competitors came up with.
-
GhostDoc Video is up on Channel 9
If you want a quick tour through GhostDoc in less than five minutes, check out the video.
It has already been posted on Channel 9 for a couple of days, but I was a bit reluctant to link to it as the first version posted was virtually useless. My original video was recoded by the Channel 9 staff, and in the process the texts in the Visual Studio source code editor window became completely unreadable. The second version is still slightly distorted, but the texts are readable and that's what matters in the end.
-
GhostDoc 1.3.0 Final Released
It took longer than expected, but the final of GhostDoc 1.3.0 has just been released (download on the GhostDoc homepage). Now that it’s out the door, I’m ready to move on to work on a VS2005 version.
What’s new in 1.3.0
Final compared to beta 2:
- Added: Some more "of the" trigger words and adjectives.
- Added: Command "RebuildDocumentation". It works like the "DocumentThis" command, but always creates the documentation from scratch. Note: The command was added pretty late in the release process; to minimize impact on the release date, it does not appear in any menu and can only be assigned to a hotkey via the Visual Studio options dialog.
- Added: Minor additions to the documentation.
1.3.0 beta 2 compared to beta 1:
- Added: New options for determining what should be the representation of the C# language keywords "true", "false" and "null" in a documentation comment.
- Added: New Macros $(True), $(False) and $(Null) to be used in text templates.
- Added: New Macros for the current date, the name of the current user, etc. ("environment macros").
- Added: New custom text that will be added once to a newly added documentation comment. As this text will not be updated, can be used for e.g. marking the date and time when a class member was added.
- Added: New summary template for default property rule (text generation was hard-coded in previous versions).
- Added: Template for methods with parameters for SingleWordMethodRule (text generation was hard-coded in previous versions).
- Added: Preliminary documentation for the dialogs.
- Changed: Default textual representation of "null", "true" and "false" back to the values of version 1.2.1 (<c>null</c>, <c>true</c> and <c>false</c>)
- Changed: Value text of the default property rule is no longer empty by default.
- Changed: Macros: Words.AsSentence -> Words.AllAsSentence
- Fixed: Various bugs related to customization features.
1.3.0 Beta 1 compared to 1.2.1:
- Added: New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summary for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is an implementation).
- Added: GhostDoc updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
- Added: User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
- Added: New rule for "On..." methods -- no more "Ons the click" ;-)
- Added: Rule for static constructors.
- Added: Rule for the Finalize method (destructor syntax in C#).
- Added: Rule for event handler methods as they are created by the WinForms designer.
- Added: Rule for boolean properties.
- Added: Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
- Added: Export of partial configurations is now possible (e.g. for exporting only a single custom rule).
- Changed: Summary text of the default constructor rule is now 'Initializes a new instance of the <see cref="ClassName" /> class.', i.e. uses the wording in the Microsoft documentation. The old "Creates a new <see cref="ClassName" /> instance" is debatable - is it the constructor that actually creates the instance, or is the constructor called when the instance is created? Thus the Microsoft wording is preferable.
- Changed: The configuration is now stored in the ApplicationData\Weigelt\GhostDoc directory. Old configurations in the installation directory (versions before 1.3.0) will be upgraded and stored in the new location.
- Fixed: <returns> tag no longer disappears if the return type is an array.
- Fixed: Overall handling of array types.
-
Paint Shop Pro X : Solution for Weird Screenshot Colors
I’ve been using various versions of Paint Shop Pro for a couple of years now; virtually every bitmap I need when developing software (either for the GUI or the documentation) has at some point been touched by this program. I just bought version 10 (upgrading from version 9) and encountered a problem that was pretty confusing at first: A simple screenshot (taken using [Ctrl-]PrtScr), appeared with distorted colors when being pasted into Paint Shop Pro X.
It took me some time to figure this out, so just in case somebody else has the same problem: In version 10, Paint Shop Pro has a new “color management” feature that is enabled by default. If you don’t need that feature and just want to work like you have done with earlier versions, the simplest solution is to switch it off via “File” -> “Color Management” -> “Color Management” dialog -> Uncheck “Enable Color Management”.
I’m sure that the color management is a really useful feature (for those who need it), but the “out-of-the-box experience” for somebody like me (whose first thought after setup wasn’t exactly “gee, I really need to calibrate my monitor now”) has been a bit confusing.
P.S. Just out of curiosity, I calibrated my monitor (“File” -> “Color Management” -> “Monitor Calibration”). Needless to say, even without spending much time, things look much better (but I’ll keep color management off anyway ;-).
-
PDC 05: WPF (aka "Avalon") - Wow, I am impressed...
Data binding everywhere (every control, every property bindable), data templates (that can also be changed on the fly, depending on e.g. the value of a certain property) – I just saw virtually all my GUI problems of the last years solved. Okay, there will be new problems, but this is such a huge step forward… impressive.
-
PDC 05: See GhostDoc at the "Show Off" Session
-
PDC 05: Monospaced fonts everywhere :-(
In the sessions I’ve been so far, each time code is shown on the screen, it’s in some monospaced font. Either “Lucida Console” (which is kind of ok), or worse “Courier New” (by the way: am I really the only person on the planet to notice that this font doesn’t scale well? It sucks on high-resolution laser printers, and it’s not that great on-screen in sizes larger than say 12pt).
Anyway, if we’d still be programming with C-style function names, I wouldn’t complain. But now that Microsoft advocates long identifier names for years, and the Framework libraries making heavy use of long and descriptive names (and I’m all for that!), why is it that everybody still thinks that code needs to be in monospaced font, even if it means that some identifier names span several meters on the projection screens?
-
Microsoft Campus Tour
Today was the day: the day of the Microsoft Campus tour which was a prize for winning Roy Osherove’s Visual Studio add-in last year (read here).
from left to right: my colleague Jochen Manns, Keen Brown (MS),
me, my other colleague Sascha LehmannI’d like to thank Keen (who filled in for Josh) and Sara – it was a fun day!
The things that amazed me the most: the size of the campus and the speed at which Sara talks ;-)