Sébastien Wilmet
2016-03-28 15:52:44 UTC
Hi,
I'm creating a new library called gtide, currently hosted on GitHub:
https://github.com/swilmet/gtide
It's to continue making the gedit source code more re-usable. The goal
of gtide is to create an MDI text editor framework:
https://wiki.gnome.org/Apps/Gedit/ReusableCode
https://wiki.gnome.org/Projects/GtkSourceView/MdiFramework
gtide would be a public API for gedit and gedit plugins. When moving
some code from gedit to gtide, the code in gedit would be removed and
the plugins need to use the gtide API instead.
The other solution is trying to keep the gedit API as-is and writing
proxy methods or an adapter. But it gets in the way:
- the API docs need to be duplicated (well anyway it's almost
non-existent in gedit).
- it's a lot of code to keep in gedit.
- other annoyances, like: for functions taking a variable number of
parameters, the proxy is a bit more complicated to write.
So I think putting the re-usable code in a shared library is the best
thing to do. That way it can be used directly in other text editors as
well.
When an API break is needed in gtide, we can bump the major version so
it's parallel installable with previous major versions. And that, every
6 months if needed. Who cares if we end up with gtide-17?
About the name, gtide, "edit" in "gedit" has been reversed. It can also
be seen as an acronym for "gedit to IDEs", which is the goal, easing the
creation of new text editors and IDEs. And this could create a "tide" in
the text editors field :) I prefer "gtide" than "gcode" (gcode was the
other name coming to my mind). For me, gedit is not about code, quite
the contrary, I use gedit only for non-programming text editing tasks. A
notepad-like. I guess the Microsoft employees who developed notepad
didn't use notepad to develop it. The same for me and gedit. So it makes
sense. Also, pronouncing "gtide" is more beautiful than "gcode", in my
opinion. And another reason is that there will maybe be a GtkCodeView in
the future, replacing GtkTextView/GtkSourceView.
So, creating gtide, porting the plugins to the gtide API etc, is quite a
bold move for gedit. But such a bold move is needed. The new library
needs to have a different namespace. And it needs to be different than
GtkSource, since the GtkSourceView repo is not suitable to develop a
framework where API breaks will probably be needed.
What do you think?
--
Sébastien
I'm creating a new library called gtide, currently hosted on GitHub:
https://github.com/swilmet/gtide
It's to continue making the gedit source code more re-usable. The goal
of gtide is to create an MDI text editor framework:
https://wiki.gnome.org/Apps/Gedit/ReusableCode
https://wiki.gnome.org/Projects/GtkSourceView/MdiFramework
gtide would be a public API for gedit and gedit plugins. When moving
some code from gedit to gtide, the code in gedit would be removed and
the plugins need to use the gtide API instead.
The other solution is trying to keep the gedit API as-is and writing
proxy methods or an adapter. But it gets in the way:
- the API docs need to be duplicated (well anyway it's almost
non-existent in gedit).
- it's a lot of code to keep in gedit.
- other annoyances, like: for functions taking a variable number of
parameters, the proxy is a bit more complicated to write.
So I think putting the re-usable code in a shared library is the best
thing to do. That way it can be used directly in other text editors as
well.
When an API break is needed in gtide, we can bump the major version so
it's parallel installable with previous major versions. And that, every
6 months if needed. Who cares if we end up with gtide-17?
About the name, gtide, "edit" in "gedit" has been reversed. It can also
be seen as an acronym for "gedit to IDEs", which is the goal, easing the
creation of new text editors and IDEs. And this could create a "tide" in
the text editors field :) I prefer "gtide" than "gcode" (gcode was the
other name coming to my mind). For me, gedit is not about code, quite
the contrary, I use gedit only for non-programming text editing tasks. A
notepad-like. I guess the Microsoft employees who developed notepad
didn't use notepad to develop it. The same for me and gedit. So it makes
sense. Also, pronouncing "gtide" is more beautiful than "gcode", in my
opinion. And another reason is that there will maybe be a GtkCodeView in
the future, replacing GtkTextView/GtkSourceView.
So, creating gtide, porting the plugins to the gtide API etc, is quite a
bold move for gedit. But such a bold move is needed. The new library
needs to have a different namespace. And it needs to be different than
GtkSource, since the GtkSourceView repo is not suitable to develop a
framework where API breaks will probably be needed.
What do you think?
--
Sébastien