I have been using IAR so far, but it crashes sometimes and doesn't have code completion. Also, the other dev environments I use are eclipse based. Which one should I buy?
The current version of Code Composer Studio is Eclipse based, so that may be an option.
If your existing IAR compiler is working for you and it is just the IDE stability and code completion that you are interested in, then you might consider using plain Eclipse/CDT or even the free Visual C++ Express Edition using a "makefile project", and simply invoke the IAR command line tools directly or via a makefile to avoid the IDE.
Using VC++ works well in my experience, but takes some initial setting up. You have a number of choices for setting this up; you could create a makefile to work with Microsoft's nmake utility (similar but not identical to GNU make), you could use GNU make and a traditional makefile, you could use a different build manager altogether, or you could use IAR's command line build utility (iarbuild.exe). This last option is perhaps the simplest, and works well if other team members want to continue using the IAR IDE. You use IAR's IDE to maintain the project (add files, remove files, change compiler/linker options etc.), but use Visual Studio for editing and building your project day-to-day. For code completion and browsing to work, you need to add all your sources to the VC++ project (often the tedious part because VC++'s "add files" will not recurse subdirectories), and add all the include search paths for the project (including the compiler's default paths) to the VC++ project's include paths. You also need to add any command line or compiler predefined macros for the project to the macros list; this allows it to parse conditionally compiled sections accurately and 'grey-out' disabled code sections. The include and macro lists can usually be copy & pasted directly from the IAR IDE project settings.
One problem with VC++ Express is that it does not provide a flexible way to customise the debugger invocation, and will try and use the VC++ debugger rather than C-Spy. However you can a custom menu item to the "Tools" menu launch C-Spy. Launching C-Spy from the command line is dealt with in the link above. Another option is to place the build commands into a batch file and launch the debugger on successful compilation; then use the batch file as the custom build command rather than iarbuild.exe directly; but this can get annoying if you just wanted to build the code without execution. Using a batch file is a simple way to add pre/post build steps that you do not want to add to the IAR project itself.
I use the VC++ Express IDE regularly for projects created using Code Composer Studio, Keil uVision, Microchip's MPLAB, (using their various command line project build tools), and and plain GNU make managed projects. Despite its quirks and inflexibility in some areas, as a (free) code editor it is excellent and makes long coding sessions much easier than the relatively primitive compiler vendor's IDE's. Sometimes (especially when debugging) I end up flipping between VC++ Express and the compiler vendor IDE, but in most cases this is handled well by automatic file change detection in each editor; and I have only seldom lost edits by making unsaved changes in both editors then saving one version.