[squeak-dev] The Inbox: Tools-ct.1032.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Mar 10 17:51:37 UTC 2021
A new version of Tools was added to project The Inbox:
http://source.squeak.org/inbox/Tools-ct.1032.mcz
==================== Summary ====================
Name: Tools-ct.1032
Author: ct
Time: 10 March 2021, 6:51:33.356304 pm
UUID: 897e4ea2-3740-6a45-a054-d7da65105568
Ancestors: Tools-mt.1030
In the Message Names tool, show definition, comment, and hierarchy for class hits. In particular helpful to find out efficiently whether a selector belongs to a binding or to an actual class.
=============== Diff against Tools-mt.1030 ===============
Item was changed:
----- Method: MessageNames>>computeMessageList (in category 'search') -----
computeMessageList
+ | selector |
+ selectorListIndex = 0 ifTrue: [^ #()].
+
+ selector := selectorList at: selectorListIndex.
+ ^ (selector first isUppercase ifTrue: [Smalltalk classNamed: selector])
+ ifNotNil: [:class |
+ class := Smalltalk classNamed: selector.
+ #(Definition Comment Hierarchy) collect: [:sel |
+ MethodReference class: class selector: sel] ]
+ ifNil: [self systemNavigation allImplementorsOf: selector]!
- ^ selectorListIndex = 0
- ifTrue: [#()]
- ifFalse: [self systemNavigation
- allImplementorsOf: (selectorList at: selectorListIndex)]!
Item was changed:
----- Method: MessageNames>>selectedMessageName (in category 'message list') -----
selectedMessageName
selectorList basicSize = 0 ifTrue: [^ nil]. "Deals with selectorList nil or empty"
+ ^super selectedMessageName ifNil: [
+ "only message name selected"
+ selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"]!
- ^selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"!
Item was changed:
----- Method: MessageSet>>aboutToStyle: (in category 'code pane') -----
+ aboutToStyle: aStyler
+ "This is a notification that aStyler is about to re-style its text.
+ Set the classOrMetaClass in aStyler, so that identifiers will be resolved correctly.
- aboutToStyle: aPluggableShoutMorphOrView
- "This is a notification that aPluggableShoutMorphOrView is about to re-style its text.
- Set the classOrMetaClass in aPluggableShoutMorphOrView, so that identifiers
- will be resolved correctly.
Answer true to allow styling to proceed, or false to veto the styling"
| selectedMessageName showingMethod |
self showingSource ifFalse: [^false].
selectedMessageName := self selectedMessageName.
showingMethod := (#(Comment Definition Hierarchy) includes: selectedMessageName) not.
+ aStyler parseAMethod: showingMethod.
"Hack!! setting classOrMetaClass: to nil allows doit or class definition colouring."
+ aStyler classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]).
- aPluggableShoutMorphOrView classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]).
^(#(Comment Hierarchy) includes: selectedMessageName) not!
Item was changed:
----- Method: MessageSet>>selectedMessage (in category 'message list') -----
selectedMessage
"Answer the source method for the currently selected message."
-
self setClassAndSelectorIn: [:class :selector | | source |
class ifNil: [^ 'Class vanished'].
selector first isUppercase ifTrue:
[selector == #Comment ifTrue:
+ ["currentCompiledMethod := class organization commentRemoteStr."
- [currentCompiledMethod := class organization commentRemoteStr.
^ class comment].
selector == #Definition ifTrue:
[^ class definition].
selector == #Hierarchy ifTrue: [^ class printHierarchy]].
source := class sourceMethodAt: selector ifAbsent:
[currentCompiledMethod := nil.
^ 'Missing'].
self showingDecompile ifTrue: [^ self decompiledSourceIntoContents].
currentCompiledMethod := class compiledMethodAt: selector ifAbsent: [nil].
self showingDocumentation ifTrue: [^ self commentContents].
source := self sourceStringPrettifiedAndDiffed.
^ source asText makeSelectorBoldIn: class]!
More information about the Squeak-dev
mailing list
|