[squeak-dev] The Inbox: Protocols-jr.64.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Aug 10 18:37:28 UTC 2019
A new version of Protocols was added to project The Inbox:
http://source.squeak.org/inbox/Protocols-jr.64.mcz
==================== Summary ====================
Name: Protocols-jr.64
Author: jr
Time: 10 August 2019, 8:37:33.025208 pm
UUID: 88301d72-00b5-ef41-af99-d6650534d0fd
Ancestors: Protocols-jr.63
Implement icons and help for messages in Lexicon
Extract text rearranging from setClassAndSelectorIn: for reuse when other messages than the selected one need to be parsed.
Depends on changes in Tools-jr.860
=============== Diff against Protocols-jr.63 ===============
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 setClassAndSelectorOf: (self messageList at: anIndex) in:
+ [:class :selector |
+ ^ self messageHelpForMethod: class >> selector].
+
- "Not working due to text representation of message list."
^ nil!
Item was changed:
----- Method: Lexicon>>messageIconAt: (in category 'message list') -----
messageIconAt: anIndex
+ Browser showMessageIcons
+ ifFalse: [^ nil].
+ self setClassAndSelectorOf: (self messageList at: anIndex) in:
+ [:class :selector |
+ ^ ToolIcons iconNamed: (ToolIcons
+ iconForClass: class
+ selector: selector)].
+
- "Not working due to text representation of message list."
^ nil!
Item was changed:
----- Method: ProtocolBrowser>>setClassAndSelectorIn: (in category 'private') -----
setClassAndSelectorIn: csBlock
"Decode strings of the form <selectorName> (<className> [class])"
+ | sel |
- | i classAndSelString selString sel |
sel := self selection ifNil: [^ csBlock value: nil value: nil].
(sel isKindOf: MethodReference) ifTrue: [
sel setClassAndSelectorIn: csBlock
] ifFalse: [
+ self setClassAndSelectorOf: sel in: csBlock.
- selString := sel 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.
].
!
Item was added:
+ ----- 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
|