Hi Larry, thank you so much this is a great feedback! (sorry if my reply is so short!) I will carefully read your mail.....there are plenty of good advice!
I'll do some tests on the basis of what you told me and let you know! All the best! -SL 2012/9/4 Larry Shaffer <[email protected]>: > Hi Salvatore, > > On Tue, Sep 4, 2012 at 9:13 AM, Salvatore Larosa <[email protected]> wrote: >> Hello everyone, I am working to implement the auto complete in QGIS >> python console. >> At the time, I came to this result: [1] > > That looks great already! Very welcome addition. > >> Still a few things missing: >> 1) run command with multi-line text >> 2) styled text for errors, traceback, message etc. > > If you're thinking of tinkering with the traceback output dialog, > please consider some of the suggestions put forth here [0], which > include more complete frame info, like variables, etc. There is > already good sample code for this in the Django project debug output > (as mentioned by Martin)[1]. > > For styling purposes, it may be possible to output the traceback in > HTML, like with Django, then style it with CSS in a QWebView (see > Martin's initial response to my post). > > [0] > http://osgeo-org.1560.n6.nabble.com/Changes-to-python-utils-py-td4977090.html > [1] https://github.com/django/django/blob/master/django/views/debug.py > >> 3) fix up events when keys are pressed (keyPressEvent) >> 4) other minor errors. >> >> Basically I changed the class QTextEdit with QsciScintilla using >> pieces of code from [2] >> and, for API syntax, the files provided by Larry Shaffer (thanks). >> >> I'm having some difficulties as disable the undo/redo and I can not >> use styles to the text (font, color, etc) if the Lexer is enabled! > > Concerning undo, it looks like you can't turn it off, but maybe you > can just make sure its buffer is always emptied if it contains > anything instead? (not tested) > > Qsci-object.SendScintilla(QsciScintilla.SCI_EMPTYUNDOBUFFER) > > > Concerning styles, some are set for the Qsci object and some are set > for its currently bound lexer (I assume you are using > QsciLexerPython). I believe styles can be adjusted either before the > lexer is applied or after (though you may have to clear them first, if > after). > > For examples of doing this see Eric4 source here [0], specifically > __setTextDisplay() method for styling Qsci object at line #2156 and > here[1] for info on setting lexer style blocks. For the lexer styles, > you instantiate the lexer then override the styles you want using > their lexer-specific enum value as a reference (e.g. keyword, number, > operator, etc.) [2], then apply the lexer to the Qsci object: > > lexer-object.setColor(QColor, 1) # for setting color of operators > > If you change the coloring styles, I believe you lastly need to call > Qsci-object.recolor(). > > [0] > http://die-offenbachs.homelinux.org:48888/viewvc/eric4%20IDE/eric4/trunk/QScintilla/MiniEditor.py?view=markup > [1] > http://die-offenbachs.homelinux.org:48888/viewvc/eric4%20IDE/eric4/trunk/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py?view=markup > [2] > http://www.riverbankcomputing.co.uk/static/Docs/QScintilla2/classQsciLexer.html > , > http://www.riverbankcomputing.co.uk/static/Docs/QScintilla2/classQsciLexerPython.html > > >> Any feedback and help are welcome! > > I did some research on QScintilla2 APIs and QGIS supported platforms > and their distros. I came to the conclusion that, at this time, the > QScintilla2 API to use is 2.4.5 (no higher). This supports as far back > as Natty on Ubuntu desktop, but is possibly even a bit too new for > some distros like CentOS. You can download the docs as part of the > source here [0]. > > [0] http://packages.ubuntu.com/source/natty/qscintilla2 > > > Also, concerning the compiled .api files, it would be very > advantageous to have the Python 2.7 .api mixed in there as well (if > it's not). That api file should be included in the current source of > QScintilla2 ( <src-dir>/qsci/api/python or > /usr/local/Qt4.?/qsci/api/python/ ). Not sure if you included a PyQt4 > api as well, but that should probably be based off of Qt 4.6 or 4.7, > depending upon current unfinished(?) decision on QGIS base Qt version > to support with next release. > > I have most of these api files archived, if you need any. I have > tested the Qsci editor in QGIS with over 54,000 compiled api lines > with no appreciable slow down, though the list of possible completions > gets too long. > > In my Plugin Editor plugin, I currently store a user-generated > compiled api file in ~/.config/QGIS_PluginEditor/python.pap [0]. > However, if it were QGIS-generic, say, ~/.config/qgis_apis/python.pap > instead, anyone who uses my plugin or Eric4 can compile a custom > python.pap and place it in ~/.config/qgis_apis/python.pap to > user-override the console's auto-completion and call tips (very > handy!). Most Python packages (osgeo, for example) can be loaded into > Eric4 and have a Qsci-compatible api file generated. > > [0] http://dl.dropbox.com/u/4058089/qgis/editor_apis.png > > Regards, > > Larry > > >> Regards, >> >> -SL >> >> [1] - http://lrssvt.ns0.it/autocompletion.ogv >> [2] - https://code.google.com/p/pydee/ >> >> -- >> Salvatore Larosa >> linkedIn: http://linkedin.com/in/larosasalvatore >> twitter: @lrssvt >> skype: s.larosa >> IRC: lrssvt on freenode >> _______________________________________________ >> Qgis-developer mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/qgis-developer -- Salvatore Larosa linkedIn: http://linkedin.com/in/larosasalvatore twitter: @lrssvt skype: s.larosa IRC: lrssvt on freenode _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
