[PyKDE] Trivial improvement in the autocompletion of Eric3

Maurizio Colucci seguso.forever at tin.it
Sat Jun 26 14:43:01 BST 2004


On Saturday 26 June 2004 04:41, Phil Thompson wrote:
> > > I don't understand why a "near" word is more likely to be the one you
> > > want to type than a "distant" word.
>
> I see you didn't respond to this fundamental point ;)

Phil, I apologize. It is not that I don't want to reply, it is just that I 
considered it very obvious. It is simply something we observe. If I have to 
give you some examples:

1. example where you need a word typed a few lines ABOVE:

   class Widget(QObject):
          def __init__(self, width, height, numberOfLocations, longestPath):
                self.numberOfLocations = numberOfLocations
                self.longestPath = longestPath
                self.width= width
                self.height = height.

Here how many times you use a word immediately after the same word?
I would get mad to type this with eric3. I have no choice than to use emacs.
What I want to do is type THE FIRST LETTER only, then look for the completion 
in the list. And the nearest MUST be the first one.

2. example where you need a word typed a few lines BELOW:
            
        ...
	for o in o2a:
                # HERE:
		addObjectToListWithProperIconAndButton(o, selectedObjects, k) 
	for o in o2b:
		addObjectToListWithProperIconAndButton(o, selectedObjects, k)
	listBox[k].repaint()

def addObjectToListWithProperIconAndButton(o, selectedObjects, k):
        ...                
   
---------

Sorry if I didn't reply.

> > > I would think people use auto-completion for two reasons...
> >
> > Thanks Phil. :-)
> >
> > However, I must disagree with your reasoning:
> > > 1. To save typing, ie. you know the spelling.
> >
> > Exactly, to save typing.
> >
> > > In this case you don't use
> > > the arrow keys to move through the list. Instead you keep typing the
> > > word
> >
> > But this contradicts the very hypothesis, that I want to save typing! :-)
> > The reasoning is unsound...
>
> In one situation...
>
> I need to type 4 characters of an 8 letter word in order to make that word
> current in the list.
>
> ...or in another...
>
> I can type 1 character, look at the list (the order of which may be
> different each time it is displayed depending on where I am in the file)
> and see that I only need to hit a cursor key twice to make the word
> current.
>
> Personally I'm always going to do the first. 

You mean, you prefer typing 4 characters than typing one and scanning the 
list? Yes, of course: you developed this habit because, if you typed only one 
character, you would have to scan a list that is too long. But IF the list 
was sorted by distance, I bet you would have developed the opposite habit: 
type one character and scan the list. Because the scan would NOT be long in 
that case.

> It's one extra keystroke, but 
> it is relatively predictable. If I'm typing the same word many times I will
> quickly get into the habit of typing the 4 characters and selecting the
> current item without even bothering to look at the list.

I believe typing one character is much more costly than pressing the down 
arrow to search in the completion list. So I don't agree that you should 
judge based on the number of keystrokes required.



> Even though the second situation is one less keystroke (but maybe more
> depending on the context) it will be much slower because I have to read
> through the list - particulary if the list might need to be scrolled up or
> down to find what I'm looking for.

The point is: you are not using the list in order to save typing letters. You 
don't mind typing very much.

My way of thinking, instead, is this: if I know I have typed a word very 
recently, I type only the first two letters, then I scan the list until I 
find it.

bye

Maurizio




More information about the PyQt mailing list