Eliot Miranda uploaded a new version of VMMakerExtras to project VM Maker: http://source.squeak.org/VMMaker/VMMakerExtras-eem.2.mcz ==================== Summary ==================== Name: VMMakerExtras-eem.2 Author: eem Time: 16 December 2016, 11:50:26.779082 am UUID: 571ec627-4e95-4373-922d-9c3052f78af9 Ancestors: VMMakerExtras-eem.1 Revive MessageSetDifferencer & MessageSetTextDifferencer =============== Diff against VMMakerExtras-eem.1 =============== Item was changed: ----- Method: MessageSetDifferencer>>contents (in category 'contents') ----- contents "Answer the contents of the receiver" | left right | left := leftSet selection. right := rightSet selection. + left ifNil: + [right ifNil: + [currentCompiledMethod := nil. + ^'']. + ^rightSet contents]. + right ifNil: - (left isNil and: [right isNil]) ifTrue: - [currentCompiledMethod := nil. - ^'']. - left isNil ifTrue: - [^rightSet contents]. - right isNil ifTrue: [^leftSet contents]. + ^left isMethodReference - left := leftSet contents. - right := rightSet contents. - ^leftSet selection isMethodReference ifTrue: [CodeDiffBuilder + buildDisplayPatchFrom: rightSet contents + to: leftSet contents + inClass: (left isMethodReference ifTrue: [left actualClass]) - buildDisplayPatchFrom: right - to: left - inClass: (leftSet selection isMethodReference ifTrue: [leftSet selection actualClass]) prettyDiffs: true] ifFalse: + [CodeDiffBuilder buildDisplayPatchFrom: rightSet contents to: leftSet contents]! - [CodeDiffBuilder buildDisplayPatchFrom: right to: left]! Item was changed: ----- Method: MessageSetDifferencer>>messageListMenu:shifted: (in category 'message list') ----- messageListMenu: aMenu shifted: shifted "Answer the message-list menu" + | newMenu | + (newMenu := self menuHook: aMenu named: #messageListMenu shifted: shifted) ~~ aMenu ifTrue:[^newMenu]. - (self menuHook: aMenu named: #messageListMenu shifted: shifted) ifTrue:[^aMenu]. shifted ifTrue: [^ self shiftedMessageListMenu: aMenu]. aMenu addList: #( ('browse full (b)' browseMethodFull) ('browse hierarchy (h)' classHierarchy) ('browse method (O)' openSingleMessageBrowser) ('browse protocol (p)' browseFullProtocol) - ('fileOut' fileOutMessage) ('printOut' printOutMessage) - ('senders of... (n)' browseSendersOfMessages) ('implementors of... (m)' browseMessages) ('inheritance (i)' methodHierarchy) ('versions (v)' browseVersions) - ('inst var refs...' browseInstVarRefs) ('inst var defs...' browseInstVarDefs) ('class var refs...' browseClassVarRefs) ('class variables' browseClassVariables) ('class refs (N)' browseClassRefs) - ('remove unchanged' removeUnchangedDefinitions) ('remove changed' removeChangedDefinitions) - ('more...' shiftedYellowButtonActivity)). ^ aMenu! Item was changed: ----- Method: MessageSetTextDifferencer>>contents (in category 'contents') ----- contents "Answer the contents of the receiver" | left right | left := leftSet selection. right := rightSet selection. + left ifNil: + [right ifNil: + [currentCompiledMethod := nil. + ^'']. + ^rightSet contents]. - (left isNil and: [right isNil]) ifTrue: - [currentCompiledMethod := nil. - ^'']. - left isNil ifTrue: - [^rightSet contents]. right isNil ifTrue: [^leftSet contents]. + ^TextDiffBuilder buildDisplayPatchFrom: left source to: right source! - ^TextDiffBuilder buildDisplayPatchFrom: rightSet contents to: leftSet contents! Item was added: + Object subclass: #TextReference + instanceVariableNames: 'text selector class' + classVariableNames: '' + poolDictionaries: '' + category: 'VMMakerExtras-Tools'! + + !TextReference commentStamp: '<historical>' prior: 0! + Hack to allow comparing method sources with specific texts! Item was added: + ----- Method: TextReference>>compiledMethodAt:ifAbsent: (in category 'hack puns') ----- + compiledMethodAt: selector ifAbsent: aBlock + ^nil! Item was added: + ----- Method: TextReference>>isMethodReference (in category 'testing') ----- + isMethodReference + ^true! Item was added: + ----- Method: TextReference>>organization (in category 'hack puns') ----- + organization + ^class organization! Item was added: + ----- Method: TextReference>>parserClass (in category 'hack puns') ----- + parserClass + ^class parserClass! Item was added: + ----- Method: TextReference>>setClassAndSelectorIn: (in category 'setting') ----- + setClassAndSelectorIn: csBlock + + ^csBlock value: class value: selector! Item was added: + ----- Method: TextReference>>source (in category 'accessing') ----- + source + ^text! Item was added: + ----- Method: TextReference>>sourceCode (in category 'accessing') ----- + sourceCode + ^text! Item was added: + ----- Method: TextReference>>sourceMethodAt:ifAbsent: (in category 'hack puns') ----- + sourceMethodAt: selector ifAbsent: aBlock + ^text! Item was added: + ----- Method: TextReference>>sourceString (in category 'accessing') ----- + sourceString + ^text asString! Item was added: + ----- Method: TextReference>>text:class:selector: (in category 'initialize-release') ----- + text: aText class: aBehavior selector: aSelector + text := aText. + class := aBehavior. + selector := aSelector! Item was added: + ----- Method: TextReference>>theNonMetaClass (in category 'hack puns') ----- + theNonMetaClass + ^self! Item was added: + ----- Method: TextReference>>ultimateSourceCodeAt:ifAbsent: (in category 'hack puns') ----- + ultimateSourceCodeAt: selector ifAbsent: aBlock + ^text! |
Free forum by Nabble | Edit this page |