<div dir="ltr">Hi Phil!<div> I just pushed a change that takes care of that. </div><div> It compares compilerClass with Compiler and if it is different it does not include the method in the implementors/senders. As you said, it is the simplest solution. If other compilers are created that keep Smalltalk syntax we will have to change this but that is unlikely to happen.</div><div> I did this only for the change selector refactoring, that is rename, add parameter and remove parameter because I think those are the ones that this change was needed for... I don't see anybody doing a rename instance variable in a class that is not a Smalltalk one.</div><div><br></div><div> Let me know if it works as you expected!</div><div><br></div><div> Cheers!</div><div> Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 7, 2020 at 4:58 PM Phil B <<a href="mailto:pbpublist@gmail.com">pbpublist@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I forgot to mention:  ideally this would be done in a flexible manner.  So rather than hard coding Compiler in the tools, have a method that returns a list of valid #compilerClass values so if anyone uses an alternate compiler for Smalltalk code, that they would be able to include it in refactoring.  Alternately, we could use a blacklist approach where the tools accept anything *except* a list of #compilerClass values to exclude.  I think a whitelist approach makes more sense since it seems like every time I've overridden #compilerClass I've done it at least in part because I've tweaked the syntax in some way.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 7, 2020 at 2:44 PM Phil B <<a href="mailto:pbpublist@gmail.com" target="_blank">pbpublist@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Regarding 2: perfect, thanks!<div><br></div><div>Regarding 1, the refactoring tools should not be changing anything (methods or variables) they don't understand.  To see the issue:<div><br><div>1) open a base image</div><div>2) install <a href="http://OMeta2Examples.pck.st" target="_blank">OMeta2Examples.pck.st</a> from <a href="https://github.com/pbella/OMeta-Cuis" target="_blank">https://github.com/pbella/OMeta-Cuis</a></div><div>3) open a Message Names window</div><div>4) search for 'space'</div><div>5) right click on the 'Character class space' implementor</div><div>6) select 'refactorings...' then 'rename...'</div><div>7) give it a new name of something like spaceAAA</div><div><br></div><div>When the refactoring window comes up you should see both implementors and senders of space in various OMeta subclasses.  The problem with the refactoring tools even attempting to refactor these methods is that the code they are parsing at best may not be standard Smalltalk and at worst may be something totally alien so the results of the refactor will often be broken code.  The problem is the same for variables.</div><div><br></div><div>In the case of OMeta, while the pretty printed code is valid Smalltalk, it's also generated code that should not be edited so if the refactoring tools say 'Oh, I know how to deal with this' it will overwrite the actual source code.  If it tries to refactor the actual source code, there's about a 105% chance it will fail :-)  Even if you tried to support OMeta syntax, I or others could write our own parsers in OMeta which create a derivative syntax which again would break the refactoring tools.  The constant is that in order to do this, they need to override #compilerClass.  So that's why I'm suggesting at a minimum, the implementors and senders in subclasses with an unknown #compilerClass should be ignored/excluded. (if you want to be extra safe, check both #compilerClass and #parserClass)  A nice plus would be some indication of any senders/implementors that are being ignored so I know go back and check them manually.</div><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 5, 2020 at 8:17 PM Hernan Wilkinson <<a href="mailto:hernan.wilkinson@10pines.com" target="_blank">hernan.wilkinson@10pines.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Phil!<div> I just fixed the problem with removing senders when refactoring (error number 2) and uploaded to git.</div><div> Please if you can check that it works would be great.</div><div><br></div><div> About the 1), I look for that in the repo and I could not find what I did when you ask for that the first time... could you let me know again what are you expecting? And also, do you want that for all refactorings or only for a few? For example, do you want that behavior when renaming and instance variable or only when renaming a selector? </div><div><br></div><div>Thanks!</div><div>Hernan.</div><div><br></div><div>PS: Getting slowly back in track :-)</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 27, 2020 at 4:33 AM Phil B via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">It looks like a couple of previously fixed issues are broken again as of 4030 (not sure exactly what changeset(s) broke things, only that I ran into these issues again now):<div><br></div><div>1) compilerClass doesn't look like it's being properly checked to determine if classes/methods should be included in the refactoring.</div><div><br></div><div>2) Removals get lost if sender methods are removed in the refactoring window and then you switch to implementors view, then back to senders.</div></div>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></span></strong></span></div><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></span></strong></span></div><div><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></span></strong></span></div><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></span></strong></span></div><div><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div></div></div></div></div>