Gtef - GNOME Text Editor Framework
==================================

This is version 1.99.1 of Gtef.

Gtef is a library that eases the development of GtkSourceView-based text
editors and IDEs. Some of the Gtef code comes from gedit.

https://wiki.gnome.org/Apps/Gedit/ReusableCode
https://wiki.gnome.org/Projects/GtkSourceView/TdiFramework

The final goal is to create a Tabbed Document Interface (TDI) framework
suitable for text editors.

But the first short-term goal is to have a higher-level API to load and save a
file. All the errors would be handled by Gtef, showing GtkInfoBars etc.

Maybe some of the Gtef features will be moved to GtkSourceView when it's
considered more stable. So Gtef can also be seen as an incubator for some
GtkSourceView features.

The Gtef library is free software and is released under the terms of the
GNU Lesser General Public License.

Roadmap
-------

A roadmap is available alongside the GtkSourceView roadmap:
https://wiki.gnome.org/Projects/GtkSourceView/RoadMap

Warning - API/ABI stability
---------------------------

Gtef uses the same versioning *scheme* as GNOME, but not the same version
*numbers* at the same time. The package version has the form
'major.minor.micro'. If 'minor' is an even number, it means that it is a stable
version and that API/ABI stability is guaranteed, and that it is
backward-compatible with previous stable minor versions that have the same
major version (e.g. 1.2.x is backward-compatible with 1.0.x). When a new major
version is released, it means that the API or ABI is not backward-compatible
with previous major versions. Different major versions can be installed in
parallel.

To learn more about the GNOME versioning scheme:
https://developer.gnome.org/programming-guidelines/stable/versioning.html.en

Gtef contains more experimental APIs than GtkSourceView, sometimes even
unfinished features. It means that - if needed - new major versions are
released every 6 months, breaking the API to improve and design it
incrementally.

Dependencies
------------

- GLib >= 2.44
- GTK+ >= 3.20
- GtkSourceView >= 3.22
- libxml2 >= 2.5
- uchardet

Since uchardet is a fairly new library, here is the URL:
https://www.freedesktop.org/wiki/Software/uchardet/

Tarballs
--------

The real tarballs (those generated with 'make distcheck') are the *.tar.xz
tarballs. Do not use the tarballs auto-generated by GitHub (*.zip and
*.tar.gz).

Installation
------------

Simple install procedure:

  $ ./configure
  $ make
  [ Become root if necessary ]
  $ make install

See the file 'INSTALL' for more detailed information.

From the Git repository, the 'configure' script and the 'INSTALL' file are not
yet generated, so you need to run 'autogen.sh' instead, which takes the same
arguments as 'configure'.

To build the latest version of Gtef plus its dependencies from Git, Jhbuild can
be used:

    https://wiki.gnome.org/Projects/Jhbuild

But Gtef doesn't have yet a jhbuild module in one of the modulesets shipped by
jhbuild. So you need to run autogen.sh manually, inside a jhbuild shell, for
example (adjust the prefix):

  $ jhbuild shell
  $ ./autogen.sh --prefix=/path/jhbuild/prefix --disable-Werror --enable-gtk-doc --enable-vala --enable-code-coverage
  $ make
  $ make install

Applications that use Gtef
--------------------------

- gCSVedit: http://gcsvedit.sourceforge.net/
- LaTeXila: https://wiki.gnome.org/Apps/LaTeXila
