<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: More on CodeRush/Refactor 2.0</title>
	<atom:link href="http://ianolsen.com/2006/06/27/more-on-coderushrefactor-20/feed/" rel="self" type="application/rss+xml" />
	<link>http://ianolsen.com/2006/06/27/more-on-coderushrefactor-20/</link>
	<description></description>
	<lastBuildDate>Tue, 28 Sep 2010 04:28:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Mark Miller</title>
		<link>http://ianolsen.com/2006/06/27/more-on-coderushrefactor-20/#comment-60</link>
		<dc:creator><![CDATA[Mark Miller]]></dc:creator>
		<pubDate>Sun, 09 Jul 2006 01:46:33 +0000</pubDate>
		<guid isPermaLink="false">https://ianolsen.wordpress.com/2006/06/27/more-on-coderushrefactor-20/#comment-60</guid>
		<description><![CDATA[If you want to create a binding to a specific refactoring in Refactor!, just pass the name of the refactoring as it appears in the menu to the Refactor command, and bind that to the shortcut you want (e.g., &quot;Refactor(Rename)&quot;). Refactor! Pro has 55 refactorings now and you can expect that number to go into triple digits sometime next year, so shipping a separate key binding for each refactoring we ship simply doesn&#039;t work, and turns out to be a greater burden on the customer than is necessary. That&#039;s why we ship the one-key access, while still giving you the ability to define your own custom bindings for favorite refactorings you use all the time.

Regarding formatting, CodeRush and Refactor! format the generated code using the language service&#039;s format command (we do nothing beyond that). This allows us to add support for new languages quickly. You can trigger the same engine by using the built-in VS commands Edit.FormatSelection or Edit.FormatDocument. Default bindings for these commands are Ctrl+K,F and Ctrl+K,D, respectively.

Unit Test -- yeah, we don&#039;t have it, and it&#039;s not on our radar to build it. Stick with Resharper if you like that.

If you want a property or constructor in CodeRush, there are templates for those. For a Property start with &quot;p&quot; and follow it with the mnemonic of the type of the property you want (use the CodeRush training window to get access to all the mnemonics). For a constructor, use the &quot;cc&quot; template.

Regarding your question of why we use &quot;b&quot; for braces, &quot;b&quot; is much easier to press than &quot;{&quot;. The brace key requires a syncronized shift key that must be held down before you press the &quot;[&quot; key, and released before you press the next key. This synchronization is easy at slow speeds but breaks down as you try to go faster. You are absolutely right that it is less intuitive than the brace, but braces are used all the time and so the savings trump the less intuitive aspect, and so we handle that with discoverability. Now, I do think that wiring up the braces to work just like the parens and brackets is a great idea, it&#039;s just that it&#039;s never occurred to us simply because we are never pressing that key (and you&#039;re the first to point out that there&#039;s a discrepancy).  Using &quot;b&quot; for block is also a mnemonic that works well across languages, and that&#039;s one of the things CodeRush is good at -- reducing cross language barriers. Once you&#039;re on board with the templates, you can work in a new language with minimal friction.

I reach a different conclusion regarding the &quot;less than fluid&quot; combination of CR + R# forces you to pick one or the other. I think it simply implies you pick the best features out of each product. Both Developer Express and JetBrains are working to make sure our products work well together. I know it&#039;s very important to Developer Express that work well with any third party tool, and I think it&#039;s safe to assume that JetBrains similarly recognizes the significance of fostering a strong third party tool market for Visual Studio. So if you have a less than fluid experience because of overlapping features, you simply shut off the less desired feature. There are features in Resharper that are great -- we&#039;re not denying that. But there are also features in CodeRush and Refactor! that are more efficient than anything you can get anywhere else. If you want the best development experience possible you simply install both products and get them set up so that you leverage the power of each tool&#039;s strongest features.

Regarding your comment about our excessive response of &quot;It&#039;s easy -- build a plug-in&quot; in the DXCore newsgroups, we respond that way for two reasons -- one, because it really is easy, and two, because it&#039;s typically a suggestion that is not on our immediate radar. And to our customer&#039;s credit they have created plug-ins that have satisfied their demands for custom functionality. Your requests for method stubs and inserting using directives are a great example -- customers have created and shared plug-ins for solving both of those challenges. There is a really cool XML Doc Comment preview window (that shows you the XML Doc Comment as it will appear in the docs live as you work in the code), custom highlighting, custom refactorings and cool new features that enhance the experience in the editor.]]></description>
		<content:encoded><![CDATA[<p>If you want to create a binding to a specific refactoring in Refactor!, just pass the name of the refactoring as it appears in the menu to the Refactor command, and bind that to the shortcut you want (e.g., &#8220;Refactor(Rename)&#8221;). Refactor! Pro has 55 refactorings now and you can expect that number to go into triple digits sometime next year, so shipping a separate key binding for each refactoring we ship simply doesn&#8217;t work, and turns out to be a greater burden on the customer than is necessary. That&#8217;s why we ship the one-key access, while still giving you the ability to define your own custom bindings for favorite refactorings you use all the time.</p>
<p>Regarding formatting, CodeRush and Refactor! format the generated code using the language service&#8217;s format command (we do nothing beyond that). This allows us to add support for new languages quickly. You can trigger the same engine by using the built-in VS commands Edit.FormatSelection or Edit.FormatDocument. Default bindings for these commands are Ctrl+K,F and Ctrl+K,D, respectively.</p>
<p>Unit Test &#8212; yeah, we don&#8217;t have it, and it&#8217;s not on our radar to build it. Stick with Resharper if you like that.</p>
<p>If you want a property or constructor in CodeRush, there are templates for those. For a Property start with &#8220;p&#8221; and follow it with the mnemonic of the type of the property you want (use the CodeRush training window to get access to all the mnemonics). For a constructor, use the &#8220;cc&#8221; template.</p>
<p>Regarding your question of why we use &#8220;b&#8221; for braces, &#8220;b&#8221; is much easier to press than &#8220;{&#8220;. The brace key requires a syncronized shift key that must be held down before you press the &#8220;[&#8221; key, and released before you press the next key. This synchronization is easy at slow speeds but breaks down as you try to go faster. You are absolutely right that it is less intuitive than the brace, but braces are used all the time and so the savings trump the less intuitive aspect, and so we handle that with discoverability. Now, I do think that wiring up the braces to work just like the parens and brackets is a great idea, it&#8217;s just that it&#8217;s never occurred to us simply because we are never pressing that key (and you&#8217;re the first to point out that there&#8217;s a discrepancy).  Using &#8220;b&#8221; for block is also a mnemonic that works well across languages, and that&#8217;s one of the things CodeRush is good at &#8212; reducing cross language barriers. Once you&#8217;re on board with the templates, you can work in a new language with minimal friction.</p>
<p>I reach a different conclusion regarding the &#8220;less than fluid&#8221; combination of CR + R# forces you to pick one or the other. I think it simply implies you pick the best features out of each product. Both Developer Express and JetBrains are working to make sure our products work well together. I know it&#8217;s very important to Developer Express that work well with any third party tool, and I think it&#8217;s safe to assume that JetBrains similarly recognizes the significance of fostering a strong third party tool market for Visual Studio. So if you have a less than fluid experience because of overlapping features, you simply shut off the less desired feature. There are features in Resharper that are great &#8212; we&#8217;re not denying that. But there are also features in CodeRush and Refactor! that are more efficient than anything you can get anywhere else. If you want the best development experience possible you simply install both products and get them set up so that you leverage the power of each tool&#8217;s strongest features.</p>
<p>Regarding your comment about our excessive response of &#8220;It&#8217;s easy &#8212; build a plug-in&#8221; in the DXCore newsgroups, we respond that way for two reasons &#8212; one, because it really is easy, and two, because it&#8217;s typically a suggestion that is not on our immediate radar. And to our customer&#8217;s credit they have created plug-ins that have satisfied their demands for custom functionality. Your requests for method stubs and inserting using directives are a great example &#8212; customers have created and shared plug-ins for solving both of those challenges. There is a really cool XML Doc Comment preview window (that shows you the XML Doc Comment as it will appear in the docs live as you work in the code), custom highlighting, custom refactorings and cool new features that enhance the experience in the editor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anit</title>
		<link>http://ianolsen.com/2006/06/27/more-on-coderushrefactor-20/#comment-59</link>
		<dc:creator><![CDATA[Anit]]></dc:creator>
		<pubDate>Fri, 07 Jul 2006 18:07:28 +0000</pubDate>
		<guid isPermaLink="false">https://ianolsen.wordpress.com/2006/06/27/more-on-coderushrefactor-20/#comment-59</guid>
		<description><![CDATA[Good list.

Shift-F6: In ReSharper, I&#039;m typing a new name and it&#039;s rolling through. In CodeRush, I can create a shortcut to the Refactor menu to ape this behavor (or use the default shortcut), but then I need to choose which refactoring I want to use. I could not find a hook to directly go to the refactoring I want, and that&#039;s just wasted time for me.

Unit Testing: This is a big feature in ReSharper 2.0, especially with non-VSTS versions stupidly not including a test runner out of the box.

Formatting Engine: I know you can format code, why can&#039;t I explicitly trigger the same engine to format the whole file using my preferences?! 

Auto-Insert: method stubs and using directives.

Embedded Templates: The ctrl+alt+j menu is pretty useful for these. I don&#039;t have to mouse or remember a direct shortcut. I use these a lot less than refactorings I guess, or I remember that ctrl+alt+j 5 is my using template, 4 is my region template. I also like ctrl+alt+Insert in ReSharper... need a property or ctor, good wizard nav after that. Probably in my top 10 used ReSharper features

(I don&#039;t get the b template. Why not just wire that to { by default, wouldn&#039;t that be more intuitive? I too missed the way ReSharper handles braces, brackets and parentheses.)

If ReSharper and CodeRush ran well together at the same time, I would be happy using each for what it&#039;s best at. In my experience, they don&#039;t play fluidly together, so I have to pick one or the other.

From reading the DX forums over the years, it seems like too many recurring feature requests are answered with &quot;it&#039;s easy to create a plugin for that&quot;. Really? Okay, so someone create plugins to address everyone of these pieces of functionality, and then I&#039;m interested.]]></description>
		<content:encoded><![CDATA[<p>Good list.</p>
<p>Shift-F6: In ReSharper, I&#8217;m typing a new name and it&#8217;s rolling through. In CodeRush, I can create a shortcut to the Refactor menu to ape this behavor (or use the default shortcut), but then I need to choose which refactoring I want to use. I could not find a hook to directly go to the refactoring I want, and that&#8217;s just wasted time for me.</p>
<p>Unit Testing: This is a big feature in ReSharper 2.0, especially with non-VSTS versions stupidly not including a test runner out of the box.</p>
<p>Formatting Engine: I know you can format code, why can&#8217;t I explicitly trigger the same engine to format the whole file using my preferences?! </p>
<p>Auto-Insert: method stubs and using directives.</p>
<p>Embedded Templates: The ctrl+alt+j menu is pretty useful for these. I don&#8217;t have to mouse or remember a direct shortcut. I use these a lot less than refactorings I guess, or I remember that ctrl+alt+j 5 is my using template, 4 is my region template. I also like ctrl+alt+Insert in ReSharper&#8230; need a property or ctor, good wizard nav after that. Probably in my top 10 used ReSharper features</p>
<p>(I don&#8217;t get the b template. Why not just wire that to { by default, wouldn&#8217;t that be more intuitive? I too missed the way ReSharper handles braces, brackets and parentheses.)</p>
<p>If ReSharper and CodeRush ran well together at the same time, I would be happy using each for what it&#8217;s best at. In my experience, they don&#8217;t play fluidly together, so I have to pick one or the other.</p>
<p>From reading the DX forums over the years, it seems like too many recurring feature requests are answered with &#8220;it&#8217;s easy to create a plugin for that&#8221;. Really? Okay, so someone create plugins to address everyone of these pieces of functionality, and then I&#8217;m interested.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Miller</title>
		<link>http://ianolsen.com/2006/06/27/more-on-coderushrefactor-20/#comment-48</link>
		<dc:creator><![CDATA[Mark Miller]]></dc:creator>
		<pubDate>Fri, 30 Jun 2006 06:20:49 +0000</pubDate>
		<guid isPermaLink="false">https://ianolsen.wordpress.com/2006/06/27/more-on-coderushrefactor-20/#comment-48</guid>
		<description><![CDATA[Hi Ian,

Thanks for the great post. A few comments -- 

Call graph nav is coming and I think you&#039;ll like it.

Marker stack tool window is easy to create as a DXCore plug-in, but probably won&#039;t become a shipping feature. I may create this in an upcoming DXCore training video, but if you want to give this a shot now, let me know or post a question on our DXCore newsgroup -- DXCore plug-ins have direct access to the markers on the stack, and it&#039;s easy to create a tool window plug-in to list these. The DXCore newsgroup is here:

devexpress.public.dotnet.dxcore.plugins

Located at news.devexpress.com

For additional syntax highlighting options (including variable highlighting and unused reference highlighting), check out CodeRush customer Rory Becker&#039;s plug-ins, available here:

http://www.rorybecker.co.uk/

I&#039;m pretty sure Shift+Esc does show up in the training window, but it only shows up if there are no template suggestions available.

The ability to show and print all shortcuts is on our to-do list.

The smart paren/bracket feature has been corrected in the 2.0.2 release (coming real soon), so now if you type the closing paren it will jump over the one automatically inserted (Enter still works to jump over it).

Your request to show the refactor menu when only one refactoring is available is on our to-do list.

Likewise, your request for shortcut bindings to the Quick Nav window scope options is on our to-do list.

The 2.0.2 release will have an early-experience feature (must be turned on in the Refactoring/Rename options page) that will support cross file renaming of structures, classes, enums, enum elements, and members using the great UI that Refactor! pioneered.

No comment on Background Compilation / Error Highlighting.

Unused variables shown with Rory&#039;s plug-in mentioned above. Showing unreachable code? Have you actually worked on code where that feature was useful?

No brace auto-completion in CodeRush, because you never need to type the brace key. Use the b and &quot;b,&quot; templates (&quot;b,&quot; gives you a brace begin/end pair on a single line). The 2.0.2 update includes discoverability for the &quot;b&quot; template. I have not pressed the &quot;{&quot; key in about two years.

Request for integrated help with the options dialog duly noted.

Regarding peaceful coexistence among dev tools, that&#039;s a priority for us. So if there&#039;s a problem or conflict with another dev tool, we&#039;ll do everything we can to fix that ASAP.

Thanks again for the great feedback.]]></description>
		<content:encoded><![CDATA[<p>Hi Ian,</p>
<p>Thanks for the great post. A few comments &#8212; </p>
<p>Call graph nav is coming and I think you&#8217;ll like it.</p>
<p>Marker stack tool window is easy to create as a DXCore plug-in, but probably won&#8217;t become a shipping feature. I may create this in an upcoming DXCore training video, but if you want to give this a shot now, let me know or post a question on our DXCore newsgroup &#8212; DXCore plug-ins have direct access to the markers on the stack, and it&#8217;s easy to create a tool window plug-in to list these. The DXCore newsgroup is here:</p>
<p>devexpress.public.dotnet.dxcore.plugins</p>
<p>Located at news.devexpress.com</p>
<p>For additional syntax highlighting options (including variable highlighting and unused reference highlighting), check out CodeRush customer Rory Becker&#8217;s plug-ins, available here:</p>
<p><a href="http://www.rorybecker.co.uk/" rel="nofollow">http://www.rorybecker.co.uk/</a></p>
<p>I&#8217;m pretty sure Shift+Esc does show up in the training window, but it only shows up if there are no template suggestions available.</p>
<p>The ability to show and print all shortcuts is on our to-do list.</p>
<p>The smart paren/bracket feature has been corrected in the 2.0.2 release (coming real soon), so now if you type the closing paren it will jump over the one automatically inserted (Enter still works to jump over it).</p>
<p>Your request to show the refactor menu when only one refactoring is available is on our to-do list.</p>
<p>Likewise, your request for shortcut bindings to the Quick Nav window scope options is on our to-do list.</p>
<p>The 2.0.2 release will have an early-experience feature (must be turned on in the Refactoring/Rename options page) that will support cross file renaming of structures, classes, enums, enum elements, and members using the great UI that Refactor! pioneered.</p>
<p>No comment on Background Compilation / Error Highlighting.</p>
<p>Unused variables shown with Rory&#8217;s plug-in mentioned above. Showing unreachable code? Have you actually worked on code where that feature was useful?</p>
<p>No brace auto-completion in CodeRush, because you never need to type the brace key. Use the b and &#8220;b,&#8221; templates (&#8220;b,&#8221; gives you a brace begin/end pair on a single line). The 2.0.2 update includes discoverability for the &#8220;b&#8221; template. I have not pressed the &#8220;{&#8221; key in about two years.</p>
<p>Request for integrated help with the options dialog duly noted.</p>
<p>Regarding peaceful coexistence among dev tools, that&#8217;s a priority for us. So if there&#8217;s a problem or conflict with another dev tool, we&#8217;ll do everything we can to fix that ASAP.</p>
<p>Thanks again for the great feedback.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

