Levente Uzonyi uploaded a new version of ST80 to project The Trunk: http://source.squeak.org/trunk/ST80-ul.282.mcz
==================== Summary ====================
Name: ST80-ul.282 Author: ul Time: 31 March 2022, 5:07:26.869823 pm UUID: 43f230dd-7d32-473c-8271-c8b724e16044 Ancestors: ST80-mt.281
- use Symbol class >> #lookup: instead of #hasInterned:ifTrue:
=============== Diff against ST80-mt.281 ===============
Item was changed: ----- Method: ParagraphEditor>>explain (in category 'menu messages') ----- explain "Try to shed some light on what kind of entity the current selection is. The selection must be a single token or construct. Insert the answer after the selection. Send private messages whose names begin with 'explain' that return a string if they recognize the selection, else nil."
Cursor execute showWhile: + [ | string delimitors reply numbers tiVars selectors sorry cgVars | - [ | symbol string delimitors reply numbers tiVars selectors sorry cgVars | sorry := '"Sorry, I can''t explain that. Please select a single token, construct, or special character.'. sorry := sorry , (view canDiscardEdits ifFalse: [' Also, please cancel or accept."'] ifTrue: ['"']). (string := self selection asString) isEmpty ifTrue: [reply := ''] ifFalse: [string := self explainScan: string. "Remove space, tab, cr" "Temps and Instance vars need only test strings that are all letters" (string detect: [:char | (char isLetter or: [char isDigit]) not] ifNone: []) ifNil: [tiVars := self explainTemp: string. tiVars == nil ifTrue: [tiVars := self explainInst: string]]. (tiVars == nil and: [model respondsTo: #explainSpecial:]) ifTrue: [tiVars := model explainSpecial: string]. tiVars == nil ifTrue: [tiVars := ''] ifFalse: [tiVars := tiVars , '' withCRs]. "Context, Class, Pool, and Global vars, and Selectors need only test symbols" + (Symbol lookup: string) + ifNotNil: [ :symbol | + cgVars := self explainCtxt: symbol. - (Symbol hasInterned: string ifTrue: [:s | symbol := s]) - ifTrue: [cgVars := self explainCtxt: symbol. cgVars == nil ifTrue: [cgVars := self explainClass: symbol. cgVars == nil ifTrue: [cgVars := self explainGlobal: symbol]]. "See if it is a Selector (sent here or not)" selectors := self explainMySel: symbol. selectors == nil ifTrue: [selectors := self explainPartSel: string. selectors == nil ifTrue: [ selectors := self explainAnySel: symbol]]] + ifNil: [selectors := self explainPartSel: string]. - ifFalse: [selectors := self explainPartSel: string]. cgVars == nil ifTrue: [cgVars := ''] ifFalse: [cgVars := cgVars , '' withCRs]. selectors == nil ifTrue: [selectors := ''] ifFalse: [selectors := selectors , '' withCRs]. string size = 1 ifTrue: ["single special characters" delimitors := self explainChar: string] ifFalse: ["matched delimitors" delimitors := self explainDelimitor: string]. numbers := self explainNumber: string. numbers == nil ifTrue: [numbers := '']. delimitors == nil ifTrue: [delimitors := '']. reply := tiVars , cgVars , selectors , delimitors , numbers]. reply size = 0 ifTrue: [reply := sorry]. self afterSelectionInsertAndSelect: reply]!
packages@lists.squeakfoundation.org