I think the issue is how to update a browser when a method is modified. There is a script:
browser := GLMTabulator new
column: #one;
column: #two;
column: #three;
yourself.
browser transmit to: #one; andShow: [ :composite |
composite fastList ].
browser transmit from: #one; to: #two; andShow: [ :composite |
composite wrapper
title: [ 'Instance' translated ];
show: [ :wrapper |
wrapper fastList
display: [ :aClass | aClass methods ];
format: [ :aCompiledMethod | aCompiledMethod selector asString ] ].
composite wrapper
title: [ 'Class side' translated ];
show: [ :wrapper |
wrapper fastList
display: [ :aClass | aClass class methods ];
format: [ :aCompiledMethod | aCompiledMethod selector asString ] ].
composite updateOn: MethodModified from: [ SystemAnnouncer uniqueInstance ].
composite onChangeOfPort: #activePresentation act: [ :presentation |
(presentation pane port: #activePresentation) value
ifNotNil: [ :activePresentation |
((browser paneNamed: #two) port: #selection) value: (activePresentation defaultPane port: #selection) value ] ] ].
browser transmit
from: #two; to: #three;
andShow: [ :composite | composite text
display: [ :aCompiledMethod | aCompiledMethod sourceCode ];
updateOn: MethodModified from: [ SystemAnnouncer uniqueInstance ]. ].
browser openOn: Collection allSubclasses.
But it is not perfect, because it does not keep the selection.
Hilaire, it looks like you are going to end up with a simplified Nautilus/Calypso system editor.
Maybe it is possible to take Calypso and find out how to simplify it for your needs?