[Idle-dev] (auto)-completion problems

Terry Reedy tjreedy at udel.edu
Thu May 24 15:20:17 EDT 2018


On 5/23/2018 9:58 AM, Peter Galan wrote:

> At first I have to thank you for your effort to maintain 
> this great programming system.

Thank you.

> I am using it to attract my grandchildren 
> to the computer programming technique.

Great.  I started my daughter at around 14.

> But I have encountered one 
> problem, which is present even in the latest version (2.7.15).

This is the latest maintenance release of an 8-year-old version.  It 
only gets security and build fixes and a small subset of bug fixes. 
Currently, most bugfixes are not backported to 2.7.  This includes IDLE 
changes.

3.6 is the current version of Python and 3.7 will be out next month. 
Please consider starting your grandkids with 3.6 or 3.7.  IDLE is being 
actively improved, but only for 3.6+.

On Windows, 2.7.15 uses tcl/tk GUI framework 8.5.15, whereas Python 3.6 
comes with the newer and better tk 8.6.6.

> It is the 
> automatic completion. It doesn’t work as described. At first, the 
> automatic completion should kick-out after about 2 sec when, for example 
> the user types the name of an object and the dot. Nothing happens.

Completing a name you have started and adding an attribute after '.' are 
2 different operations.  Auto-popup is only for the latter.  If I enter 
'int.' in either Shell or an editor, a box pops up with the 7 int 
attributes that do not start with '_', from 'bit_length' to 'to_bytes'.

I have 64-bit Win 10 and both installed 64-bit and locally built 32-bit 
debug binaries.  If you do not see the above, there is either a problem 
with the tcl/tk gui framework, which IDLE uses, on Win 7, or with your 
particular installation.

A box pops up only if the object has attributes *and* if IDLE knows 
about them.  The IDLE doc (Help => IDLE Help, and online) section on 
Completions mentions that in the editor, you likely have run the code 
already written for completions to work properly.

> The 
> forced auto-completion requires to press the Ctrl+Space keys.

This is required if you have already typed part of a name *before* the 
box appears.

> At first, 
> it opens “some” window, but, like in my example, the object “M” must not 
> to be followed by the dot.

Because "M" does not have attributes, at least none that IDLE knows about.

> However that window is meaningless.

On the contrary, this box in the screenshot is exactly as intended, and 
what I see also upon entering 'M<cntl-space>'.  'MemoryError' is the 
first visible name beginning with M.

> As soon 
> as I try to use it (click on it, to move the cursor keys, or any other 
> activity with the keyboard), this window immediately disappears.

With 2.7.15, I can move with up/down arrow keys and click after moving, 
but there are some bugs.  Clicking without movement and <Enter> do not 
work.  These and other problems were fixed last summer for 3.6+.

> Is there a way to fix this problem?

Some of your problems may be with your installation, but a full fix 
requires upgrading to 3.6+

> And I am running the Windows 7 and the 
> 64-bit version Python. Thank you in advance for your help.

-- 
Terry Jan Reedy



More information about the IDLE-dev mailing list