<?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"
	>
<channel>
	<title>Comments on: Delphi&#8217;s &#8220;refactorings only work in current unit&#8221; bug</title>
	<atom:link href="http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/</link>
	<description>Life, .NET, and Cats</description>
	<pubDate>Fri, 10 Oct 2008 22:09:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Joe White&#8217;s Blog &#187; Blog Archive &#187; Comments on the survey #2: Refactorings</title>
		<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-6088</link>
		<dc:creator>Joe White&#8217;s Blog &#187; Blog Archive &#187; Comments on the survey #2: Refactorings</dc:creator>
		<pubDate>Fri, 22 Feb 2008 13:03:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-6088</guid>
		<description>[...] Delphi&#8217;s refactorings still don&#8217;t work across units if you don&#8217;t have every single unit explicitly added to your project file, so a Rename will usually break the build. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Delphi&#8217;s refactorings still don&#8217;t work across units if you don&#8217;t have every single unit explicitly added to your project file, so a Rename will usually break the build. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CR</title>
		<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5678</link>
		<dc:creator>CR</dc:creator>
		<pubDate>Tue, 03 Jul 2007 15:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5678</guid>
		<description>'using the automated refactoring tool doesn't introduce anything new to the equation'&lt;br&gt;&lt;br&gt;Apart from the 'automated' (and so, 'implicitly edited'), sure.  But if a unit is so quintessential to a project that it gets edited with it, why ever *not* explicitly add it to that project?  By not doing so, doesn't a person (not yourself though, obviously!) imply it's more generic than the project (or even project group) at hand, and so shouldn't be refactored willy-nilly?&lt;br&gt;&lt;br&gt;Anyhow, to be clear, I'm not disagreeing that the IDE *should* refactor any units used but not explicitly added to the project.  I'm just trying to suggest that your closing line - 'Here's hoping we get an IDE with refactoring support sometime soon' - is a bit over the top.
