[squeak-dev] The Inbox: Protocols-jr.65.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Aug 10 20:04:42 UTC 2019
A new version of Protocols was added to project The Inbox:
http://source.squeak.org/inbox/Protocols-jr.65.mcz
==================== Summary ====================
Name: Protocols-jr.65
Author: jr
Time: 10 August 2019, 10:04:53.967208 pm
UUID: 798a2618-0a3b-3442-b7a9-ce5014fa1527
Ancestors: Protocols-jr.64
Make ProtocolBrowser and subclasses compatible with recent formatted message list changes
parse:toClassAndSelector: is sent by MessageSet formattedLabel:
ProtocolBrowser produces message items with different texts than those in MessageSet. Overriding the parse method in ProtocolBrowser class makes the setClassAndSelectorOf:in: method introduced in my previous versions obsolete.
setClassAndSelectorIn: can be removed because its new implementation in MessageSet is suitable for ProtocolBrowser and subclasses as well.
=============== Diff against Protocols-jr.64 ===============
Item was changed:
----- Method: Lexicon>>messageHelpAt: (in category 'message list') -----
messageHelpAt: anIndex
"Show the first n lines of the source code of the selected message."
Preferences balloonHelpInMessageLists ifFalse: [^ nil].
self messageList size < anIndex ifTrue: [^ nil].
+ self class parse: (self messageList at: anIndex) toClassAndSelector:
- self setClassAndSelectorOf: (self messageList at: anIndex) in:
[:class :selector |
^ self messageHelpForMethod: class >> selector].
^ nil!
Item was changed:
----- Method: Lexicon>>messageIconAt: (in category 'message list') -----
messageIconAt: anIndex
Browser showMessageIcons
ifFalse: [^ nil].
+ self class parse: (self messageList at: anIndex) toClassAndSelector:
- self setClassAndSelectorOf: (self messageList at: anIndex) in:
[:class :selector |
^ ToolIcons iconNamed: (ToolIcons
iconForClass: class
selector: selector)].
^ nil!
Item was added:
+ ----- Method: ProtocolBrowser class>>parse:toClassAndSelector: (in category 'utilities') -----
+ parse: aStringOrText toClassAndSelector: csBlock
+ "Decode strings of the form <selectorName> (<className> [class])"
+ | string i classAndSelString|
+ aStringOrText ifNil: [^ csBlock value: nil value: nil].
+ string := aStringOrText asString.
+ i := string indexOf: $(.
+ "Rearrange to <className> [class] <selectorName> , and use MessageSet"
+ classAndSelString := (string copyFrom: i + 1 to: string size - 1) , ' ' ,
+ (string copyFrom: 1 to: i - 1) withoutTrailingBlanks.
+ super parse: classAndSelString toClassAndSelector: csBlock.!
Item was removed:
- ----- Method: ProtocolBrowser>>setClassAndSelectorIn: (in category 'private') -----
- setClassAndSelectorIn: csBlock
- "Decode strings of the form <selectorName> (<className> [class])"
-
- | sel |
-
- sel := self selection ifNil: [^ csBlock value: nil value: nil].
- (sel isKindOf: MethodReference) ifTrue: [
- sel setClassAndSelectorIn: csBlock
- ] ifFalse: [
- self setClassAndSelectorOf: sel in: csBlock.
- ].
- !
Item was removed:
- ----- Method: ProtocolBrowser>>setClassAndSelectorOf:in: (in category 'private') -----
- setClassAndSelectorOf: aText in: csBlock
- "Decode strings of the form <selectorName> (<className> [class])"
- | selString i classAndSelString|
- selString := aText asString.
- i := selString indexOf: $(.
- "Rearrange to <className> [class] <selectorName> , and use MessageSet"
- classAndSelString := (selString copyFrom: i + 1 to: selString size - 1) , ' ' ,
- (selString copyFrom: 1 to: i - 1) withoutTrailingBlanks.
- MessageSet parse: classAndSelString toClassAndSelector: csBlock.
- !
More information about the Squeak-dev
mailing list
|