[gedit/wip/swilmet/dev-getting-started: 2/2] docs: gedit-development-getting-started: improve it, in Markdown



commit 06364980e6ea525ff1d699fe5d09df4a89e3069c
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun Aug 25 12:27:59 2019 +0200

    docs: gedit-development-getting-started: improve it, in Markdown
    
    GitLab will render the Markdown file.
    
    While I convert the content to Markdown, I also make improvements and
    updates to the text.

 ...tarted => gedit-development-getting-started.md} | 54 ++++++++++++++++++----
 1 file changed, 45 insertions(+), 9 deletions(-)
---
diff --git a/docs/gedit-development-getting-started b/docs/gedit-development-getting-started.md
similarity index 57%
rename from docs/gedit-development-getting-started
rename to docs/gedit-development-getting-started.md
index 1a7e10ffd..99b3c838b 100644
--- a/docs/gedit-development-getting-started
+++ b/docs/gedit-development-getting-started.md
@@ -1,12 +1,48 @@
-= gedit development - getting started =
-
-== Libraries used ==
-
-First, you may be interested by the [[https://developer.gnome.org/|GNOME developer center]] and the 
[[http://www.gtk.org/|GTK+ website]], to know what is GLib, GObject and GTK+. Check also the [[Newcomers]] 
page to start contributing to GNOME in general.
-
-The main widget used by gedit is !GtkTextView, a general-purpose multiline text editor. To learn 
!GtkTextView, read the excellent [[http://www.bravegnu.org/gtktext/|tutorial]]. But !GtkTextView is not 
enough for source code edition. gedit actually uses the [[Projects/GtkSourceView|GtkSourceView]] library, 
which contains a subclass of !GtkTextView with syntax highlighting, a completion framework, the search and 
replace, and many other features useful for a text editor or an IDE.
-
-For its plugin system, gedit uses the [[https://git.gnome.org/browse/libpeas/tree/README|libpeas]] library. 
While the gedit core, !GtkSourceView and libpeas are all written in C, gedit plugins can be written in other 
languages, such as [[Projects/Vala|Vala]] or Python.
+gedit development - getting started
+===================================
+
+Programming languages and paradigm
+----------------------------------
+
+gedit is mostly written in C, with some plugins in Python or
+[Vala](https://wiki.gnome.org/Projects/Vala/). The build system is in
+[Meson](https://mesonbuild.com/).
+
+The code is Object-Oriented. In C, it's thanks to the use of the GObject
+library (see next section). If you open some `*.c` or `*.h` files, you may
+think “what is this horror?!” but – don't panic – it's just some C/GObject
+boilerplate code, and that boilerplate can be generated by a tool. So once
+you've learned GObject, you will no longer be afraid ;-)
+
+Libraries used
+--------------
+
+As every GNOME application, gedit uses the GLib, GObject and GTK libraries. To
+modify the gedit source code, you should be familiar with those libraries. See
+the [GTK website](https://www.gtk.org/) and the document
+[The GLib/GTK Development Platform – A Getting Started 
Guide](https://people.gnome.org/~swilmet/glib-gtk-book/).
+
+The main widget used by gedit is GtkTextView, a general-purpose multiline text
+editor. To learn that widget API, read the excellent
+[GtkTextView tutorial](http://www.bravegnu.org/gtktext/) (a bit old but still
+mostly valid). But GtkTextView is not enough for source code edition. gedit
+actually uses the
+[GtkSourceView](https://wiki.gnome.org/Projects/GtkSourceView) library, which
+contains a subclass of GtkTextView with syntax highlighting, a completion
+framework, the search and replace, and many other features useful for a text
+editor or an IDE.
+
+For its plugin system, gedit uses the
+[libpeas](https://wiki.gnome.org/Projects/Libpeas) library.
+
+Plugins may have other dependencies, for example the spell-checking plugin uses
+[gspell](https://wiki.gnome.org/Projects/gspell).
+
+First contribution
+------------------
+
+See the [Newcomers](https://wiki.gnome.org/Newcomers/) page to start
+contributing to GNOME in general.
 
 == Build ==
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]