[squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Romain Robbes-2
Dear Squeak users,

OCompletion is an extension to ECompletion. Like ECompletion, it completes
the names of methods  as you write them in order to save you some typing.
The O in OCompletion stands for Omniscient and Omnipresent.

OCompletion is much more accurate than ECompletion. We tested it on the
development history of several projects
(see http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf).

Across several hundred thousands tests of the completion, OCompletion's
algorithm scores a 70 (out of 100), while the eCompletion's algorithm
scores a 12. To achieve this level of accuracy, it learns from your usage
of squeak and proposes to you methods you are more likely to use.

OCompletion shows a small, non-instrusive completion menu with potential
completions as you type method names. You don't need to call it explicitely
with tab. Just press tab to insert a match, or the down arrow to select the next
match.

To install it on Squeak or Pharo, simply execute the following line in your image:

Installer squeaksource project: 'OCompletion'; install: 'OCLoader'

Cheers,
Romain



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Giuseppe
Looks good.

But, this autocomplete Class names? I'm trying and when I write a class
name, only appears a little "window" showing me selectors, and, if I
load a new package, this is not showed on the aut"o"completion list.



Cheers.



Romain Robbes escribió:

> Dear Squeak users,
>
> OCompletion is an extension to ECompletion. Like ECompletion, it completes
> the names of methods  as you write them in order to save you some typing.
> The O in OCompletion stands for Omniscient and Omnipresent.
>
> OCompletion is much more accurate than ECompletion. We tested it on the
> development history of several projects
> (see http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf)
> <http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf%29>.
>
> Across several hundred thousands tests of the completion, OCompletion's
> algorithm scores a 70 (out of 100), while the eCompletion's algorithm
> scores a 12. To achieve this level of accuracy, it learns from your usage
> of squeak and proposes to you methods you are more likely to use.
>
> OCompletion shows a small, non-instrusive completion menu with potential
> completions as you type method names. You don't need to call it
> explicitely
> with tab. Just press tab to insert a match, or the down arrow to
> select the next
> match.
>
> To install it on Squeak or Pharo, simply execute the following line in
> your image:
>
> Installer squeaksource project: 'OCompletion'; install: 'OCLoader'
>
> Cheers,
> Romain
> --
> Romain Robbes
> http://www.inf.unisi.ch/phd/robbes
>
> ------------------------------------------------------------------------
>
>
>  


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Romain Robbes-2
Hi Guiseppe,

Thanks for trying it out!

The main focus is on methods, since this is what is the most used. It  
does not propose class names yet.
However if you press the down arrow when typing a class name (even if  
the menu is not shown), then
the normal eCompletion menu with class names will show up, so you can  
select a class there.

Cheers,
        Romain


On May 12, 2009, at 10:43 AM, Giuseppe Luigi Punzi wrote:

> Looks good.
>
> But, this autocomplete Class names? I'm trying and when I write a  
> class name, only appears a little "window" showing me selectors,  
> and, if I load a new package, this is not showed on the  
> aut"o"completion list.
>
>
>
> Cheers.
>
>
>
> Romain Robbes escribió:
>> Dear Squeak users,
>>
>> OCompletion is an extension to ECompletion. Like ECompletion, it  
>> completes
>> the names of methods  as you write them in order to save you some  
>> typing.
>> The O in OCompletion stands for Omniscient and Omnipresent.
>>
>> OCompletion is much more accurate than ECompletion. We tested it on  
>> the
>> development history of several projects
>> (see http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf)
>>  <http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf 
>> %29>.
>>
>> Across several hundred thousands tests of the completion,  
>> OCompletion's
>> algorithm scores a 70 (out of 100), while the eCompletion's algorithm
>> scores a 12. To achieve this level of accuracy, it learns from your  
>> usage
>> of squeak and proposes to you methods you are more likely to use.
>>
>> OCompletion shows a small, non-instrusive completion menu with  
>> potential
>> completions as you type method names. You don't need to call it  
>> explicitely
>> with tab. Just press tab to insert a match, or the down arrow to  
>> select the next
>> match.
>>
>> To install it on Squeak or Pharo, simply execute the following line  
>> in your image:
>>
>> Installer squeaksource project: 'OCompletion'; install: 'OCLoader'
>>
>> Cheers,
>> Romain
>> --
>> Romain Robbes
>> http://www.inf.unisi.ch/phd/robbes
>>
>> ------------------------------------------------------------------------
>>
>>
>>
>
>

--
Romain Robbes
http://www.inf.unisi.ch/phd/robbes


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Göran Krampe
Hi!

A few things I wonder:

1. Does any of these packages use Roeltyper?
2. An easy trick that Whisker used to display "types" for ivars is to
actually sample allInstances. :) So... this could be used to complete
sends to ivars.
3. When being in the debugger - completion could be MUCH better since we
actually have real objects in our hands.

Just curious if these tricks have been considered.

regards, Göran


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Romain Robbes-2
Hi Göran,

ECompletion uses RoelTyper to determine types. However it is not often successful. 
We actually found that the heuristic we use in OCompletion is more accurate than finding the type
at positioning matches early in the list. Of course, combining the two gives another improvement, 
but it is actually quite small in comparison (you can have a look at the paper for details:

Since I wanted to keep the extension light, I do not consider types yet. However having the types
and using the two heuristics you mention sounds like a good idea.

Cheers,
Romain


On May 12, 2009, at 11:07 PM, Göran Krampe wrote:

Hi!

A few things I wonder:

1. Does any of these packages use Roeltyper?
2. An easy trick that Whisker used to display "types" for ivars is to actually sample allInstances. :) So... this could be used to complete sends to ivars.
3. When being in the debugger - completion could be MUCH better since we actually have real objects in our hands.

Just curious if these tricks have been considered.

regards, Göran






Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] OCompletion improves the accuracy of eCompletion

Damien Cassou-3
In reply to this post by Romain Robbes-2
On Tue, May 12, 2009 at 10:52 AM, Romain Robbes <[hidden email]> wrote:
> The main focus is on methods, since this is what is the most used. It does
> not propose class names yet.
> However if you press the down arrow when typing a class name (even if the
> menu is not shown), then
> the normal eCompletion menu with class names will show up, so you can select
> a class there.

Would be cool to have class-name completion too, that would make the
whole experience much better.

--
Damien Cassou
http://damiencassou.seasidehosting.st

"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry