From adb934701975f6b0214475d1a8d0d1ce727b9d4d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 16:32:59 +0200 Subject: Adding upstream version 3.38.1. Signed-off-by: Daniel Baumann --- docs/how-to-write-a-gedit-plugin.md | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/how-to-write-a-gedit-plugin.md (limited to 'docs/how-to-write-a-gedit-plugin.md') diff --git a/docs/how-to-write-a-gedit-plugin.md b/docs/how-to-write-a-gedit-plugin.md new file mode 100644 index 0000000..69e833e --- /dev/null +++ b/docs/how-to-write-a-gedit-plugin.md @@ -0,0 +1,45 @@ +How to write a gedit plugin +=========================== + +The [gedit-development-getting-started.md](gedit-development-getting-started.md) +documentation is a good start. + +Programming language for a gedit plugin +--------------------------------------- + +The preferred language is the C language, that way the code can be easily +refactored to be included in a library. + +Rust and Vala plugins are possible too since they are equivalent to C. + +Python plugins are possible too. + +### What if I prefer to write in Ruby/JS/Scheme/Perl/C#/modula-2/Oz/whatever… + +While GObject allows you to use many other languages, using more than one +interpreter in the same process is not possible, not only because of bloat and +performance, but also because different interpreted languages cannot manage +garbage collections of GObjects at the same time: see +[this email](https://mail.gnome.org/archives/desktop-devel-list/2010-August/msg00036.html). + +The gedit developers have chosen Python as the interpreted language. + +API reference +------------- + +Build gedit with `-D gtk_doc=true`, you can then browse the API reference in the +[Devhelp](https://wiki.gnome.org/Apps/Devhelp) application. + +To know how to write a plugin, refer to the +[libpeas](https://wiki.gnome.org/Projects/Libpeas) documentation as well. + +More documentation and tips +--------------------------- + +More documentation, for example a tutorial, would be useful. In the meantime, +the recommended thing to do is to see how core gedit plugins are implemented. + +### Unofficial documentation and tutorials (may be outdated) + +- [Writing plugins in Python](https://wiki.gnome.org/Apps/Gedit/PythonPluginHowTo) (a little outdated) +- [Writing plugins in Vala](https://wiki.gnome.org/Projects/Vala/Gedit3PluginSample) (maybe outdated) -- cgit v1.2.3