[Cuis-dev] Browser class hierarchy & functionality
juan at jvuletich.org
Sat Nov 2 10:35:48 PDT 2019
On 10/29/2019 2:17 PM, Phil B via Cuis-dev wrote:
> I was looking into adding the ability to easily analyze/diff two
> sources of Smalltalk code (i.e. basically the same image vs. changeset
> or image vs. package functionality we currently have but expanding the
> capability to allow for any two arbitrary sources whether changesets
> vs. changeset, package vs. package, package vs. changeset or some
> other pairing entirely) and it seems a bit harder than it needs to be
> since the existing implementation assumes you will always be comparing
> the image vs. something else.
> If this already exists and I'm looking in the wrong place, pointers
> are appreciated. If it doesn't, would there be any objection to
> modifying/cleaning up this code so that we could optionally set an
> 'other' Code*Browser that would be used rather than always assuming
> the image? A related enhancement could be to make the Code*Browser
> code a bit smarter so that we don't need to explicitly determine if
> 'this is a package' or 'this is a changeset' unless you want to.
> Basically I'm asking if we would be willing to trade a (slight)
> increase in implementation complexity for increased code source
> flexibility here?
What you want is not yet done. I think it is a good idea. I suggest
writing new (or improving existing) Model classes, for code already
loaded in the image (in base image or in packages), and for code in
files (CodePackageFile, etc). Ideally, the same View classes (i.e. the
Morphic Windows) should be the same and work on whatever model. Models
should be polymorphic enough so that comparing works irrespectively of
the models involved.
This could be a nice improvement for the system.
More information about the Cuis-dev