</description>
		<content:encoded><![CDATA[<p>&#8216;using the automated refactoring tool doesn&#8217;t introduce anything new to the equation&#8217;</p>
<p>Apart from the &#8216;automated&#8217; (and so, &#8216;implicitly edited&#8217;), sure.  But if a unit is so quintessential to a project that it gets edited with it, why ever *not* explicitly add it to that project?  By not doing so, doesn&#8217;t a person (not yourself though, obviously!) imply it&#8217;s more generic than the project (or even project group) at hand, and so shouldn&#8217;t be refactored willy-nilly?</p>
<p>Anyhow, to be clear, I&#8217;m not disagreeing that the IDE *should* refactor any units used but not explicitly added to the project.  I&#8217;m just trying to suggest that your closing line - &#8216;Here&#8217;s hoping we get an IDE with refactoring support sometime soon&#8217; - is a bit over the top.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe White</title>
		<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5677</link>
		<dc:creator>Joe White</dc:creator>
		<pubDate>Sun, 01 Jul 2007 20:34:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5677</guid>
		<description>CR: Well, yeah, if you change shared code and don't recompile all the projects, then you run the risk of breaking the projects you chose not to compile. But the same thing is true if you do the refactoring manually; using the automated refactoring tool doesn't introduce anything new to the equation.&lt;br&gt;&lt;br&gt;Now, if you put all of your projects into one project group, and open that project group in the IDE, the refactorings are supposed to work across all of the projects in the group; so if you're able to put all of your projects into one group, then the refactorings should, theoretically, never break anything at all.
</description>
		<content:encoded><![CDATA[<p>CR: Well, yeah, if you change shared code and don&#8217;t recompile all the projects, then you run the risk of breaking the projects you chose not to compile. But the same thing is true if you do the refactoring manually; using the automated refactoring tool doesn&#8217;t introduce anything new to the equation.</p>
<p>Now, if you put all of your projects into one project group, and open that project group in the IDE, the refactorings are supposed to work across all of the projects in the group; so if you&#8217;re able to put all of your projects into one group, then the refactorings should, theoretically, never break anything at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe White</title>
		<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5676</link>
		<dc:creator>Joe White</dc:creator>
		<pubDate>Sun, 01 Jul 2007 20:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5676</guid>
		<description>Fernando: good grief, no, it shouldn't scan your hard drive. I'm not sure where you dreamed that up. It should simply refactor across all the units that are compiled into the project. If the project was compilable before the refactoring, then it had better be compilable after the refactoring -- which means the refactoring needs to be able to touch any unit that's compiled into the project. Right now, it doesn't; it only follows the unit dependencies one level. That can't possibly guarantee that the code will stay compilable, because that's not what the compiler does.
</description>
		<content:encoded><![CDATA[<p>Fernando: good grief, no, it shouldn&#8217;t scan your hard drive. I&#8217;m not sure where you dreamed that up. It should simply refactor across all the units that are compiled into the project. If the project was compilable before the refactoring, then it had better be compilable after the refactoring &#8212; which means the refactoring needs to be able to touch any unit that&#8217;s compiled into the project. Right now, it doesn&#8217;t; it only follows the unit dependencies one level. That can&#8217;t possibly guarantee that the code will stay compilable, because that&#8217;s not what the compiler does.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CR</title>
		<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5675</link>
		<dc:creator>CR</dc:creator>
		<pubDate>Sun, 01 Jul 2007 15:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5675</guid>
		<description>Fernando - the point is that if you don't explicitly add any used library code units to a project, then they will be ignored by the refactoring engine.&lt;br&gt;&lt;br&gt;That said, while I'd agree this is a bug in its current state (i.e., with no warning as to what the scope of the refactoring engine is), I'm not sure *simply* 'fixing' it would be a great move.  For if unit X is used by lots of projects, having it changed when refactoring project A will just end up breaking project B, C, etc.  So in effect, Fernando's point rises again, for to be properly comprehensive, the refactoring engine would need to search through the computer looking for any other project effected by changing a given library unit.
</description>
		<content:encoded><![CDATA[<p>Fernando - the point is that if you don&#8217;t explicitly add any used library code units to a project, then they will be ignored by the refactoring engine.</p>
<p>That said, while I&#8217;d agree this is a bug in its current state (i.e., with no warning as to what the scope of the refactoring engine is), I&#8217;m not sure *simply* &#8216;fixing&#8217; it would be a great move.  For if unit X is used by lots of projects, having it changed when refactoring project A will just end up breaking project B, C, etc.  So in effect, Fernando&#8217;s point rises again, for to be properly comprehensive, the refactoring engine would need to search through the computer looking for any other project effected by changing a given library unit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fermando Madruga</title>
		<link>http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5674</link>
		<dc:creator>Fermando Madruga</dc:creator>
		<pubDate>Sun, 01 Jul 2007 13:55:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/07/01/delphis-refactorings-only-work-in-current-unit-bug/#comment-5674</guid>
		<description>&#34;The issue is that the refactoring engine only pays attention to the unit you're currently editing, plus units that have been explicitly added to the project (with Project &#62; Add to Project), or automatically added to the project (by File &#62; New).&#34;&lt;br&gt;&lt;br&gt;Huh... What else would it do? Search your whole harddrive and connected network drives for unrelated files and make the changes there too?&lt;br&gt;&lt;br&gt;You make it sound as it's working as intended and in fact as it *should* work. How else will the engine know when to stop replacing?&lt;br&gt;&lt;br&gt;Maybe I'm just missing the problem here (and I haven't looked at the QC report, which I'll try to do later and maybe then I'll understand it better)...
</description>
		<content:encoded><![CDATA[<p>&quot;The issue is that the refactoring engine only pays attention to the unit you&#8217;re currently editing, plus units that have been explicitly added to the project (with Project &gt; Add to Project), or automatically added to the project (by File &gt; New).&quot;</p>
<p>Huh&#8230; What else would it do? Search your whole harddrive and connected network drives for unrelated files and make the changes there too?</p>
<p>You make it sound as it&#8217;s working as intended and in fact as it *should* work. How else will the engine know when to stop replacing?</p>
<p>Maybe I&#8217;m just missing the problem here (and I haven&#8217;t looked at the QC report, which I&#8217;ll try to do later and maybe then I&#8217;ll understand it better)&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
