Download
Either download from the extension manager by searching OpenWithTest or go to the project page here.
Summary
Open with Test is a Visual Studio extension which serves one simple task: To always open your test files and implementation files together.
Details
When writing unit tested applications (especially while practicing TDD) you will often open an implementation file (i.e SomeClass.cs) followed by the test file(i.e. SomeClassTests.cs). This extension makes this a one step process.
It works by detecting when you open a new file and attempting to find via convention the test file. It assumes that you create one test file per class. So, if you create a class called Car in the file Car.cs then you will have a test file named CarTests.cs which tests the car class.
Currently, only C# (.cs) files are supported but I plan to expand this to other files types soon.
Configuration
Out of the box, this extension will assume a file is a test file if it ends with the suffix Test,Tests, Fact or Facts. However, this can be configured. To change these go to Tools -> Options -> Open With Test and you will see this screen:

Feedback
I would love to get feedback about features or suggestion so please feel free to leave a comment on this blog post or start a discussion post on the Visual Studio Gallery page.

I just released Snippet Designer 1.3.
CodePlex Page:
http://snippetdesigner.codeplex.com/ Visual Studio Gallery Page: http://visualstudiogallery.msdn.microsoft.com/en-us/B08B0375-139E-41D7-AF9B-FAEE50F68392
The key features of this release are support for HTML/ASP.NET, JavaScript and SQL snippets and a much improved snippet searching experience.
If you already have it installed for Visual Studio 2010 you will get an update in your extension manager for the new version.
Change log
Changes for Visual Studio 2010
- Fixed bug where "Export as Snippet" was failing in a website project
- Changed Snippet Explorer search to use a relevance based algorithm which yields much better results
- Added support for JavaScript snippets
- Added support for SQL snippets
- Added support for HTML/ASP.Net snippets
- Added support for <AlternativeShortcuts> tag
- Made the color of the snippet replacement highlighting configurable
Changes for Visual Studio 2008
- Fixed bug where "Export as Snippet" was failing in a website project
- Changed Snippet Explorer search to use a relevance based algorithm which yields much better results
I released a small update to DiffPlex that helps improve performance for both the release and debug builds. I now also package the release build in the download zip file instead of the debug. The release build shows a significant performance improvement over the debug dll’s.
You can download the new version at the DiffPlex home page.
I released a small update to DiffPlex that helps improve performance for both the release and debug builds. I now also package the release build in the download zip file instead of the debug. The release build shows a significant performance improvement over the debug dll’s.
You can download the new version at the DiffPlex home page.
I released a small update to DiffPlex that helps improve performance for both the release and debug builds. I now also package the release build in the download zip file instead of the debug. The release build shows a significant performance improvement over the debug dll’s.
You can download the new version at the DiffPlex home page.
Since switching to Mercurial I often use the “hg summary” command.
hg summary [--remote]
aliases: sum
summarize working directory state
This generates a brief summary of the working directory state, including
parents, branch, commit status, and available updates.
With the --remote option, this will check the default paths for incoming
and outgoing changes. This can be time-consuming.
When you execute this command in a directory that is under source control you will see something like this:
parent: 35:008279cba4b4 tip
This is the commit message of the last checkin
branch: default
commit: 1 modified, 1 unknown
update: (current)
I am usually most interested in which branch I am currently working in and what is the current status of my working directory. Since I use PowerShell as my command line I decided to overwrite the default PowerShell prompt (PS >) with some of the data from the “hg summary” command.
To do this I added the following code to my PowerShell profile:
if (test-path function:\prompt) {
$oldPrompt = ls function: | ? {$_.Name -eq "prompt"}
remove-item -force function:\prompt
}
function prompt() {
$host.ui.rawui.WindowTitle = (get-location).Path
$summary = hg summary 2>&1
if($summary.Exception -eq $null) {
$regex = "(?si)(parent:(?<parent>.*?)(\n|\r)+.*?)(branch:(?<branch>.*)\s)(commit:(?<commit>.*)\s)(update:(?<update>.*))";
$summary = [System.String]::Join([System.Environment]::NewLine,$summary)
$res = $summary -match $regex
$format = "hg b:{0} c:{1}" -f $matches["branch"].Trim(), $matches["commit"].Trim()
write-host ($format) -NoNewLine
write-host (">") -NoNewLine
}
else {
& $oldPrompt
}
return " "
}
With this in place when you are in a directory that is not controlled by Mercurial you will see the normal prompt. But once you enter a source controlled directory the prompt will look like:
This quickly shows me that I am in the default branch and I have 1 file modified and 1 unknown file in my directory.
After committing it will show:
Which shows that the current working directory is in a clean state.
Since switching to Mercurial I often use the “hg summary” command.
hg summary [--remote]
aliases: sum
summarize working directory state
This generates a brief summary of the working directory state, including
parents, branch, commit status, and available updates.
With the --remote option, this will check the default paths for incoming
and outgoing changes. This can be time-consuming.
When you execute this command in a directory that is under source control you will see something like this:
parent: 35:008279cba4b4 tip
This is the commit message of the last checkin
branch: default
commit: 1 modified, 1 unknown
update: (current)
I am usually most interested in which branch I am currently working in and what is the current status of my working directory. Since I use PowerShell as my command line I decided to overwrite the default PowerShell prompt (PS >) with some of the data from the “hg summary” command.
To do this I added the following code to my PowerShell profile:
if (test-path function:\prompt) {
$oldPrompt = ls function: | ? {$_.Name -eq "prompt"}
remove-item -force function:\prompt
}
function prompt() {
$host.ui.rawui.WindowTitle = (get-location).Path
$summary = hg summary 2>&1
if($summary.Exception -eq $null) {
$regex = "(?si)(parent:(?<parent>.*?)(\n|\r)+.*?)(branch:(?<branch>.*)\s)(commit:(?<commit>.*)\s)(update:(?<update>.*))";
$summary = [System.String]::Join([System.Environment]::NewLine,$summary)
$res = $summary -match $regex
$format = "hg b:{0} c:{1}" -f $matches["branch"].Trim(), $matches["commit"].Trim()
write-host ($format) -NoNewLine
write-host (">") -NoNewLine
}
else {
& $oldPrompt
}
return " "
}
With this in place when you are in a directory that is not controlled by Mercurial you will see the normal prompt. But once you enter a source controlled directory the prompt will look like:
This quickly shows me that I am in the default branch and I have 1 file modified and 1 unknown file in my directory.
After committing it will show:
Which shows that the current working directory is in a clean state.
Since switching to Mercurial I often use the “hg summary” command.
hg summary [--remote]
aliases: sum
summarize working directory state
This generates a brief summary of the working directory state, including
parents, branch, commit status, and available updates.
With the --remote option, this will check the default paths for incoming
and outgoing changes. This can be time-consuming.
When you execute this command in a directory that is under source control you will see something like this:
parent: 35:008279cba4b4 tip
This is the commit message of the last checkin
branch: default
commit: 1 modified, 1 unknown
update: (current)
I am usually most interested in which branch I am currently working in and what is the current status of my working directory. Since I use PowerShell as my command line I decided to overwrite the default PowerShell prompt (PS >) with some of the data from the “hg summary” command.
To do this I added the following code to my PowerShell profile:
if (test-path function:\prompt) {
$oldPrompt = ls function: | ? {$_.Name -eq "prompt"}
remove-item -force function:\prompt
}
function prompt() {
$host.ui.rawui.WindowTitle = (get-location).Path
$summary = hg summary 2>&1
if($summary.Exception -eq $null) {
$regex = "(?si)(parent:(?<parent>.*?)(\n|\r)+.*?)(branch:(?<branch>.*)\s)(commit:(?<commit>.*)\s)(update:(?<update>.*))";
$summary = [System.String]::Join([System.Environment]::NewLine,$summary)
$res = $summary -match $regex
$format = "hg b:{0} c:{1}" -f $matches["branch"].Trim(), $matches["commit"].Trim()
write-host ($format) -NoNewLine
write-host (">") -NoNewLine
}
else {
& $oldPrompt
}
return " "
}
With this in place when you are in a directory that is not controlled by Mercurial you will see the normal prompt. But once you enter a source controlled directory the prompt will look like:
This quickly shows me that I am in the default branch and I have 1 file modified and 1 unknown file in my directory.
After committing it will show:
Which shows that the current working directory is in a clean state.
The DiffPlex (http://diffplex.codeplex.com) project is now available on Codeplex!
The DiffPlex project is a combination of a .NET Diffing Library with a Silverlight and HTML diff viewer. It is released open source under the MS-PL license.

The DiffPlex (http://diffplex.codeplex.com) project is now available on Codeplex!
The DiffPlex project is a combination of a .NET Diffing Library with a Silverlight and HTML diff viewer. It is released open source under the MS-PL license.
