[Pkg] The Trunk: Tools-mt.805.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Apr 11 07:16:38 UTC 2018
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.805.mcz
==================== Summary ====================
Name: Tools-mt.805
Author: mt
Time: 11 April 2018, 9:16:12.591927 am
UUID: 8d0a4073-2ee8-6941-bb8c-7926dd445e6e
Ancestors: Tools-mt.804
Fixes regression in the labels for senders/implementors browsers.
=============== Diff against Tools-mt.804 ===============
Item was changed:
CodeHolder subclass: #MessageSet
instanceVariableNames: 'growable messageList autoSelectString messageListIndex editSelection'
+ classVariableNames: 'UseUnifiedMessageLabels'
- classVariableNames: ''
poolDictionaries: ''
category: 'Tools-Browser'!
!MessageSet commentStamp: '<historical>' prior: 0!
I represent a query path of the retrieval result of making a query about methods in the system. The result is a set of methods, denoted by a message selector and the class in which the method was found. As a StringHolder, the string I represent is the source code of the currently selected method. I am typically viewed in a Message Set Browser consisting of a MessageListView and a BrowserCodeView.!
Item was added:
+ ----- Method: MessageSet class>>useUnifiedMessageLabels (in category 'preferences') -----
+ useUnifiedMessageLabels
+ <preference: 'Use unified message labels'
+ categoryList: #(Tools tools)
+ description: 'In all message set browsers such as senders and implementors, show a unified, textual representation of all method references (or messages).'
+ type: #Boolean>
+ ^ UseUnifiedMessageLabels ifNil: [true]!
Item was added:
+ ----- Method: MessageSet class>>useUnifiedMessageLabels: (in category 'preferences') -----
+ useUnifiedMessageLabels: aBoolean
+
+ UseUnifiedMessageLabels := aBoolean.!
Item was changed:
----- Method: MessageSet>>initializeMessageList: (in category 'private') -----
initializeMessageList: anArray
"Initialize my messageList from the given list of MethodReference or string objects. NB: special handling for uniclasses.
Do /not/ replace the elements of anArray if they are already MethodReferences, so as to allow users to construct richer
systems, such as differencers between existing and edited versions of code."
messageList := OrderedCollection new.
+ anArray do: [:each |
- anArray do:
- [:each |
each isMethodReference
ifTrue: [messageList addLast: each]
+ ifFalse: [MessageSet parse: each toClassAndSelector: [ :class :sel |
+ class ifNotNil: [
+ messageList addLast: (
+ MethodReference new
+ class: class
+ selector: sel)] ]]].
+
+ "Unify labels if wanted."
+ self class useUnifiedMessageLabels ifTrue: [
+ messageList do: [:each | | cls |
+ cls := each actualClass.
+ each stringVersion: (cls isUniClass
+ ifTrue: [cls typicalInstanceName, ' ', each selector]
+ ifFalse: [cls name , ' ' , each selector , ' {' ,
+ ((cls organization categoryOfElement: each selector) ifNil: ['']) , '}' ,
+ ' {', cls category, '}'])]].
+
- ifFalse:
- [MessageSet
- parse: each
- toClassAndSelector: [ :class :sel | | s |
- class ifNotNil:
- [class isUniClass
- ifTrue:
- [s := class typicalInstanceName, ' ', sel]
- ifFalse:
- [s := class name , ' ' , sel , ' {' ,
- ((class organization categoryOfElement: sel) ifNil: ['']) , '}' ,
- ' {', class category, '}'].
- messageList addLast: (
- MethodReference new
- setClass: class
- methodSymbol: sel
- stringVersion: s)]]]].
messageListIndex := messageList isEmpty ifTrue: [0] ifFalse: [1].
contents := ''!
More information about the Packages
mailing list