In last 3 weeks i've in development of new plugin-wrapper of geany plugin-api for python. Main idea - ability to write plugins in python with pygtk and mini-abstract level for geany structures. I've encountered with problem. I need to build bridge and for scintilla, but python have only 3 wrappers: pyscintilla(rip in <2004), pygtkscintilla(rip in 2004), pyqscintilla(rip with pyqt, because pyside don't have wrapper). Best way - pyqscintilla. But i want to write good and usefull mini-engine. And i trying to google information about this question. I found many mails in lists, where talking about scintilla and gtksource view. Main thing - scintilla is going to be RIP'd, cuz development rate too small and community, who interests in this library, very small. Best way - use gtksourceview, becouse it now(in 2.9) have got all necessary functionality and going to be best widget for source editor. As i think, now need to start moving onto gtksourceview as parallel work with 0.19. And at 0.20 fully go to gtksourceview.
At the end, gtksourceview is "native" to gtk+, unlike to scintilla. And, of cause, pygksourceview have very good wrapper to python.
What are you think?
Some links: 1) Old features list - http://projects.gnome.org/gtksourceview/features.html 2) Current changes and goals and information - http://live.gnome.org/GtkSourceView 3) References for latest version - http://library.gnome.org/devel/gtksourceview/unstable/
On Saturday 26 December 2009 06:33:01 am Денис Томилин wrote:
Best way - use gtksourceview, becouse it now(in 2.9) have got all necessary functionality and going to be best widget for source editor. What are you think?
Sorry, I didn't take (don't have) time (today) to look at the links--but my biggest question is does gtksourceview support folding (or have all the necessary "hooks" to support folding externally?
Randy Kramer
Some links:
- Old features list -
http://projects.gnome.org/gtksourceview/features.html 2) Current changes and goals and information - http://live.gnome.org/GtkSourceView 3) References for latest version - http://library.gnome.org/devel/gtksourceview/unstable/
On Sat, 26 Dec 2009 08:41:04 -0400% Randy Kramer rhkramer@gmail.com wrote:
On Saturday 26 December 2009 06:33:01 am Денис Томилин wrote:
Best way - use gtksourceview, becouse it now(in 2.9) have got all necessary functionality and going to be best widget for source editor. What are you think?
Sorry, I didn't take (don't have) time (today) to look at the links--but my biggest question is does gtksourceview support folding (or have all the necessary "hooks" to support folding externally?
Randy Kramer
Some links:
- Old features list -
http://projects.gnome.org/gtksourceview/features.html 2) Current changes and goals and information - http://live.gnome.org/GtkSourceView 3) References for latest version - http://library.gnome.org/devel/gtksourceview/unstable/
I just had a look at those links. Here is a citation from 2) http://live.gnome.org/GtkSourceView:
"Code Folding
With the new support for hidden text in GTK+-2.8 we can now support code folding in GtkSourceView.
This is implemented and waiting for review (see bug 134610 https://bugzilla.gnome.org/show_bug.cgi?id=134610)"
Best regards, Eugene.
On Sat, 26 Dec 2009 14:33:01 +0300, Денис wrote:
Hi,
In last 3 weeks i've in development of new plugin-wrapper of geany plugin-api for python. Main idea - ability to write plugins in python with pygtk and mini-abstract level for geany structures.
Cool!
I've encountered with problem. I need to build bridge and for scintilla, but python have only 3 wrappers: pyscintilla(rip in <2004),
I think writing a Scintilla wrapper in Python isn't necessary or at least it is a bit overkill. It should be enough to simply provide the scintilla_send_message() function of the Geany plugin API. This function is quite generic and can be used to call each Scintilla function. The only thing you need to do is to provide the list of the message names (SCI_*). I agree that a full wrapper API would be nicer and would feel more pythonic but still we don't even have this in C (in Geany we have sciwrappers.c which wraps a small part of the API, mostly calls we need often or where a small part of converting/logic is necessary).
write good and usefull mini-engine. And i trying to google information about this question. I found many mails in lists, where talking about scintilla and gtksource view. Main thing - scintilla is going to be RIP'd, cuz development rate too small and community, who interests in
IMO this is not an argument at all. Scintilla is not dead, it is actively not developed and recently it reached version 2.0 which supports multiple selection and virtual space (though we don't use it yet in Geany but this will happen soon).
this library, very small. Best way - use gtksourceview, becouse it now (in 2.9) have got all necessary functionality and going to be best widget for source editor. As i think, now need to start moving onto gtksourceview as parallel work with 0.19. And at 0.20 fully go to gtksourceview.
It's not that easy. Impulsively, I see two main problems:
a) You mention "in 2.9" which is not yet stable or at least very new. In Geany, we try to be backwards compatible where it is possible, e.g. the minimum requirement for GTK is 2.8 while 2.18 is recent. Using a very new GtkSourceView would exclude (and in the long turn probably loose) lots of users who can't or don't want to update their systems.
b) It's not that easy to simply exchange the editing component. Geany and Scintilla are quite linked to each other (well, Geany to Scintilla, not the other way round). Changing would mean we would need to introduce a new wrapper which abstracts the actual API of the editing component from Geany. And then, Scintilla has a different concept for syntax highlighting than GtkSourceView which would make it even harder, also regarding compatibility of config files.
At the end, gtksourceview is "native" to gtk+, unlike to scintilla.
This is not true. Scintilla is "native to GTK". It's just the API which works like the Windows message stuff. Anyway, Scintilla provides a native GTK widget.
My conclusion:
It's not worth changing it especially if the features we need are only available in a yet unstable, non-released version of GtkSourceView.
Regards, Enrico
This is not an urgent thought. Just look to the future. I'm just saying that it makes sense to start changing, because it will end at a time, when the right version of gtksourceview already be stable. As i think.
This is not true.
I mean that scintilla isn't part of "gtk" project, isn't close child.
At this moment, i stopped works on "pygeany"(yeah, i gave a name to it), cuz i want to try to write editor with all concepts, what i need, but on D-lang. Ofc, i using concepts of geany, but with some modifications and additions from vim, scribes, emacs, textmate. And, ofc, i using gtksourceview(bad news - need to write binding for it, but i believe in help of people from russian popular linux-themed forum linux.org.ru :D). If it failed, i will resume works on pygeany. 2009/12/28 Enrico Tröger enrico.troeger@uvena.de
On Sat, 26 Dec 2009 14:33:01 +0300, Денис wrote:
Hi,
In last 3 weeks i've in development of new plugin-wrapper of geany plugin-api for python. Main idea - ability to write plugins in python with pygtk and mini-abstract level for geany structures.
Cool!
I've encountered with problem. I need to build bridge and for scintilla, but python have only 3 wrappers: pyscintilla(rip in <2004),
I think writing a Scintilla wrapper in Python isn't necessary or at least it is a bit overkill. It should be enough to simply provide the scintilla_send_message() function of the Geany plugin API. This function is quite generic and can be used to call each Scintilla function. The only thing you need to do is to provide the list of the message names (SCI_*). I agree that a full wrapper API would be nicer and would feel more pythonic but still we don't even have this in C (in Geany we have sciwrappers.c which wraps a small part of the API, mostly calls we need often or where a small part of converting/logic is necessary).
write good and usefull mini-engine. And i trying to google information about this question. I found many mails in lists, where talking about scintilla and gtksource view. Main thing - scintilla is going to be RIP'd, cuz development rate too small and community, who interests in
IMO this is not an argument at all. Scintilla is not dead, it is actively not developed and recently it reached version 2.0 which supports multiple selection and virtual space (though we don't use it yet in Geany but this will happen soon).
this library, very small. Best way - use gtksourceview, becouse it now (in 2.9) have got all necessary functionality and going to be best widget for source editor. As i think, now need to start moving onto gtksourceview as parallel work with 0.19. And at 0.20 fully go to gtksourceview.
It's not that easy. Impulsively, I see two main problems:
a) You mention "in 2.9" which is not yet stable or at least very new. In Geany, we try to be backwards compatible where it is possible, e.g. the minimum requirement for GTK is 2.8 while 2.18 is recent. Using a very new GtkSourceView would exclude (and in the long turn probably loose) lots of users who can't or don't want to update their systems.
b) It's not that easy to simply exchange the editing component. Geany and Scintilla are quite linked to each other (well, Geany to Scintilla, not the other way round). Changing would mean we would need to introduce a new wrapper which abstracts the actual API of the editing component from Geany. And then, Scintilla has a different concept for syntax highlighting than GtkSourceView which would make it even harder, also regarding compatibility of config files.
At the end, gtksourceview is "native" to gtk+, unlike to scintilla.
This is not true. Scintilla is "native to GTK". It's just the API which works like the Windows message stuff. Anyway, Scintilla provides a native GTK widget.
My conclusion:
It's not worth changing it especially if the features we need are only available in a yet unstable, non-released version of GtkSourceView.
Regards, Enrico
-- Get my GPG key from http://www.uvena.de/pub.asc
Geany-devel mailing list Geany-devel@uvena.de http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
On Mon, 28 Dec 2009 23:52:21 +0300, Денис wrote:
This is not an urgent thought. Just look to the future. I'm just saying that it makes sense to start changing, because it will end at a time, when the right version of gtksourceview already be stable. As i think.
I still don't see the point why we should change. So far, the only argument I found is that GtkSourceView slowly gets the features we already use in Scintilla. Maybe it has the one or the other little other feature Scintilla doesn't have but still, except for the other name (see below), I didn't see any real reason for changing. Scintilla is not dead nor is it in any way not native to GTK.
An interesting question could be which engine is faster but this is probably hard to test and maybe not even worth if the difference is quite small or not even noticeable.
This is not true.
I mean that scintilla isn't part of "gtk" project, isn't close child.
GtkSourceView isn't part of the GTK project as well, it only has GTK in its name which is by no means any reason to use it, at least not to prefer it over Scintilla.
At this moment, i stopped works on "pygeany"(yeah, i gave a name to
Sad to hear.
If it failed, i will resume works on pygeany.
I hope you will fail, just to get you back to Geany. (Don't take it too serious :D.)
Regards, Enrico
Am 29.12.2009 19:55, schrieb Enrico Tröger:
An interesting question could be which engine is faster but this is probably hard to test and maybe not even worth if the difference is quite small or not even noticeable.
From my POV, scintilla is pretty slow. Especially on windows where scrolling is painfully slow, but also for opening the auto-completition list (although I remember it was way faster some month ago, so it could be my system(s)). I don't know whether gtksourceview does better.
Other than that, I don't see much of a point for changing. But I do think supporting both would be awesome (even if via a compile time switch only) :) Best regards.
On 12/29/2009 01:12 PM, Thomas Martitz wrote:
Am 29.12.2009 19:55, schrieb Enrico Tröger:
An interesting question could be which engine is faster but this is probably hard to test and maybe not even worth if the difference is quite small or not even noticeable.
From my POV, scintilla is pretty slow. Especially on windows where scrolling is painfully slow, but also for opening the auto-completition list (although I remember it was way faster some month ago, so it could be my system(s)). I don't know whether gtksourceview does better.
When I was building Geany on my 1.5GHz PowerBook G4, the performance was very poor. Meanwhile, the performance of Gedit was more acceptable. Komodo had similar performance issues, and that was an OS X "native" build of Scintilla. (I'm not sure if Scintilla uses the Carbon or Cocoa API on OS X; probably Carbon.)
That's not to say Scintilla is inherently slower than GtkSourceView, but there was noticeable difference back then.
Other than that, I don't see much of a point for changing. But I do think supporting both would be awesome (even if via a compile time switch only) :) Best regards.
I think it would be an interesting idea to at least try out. I like the sound of mixing languages with GtkSourceView. For example, PHP + HTML + JavaScript + CSS = clear winner. This feature has been on Scintilla's radar for quite a while, but not much has happened with it yet. (To be fair, Scintilla's PHP lexer is also its HTML lexer.)
Speaking of changing the text editor widget, maybe one day Geany will be able to use Bespin! (Just a joke. But MVS separation would allow for something as crazy as that.)
That's not to say Scintilla is inherently slower than GtkSourceView
I dunno. I hear about slow perfomance of scintilla, but, at this time, it isn't problem and not a first problem of it.
I think it would be an interesting idea to at least try out. like the sound
of mixing languages with GtkSourceView
This feature has been on Scintilla's radar for quite a while, but not much
has happened with it yet. Scintilla API documentstion and comments are pretty bad. Scintilla have many features, but for using of its, need to be god/devil/evil of coding. Really. I've talked with one developer, who uses scintilla for parsing of mixed sources. He said that this feature not too hard, but need to have big knowlege about scintilla. Yes, i don't think that this reasonable, spend time to explore this code. Instead, we can use gtksourceview with it's documentation and easy-to-use functionality.
Speaking of changing the text editor widget, maybe one day Geany will be
able to use Bespin! (Just a joke. But MVS separation would allow for something as crazy as that. Bespin - good editor for web-applications. Maybe good. But geany isn't web-editor. Ofc, good joke)
On Tue, Dec 29, 2009 at 11:48 PM, Jason Oster jason.oster@campnavajo.comwrote:
On 12/29/2009 01:12 PM, Thomas Martitz wrote:
Am 29.12.2009 19:55, schrieb Enrico Tröger:
An interesting question could be which engine is faster but this is probably hard to test and maybe not even worth if the difference is quite small or not even noticeable.
From my POV, scintilla is pretty slow. Especially on windows where scrolling is painfully slow, but also for opening the auto-completition list (although I remember it was way faster some month ago, so it could be my system(s)). I don't know whether gtksourceview does better.
When I was building Geany on my 1.5GHz PowerBook G4, the performance was very poor. Meanwhile, the performance of Gedit was more acceptable. Komodo had similar performance issues, and that was an OS X "native" build of Scintilla. (I'm not sure if Scintilla uses the Carbon or Cocoa API on OS X; probably Carbon.)
That's not to say Scintilla is inherently slower than GtkSourceView, but there was noticeable difference back then.
Other than that, I don't see much of a point for changing. But I do
think supporting both would be awesome (even if via a compile time switch only) :) Best regards.
I think it would be an interesting idea to at least try out. I like the sound of mixing languages with GtkSourceView. For example, PHP + HTML + JavaScript + CSS = clear winner. This feature has been on Scintilla's radar for quite a while, but not much has happened with it yet. (To be fair, Scintilla's PHP lexer is also its HTML lexer.)
Speaking of changing the text editor widget, maybe one day Geany will be able to use Bespin! (Just a joke. But MVS separation would allow for something as crazy as that.)
Geany-devel mailing list Geany-devel@uvena.de http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
On Wed, 30 Dec 2009 02:40:06 +0300, Денис wrote:
That's not to say Scintilla is inherently slower than GtkSourceView
I dunno. I hear about slow perfomance of scintilla, but, at this time, it isn't problem and not a first problem of it.
Except for the already mentioned scrolling issues, I've never had problems with Scintilla's performance. But to be fair, I have quite good hardware so it might be I just don't notice it. Though this can be never an excuse for not optimizing code to its maximum (The application seems slow? Buy better hardware! haha).
This feature has been on Scintilla's radar for quite a while, but not much
has happened with it yet. Scintilla API documentstion and comments are pretty bad. Scintilla
That's not true, at least you can't say this objectively. Scintilla's documentation is different and in a maybe non-common format (not doxygen, not gtk-doc) but it's good enough to work with. Even without being god/devil/whatever :). If *you* don't like it, it's your personal opinion which is fully ok. But I wouldn't consider this an argument to change the editing component in Geany :).
have many features, but for using of its, need to be god/devil/evil of coding. Really. I've talked with one developer, who uses scintilla for parsing of mixed sources. He said that this feature not too hard, but need to have big knowlege about scintilla. Yes, i don't think that this reasonable, spend time to explore this code. Instead, we can use gtksourceview with it's documentation and easy-to-use functionality.
Hmmm. Since GtkSourceView uses a GtkSourceBuffer which is a subclass of a GtkTextBuffer, all its operations are based on GtkTextIters. I personally find iters more difficult to use than plain text positions which Scintilla does. Not that iters aren't good, they have big advantages over plain positions but still don't make it more easy to use. But again, this is quite a personal point of view. What I want to say is, saying the one or the other engine is better/worse than the other just because it's "easier" to use, is very subjective. Once you got familiar with the Scintilla API, it isn't that hard to use anymore and also not that strange anymore. And this is probably true for anything else which is different in some way :).
Happy new year, Enrico
On Tue, 29 Dec 2009 21:12:36 +0100, Thomas wrote:
Am 29.12.2009 19:55, schrieb Enrico Tröger:
An interesting question could be which engine is faster but this is probably hard to test and maybe not even worth if the difference is quite small or not even noticeable.
From my POV, scintilla is pretty slow. Especially on windows where scrolling is painfully slow, but also for opening the
This isn't strictly Scintilla's fault. It's rather because of the fact that we use the GTK port of Scintilla on Windows while Scintilla has its own Windows port which runs way faster. But using it isn't that easy as everything around is still GTK. But this is something we maybe could improve.
auto-completition list (although I remember it was way faster some month ago, so it could be my system(s)). I don't know whether
The question is whether really the plain displaying(i.e. drawing it on the screen) of the list is slow or whether generating the contents of the list is slow. The drawing is Scintilla's part, filling values into the list is Geany's part which could also be slow.
Regards, Enrico
Am Mittwoch, den 30.12.2009, 00:26 +0100 schrieb Enrico Tröger:
On Tue, 29 Dec 2009 21:12:36 +0100, Thomas wrote:
Am 29.12.2009 19:55, schrieb Enrico Tröger:
An interesting question could be which engine is faster but this is probably hard to test and maybe not even worth if the difference is quite small or not even noticeable.
From my POV, scintilla is pretty slow. Especially on windows where scrolling is painfully slow, but also for opening the
This isn't strictly Scintilla's fault. It's rather because of the fact that we use the GTK port of Scintilla on Windows while Scintilla has its own Windows port which runs way faster. But using it isn't that easy as everything around is still GTK. But this is something we maybe could improve.
auto-completition list (although I remember it was way faster some month ago, so it could be my system(s)). I don't know whether
The question is whether really the plain displaying(i.e. drawing it on the screen) of the list is slow or whether generating the contents of the list is slow. The drawing is Scintilla's part, filling values into the list is Geany's part which could also be slow.
Regards, Enrico
For those guys having performance problems on Windows with Geany, I would recommend to have a look on Programmers Notepad: www.pnotepad.org, it uses - other than Geany - the Windows port of Scintilla (AFAIK). This also would have the effect, that it could be found out if there is a generic problem or a problem related to the GTK port of Scintilla (or maybe even Geany).
Hope that maybe helps out the Windows-using guys until the Windows-Port of Geany got improved ;)
Btw: I personally did not have any problems with Geany on Windows yet, just one time Geany used 100% CPU, in month of using Geany on Windows at work. And I'm using the nightly builds. :)
Regards, Dominic
On Sat, 26 Dec 2009 14:33:01 +0300, Денис wrote:
Hi,
In last 3 weeks i've in development of new plugin-wrapper of geany plugin-api for python. Main idea - ability to write plugins in python with pygtk and mini-abstract level for geany structures. I've encountered with problem. I need to build bridge and for scintilla, but python have only 3 wrappers: pyscintilla(rip in <2004),
besides the discussion the using Scintilla or GtkSourceView and the fact that you stopped using Geany :(, would you mind sharing your work you had done so far already? Maybe someone else can step in and finish it?
Thanks.
Regards, Enrico