I’ve launched two months ago a fundraising for the GtkSourceView library. I intend to write a report every two months, so that you can follow what’s going on in that project, and at the same occasion I can explain in more details some facets of the fundraising.
Only one maintainer (me)
For most of the code in GtkSourceView, there is basically only one remaining maintainer: myself. Tobias Schönberg helps to maintain and review some *.lang files (for the support of syntax highlighting), especially in the area of web development. But that’s it.
Here are the top 5 contributors, in terms of number of commits:
$ git shortlog -sn | head -5
1372 Sébastien Wilmet
531 Paolo Borelli
289 Ignacio Casal Quinteiro
200 Jesse van den Kieboom
149 Yevgen Muntyan
So you can see that I’m the first contributor. All the other developers also contributed during their free time, and they don’t have enough free time anymore (they have an unrelated full-time job, etc).
So in some way, the future of GtkSourceView rests in my hands.
File loading and saving
These past weeks my focus was on file loading and saving in Tepl (the incubator for GtkSourceView).
There are several layers for the file loading and saving:
- The backend/toolkit part, i.e. the low-level API, it’s what I’ve added to GtkSourceView in 2014 but needs improvements.
- The high-level API taking care of the frontend, part of the Tepl framework.
- Some features that are built on top of the high-level API, for example an action to save all documents, or the auto-save to automatically save a document periodically.
For the first layer, the backend/toolkit part, Tepl provides two new things: file metadata (for example to save the cursor position) and a new file loader based on uchardet, to improve the character encoding auto-detection. This past month I’ve improved the new file loader, it is now in a good enough shape for most applications (but still lacks some features compared to the old file loader, so some work is still needed to be able to deprecate the old implementation).
For the second layer, I’ve started to create the high-level API. Creating the API is not the most difficult, the bulk of the work will be to improve what the implementation does internally (creating infobars, handling errors, etc).
The third layer has not yet started.
File loading and saving was not the only thing that I did these past two months, a lot of other smaller things have been done, for more details see the NEWS files:
Even if GtkSourceView already provides a lot of features, it is far from sufficient to create even a basic text editor (to have an implementation of a good quality). To give a concrete example, the core of gedit – if we remove all the plugins – is currently made of 40.000 lines of code! It’s a lot of work for a developer who wants to create a specialized text editor or a new IDE.
So my goal with GtkSourceView and Tepl is to make more code re-usable.
See the GtkSourceView fundraising on Liberapay. Thanks for your support!