CodeRush by DevExpress uses contextual information about where in your code it is being asked to cut, copy or paste, providing more intelligent and powerful clipboard operations.
Smart Cut and Copy
You'll rarely need to select code to cut or copy a contiguous block. For example, if you want to copy or cut a try/catch block, just place the caret on the "try" keyword and press the Copy or Cut key that you normally press when you want to copy or cut a selected block (e.g., Ctrl+X, Shift+Delete, Ctrl+C, Ctrl+Insert). If there is no selection when you press the Copy or Cut key, CodeRush pre-selects the logical block that starts with the token at the caret. This makes it easy to use cut and paste to move contiguous blocks of code, like methods, properties, conditional statements, loops, try blocks, and comments.
Intelligent Paste alters the text on the clipboard (just before pasting) to suit its surroundings.
For example, if the clipboard contains "aaa = bbb;", and this assignment is pasted inside the expression of an if-block in C#, CodeRush automatically converts the assignment into an expression, so the pasted code becomes "aaa == bbb".
Intelligent Paste is fully extensible through the options dialog and lets you specify the precise conditions (including clipboard content and target locations) that trigger an Intelligent Paste.
This advanced technology is exclusive to CodeRush.
CodeRush remembers up to 64 last clipboard entries and enables you to paste them to the specified code position. Press Ctrl+Shift+Insert to open the Clipboard History window. Double click the desired enrty or press Enter
when the entry is active to paste it to the current cursor position.
Code Templates and Embeddings
CodeRush offers you multiple code templates that make use of the clipboard content. For instance, click the following image to see how you can easily reset a variable to null if this variable's name is on the clipboard.
Some of embeddings offered by CodeRush also work with identifiers on the clipboard. For instance, the BeginUpdate...EndUpdate embedding works with an identifier name in the clipboard. This instance's BeginUpdate and EndUpdate methods will be called before and after the selected code block respectively. Click the next image to see how it works....