[Eric] Srange intellisense behavior.

Detlev Offenbach detlev at die-offenbachs.de
Fri Mar 28 10:02:31 GMT 2008


On Donnerstag, 27. März 2008, Phil Thompson wrote:
> On Wednesday 26 March 2008, Detlev Offenbach wrote:
> > On Dienstag, 25. März 2008, objectref wrote:
> > > Hi to all,
> > >
> > > I created an empty project in Eic4 and add a new form. The Qt Designer
> > > opens and I construct the form with the widgets I need. Form file is
> > > saved as findandrelace.ui.
> > > I close the designer, see this file in project-Viewer, I do a "compile
> > > form" and now I have a file Ui_findandreplace.py in project-Viewer
> > > Sources.
> > >
> > > I add a file to the project so I can "use" the designer-generated class
> > > and show the form, just the usual way. I do an "import
> > > Ui_findandreplace" but I cannot see any properties/methods with the
> > > intellisense.
> > >
> > > E.x. I press Ui_findandreplace.Ui_FindAndReplaceDlg. and with
> > > Ctrl-Space I suppose I would see the setupUi() method but I do not.
> > >
> > > Am I doing something wrong ??
> >
> > No, you are doing fine. That feature is not present in eric4. QScintilla2
> > expects API files of a specific format which it compiles into an internal
> > format. Eric4 doesn't scan a file when it is saved in order to generate
> > an API file. And if it did, this API file would need to be added to the
> > list of API files for Python and would need to be compiled. After that
> > step, the completions would be available for all Python scripts. Dynamic
> > autocompletion is not supported by QScintilla2.
>
> Dynamically adding API entries is supported, but parsing Python code to
> determines what those entries should be isn't the job of an editor widget.
>
> It shouldn't be too difficult to compile the generated Python code and
> extract the new classes, methods etc and dynamically add them as API
> entries.
>

That is true, the basic framework to do this is already present in eric4. 
However, once the add method of QsciAPIs is used, the APIs needs to be 
compiled (if I understand the docu right). If a project is closed, those 
entries need to be removed from the APIs and these need a recompilation 
again. Furthermore, how do I get rid of the API entries for a specific module 
or class? I think this step should be done before a file is reparsed. And 
after all this, the API needs a recompilation again (which means, the info is 
available after some time only).


Regards,
Detlev
-- 
Detlev Offenbach
detlev at die-offenbachs.de



More information about the Eric mailing list