Create an IRender plugin interface and create some additional default rendering engines for content
LINQPad is slow when returning large result sets due to it creating and having to render a lot of HTML. It would be nice if there were an option to use a ListView, DataGrid, or any other type of interface that can accept and render data via an IRender interface. It would be great if this were created so that 3rd parties could write Plugins. Additionally, a ComboBox that could be selected would update the results in a different view.
Of course, it would be difficult to render sub-data (Orders->Products) like is done now, but I think that is an acceptable tradeoff, esp. if the original HTML interface is kept for those situations. Often, I don't need that and just want to see tabular data from one source like in SQL Studio!
This is now complete. Go to Help | What’s New for info on how it works.
Jeremy Thomas commented
I have just released a DateGridView based Custom Visualizer http://rapiddevbookcode.codeplex.com/wikipage?title=LINQPadCustomVisualizer, its paged and supports editing as well.
Joe - awesome job!! This is a great start, and I'm definitely seeing the possibilities here. Just having the ability to drop in a grid of some sort to display my data makes me really happy. Sorting!!
AWESOME job. Worth every penny.
The Dump Extension Method is like a debug visualizer in Visual Studio. How about being able to specify more than one renderer/visualizer. How about showing smart tags on this vars?
How about rendering results inplace and not in the output window?
There are a lot more Ideas around an IRender interface.
I can't take the LinqPad challenge (using LinqPad instead of SSMS) since I do so many spatial queries. In SSMS geography/geometry query results display on a map. It would be great if LinqPad did the same. I suppose there might be problems since Linq doesn't allow working with geography/geometry types. But perhaps there's a workaround?
Peter H commented
I'd like something even simpler ... simple numeric formatting codes.
Like for example to do the equivalent of my favorite ToString("N2")
This IRender could hopefully be general enough to achieve just simple things like that easily.
This would also be great for rendering things like Images and other System.Drawing primitives in the results window, in addition to just using Dump() to print out their description.