VsVim Update Released (Version 0.9.3)

I just released an update to VsVim for Visual Studio 2010.  This is available on the extension manager in Visual Studio or can be downloaded directly at the following link. Link: http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 GitHub: http://github.com/jaredpar/VsVim This update includes the following Full support for :substitute including the confirm option Many bug fixes for the “.” (repeat) command…

9

Discriminated Unions in C++

Earlier this week I started writing a function which needed to represent three states in the return value, two of which had an associated value.  In my mind I immediately came to the following solution type BuildAction = | Reset | LinkOneWithNext of Statement | LinkManyWithNext of Statement seq A discriminated union is perfectly suited…

4

Automatically loading DLL’s in the debugger

In a recent post I discussed the apparent flakiness of extension methods and the debugger being a result of whether or not the DLL containing the extension methods were loaded into the debugee process.  Several users asked in the comment section why we didn’t fix the issue by just loading those DLL’s when an extension…

2

VsVim Update Released (Version 0.9.2)

I just released an update to VsVim for Visual Studio 2010.  This is available on the extension manager in Visual Studio or can be downloaded directly at the following link. Link: http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 GitHub: http://github.com/jaredpar/VsVim This is fairly major release from the last announced (0.8.2) which includes the following changes Essentially a rewrite of Visual Mode…

2

Improving the display of F# seq<T>’s in the debugger

F#’s seq<T> expressions are a frustrating item to inspect at debug time.  A seq<T> value is a collection and when users inspect such a value at debug time they want to see the contents of the collection.  Instead they are often presented with a view resembling the following The reason this happens is a consequence…

0

Converting System.Func<T1..TN> to FSharpFunc<T,TResult>

Interop of delegate style types between F# and other .Net languages is a pain point that results from a fundamental difference in how delegates are represented in the F# language.  Typical .Net languages like C# see a delegate as taking 0 to N parameters and potentially returning a value.  F# represents all exposed delegates as…

3

Advanced Multitargeting in VB.Net

Multi-targeting is a feature introduced in Visual Studio 2008 which allows developers to use new versions of Visual Studio to target earlier versions of the .Net platform.  It allowed users to target both the new 3.5 and 3.0 and the previous 2.0 profile with the same IDE.  Visual Studio 2010 continues this trend by adding…

0

Extension Methods and the Debugger

One source of confusion I find myself clearing up a lot is the use of evaluating extension methods in the debugger windows.  Users report evaluation as working sometimes but not others for the exact same piece of code.  Such flaky behavior can only be the result of a poorly implemented feature or subtle user error. …

6

Disable copy construction when the type is not copy safe

A couple of days ago I finished coding up a feature in our C++ code base, hit F5 and was met with a nasty memory corruption debugger dialog.  After about an hour of investigation it appeared one of my types was living past the lifetime of it’s owning heap. I decided the next step was…

5

VsVim Update Released (Version 0.8.2)

I just released an update to VsVim for Visual Studio 2010.  This is available on the extension manager in Visual Studio or can be downloaded directly at the following link. Link: http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 GitHub: http://github.com/jaredpar/VsVim This is a bug fix release and contains no large features.  Notable Bug Fixes Both normal mode append commands, ‘a’ and…

2