CodeRush: ‘Friction Free’ mode and Setting Schemes

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.

Background

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

DXCoreVisualiseToolbar3

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

DXCoreVisualiseToolbar4

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 SpellcheckMember IconsFlow 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: 

    SettingsLandingPage

    Once on this page you may create a new scheme, by copying it from an existing scheme.

    SettingsCreateScheme

    Select the preferred source scheme from the drop down, and then click ‘Add New Scheme’. 

    SettingNewScheme

    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.

    Tweaking

    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.

    SettingSchemeHighLevel

    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?

    The Future

    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.

    3 comment(s)
    James Birnie
    James Birnie

    Sounds great, thanks!

    30 July, 2012
    Brent Jenkins
    Brent Jenkins

    Not so great when FrictionFree is the default when installing with VS2012.. wasted about an hour finding this was why CodeRush wasn't working :(

    18 November, 2012
    Rory Becker - DevExpress
    Rory Becker - DevExpress

    Hi @Brent. This issue is likely down to this being a new installation (ie no previous version of CodeRush settings found on this machine) rather than because of VS2012.

    As indicated above, CodeRush will use Friction Free if it cannot detect any previous settings.

    It does this in order enhance the experience of new users. Such users don't always appreciate all the features of CodeRush being unleashed at once, and this mode allows us to augment their experience without undermining any existing VS behavior.

    18 November, 2012

    Please login or register to post comments.