-
Christian Hergert authored
This is a replacement for GtkSourceCompletion to handle a number of designs that we can't land into GtkSourceView for various API/ABI reasons but need in Builder for completion performance, memory footprint, and visual styling. The important details in terms of design change are: * Use GListModel heavily to avoid GObject creation, GList creation, GQueue creation, and O(n²) treemodel lookups so that we can handle larger list sizes in (tens of thousands with much reduced memory footprint). * Allow providers to refilter existing results conveniently. * Break things into 4 columns (icon, lhs, word, rhs). * Use GtkListBoxRow instead of GtkTreeView for widget styling. * Only create widgets and proposals for the visible range of items through use of custom GtkBox-based GtkScrollable, listbox row, and dynamic access to joined-GListModel for all results. * Dynamic priorities for completion results based on context. * Adjust window size based on result ...
3cd417a3