So in 12.1 we shipped a new feature. Well we shipped quite a few really, but I want to talk to you about one of the more subtle features, which might well change the way you use CodeRush.
Setting schemes are conceptually quite simple, but have far reaching implications.
Everyone has their own opinion on how any given feature should work. It can be very hard, some would say impossible, to keep everyone happy. So we try to make our product as configurable as possible. The idea being, that if our default configuration isn’t quite to your liking, you should be able to tweak it so that it is.
The up side of this, is that there are lots of options you can tweak to make sure our product works exactly how you want it to. Of course the down side of this, is that there are lots of options you might have to tweak to get our product working just the way you want it to.
Obviously we try to come up with sensible defaults so that as few people as possible will need to tweak the settings, and can use the product straight ‘out of the box’ so to speak :)
However one man’s default can be another man’s disaster.
Enter Setting Schemes
A setting scheme is a named set of settings which has been customized for a specific purpose.
CodeRush ships with 2 such schemes which you may switch between using the new drop down on the DXCore Visualize toolbar:
The ‘Default’ scheme
The first scheme (‘Default’) is derived from the classic CodeRush settings as they have been up until 12.1. This set will also include any customizations you have made using previous versions of CodeRush. If such settings exist when CodeRush 12.1 installs, then it is these which will be selected by default.
The ‘Friction Free’ scheme
The second scheme (‘Friction Free’) is a new set which is designed to remove as much friction as possible for a New User of CodeRush as they seek to go about their daily tasks. It does this by disabling or altering any CodeRush features which might otherwise clash with base Visual studio functionality.
Alterations include: Auto Complete for Brackets and Parenthesis is disabled. Smart Enter is disabled. Intelli Assist is disabled. The Default Template Expansion shortcut is changed from Space to Tab. Several Code Issues are disabled. Most visual glyphs are turned off (Including Spellcheck, Member Icons, Flow break indicators and the Metrics icon) Structural Highlighting, Region Painting and Current Line Highlighting are also disabled.
If the CodeRush installer detects no previous settings, then it is this scheme which will be selected by default.
Create your own schemes
In addition to the inclusion of the ‘Default’ and new ‘Friction Free’ schemes, you are also able to create new schemes of your own. These schemes will be stored in parallel with the 2 that ship ‘out of the box’ and can be switched between at any time.
To create or alter the high level components of a scheme, open the options screen and locate the ‘Settings schemes’ page:
Once on this page you may create a new scheme, by copying it from an existing scheme.
Select the preferred source scheme from the drop down, and then click ‘Add New Scheme’.
Choose a suitable name for your proposed scheme and click ok.
Your scheme is created and added to the dropdown list. You can switch to it and immediately start customizing it to your liking.
You can also perform high level customization of your scheme from this page. Simply check or uncheck features as you see fit and save then with the Ok \ Apply buttons as usual.
If you need to tweak the detail of a section, you can click it’s ellipsis button and you will be taken to an appropriate options page.
Your newly created scheme will exist as an alternate named set, alongside the ‘Default’ and ‘Friction Free’ schemes. Customize this scheme as you see fit and then switch between any of them at will.
Other Potential Schemes
Schemes are a powerful feature which you might choose.
You might create schemes for different purposes, moods or even people. :)
So what other schemes could you create? Here are some ideas. ‘Teach me’ - I need every prompt I can get. I’m a beginner and I’m happy to admit it. ’Refactor Pro’ – Hide all but the refactoring functionality. ‘The Generator’ - Templates and Code Gen Refactorings only please. ‘The Minimalist’ - Hide all shortcut prompts and graphics. I know exactly what I’m doing already ‘Clean Up Duty’ - Full on CodeIssues and Refactorings, but nothing else. ‘Compiler Plus’ – Hide CodeIssues which pertain to style or readability and just show me things about my code which might be broken. ‘Style Ninja’ – Inverse of ‘Compiler Plus’. Show me only style or readability Code Issues. I’ll fix stuff later.
ProTip: Name one or more setting schemes after yourself, and copy them to your co-worker’s machines for when you have to pair with them.
Feel free to suggest more. Tell us how you think this feature should evolve?
So what would you like to see us do in this space for the future?
- Should we add some more schemes out of the box? Which ones?
- Should we alter the ‘Friction Free’ scheme further?
- Should we prevent any alteration of our ‘out of the box’ schemes and force you to copy them first. This would allow you a really quick method of restoring to any of our defaults.
- Should we provide a “Copy page from Scheme…” button for slicing and dicing schemes?
So take ‘Setting Schemes’ (including ‘Friction Free’) for a spin, tell us what you think and then let’s see what develops.