Skip to content

Commit

Permalink
Fixes: #3222
Browse files Browse the repository at this point in the history
Finished to hardcode RBRefactoryChangeManager everywhere. 
Finished to hardcode Smalltalk globals.
  • Loading branch information
Ducasse committed Apr 23, 2019
1 parent 44fd99b commit fa2b3a2
Show file tree
Hide file tree
Showing 21 changed files with 94 additions and 91 deletions.
7 changes: 0 additions & 7 deletions src/NautilusRefactoring/RBAddClassChange.extension.st

This file was deleted.

22 changes: 0 additions & 22 deletions src/NautilusRefactoring/RBAddMethodChange.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -24,25 +24,3 @@ RBAddMethodChange >> accept: aText notifying: aController [

^ true
]

{ #category : #'*NautilusRefactoring' }
RBAddMethodChange >> oldVersionTextToDisplay [
| class |

class := Smalltalk
at: className asSymbol
ifAbsent: [ ^ super oldVersionTextToDisplay ].

isMeta ifTrue: [ class := class classSide ].

^ class methodDict
at: self selector
ifPresent: [:method | method sourceCode ]
ifAbsent: [ super oldVersionTextToDisplay ]
]

{ #category : #'*NautilusRefactoring' }
RBAddMethodChange >> textToDisplay [

^ self source
]
22 changes: 0 additions & 22 deletions src/NautilusRefactoring/RBRenameClassChange.extension.st

This file was deleted.

15 changes: 0 additions & 15 deletions src/NautilusRefactoring/RBRenameVariableChange.extension.st

This file was deleted.

20 changes: 13 additions & 7 deletions src/Refactoring-Changes/RBAddClassChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ RBAddClassChange class >> definitionPatterns [
{ #category : #converting }
RBAddClassChange >> asUndoOperation [
| class |
class := Smalltalk globals
at: self changeClassName
ifAbsent: [ nil ].
class := onSystemDictionary
at: self changeClassName
ifAbsent: [ nil ].
^ class isBehavior
ifTrue: [ RBRefactoryChangeManager changeFactory addClassDefinition: class definition ]
ifFalse: [ RBRefactoryChangeManager changeFactory removeClassNamed: self changeClassName ]
ifTrue: [ changeFactory addClassDefinition: class definition ]
ifFalse: [ changeFactory removeClassNamed: self changeClassName ]
]

{ #category : #accessing }
Expand All @@ -54,7 +54,7 @@ RBAddClassChange >> classVariableNames [

{ #category : #private }
RBAddClassChange >> definitionClass [
^ Smalltalk globals at: (self superclassName ifNil: [ ^ ProtoObject ])
^ onSystemDictionary at: (self superclassName ifNil: [ ^ ProtoObject ])
]

{ #category : #private }
Expand Down Expand Up @@ -82,7 +82,7 @@ RBAddClassChange >> instanceVariableNames [
^ instanceVariableNames
]

{ #category : #'as yet unclassified' }
{ #category : #accessing }
RBAddClassChange >> nameToDisplay [

^ self changeString
Expand All @@ -97,3 +97,9 @@ RBAddClassChange >> sharedPoolNames [
RBAddClassChange >> superclassName [
^ superclassName
]

{ #category : #accessing }
RBAddClassChange >> textToDisplay [

^ self definition
]
2 changes: 1 addition & 1 deletion src/Refactoring-Changes/RBAddClassVariableChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class {

{ #category : #converting }
RBAddClassVariableChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory
^ changeFactory
removeClassVariable: self variable
from: self changeClass
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class {

{ #category : #converting }
RBAddInstanceVariableChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory removeInstanceVariable: self variable from: self changeClass
^ changeFactory removeInstanceVariable: self variable from: self changeClass
]

{ #category : #printing }
Expand Down
26 changes: 24 additions & 2 deletions src/Refactoring-Changes/RBAddMethodChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ RBAddMethodChange >> asUndoOperation [
oldProtocol := RBBrowserEnvironment new whichProtocolIncludes: self selector in: self changeClass.
oldProtocol isNil
ifTrue: [ oldProtocol := #accessing ].
RBRefactoryChangeManager changeFactory addMethodSource: (self methodSourceFor: self selector) in: self changeClass classified: oldProtocol ]
ifFalse: [ RBRefactoryChangeManager changeFactory removeMethod: selector from: self changeClass ]
changeFactory addMethodSource: (self methodSourceFor: self selector) in: self changeClass classified: oldProtocol ]
ifFalse: [ changeFactory removeMethod: selector from: self changeClass ]
]

{ #category : #accessing }
Expand Down Expand Up @@ -120,6 +120,22 @@ RBAddMethodChange >> hash [
^ self parseTree hash
]

{ #category : #accessing }
RBAddMethodChange >> oldVersionTextToDisplay [
| class |

class := onSystemDictionary
at: className asSymbol
ifAbsent: [ ^ super oldVersionTextToDisplay ].

isMeta ifTrue: [ class := class classSide ].

^ class methodDict
at: self selector
ifPresent: [:method | method sourceCode ]
ifAbsent: [ super oldVersionTextToDisplay ]
]

{ #category : #private }
RBAddMethodChange >> parseTree [
^ RBParser parseMethod: source onError: [ :str :pos | ^ nil ]
Expand Down Expand Up @@ -183,3 +199,9 @@ RBAddMethodChange >> selector [
RBAddMethodChange >> source [
^ source
]

{ #category : #accessing }
RBAddMethodChange >> textToDisplay [

^ self source
]
2 changes: 1 addition & 1 deletion src/Refactoring-Changes/RBAddPoolVariableChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class {

{ #category : #converting }
RBAddPoolVariableChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory removePoolVariable: self variable from: self changeClass
^ changeFactory removePoolVariable: self variable from: self changeClass
]

{ #category : #accessing }
Expand Down
6 changes: 3 additions & 3 deletions src/Refactoring-Changes/RBAddTraitChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ RBAddTraitChange class >> definitionPatterns [
{ #category : #converting }
RBAddTraitChange >> asUndoOperation [
| trait |
trait := Smalltalk globals
trait := onSystemDictionary
at: self changeClassName
ifAbsent: [ nil ].
^ trait isTrait
ifTrue: [ RBRefactoryChangeManager changeFactory addTraitDefinition: trait definition ]
ifFalse: [ RBRefactoryChangeManager changeFactory removeClassNamed: self changeClassName ]
ifTrue: [ changeFactory addTraitDefinition: trait definition ]
ifFalse: [ changeFactory removeClassNamed: self changeClassName ]
]

{ #category : #accessing }
Expand Down
2 changes: 1 addition & 1 deletion src/Refactoring-Changes/RBRefactoryChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ RBRefactoryChange >> name: aString [
name := aString
]

{ #category : #'as yet unclassified' }
{ #category : #accessing }
RBRefactoryChange >> nameToDisplay [

^ self name
Expand Down
2 changes: 1 addition & 1 deletion src/Refactoring-Changes/RBRefactoryClassChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ RBRefactoryClassChange >> asUndoOperation [
{ #category : #accessing }
RBRefactoryClassChange >> changeClass [
| class |
class := Smalltalk globals at: self changeClassName ifAbsent: [ ^ nil ].
class := onSystemDictionary at: self changeClassName ifAbsent: [ ^ nil ].
^ isMeta ifTrue: [ class classSide ] ifFalse: [ class ]
]

Expand Down
2 changes: 1 addition & 1 deletion src/Refactoring-Changes/RBRemoveClassChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ RBRemoveClassChange class >> removeClassName: aSymbol [
{ #category : #converting }
RBRemoveClassChange >> asUndoOperation [
| classChanges |
classChanges := RBRefactoryChangeManager changeFactory compositeRefactoryChange.
classChanges := changeFactory compositeRefactoryChange.
self changeClass withAllSubclasses do: [ :each |
classChanges defineClass: each definition.
each class instVarNames
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class {

{ #category : #converting }
RBRemoveClassVariableChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory addClassVariable: self variable to: self changeClass
^ changeFactory addClassVariable: self variable to: self changeClass
]

{ #category : #accessing }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class {

{ #category : #converting }
RBRemoveInstanceVariableChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory addInstanceVariable: self variable to: self changeClass
^ changeFactory addInstanceVariable: self variable to: self changeClass
]

{ #category : #printing }
Expand Down
2 changes: 1 addition & 1 deletion src/Refactoring-Changes/RBRemoveMethodChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ RBRemoveMethodChange >> = aRemoveMethodChange [

{ #category : #converting }
RBRemoveMethodChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory addMethodSource: (self methodSourceFor: selector) in: self changeClass
^ changeFactory addMethodSource: (self methodSourceFor: selector) in: self changeClass
]

{ #category : #printing }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Class {

{ #category : #converting }
RBRemovePoolVariableChange >> asUndoOperation [
^ RBRefactoryChangeManager changeFactory addPoolVariable: self variable to: self changeClass
^ changeFactory addPoolVariable: self variable to: self changeClass
]

{ #category : #accessing }
Expand Down
23 changes: 22 additions & 1 deletion src/Refactoring-Changes/RBRenameClassChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ RBRenameClassChange >> hash [
^ (self class hash bitXor: self oldName hash) bitXor: self newName hash
]

{ #category : #'as yet unclassified' }
{ #category : #accessing }
RBRenameClassChange >> nameToDisplay [

^ self printString
Expand All @@ -66,6 +66,13 @@ RBRenameClassChange >> oldName [
^ oldName
]

{ #category : #accessing }
RBRenameClassChange >> oldVersionTextToDisplay [
^ String streamContents: [ :s |
self changes do: [ :c | s << c oldVersionTextToDisplay; cr ]]

]

{ #category : #printing }
RBRenameClassChange >> printOn: aStream [
aStream
Expand All @@ -89,3 +96,17 @@ RBRenameClassChange >> renameChangesForClass: oldClassName to: newClassName [
ifTrue: [ change rename: newClassName to: newName ].
^ change
]

{ #category : #accessing }
RBRenameClassChange >> textToDisplay [
^ String streamContents: [ :s |
s << self printString ; cr.
self changes do: [ :c | s << c textToDisplay; cr ]]

]

{ #category : #accessing }
RBRenameClassChange >> whatToDisplayIn: aChangeBrowser [
^ { self }

]
2 changes: 2 additions & 0 deletions src/Refactoring-Changes/RBRenameClassVariableChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ RBRenameClassVariableChange >> printOn: aStream [

{ #category : #private }
RBRenameClassVariableChange >> removeOldVariable [
self flag: #todo.
"We should use the factory"
(RBRemoveClassVariableChange remove: oldName from: self changeClass)
execute
]
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Class {

{ #category : #private }
RBRenameInstanceVariableChange >> addNewVariable [
self flag: #todo.
"We should use the factory"
(RBAddInstanceVariableChange add: newName to: self changeClass)
execute
]
Expand Down Expand Up @@ -40,6 +42,8 @@ RBRenameInstanceVariableChange >> printOn: aStream [

{ #category : #private }
RBRenameInstanceVariableChange >> removeOldVariable [
self flag: #todo.
"We should use the factory"
(RBRemoveInstanceVariableChange remove: oldName from: self changeClass)
execute
]
18 changes: 16 additions & 2 deletions src/Refactoring-Changes/RBRenameVariableChange.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ RBRenameVariableChange >> isMeta [
^ isMeta
]

{ #category : #'as yet unclassified' }
{ #category : #accessing }
RBRenameVariableChange >> nameToDisplay [

^ 'Rename ', self oldName, ' into ', self newName
Expand Down Expand Up @@ -139,7 +139,21 @@ RBRenameVariableChange >> printOn: aStream [
aStream nextPutAll: self displayString
]

{ #category : #private }
{ #category : #accessing }
RBRenameVariableChange >> removeOldVariable [
self subclassResponsibility
]

{ #category : #accessing }
RBRenameVariableChange >> textToDisplay [

self printString
]

{ #category : #accessing }
RBRenameVariableChange >> whatToDisplayIn: aChangeBrowser [

| result |
result := OrderedCollection with: self.
^ result, (self changes flatCollect: [:e | e changes ])
]

0 comments on commit fa2b3a2

Please sign in to comment.