[MonoDevelop] Code completion matching - input needed

Lluis Sanchez Gual slluis.devel at gmail.com
Wed Aug 11 07:33:14 EDT 2010


> >> It currently completly ignore scase - 'DBO' == 'dbo' and would match
> >> 'dboField', 'DataBaseObject', 'DBOStuff' or 'OddNumberContainer'.
> >>      
> > That's wrong. The algorithm does not ignore case. It gives the correct
> > result for that last case.
> >
> >    
> 'DBO' and 'dbo' both matches dboField. That is the case I ment - this is 
> an important difference of the two. In fact both algorithms are somewhat 
> the same - I'm sure both could simulate each other with 1-2 small 
> changes, that's why I found it important to give some examples where 
> they differ.

That's the case I'm talking about. An uppercase in the filter will only
match word start in the text. The issue was reported and I fixed it.

> >> This makes sense for example when you have a term 'Autotools' and you
> >> search for 'tools' this is matched - the other algorithm won't match this.
> >> The plus side of this approach is that it gives you>many<  items in the
> >> case you're not really sure what to look for.
> >>      
> > Getting too many items is not a problem. If you do a search in Google
> > you get thousands or millions of results, is that a problem? no, because
> > you know that Google is good at ranking, so in 99% of cases what are you
> > looking for will be in the first results page. And in case you don't
> > find it, you can keep browsing other pages. The Navigate To dialog works
> > in the same way. It doesn't matter if it returns a lot of items as long
> > as the best ones are shown at the top.
> >    
> The problem is than when I search for a 'string' I don't need viagra sex 
> pills. And AFAIK we don't have currently very good ranking

Wrong. In fact, the ranking works very well. I've been using the Go to
File dialog intensively for the past year, and most of the time I find
the correct match by typing 4 or 5 letters. You'll never get weird
results like 'viagra sex' at the top. If you find a case where the
ranking is giving bad results, I'd like to know it.

>  - we've only 
> pattern based ranking. I've already read a bit about how we could 
> achieve some intelligent learning like google does. This would require 
> some bigger changes in the data structures we have (maybe something like 
> a suggest tree would work). I would love improving the results we give - 
> if we could find a ranking system that would help that the user gets in 
> 99% of the cases what he is looking for in the first 5 results it would 
> be awesome.
> 
> This is an area we should put some research in :) ... I think we're 
> pretty good with our pattern based ranking - but google is better.

It is not worth spending time on this, because the current ranking works
well enough. 

> 
> > I'm ok about using this algorithm in code completion because the
> > completion window is small and it is not sorted by rank, so unlike the
> > Navigate dialog, getting less results is better.
> >
> >    
> Ah ok, it sounded very different before, maybe I misunderstood 
> sometehing?

Maybe. The only thing I always have requested is that the Navigate
window behaves like it used to do. I never told you how the completion
window should behave. It was you who unified the algorithms, not me.

Lluis.




More information about the Monodevelop-list mailing list