Vacation = Tab Completion and More for VSCMDShell

I previously mentioned, after the work I put into the VBCommentor project that I’d be spending time on the VSCMDShell project.  The purpose of this project is to enable a tool window in VS.Net that hosts a command shell like “cmd.exe”.  Well, the long flights to the east coast and -10 degree temperatures that forbid fun skiing gave me the opportunity.   I’ve checked in some updated source and posted a release.  In this release you’ll find:

  • The window resizes correctly now, but don’t ask my why. 🙂
  • Better syntax highlighting code: What you see now is just a gold command prompt, but I’ve made this perform better and it should be easy to add a bunch more and make it customizable later.
  • Tab Completion: This is the big one for now.  I find the command prompt pretty useless without it.  You’ll notice tab and shift-tab both work to perform a lookup in the current directory for any directories/files that match!
  • Improved VS Commands: I’m not where I want to be here.  I’d prefer to be using dte.raisecommand than just piping them to the Command Window, but at least now typing “!somevscommand” should work a little more consistently than it did before.

What I’d love is if some people would try this out and let me know where they think the working group should go next with this becuase there are a ton of possibilities for this project.  Oh, and if you’d like to get your feet wet… the code is pretty well commented, so jump right in and ask me if you have any questions!


Comments (11)

  1. Long time no updates. 🙂

    IMHO this is a great start, but we need more people working on it that actually have time to work on it. The next step is to robustify this and fix the basics like not being able to hit ctrl-c to abort a command. That and performance.

    I haven’t had time to play with this in a while, but I look forward to a usable replacement to the cmd.exe UI shell (that isn’t emacs).

    Eventually we’ll have a real alternative shell ( but I have no idea what the UI improvements will be, if any.

  2. Marc Hebert says:

    I got a version a while back and worked on cleaning the code, adding color for directory, dlls and exe using part of the existing Regex code with some modification and Tab completion. I’ve added a Unit test project using NUnit which tested my modification (not the existing code).

    I didn’t update any of this because of some bugs (especially the coloring). It seems the parsing doesn’t work all that well because the input is process asynchronously with no buffering. As soon as we are getting the input, we process that input. I was going to change that so it gets buffered until at least an end of line. I’m not sure if this will result in performance issue, but I don’t think so.

    I’ve also created a small app that used the control so that I can test without instantiating an instance of of VS.Net. I’ll try to get your version soon and see if there is alot of merging effort for pieces of my code to be checked in. If not I’ll try to update it.


  3. Gerard LaBelle says:

    I’m having trouble installing it. When I run the installation program, it installs "SystemWindowsUpate". I ran VS 2003, and I can’t find anything that looks like a CMD shell (unless you mean the Command window?)


  4. jledgard says:

    It should be in the tools menu called System Window.

  5. RE: Marc

    Wow, I’m glad to hear that you took the time to start some of these improvements. Let me know if there is any help I can lend you in understanding the code when you move towards integrating the two version together.



  6. Avi says:

    I am getting the following error window when VS.NET starts:

    The Add-in ‘System Window 2’ failed to load or caused an exception.

    Would you like to remove this Add-in?

    If you choose yes, you will need to reinstall the Add-in to use it again.

    Error Message: The system cannot find the file specified.

    Error number: 80070002

    Any ideas how to workaround this issue?



  7. jledgard says:

    Sounds like you had a problem with the install. Have you tried uninstalling and then installing again? Where you running as the same user you ran the install from?

  8. Avi says:

    Yes. and Yes.