This is the archived version of Roland Weigelt's weblog that ran from 2003 to 2023 at weblogs.asp.net

Contents tagged with Tools

  • GhostDoc in "Windows Developer Power Tools"

    20070130_WindowsDeveloperPowerToolsToday I received my copy of “Windows Developer Power Tools” by James Avery and Jim Holmes, to which I contributed a chapter about my Visual Studio add-in GhostDoc, comparable in scope to what I wrote for “Visual Studio Hacks”. For the chapter in “Tools” (which grew to 7 pages compared to 5 in “Hacks”), I took the opportunity to be more clear about what GhostDoc can do, and what it cannot achieve, and what to look out for e.g. when re-using inherited documentation.

    A small error was introduced in editing of my original text (which by the way turned out surprisingly tame considering the fact that English is not my native language): Unlike suggested by the text on page 314 “when you want to document a method or class”, GhostDoc does not generate documentation for classes. On a sidenote: While this is a feature that has been requested a couple of times, it hasn’t been implemented yet. And honestly, I’m not quite sure of the value of such a feature, let alone what exactly it is supposed to do (most of the examples I have received so far show a certain ELIZA effect concerning the belief in GhostDoc’s abilities, but I’m still open to suggestions).

    To bring the topic back to the book: at more than 1300 pages, it contains a lot of stuff, covering more than 170 free and open source tools for developers. The concept of the book is to describe each tool on roughly 3 to 10 pages, helping you to decide whether or not to give it a shot, and if so, how and where to start. If “Windows Developer Power Tools” saves you from either missing a really good tool, or installing some crud software in the process of finding one, the book has reached its goal and saved you a lot of time (and maybe even trouble). As one reviewer puts it “You could spend your time tracking down these applications, but why?”. From what I can tell by a first quick glance at the table of contents and skimming the pages, definitely an interesting book.

  • Firefox 2.0 : Going Back to 1.5 Style...

    Ok, I really tried, but after working with Firefox 2.0 for a few days I still don’t like the Close buttons on the tabs (I know IE7 has them, too, but that doesn’t make things more usable for me personally). Fortunately it’s simple to go back to 1.5 style:

    • Enter about:config in the address bar
    • Set browser.tabs.closeButton to 3
    • Restart Firefox

    And if you prefer the icons of Firefox 1.5, there’s a theme for you on Mozilla.org.

  • SonicFileFinder 1.2 Released

    Jens Schaller has released version 1.2 of his free Visual Studio add-in SonicFileFinder.

    In a typical case of “less is more”, Jens has taken a hard look at how to specify the file filter and has reworked it completely, ripping out the different options (compare prefix vs. find text in name). They can now be expressed by using file wildcards (*, ?). In a situation where speed all that counts, it’s the fastest way to express what you are looking for. And the wildcards don’t get in your way; entering e.g. “SomeText” is equivalent to “*SomeText*”. Allowing file wildcards was actually my personal killer feature of the DPack File Browser that even made me consider to switch (at least for a moment), but seems like Jens has listened carefully when I talked about DPack at lunch time ;-)

    Version 1.2 also offers better configuration of the GUI, allowing to switch off features that either take up screen real estate (e.g. the “Match” column) or you simply don’t want to see.

    For full details, see this post on Jens Schaller’s blog.

  • SonicFileFinder 1.1 Released

    My colleague Jens Schaller has released a new version of his free Visual Studio add-in SonicFileFinder, addressing a couple of issues I pointed out in my review. More details in his blog post.

    I'm also playing around with DPack, which - among other things - offers a file search capability (and is also using a popup dialog). Initial impression is positive, but it's too early for a detailed review. Thanks to Jon Galloway for the pointer.

  • Add-in Comparison: VSFileFinder 2005 vs. SonicFileFinder

    Back in the days of Visual Studio .NET 2003 one of the add-ins that I installed on every system was VSFileFinder by Jonathan Payne, originally published as a Code Project article and later hosted on his own website. The add-in displayed a list of all files of a Visual Studio solution inside a tool window, and by typing text in a field above the list, it was possible to restrict that list to show only the files names containing the typed test – all of this interactively (here’s an animated GIF to give you an idea). Then Visual Studio 2005 came out, but there was no updated version of VSFileFinder, so after I moving all my work to 2005, I had to learn live without it.

    When the Microsoft Extensibility Contest was announced in May and my colleague Jens Schaller wondered whether he should participate and what kind of add-in he could write, I immediately said “I’d like to have a VSFileFinder clone for Visual Studio 2005, why don’t you write one?”. What we didn’t know was that in the meantime Jonathan, the author of the original VSFileFinder, had worked on a complete rewrite for Visual Studio 2005 called VSFileFinder 2005 (website).

    When VSFileFinder 2005 was released in June, it didn’t discourage Jens from continuing with his own add-in called SonicFileFinder (a small wordplay based on his last name, “Schall” is the German word for “sound”). He completely avoided looking at the other add-in, so in the end his version turned out slightly different.

    A couple of days ago Jens released a first public version of his SonicFileFinder (website), and a new version of VSFileFinder came out yesterday, so it’s a good time to compare these two competing add-ins.

    1. Installation

    VSFileFinder 2005 (tested version: 1.2) installs itself into “My Documents\Visual Studio 2005\Addins” (two files, .addin and .dll), which is not a good idea, as I had to learn myself the hard way with GhostDoc 1.9.0 – I had quite a few complaints from people who had their “My Documents” folder on a network drive. Anyway, on my system, I started Visual Studio after setup had finished and the tool window appeared.

    SonicFileFinder (tested version 1.0) uses the same approach as the most recent versions of GhostDoc and installs itself to a user-chosen location. During setup a .addin file pointing to that location is generated and written to one of the folders searched by Visual Studio for .addin files. When starting Visual Studio for the first time after the setup has finished, a couple of configuration dialogs appear for choosing

    • a hotkey (the list of suggestions is somewhat limited in version 1.0, though)
    • the usage mode (popup window or tool window). One thing I requested during development of SonicFileFinder was to be able to show the file list in a popup window that would open by pressing a hotkey and close when no longer needed, thus saving screen space. Jens didn’t want to throw the tool window idea out altogether, so he included it as an option.

    2. Getting Started

    Out of the box, the tool window of VSFileFinder 2005 looks like that of the VS.Net 2003 version. It is floating by default, but I prefer to have it as a dockable window (maybe a matter of personal taste, but if I have a window floating around that I cannot close by pressing Escape, it sooner or later gets in my way):

    20060807_FileFinderShootout_VSFF1

    You enter some characters and immediately the list is updated to show only those files containing the typed text:

    20060807_FileFinderShootout_VSFF2

    You can then either click on the file name to open the file immediately, or use the cursor keys to select a file and press Enter to open it. It is recommended to map a hotkey to the command VSFileFinder2005.Connect.VSFileFinder (via “Tools -> Options -> Environment -> Keyboard”), so you can activate the window and jump directly to the input field in no time.

    SonicFileFinder uses a modal window by default to display the file list. You either hit the hotkey or chose “Tools -> SonicFileFinder -> Start search” and the following dialog pops up:

    20060807_FileFinderShootout_SFF1

    The basic usage is the same as with VSFileFinder 2005, enter some text and the list is filtered:

    20060807_FileFinderShootout_SFF2

    Then, to open a file, either double click it, or use the cursor keys and press Enter. The dialog closes immediately.

    Notable differences in the file list:

    • The full file paths are specified relative to a common base directory, which saves some horizontal space
    • The “Match” column specifies how good the match is (in percent)
    • The list can be sorted (small bug in 1.0: the selected item changes when changing the sorting)

    In tool window mode, SonicFileFinder shows less files in the same amount of space as VSFileFinder 2005, because of the bar at the bottom of the window:

    20060807_FileFinderShootout_SFF3

    Like in popup mode, you have to double-click a file to open it (different from VSFileFinder 2005 where you single-click the file).

    3. Advanced Features

    For VSFileFinder 2005 it is possible to define filters for file extensions so certain files are not displayed in the list. VSFileFinder 2005 also has the option to highlight certain files in a different color. I never really missed “positive highlighting” of specific files (e.g. in bright colors), but what came into my mind as a possible use was e.g. to color WinForms designer files (.Designer.cs) in dark grey instead of black.

    SonicFileFinder lacks both these two features. A handy feature that it offers over VSFileFinder 2005 is the Explorer button. Clicking the button (or hitting Ctrl-E) opens an explorer window for the folder containing the currently selected file. That’s a feature you may not use all the time, but when you need it, it’s a huge time-saver.

    I once had good use for the “Match” column in a huge solution where sorting by this column brought up the files I was looking for (I knew only a part of the name, which unfortunately was very common so I had lots of hits), but I’d like to have an option to turn it off.

    The “live preview” option (which opens the currently selected file) is a bit annoying when moving the cursor by pressing the arrow keys, unintentionally opening e.g. .ico files. Fortunately, it’s turned off by default. I honestly think this needs some rework.

    6. Final Verdict

    VSFileFinder 2005 comes without any documentation at all, not even a Read Me, and the website isn’t that informative as well, but on the other hand it’s no rocket science to install and use this add-in. My opinion: If you want an exact port of the original VSFileFinder, get this add-in. When you need a tool window showing the files all the time, every bit of screen real estate counts and in this regard VSFileFinder is better than SonicFileFinder (where the bar at the bottom takes its toll).

    SonicFileFinder goes for a “polished” look and feel, comparable to that of GhostDoc. There’s some slight “fluff” of having the bar at the bottom of the window, or the “Match” column in the file list, but while that may matter in tool window mode, it simply isn’t a factor in popup mode. And the popup dialog (and the ability to get rid of it fast either by opening the selected file or by pressing Escape) is my personal killer feature of this add-in. So if the thought of yet another tool window competing for screen space scares you, you should definitely go for SonicFileFinder.

    7. Resources

  • GhostDoc 1.9.5 Released

    <summary>
    GhostDoc is a free add-in for Visual Studio that automatically generates XML
    documentation comments for C#. Either by using existing documentation inherited
    from base classes or implemented interfaces, or by deducing comments from
    name and type of e.g. methods, properties or parameters.
    </summary>

    This release contains minor updates of the documentation and changes regarding the text generation.

    • Changed: References generated by the $(ShortName...) and the $(FullName...) macros no longer generate the "T:" prefix, as this prevented the compiler from detecting broken references to renamed classes (thanks to forum user “erwind” for pointing out various issues with the "kind of" identifiers). Note that GhostDoc currently does not remove the qualifiers from inherited documentation.
    • Changed: Most generated texts now use the $(FullNameAsSee) macro, with the exception of the summary for constructors.

    Download on the GhostDoc website.

  • GhostDoc 1.9.4 (for Visual Studio 2005) Released

    20060525_GhostDoc

    A couple of issues were found shortly after the release of version 1.9.3 yesterday, so here’s version 1.9.4 of GhostDoc for Visual Studio 2005 (download on the GhostDoc website)

    • Fixed: Installation "for everyone" not working in 1.9.3 (since preview 3).
    • Fixed: Configuration dialog using huge amounts of CPU time when clicking certain parts.
    • Fixed: Inherited documentation in VB.Net sometimes being garbled.

    Here’s my usual disclaimer: VB.Net support is regarded as "experimental",  it is turned off by default and you have to turn it on in the configuration dialog.

    For a list of what was new in 1.9.3 see this blog post.

  • GhostDoc 1.9.3 (for Visual Studio 2005) Released

    20060524_GhostDoc

    Version 1.9.3 is a bugfix release of GhostDoc for Visual Studio 2005 (download on the GhostDoc website) dealing mostly with installation problems.

    • Fixed: GhostDoc not appearing in Visual Studio on systems that had Extensibility.DLL missing in the GAC (caused by uninstallation of other add-ins with buggy installers).
    • Fixed: GhostDoc not working on international (i.e. non-US) versions of Visual Studio:
      • Assignment of keyboard shortcuts not working on non-US versions
      • "Tools" menu not found on "Chinese Simplified" systems
    • Fixed: Problems with multiple users on a single machine.
    • Fixed: Problems with users working under non-admin accounts (MSI installation still requires admin permissions).
    • Fixed: Documentation of indexers in VB.Net (remaining known issue: VB.Net indexers are treated like C# indexers - no explicit <param> tag for the parameter, only the first parameter is mentioned)
    • Changed: Summaries of VB.Net properties in interfaces now start with "Gets or sets ..." (remaining known issue: ReadOnly properties are not handled correctly, but that's not easy to correct right now)

    Because of the known issues mentioned above, VB.Net support will still remain "experimental" in this release, so it is turned off by default and you have to turn it on in the configuration dialog.

    • GhostDoc: Looking for International Beta Testers

      I’m in the process of getting GhostDoc 1.9.3 out the door. This is mainly a bugfix release adding support for international versions of Visual Studio 2005. If you are using a different combination than

      • Visual Studio 2005 (English) on any language version of Windows
      • Visual Studio 2005 (German) on a German Windows version

      and if you are interested in trying an installation of version 1.9.3, please send an email to gd193beta@roland-weigelt.de, I’ll get back to you in the next days.

      Please include the following information in your email:

      • Language of your OS
      • Language of your Visual Studio 2005

      Please note that the preview version sent out to testers does not contain any hot new features, so if 1.9.2 is running on your system just fine, you won’t miss anything.

      Update: The new version has been released, the email address is now disabled (too much spam).

    • GhostDoc 1.9.2 (for Visual Studio 2005) Released

      20051120_GhostDoc

      Version 1.9.2 is a bugfix release of GhostDoc for Visual Studio 2005 (download on the GhostDoc homepage).

      VB.Net support will still remain experimental in this release, so it is turned off by default and you have to turn it on in the configuration dialog. It will become official in the next feature release, which I’ll be working on over the Christmas holidays.

      Important: When updating from 1.9.0 please follow the instructions in the ReadMe.htm file in the ZIP archive. Users of 1.9.1 please uninstall before installing – an upgrade installation will not work correctly*.

      ChangeLog:

      • Fixed: Installation issues with the US version of Visual Studio 2005 running on a non-US operating system version (e.g. German WinXP).
      • Fixed: "Custom text" feature (see "Options" tab on the configuration dialog) was broken since 1.9.0.
      • Fixed: The rule for event-related "On..." methods generated text with the name of the event splitted into individual words. Now the original name of the event is preserved; in order to achieve that, new macros have been added (see below).
      • Added: New "Verbatim" property of the "Words" macro. Example: for the method name "SayHelloWorld"
        • $(MethodName.Words.ExceptFirst) returns "hello world"
        • $(MethodName.Words.Verbatim.ExceptFirst) returns "HelloWorld".

      ________________________
      *) I’m using an installer class during setup, which in an upgrade installation is affected by a bug in MSI (known since 2002, btw). An upgrade installation is only possible without problems if the code of the installer class does not change – I hope that the changes in 1.9.2 to the installation are good enough for a couple of versions ;-)