It works for me, are you sure to use the latest code? 2010/10/2 Mariano Martinez Peck <marianop...@gmail.com>: > > > On Sat, Oct 2, 2010 at 1:54 PM, Lukas Renggli <reng...@gmail.com> wrote: >> >> Ok, I fixed that. The refactoring engine now supports all the 24 (!!!) >> distinct patterns of defining a subclass/trait in Pharo (see below). >> >> Name: Refactoring-Changes-lr.15 >> Author: lr >> Time: 2 October 2010, 1:50:13 pm >> UUID: 82093dfb-e7f2-4ff7-afe7-ac7196632196 >> Ancestors: Refactoring-Changes-lr.14 >> >> - also support subclasses of nil >> > > Hi Lukas. I tried with nil and it works. However, putting ProtoObject, it > didn't, since > > definitionClass > ^ Smalltalk globals at: (self superclassName ifNil: [ ^ ProtoObject ]) > > self superclassName answers > > a Text for 'ProtoObject variableSubclass: #MessageCatchingProxy > instanceVariableNames: '''' > classVariableNames: '''' > poolDictionaries: '''' > category: ''Proxies''' > > Cheers > > Mariano > > >> >> The undo operation of the respective actions should work as well. The >> exception here is an asymmetry (bug?) in the Pharo class definition >> strings that causes classes without traits to be printed without the >> #uses: claus. Evaluating this definition string does not remove the >> trait composition if the class happens to have one though. >> >> Lukas >> >> #('`className class instanceVariableNames: `#instanceVariableNames' >> '`className class uses: `...@traitcomposition instanceVariableNames: >> `#instanceVariableNames' '`...@superclass subclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject subclass: `#className instanceVariableNames: >> `#instanceVariableNames classVariableNames: `#classVariableNames >> poolDictionaries: `#poolDictionaries category: `#category. `className >> superclass: `...@superclass' '`...@superclass subclass: `#className uses: >> `...@traitcomposition instanceVariableNames: `#instanceVariableNames >> classVariableNames: `#classVariableNames poolDictionaries: >> `#poolDictionaries category: `#category' 'ProtoObject subclass: >> `#className uses: `...@traitcomposition instanceVariableNames: >> `#instanceVariableNames classVariableNames: `#classVariableNames >> poolDictionaries: `#poolDictionaries category: `#category. `className >> superclass: `...@superclass' '`...@superclass variableByteSubclass: >> `#className instanceVariableNames: `#instanceVariableNames >> classVariableNames: `#classVariableNames poolDictionaries: >> `#poolDictionaries category: `#category' 'ProtoObject >> variableByteSubclass: `#className instanceVariableNames: >> `#instanceVariableNames classVariableNames: `#classVariableNames >> poolDictionaries: `#poolDictionaries category: `#category. `className >> superclass: `...@superclass' '`...@superclass variableByteSubclass: >> `#className uses: `...@traitcomposition instanceVariableNames: >> `#instanceVariableNames classVariableNames: `#classVariableNames >> poolDictionaries: `#poolDictionaries category: `#category' >> 'ProtoObject variableByteSubclass: `#className uses: >> `...@traitcomposition instanceVariableNames: `#instanceVariableNames >> classVariableNames: `#classVariableNames poolDictionaries: >> `#poolDictionaries category: `#category. `className superclass: >> `...@superclass' '`...@superclass variableSubclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject variableSubclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category. `className superclass: `...@superclass' '`...@superclass >> variableSubclass: `#className uses: `...@traitcomposition >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject variableSubclass: `#className uses: >> `...@traitcomposition instanceVariableNames: `#instanceVariableNames >> classVariableNames: `#classVariableNames poolDictionaries: >> `#poolDictionaries category: `#category. `className superclass: >> `...@superclass' '`...@superclass variableWordSubclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject variableWordSubclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category. `className superclass: `...@superclass' '`...@superclass >> variableWordSubclass: `#className uses: `...@traitcomposition >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject variableWordSubclass: `#className uses: >> `...@traitcomposition instanceVariableNames: `#instanceVariableNames >> classVariableNames: `#classVariableNames poolDictionaries: >> `#poolDictionaries category: `#category. `className superclass: >> `...@superclass' '`...@superclass weakSubclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject weakSubclass: `#className >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category. `className superclass: `...@superclass' '`...@superclass >> weakSubclass: `#className uses: `...@traitcomposition >> instanceVariableNames: `#instanceVariableNames classVariableNames: >> `#classVariableNames poolDictionaries: `#poolDictionaries category: >> `#category' 'ProtoObject weakSubclass: `#className uses: >> `...@traitcomposition instanceVariableNames: `#instanceVariableNames >> classVariableNames: `#classVariableNames poolDictionaries: >> `#poolDictionaries category: `#category. `className superclass: >> `...@superclass' '`traitName classTrait uses: `...@traitcomposition' 'Trait >> named: `#traitName uses: `...@traitcomposition category: `#category') >> >> On 2 October 2010 13:01, Lukas Renggli <reng...@gmail.com> wrote: >> >> Lukas, now I have another problem. I am not sure if it is OB latest >> >> code >> >> related, but I think so. >> > >> > No, that was always the case. >> > >> >> If you take any class, suppose RBSemanticTest and go to its definition. >> >> Change it so that it extends from ProtoObject instead of TestCase. When >> >> you >> >> accept the code (save it), the browser goes directly to Browse >> >> ProtoObject, >> >> actually to : >> >> >> >> ProtoObject subclass: #ProtoObject >> >> instanceVariableNames: '' >> >> classVariableNames: '' >> >> poolDictionaries: '' >> >> category: 'Kernel-Objects'. >> >> ProtoObject superclass: nil >> > >> > Creating a subclass like this was never supported by the refactoring >> > engine. >> > >> > You have to write it like: >> > >> > nil subclass: #ProtoObject >> > instanceVariableNames: '' >> > classVariableNames: '' >> > poolDictionaries: '' >> > category: 'Kernel-Objects' >> > >> > Lukas >> > >> > -- >> > Lukas Renggli >> > www.lukas-renggli.ch >> > >> >> >> >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> >> _______________________________________________ >> Pharo-project mailing list >> Pharo-project@lists.gforge.inria.fr >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > Pharo-project@lists.gforge.inria.fr > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >
-- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project