[squeak-dev] Improving the SystemNavigation browseMessageList... stuff

tim Rowledge tim at rowledge.org
Sun Oct 18 18:30:15 UTC 2020



> On 2020-10-18, at 4:46 AM, Jakob Reschke <forums.jakob at resfarm.de> wrote:
> 
> Without the unimplemented selector being highlighted, I cannot see a reason
> why to display a method twice. *But* with Environments you can have the same
> combination of class name and selector twice or more in the image and these
> should still appear separate. That means the deduplication must not rely
> just on the string representation of the method. Instead, MethodReference
> must be used.

MethodReference is indeed used here. See MessageSet>>initializeMessageList: for example. It appears to have properly environment aware #= but just possibly someone might want to change the #<=. I'm trying to avoid worrying about environments, so I won't be that person.

The bit needed to make this tool really useful is the ability to highlight the offending unimplemented message(s) in the selected method. MessageTrace adds a list of individually settable autoSelectStrings but of course the entire edit model expects a single contiguous selection and so we can't easily (mis)use that if there are several unimplemented messages in one method. Really, using a text selection as a highlight is pretty much useless as soon as you have a multipart keyword message. 

Maybe this is something Shout could actually do for us? And in the process perhaps we could end up highlighting the actual messages and not the same characters in a comment just because it is the first place in some text that we find those letters? If we could inform Shout that we want a special highlighting for the attached set of message selectors then *all* the browsers where we want some "show this found thing" would be improvable.

We also need a good way to pass the miscreant symbols along from the original input - which is in the form of an OrderedCollection of Strings like 
 'MenuMorph addTitle:icon:updatingSelector:updateTarget: calls: titleFont'
and get the 'titleFont' to some object that the browser will use to trigger the highlighting. I suppose a subclass of MethodReference might solve that, or a simple composite of a MethodReference and a Set of symbols.

tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Useful random insult:- Solid concrete from the eyebrows backwards.




More information about the Squeak-dev mailing list