<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Apologies to harp on this point, but in my opinion autocompletion is one of the vital things for a functional IDE. From a number of reviews I’ve read, the fact that autocomplete doesn’t work out of the box or with some easy configuration
 is the reason a lot of people put eric down not long after picking it up, without giving it a fair chance. So I would like to demonstrate how eric6 currently functions for me, and what I actually expect.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My setup:</p>
<p class="MsoNormal">I have a conda virtual-environment called eric6. For the sake of simplicity everything following will be done under this environment. I run eric6 under this environment and run help->Show Versions:</p>
<p class="MsoNormal"><img width="313" height="240" style="width:3.2604in;height:2.5in" id="Picture_x0020_3" src="cid:image001.png@01D46D1B.C30B0190"></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have the following plugins installed for autocompletion:<br>
                Eric Assistant</p>
<p class="MsoNormal">                Jedi</p>
<p class="MsoNormal">                Rope</p>
<p class="MsoNormal">I also have the QScintilla autocompletion enabled.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Under Preferences->Editor->APIs I have the “Compile APIs automatically” setting enabled, and under Python3 PyQt5 GUI project type I have the Python3.7, QScintilla2, and PyQt5 apis listed. All autocompletion options are enabled.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Under Preferences->Editor->Documentation Viewer I have the documentation viewer enabled with show documentation upon ‘(‘ set.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I now create a new project called “checkEricAutocompletion”. Progr. Language python3, project type PyQt5 GUI.</p>
<p class="MsoNormal">Present in the project is an __init__.py file. I will use this file to check autocompletion behavior.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><img width="597" height="144" style="width:6.2187in;height:1.5in" id="Picture_x0020_4" src="cid:image002.png@01D46D1D.74701A50"></p>
<p class="MsoNormal">This behavior is perfect – the autocomplete tool (I don’t know which one) is getting results from the QtCore module.</p>
<p class="MsoNormal">I import QDate.</p>
<p class="MsoNormal"><img width="551" height="261" style="width:5.7395in;height:2.7187in" id="Picture_x0020_5" src="cid:image003.png@01D46D1D.C3BCB370"></p>
<p class="MsoNormal">Again the results are good, I am seeing options that exist within QDate – I don’t know why I am seeing two of each though, I assume it is due to having multiple autocomplete plugins enabled. This list filters appropriately:</p>
<p class="MsoNormal"><img width="513" height="130" style="width:5.3437in;height:1.3541in" id="Picture_x0020_6" src="cid:image004.png@01D46D1E.08BDF420"></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here is where things get bad. Tabbing to complete currentDate gives me the following:</p>
<p class="MsoNormal"><img width="645" height="150" style="width:6.7187in;height:1.5625in" id="Picture_x0020_7" src="cid:image006.png@01D46D20.B2FE7A70"></p>
<p class="MsoNormal">The calltip is correct, but no documentation is available. The code info provider is set to Rope, changing to jedi gives the same non-result.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We can see from the calltip that QDate.currentDate() returns a QDate object, so the “now” variable should have many methods available to it. None of these are displayed when pressing ctrl+space.</p>
<p class="MsoNormal"><img width="355" height="174" style="width:3.6979in;height:1.8125in" id="Picture_x0020_8" src="cid:image008.png@01D46D1E.B6C0EB90"></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">To make matters worse, methods that do *<b>not</b>* exist for QDate types show as autocompletion options when typing some letters, eg:</p>
<p class="MsoNormal"><img width="465" height="327" style="width:4.8437in;height:3.4062in" id="Picture_x0020_9" src="cid:image009.png@01D46D1E.EA6326C0"></p>
<p class="MsoNormal">The desired behavior here is that the autocomplete tool knows what type of object the “now” variable is and only shows  methods that exist for that type. Maybe this is harder than it sounds due to the dynamic typing nature of python? Here
 is another example when looking at a method that *<b>does</b>* belong to QDate types:</p>
<p class="MsoNormal"><img width="515" height="215" style="width:5.3645in;height:2.2395in" id="Picture_x0020_10" src="cid:image010.png@01D46D1F.5B65D0C0"></p>
<p class="MsoNormal">The problem with showing so many options here is, suppose I ignore this box and continue to code, I will now be shown this calltip:
<img width="645" height="324" style="width:6.7187in;height:3.375in" id="Picture_x0020_13" src="cid:image013.png@01D46D20.B2FE7A70"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If instead I just tab without selecting the right option, I will be shown the wrong calltip</p>
<p class="MsoNormal"><img width="590" height="154" style="width:6.1458in;height:1.6041in" id="Picture_x0020_11" src="cid:image011.png@01D46D1F.98C7ED40"></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In reality, I should be shown this:</p>
<p class="MsoNormal"><img width="645" height="69" style="width:6.7187in;height:.7187in" id="Picture_x0020_12" src="cid:image017.png@01D46D20.B2FE7A70">
</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is all of this behavior what other users experience when using eric, or is there something wrong with my setup? If no, how can this be improved?</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,</p>
<p class="MsoNormal">Alex.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:csevast@auth.gr">Christos Sevastiadis</a><br>
<b>Sent: </b>Monday, October 22, 2018 5:57 PM<br>
<b>To: </b><a href="mailto:Eric@riverbankcomputing.com">Eric@riverbankcomputing.com</a><br>
<b>Subject: </b>Re: [Eric] Autocompletion behaviour</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Alex and Detlev,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It seems that the "Virtual Environment" option should affect not only the Start/Debug action but the Editor's code support functions, such as Autocompletion, Calltips and "Code Documentation", either. For the "Code Documentation" I use
 the Jedi provider instead of Rope, because Rope fails to show information in many cases of my imported modules. Probably this problem is also connected with the different virtual environments.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Regards<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Christos<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">Christos<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>