Great! How did people ever worked with change lists without this ? There might be interesting related features to pick in Cuis too.
Nicolas
2010/6/30 commits@source.squeak.org:
Eliot Miranda uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-eem.345.mcz
==================== Summary ====================
Name: System-eem.345 Author: eem Time: 29 June 2010, 5:48:20.596 pm UUID: 1ba583d2-9788-4bfd-b1d5-9b88c7769cd2 Ancestors: System-tbn.344
Changes to ChangeRecord to support remove unchanged definitions and file-in reorganizations in the ChangeList.
=============== Diff against System-tbn.344 ===============
Item was added:
- ----- Method: ChangeRecord>>commentClass (in category 'access') -----
- commentClass
- | commentClass |
- type == #classComment ifFalse: [^ nil].
- (Smalltalk includesKey: class asSymbol) ifFalse: [^ nil].
- commentClass := Smalltalk at: class asSymbol.
- ^meta ifTrue: [commentClass class]
- ifFalse: [commentClass]!
Item was changed: ----- Method: ChangeRecord>>methodClassName (in category 'access') ----- methodClassName
- | text tokens |
- (class isNil
- and: [type = #doIt
- and: [((text := self text) includes: $.) not "exclude multi-statement doits"
- and: [(tokens := Scanner new scanTokens: text) size >= 4
- and: [tokens first isSymbol
- and: [tokens first isKeyword not
- and: [tokens first first canBeGlobalVarInitial
- and: [tokens includes: #instanceVariableNames:]]]]]]]) ifTrue:
- ["Could be a class definition.
- Class definitions start with Superclass blahSubclass: #ClassName
- Metaclass definitions start with ClassName class instanceVariableNames:"
- (tokens second isSymbol
- and: [tokens second isKeyword
- and: [tokens third isSymbol
- and: [tokens third isKeyword not
- and: [(2 to: tokens size by: 2) allSatisfy: [:i| (tokens at: i) isKeyword]]]]]) ifTrue:
- [^tokens third].
- (tokens size = 4
- and: [tokens second = #class
- and: [tokens third = #instanceVariableNames:
- and: [tokens last isString]]]) ifTrue:
- [^tokens first]].
^class!
Item was changed: ----- Method: ChangeRecord>>fileIn (in category 'initialization') ----- fileIn
- "File the receiver in. If I represent a method or a class-comment, file the method in and make a note of it in the recent-submissions list; if I represent a do-it, then, well, do it; if I represent a reorganization then get organized!!"
- "File the receiver in. If I represent a method or a class-comment, file the method in and make a note of it in the recent-submissions list; if I represent a do-it, then, well, do it."
Cursor read showWhile:
- [| s cls aSelector |
- type == #doIt
- ifTrue:
- [((s := self string) beginsWith: '----') ifFalse: [Compiler evaluate: s]]
- ifFalse:
- [cls := Smalltalk at: class asSymbol.
- cls := meta ifTrue: [cls class] ifFalse: [cls].
- type == #method ifTrue:
- [cls compile: self text classified: category withStamp: stamp notifying: nil.
- (aSelector := self methodSelector) ifNotNil:
- [Utilities noteMethodSubmission: aSelector forClass: cls]].
- type == #classComment ifTrue:
- [cls comment: self text stamp: stamp.
- Utilities noteMethodSubmission: #Comment forClass: cls ].
- type == #reorganize ifTrue:
- [cls organization changeFromString: self text]]]!
- [| methodClass s aSelector |
- (methodClass := self methodClass) notNil ifTrue:
- [methodClass compile: self text classified: category withStamp: stamp notifying: nil.
- (aSelector := self methodSelector) ifNotNil:
- [Utilities noteMethodSubmission: aSelector forClass: methodClass]].
- (type == #doIt) ifTrue:
- [((s := self string) beginsWith: '----') ifFalse: [Compiler evaluate: s]].
- (type == #classComment) ifTrue:
- [ | cls | (cls := Smalltalk at: class asSymbol) comment: self text stamp: stamp.
- Utilities noteMethodSubmission: #Comment forClass: cls ]]!
Item was changed: ----- Method: ChangeRecord>>fileIndex (in category 'access') ----- fileIndex
- SourceFiles withIndexDo: [:sf :i| sf name = file name ifTrue: [^i]].
- ^nil!
- ^ (SourceFiles collect: [ :sf | sf name])
- indexOf: file name ifAbsent: [^ nil].
- !
squeak-dev@lists.squeakfoundation.org