Investigate what can be upstreamed from Builder's new completion engine
Back when I was working on some tweaks to GtkSourceView's completion engine, I was told that it would be better to prototype it outside of GtkSourceView due to the likely intrusiveness of those changes.
Now that we are starting to approach the time for an API/ABI break with Gtk4, I took the time to make an implementation in hopes that it could inform the completion API in upcoming GSV releases.
I wrote up a blog post to describe the design decisions in the new implementation and why I think those decisions matter in terms of CPU and memory performance, styling, and convenience in haven written a large number of completion providers using the GSV API.
- https://blogs.gnome.org/chergert/2018/06/09/a-new-completion-engine-for-builder/
- https://gitlab.gnome.org/GNOME/gnome-builder/tree/master/src/libide/completion
There are a number of things that won't make it a quick drop-in, but if any of it informs new APIs, that would make me happy.