GTK 4 port of GtkSourceView

Christian Hergert requested to merge wip/chergert/gsv-gtk4 into master

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.

Edited by Christian Hergert

Merge request reports