GTK 4 port of GtkSourceView
This is a substantial branch that includes a major port to GTK 4 as well as notable other features which were implemented on top of this branch while waiting for GTK 4 to be ready enough to land as our development branch.
Notably, this includes:
- A basic GTK 4 port
- Move to 5.x ABI (4.x stable branch is available on gtksourceview-4-8 branch series)
- Changes how renderers are done (they are now widgets) as we've changed the necessary bits in GtkTextView to support that
- A new abstraction GtkSourceLines to help reduce the overhead of gutter generation which has been a sore spot when it comes to rendering performance. This significantly reduces that overhead by allowing a single pass through line information generation. Renderers then use this to draw generated information.
- A new snippet engine based upon GNOME Builder's, but with significant changes to be suitable upstream
- Assistant subsystem to attach popups to textmarks
- A new completion engine based on GNOME Builder's which allows for much reduced overhead in compiling and displaying results. It also supports Wayland popups more correctly
- Informative tooltips to provide context information, such as to snippets
There is much stabilizing to do before 5.x is released, but the goal is to have a simultaneous or similar release cycle to GTK 4 this winter as many applications will require this to get started. Therefore, this needs to happen now.