msg365401 - (view) |
Author: Arthur (darthur90) |
Date: 2020-03-31 17:16 |
Hi,
I am new to python, I am learning it now. In the course the guy is using autocomplete and when he writes "math." he gets an autocomplete menu. on my device for some reason it is not working. I also tried the key combination to force pop-up but nothing happens.
I am running macOSx Catalina 10.15.2 and IDLE 3.8.2
P.s. I reinstalled IDLE, nothing changed.
|
msg365447 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2020-04-01 03:20 |
My first though was that the 'guy' had executed 'import math' and you had not. (See the IDLE doc at https://docs.python.org/3/library/idle.html or, within IDLE, Help => IDLE Help, "Editing and navigations" section, "completions' subsection, 2nd to last paragraph.) Or maybe this was another 'Catalina' issue.
But I tried completion on my MacbookAir with Mohave 10.14.6? and 3.8.2 and 3.7.5, in Shell at >>>, that don't need imports. 'i'<tab> should bring up a box with 'id' at the top. 'int.' should bring up a box with 'as_integer_ratio' at the top. This works for me on Windows but not on the Mac.
For shortcuts, IDLE Preferences, Keys tab, has "force_open_completions <control-key-space>". But the edit menu has "Show completions ^S". Control-S is not Control-space. Bug 1. In either case, neither work. Nor does clicking the menu entry. Bug 2. Hitting ^S causes "Edit" on the main menu to flash blue (Mac only); ^space. I believe this means that ^S invoked an item on the menu. I repeated the above with IDLE started in Terminal ('python3 -m idlelib'). No errors messages appeared.
There are issues where shortcuts don't work, because they duplicate system binding, but menu items do. This is different.
Is this a tkinter widget problem? Similar Toplevel popups (calltips, squeezer tooltips) work. Listbox is also used in config, config-key, and debugger dialogs, all of which at least appear.
A debug print is autocomplete_w.py show_window reveals that it is called when it should be, including after both ^space and ^S, with what I believe are appropriate arguments. Another print in winconfig_event, just before the geometry call to move the window into view, shows that x,y position looks good. But two oddities: winconfig_event is called twice instead of once, and with ^space and not ^S. I have no idea how this could be. Adding update() just before update_idletasks() prevents the 2nd winconfig_event call but does not make the popup appear.
I am out of ideas at the moment, except for this. Other popups are withdrawn while created and filled in, and then deiconified, while this one is moved off screen to 10000,10000 and moved back. Wondering whether tk 8.6 does not like this movement, I disabled it. The widget should then appear, but does not.
|
msg395657 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-06-11 19:37 |
With 3.10.0b2 on my MacBook Air, completions work as far as I tested, with Edit => Show completions, Tab, and ^-Space.
i<tab>
i<^-Space>
int.(configered pause)
int.<^-Space, after dismissing box with Esc key>
3.9.5, without the patch, remains buggy. I attribute the difference to using tcl/tk 8.6.11 in 3.10 versus 8.6.8 in 3.9 (and 3.8 and worse previously).
3.9.5, with the patch, the above work. I will apply the patch in main and then backport because other Mac installers may have not switched to 8.6.11, I am not sure it never helps with 8.6.11, I prefer to keep active versions in sync, and it should not hurt except for a micro slowdown.
I opened #44398 for the hotkey issue.
|
msg395667 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-06-11 22:55 |
New changeset 3ec3ee7d2e9b45b586e486e429b412d6d0ca530f by Kaustubh J in branch 'main':
bpo-40128: Fix IDLE autocomplete on macOS (GH-26672)
https://github.com/python/cpython/commit/3ec3ee7d2e9b45b586e486e429b412d6d0ca530f
|
msg395668 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-06-11 23:24 |
New changeset b441e99d89a3f05210cc36ade57699384986ca00 by Miss Islington (bot) in branch '3.10':
bpo-40128: Fix IDLE autocomplete on macOS (GH-26672)
https://github.com/python/cpython/commit/b441e99d89a3f05210cc36ade57699384986ca00
|
msg395669 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-06-11 23:24 |
New changeset a9e20cf7bbf3ba39260fca112938f95e4f317efc by Miss Islington (bot) in branch '3.9':
bpo-40128: Fix IDLE autocomplete on macOS (GH-26672)
https://github.com/python/cpython/commit/a9e20cf7bbf3ba39260fca112938f95e4f317efc
|
msg395670 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-06-11 23:26 |
Thank you for the fix.
|
msg401744 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-09-14 00:21 |
Pablo (and Ned)
PR_26672 (and backports) added one line to idlelib/autocomplete_w.py, 206 or 209.
acw.update_idletasks() # Need for tk8.6.8 on macOS: #40128.
NEWs item included "The added update_idletask call should be harmless and possibly helpful otherwise. "
This is consistent with https://www.tcl.tk/man/tcl8.6/TclCmd/update.html
At the end of the PR, Tal Einat reports
"this broke completions for me with Tcl/Tk 8.6.11 on Ubuntu 20.04.
Apparently also with Tcl/Tk 8.6.10, which is the current default.
Also broken in my latest install of Python 3.9.7 (not built from source)."
Tal, did you verify that #ing the line fixes your issues? Can you be more specific as to what you see?
I rechecked on my Macbook and the line is definitely needed for 3.9.7 with tk 8.6.8. It makes no difference for 3.10.0rc2 with 8.6.11. (So the bug of requiring update_idletasks call to ever see the dropdown box was fixed.)
Assume Tal's report is verified on another machine, we could, before 3.10.0,
1. Remove the line.
2. Disable the line.
3. Make it conditional on macOS and 8.6.8.
It is obviously too late for 3.9.7.
|
msg401745 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-09-14 00:23 |
https://www.tcl.tk/man/tcl8.6/TclCmd/update.html
|
msg401756 - (view) |
Author: Tal Einat (taleinat) *  |
Date: 2021-09-14 06:19 |
Confirmed with python 3.9.7 installed via the "deadsnakes" apt repo on another Ubuntu 20.04 machine.
"Confirmed" meaning specifically that the completion window never appears, and commenting out that single line resolves the issue.
|
msg401757 - (view) |
Author: Tal Einat (taleinat) *  |
Date: 2021-09-14 06:25 |
Note that _tkinter.TK_VERSION and _tkinter.TK_VERSION are simply "8.6", not enough to differentiate between patch versions. The best way to get this info appears to be tk.call("info", "patchlevel").
Specifically I suggest:
TK_VERSION = tuple(map(int, tk.call("info", "patchlevel").split(".")))
...
if (8, 6, 8) <= TK_VERSION < (8, 6, 10):
...
|
msg401759 - (view) |
Author: Tal Einat (taleinat) *  |
Date: 2021-09-14 06:30 |
I've created a separate issue for the completion window not appearing on Linux, issue #45193. Let's move the discussion there.
|
msg401792 - (view) |
Author: Pablo Galindo Salgado (pablogsal) *  |
Date: 2021-09-14 19:10 |
Thanks Terry,
I have cherry-picked commit b441e99d89a3f05210cc36ade57699384986ca00 to the 3.10.0 release branch!
|
msg401795 - (view) |
Author: Tal Einat (taleinat) *  |
Date: 2021-09-14 19:46 |
Pablo, I'm not sure what you cherry-picked, but this fix for macOS broke the completions pop-up on Linux, and that appears to still be the state of things now on the 3.10.0 branch. Let's please not leave things this way if at all possible.
|
msg401797 - (view) |
Author: Pablo Galindo Salgado (pablogsal) *  |
Date: 2021-09-14 19:57 |
> Pablo, I'm not sure what you cherry-picked,
I cherry-picked https://github.com/python/cpython/pull/26684
but this can be easily undone as this is cherry-picked to the 3.10.0 release branch that I have much more control upon.
What would you prefer me to do: undo the cherry-picking or wait for https://github.com/python/cpython/pull/28328/files ?
Notice that this would need to be done ASAP if you want it to be in 3.10.0, otherwise will have to wait until 3.10.1
|
msg401804 - (view) |
Author: Terry J. Reedy (terry.reedy) *  |
Date: 2021-09-14 23:09 |
Pablo, sorry I was not clear. PR_26684 and the line it added, having been merged last June, are already in the 3.10.0rc2 release. What I want to do immediately is disable the line with a '#'. I just posted an explanation on #34193. I am about to make a new PR to do so, and once it is merged and backported to 3.10 (but not 3.9), I will ask you to cherrypick it into the release branch.
|
|
Date |
User |
Action |
Args |
2022-04-11 14:59:28 | admin | set | github: 84309 |
2021-09-14 23:09:22 | terry.reedy | set | priority: release blocker -> normal
messages:
+ msg401804 |
2021-09-14 19:57:16 | pablogsal | set | messages:
+ msg401797 |
2021-09-14 19:46:09 | taleinat | set | messages:
+ msg401795 |
2021-09-14 19:10:38 | pablogsal | set | messages:
+ msg401792 |
2021-09-14 06:30:19 | taleinat | set | messages:
+ msg401759 |
2021-09-14 06:25:49 | taleinat | set | messages:
+ msg401757 |
2021-09-14 06:19:40 | taleinat | set | messages:
+ msg401756 |
2021-09-14 00:23:05 | terry.reedy | set | messages:
+ msg401745 |
2021-09-14 00:21:13 | terry.reedy | set | priority: normal -> release blocker nosy:
+ pablogsal, lukasz.langa messages:
+ msg401744
|
2021-06-11 23:26:00 | terry.reedy | set | status: open -> closed resolution: fixed messages:
+ msg395670
stage: patch review -> resolved |
2021-06-11 23:24:43 | terry.reedy | set | messages:
+ msg395669 |
2021-06-11 23:24:24 | terry.reedy | set | messages:
+ msg395668 |
2021-06-11 22:56:27 | miss-islington | set | pull_requests:
+ pull_request25272 |
2021-06-11 22:55:44 | miss-islington | set | nosy:
+ miss-islington pull_requests:
+ pull_request25271
|
2021-06-11 22:55:39 | terry.reedy | set | messages:
+ msg395667 |
2021-06-11 19:39:08 | thsubaku9 | set | keywords:
+ patch nosy:
+ thsubaku9 pull_requests:
+ pull_request25267
|
2021-06-11 19:37:22 | terry.reedy | set | stage: patch review messages:
+ msg395657 versions:
+ Python 3.10, Python 3.11, - Python 3.7, Python 3.8 |
2020-04-01 03:20:16 | terry.reedy | set | title: IDLE Show completions/ autocomplete pop-up not working -> IDLE Show completions pop-up not working on macOS nosy:
+ ned.deily, taleinat, ronaldoussoren
messages:
+ msg365447
versions:
+ Python 3.7, Python 3.9 components:
+ macOS |
2020-03-31 17:16:48 | darthur90 | create | |