Romain Robbes romain.robbes at lu.unisi.ch
Sun May 14 22:23:12 UTC 2006

On May 14, 2006, at 5:24 PM, Colin Putney wrote:

> On May 14, 2006, at 4:11 AM, stéphane ducasse wrote:
>> Romain described all the refactorings with services, and he did an  
>> integration of RB in
>> OB. Romain?
>> I could not find your image anymore: the  http://www.inf.unisi.ch/ 
>> ~robbes/ does not seem to work.
>> So it would be good to build on top of what he did. This way we  
>> could get the refactorings
>> everywhere and not only in OB ;)
> I tried that back when services were first released. There were a  
> couple of issues:
> - Services is tightly coupled to the keybindings and menu-bar work  
> that Romain did. Those things might be useful as well, but I want  
> to be able to get refactoring support in OB without changing my UI.
> - Services also relies on fetching and parsing the source code of  
> methods that call into it. This doesn't cause any immediate  
> problems, but it seems fragile, and I don't want to make OB depend  
> on that code.

well, these problems are solved now. The source code fiddling was not  
clean and is not needed anymore, and the menu-bar has been taken out.  
The services used to depend on the Keymapping package, but it does  
not anymore. A very lightweight shortcut manager is included with it.

To answers Stef's questions from another mail:

> Romain could you clearly state
> 	- what you did

The framework is done and loaded in 7006 image.
Tools built on top or adapted to services includes:
- refactorings & related tools (lint, code finder)
- a history mechanism supporting back and forward navigation in  
browsers and in message lists
- a way to store modified but not accepted yet code to ease navigation
- a navigation mechanism allowing to select any code element and  
navigate from it (as if every piece of code was a hyperlink). Now it  
is triggered by a keyboard shortcut, and not double-click anymore
- navigation from/to unit tests, and running tests (formerly known as  
- a "teleporting device"

> 	- what is left

- checking again in the latest image
- the basic support is working in OB, which means that refactorings  
and tools work. I haven't gotten around to implement a way to  
programmatically change the method browsed by an OmniBrowser, so the  
navigation support is limited
- some of the navigation possibilities are not really mature yet, but  
they could be left out of the base image

> 	- so that people can see and possibly participate

- I'll send a newer version soon so that people can try it out.  I  
have troubles uploading back the image on my site, so I'm afraid you  
will have to wait a bit ..


> That said, services does seem like a very good approach. It  
> decouples the provider of the service from the mechanism for making  
> it available to the user. It also fits in very nicely with OB's  
> architecture. OB's actions could be generalized into services, and  
> made available to other tools.
> Colin

Romain Robbes          http://www.inf.unisi.ch/~robbes/

More information about the Squeak-dev mailing list