I will grant you that we could always do with more perf / stability. (Although I haven’t had issues with either of these in the DevExpress stack for some time)
However I thought I’d sit down for a few minutes and try to bash out a short list of improvements I’d make to CodeRush if I were in charge :D (Hey we all know that’s never going to happen so this is the closest I’m gonna get :)
This is just a small list of things that I feel would make CodeRush that little bit better.
Multi file templates
Ok I lied… This feature wouldn’t make CodeRush a little bit better. For me at least this would add hugely to Coderush.
I’m quite sure that the possibilities for this go well beyond what I’ve thought of.
So what is a Multi-File template?
Well simply put, it is a template whose output results in text being injected into multiple (possibly not yet existing) files.
For example I could “Create New Form” using…
In Winforms Project, this would create a Form1.vb and Form1.designer.vb, links the 2 and creates suitable multi-file linked fields for phrases like Form1 throughout.
The same template should work inside an ASP.Net App, an MVC App and a WPF App, creating suitable forms in those circumstances
This could easily be extended to work for WebServices, UserControls and many other types.
With the right templates in place, you'd never need to visit the "File Add New" dialog again :)
[Update: So this turned out to be so easy I built it myself]
Enhance 'Go To Definition
I really like the ability to leap from one part of the code to another in a logical fashion but we have developed a in-house practice which makes this rather difficult.
We don't use project references.
Instead, every reference made in a solution built by us, is to a dll already built at an earlier stage of said build.
We use file references in order that large solutions may be broken down into smaller ones with a subset of the projects that exist in the whole. This may be done by copying the Solution (or using save as) and then any projects not being edited may be deleted.
The down side of this is that when I select 'Go To Definition' for an object in one of those other assemblies, I will invariably end up in the object browser.
I would really like CodeRush to look around the solution and recognise that there is a project in the solution which has the exact same namespace structure as the item I am attempting to locate the Definition of and redirect me to the source of that item.
Allow me to copy my settings to multiple named instances and allow me to switch between them. This does not need to be quick, but I could have a 'full' set, a 'slim line' set and an 'experimental' set.
Due to the recent inclusion of the Plugin Manager ToolWindow, we would be able to define schemes of plugins. so we could switch to a very minimal set of plugins in order to enhance speed.
I would love to be able to create a “Selection Embedding”, “Shortcut”, “Template” or other setting and be able to export it to a file something like a .reg file.
I could then hand this file to a user or post it on my blog or attach it to a forum post.
CodeRush/Refactor/DXCore would have installed and associated a new utility with files of this type in order that a simple double-click would be treated as a request to absorb these settings into your current DXCore installation.
Naturally DXCore would detect if you had multiple sets of settings and ask you which ones you wished to affect with this file… Offering you the chance to backup these settings prior to this if needed.
There are so many items in the toolbox these days, especially with the DXperience controls, that it can be quite hard to find what you’re after.
This could be solved with the introduction of a search box at the top of the toolbox. This would probably just restrict the showing toolbox items based on an incremental contains search using the text currently in the search box. It would probably be fair to remove the tabs during such a search but this could be optional.
In simple terms, it would work like the Vista Start Menu
These are just a few things which I feel would make CodeRush even better.