[squeak-dev] The Trunk: Morphic-eem.1720.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Feb 4 02:42:00 UTC 2021


Eliot Miranda uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-eem.1720.mcz

==================== Summary ====================

Name: Morphic-eem.1720
Author: eem
Time: 3 February 2021, 6:41:54.512365 pm
UUID: d5ad36ce-7228-4bbe-8c99-a5bcef5e9bef
Ancestors: Morphic-eem.1719

Avoid Symbol interning dulication in SearchBar>>smartSearch:in:

=============== Diff against Morphic-eem.1719 ===============

Item was changed:
  ----- Method: SearchBar>>smartSearch:in: (in category 'searching') -----
  smartSearch: text in: morph
  	"Take the user input and perform an appropriate search"
  	| input newContents |
  	self removeResultsWidget.
  	input := text asString ifEmpty:[^self].
  	self class useSmartSearch ifFalse: [^ ToolSet default browseMessageNames: input].
  
  	(Symbol findInterned: input) ifNotNil:
  		[:symbol| input := symbol].
  	"If it is a global or a full class name, browse that class."
  	(Smalltalk bindingOf: input) ifNotNil:
  		[:assoc| | class |
  		class := (assoc value isBehavior ifTrue:[assoc value] ifFalse:[assoc value class]) theNonMetaClass.
  		Project current world submorphs do:
  			[:windowMorph|
  			 (windowMorph isSystemWindow
  			  and: [(windowMorph model isKindOf: Browser)
  			  and: [windowMorph model isDisplayingClass: class]]) ifTrue:
  				[windowMorph beKeyWindow.
  				 ^windowMorph model displayClass: class]].
  		^ToolSet browse: class selector: nil].
  	
  	"If it is a symbol and there are implementors of it, browse those implementors."
+ 	input isSymbol ifTrue:
+ 		[(SystemNavigation new allImplementorsOf: input) ifNotEmpty:
+ 			[:list|
- 	Symbol hasInterned: input ifTrue: [:selector |
- 		(SystemNavigation new allImplementorsOf: selector) ifNotEmpty:[:list|
  			^SystemNavigation new
  				browseMessageList: list
  				name: 'Implementors of ' , input]].
  
  	"If it starts uppercase, browse classes if any. Otherwise, just search for messages."
  	input first isUppercase ifTrue:
+ 		[(UIManager default classFromPattern: input withCaption: '') ifNotNil:
+ 			[:aClass| ^ToolSet browse: aClass selector: nil].
- 		[(UIManager default classFromPattern: input withCaption: '')
- 			ifNotNil:[:aClass| ^ToolSet browse: aClass selector: nil].
  		newContents := input, ' -- not found.'.
  		self searchTerm: newContents.
  		self selection: (input size+1 to: newContents size).
  		self currentHand newKeyboardFocus: morph textMorph.
  		^ self].
  
  	"Default to browse message names..."
  	ToolSet default browseMessageNames: input!



More information about the Squeak-dev mailing list