GtkSourceView gets a JIT
I just merged a new regex implementation for GtkSourceView’s language specifications. Previously it used GRegex (based on PCRE) and now it uses PCRE2 directly similar to what VTE did. Not only does...
View ArticleGTK 4 got a new macOS backend (now with OpenGL)
I’ve been busy the past few months writing a new GDK backend for macOS when not maintaining my other projects. Historically our macOS performance wasn’t something to rave about. But it’s getting better...
View ArticleGTK 4 NGL Renderer
I spent a lot of time in 2020 working on projects tangential to what I’d consider my “main” projects. GtkSourceView got a port to GTK 4 and a load of new features, GTK 4 got a new macOS backend, and in...
View ArticleSysprof and Podman
With the advent of immutable/re-provisional/read-only operating systems like Fedora’s Silverblue, people will be doing a lot more computing inside of containers on their desktops (as if they’re not...
View ArticleRust and GNOME Builder
I still spend most of my day writing C and I doubt that is going to change any time soon. But that doesn’t mean you should have to! Builder got a number of late arriving improvements around Rust...
View ArticleA GTK 4 based Text Editor
It started as an application for me to verify the correctness of the GtkSourceView 5 API (which targets GTK 4). After that it helped me implement JIT support for GtkSourceView languages. Once that was...
View ArticleGtkSourceView Interactive Tooltips
During the past years (and especially last cycle) I’ve worked to push a number of features upstream from Builder into GtkSourceView. Not only does this improve the ecosystem for all applications, but...
View ArticleAuto-indenters for GtkSourceView
One of the last features from Builder I really wanted to get upstream for the 5.0 release (and the beginning of a new ABI stream) is our auto-indenter interface. It, however, was a product of the times...
View ArticleA Piece+Tree (Augmented B+Tree)
Most of my career I’ve been working on a text editor product in either a hobby or professional capacity. Years ago I had an idea to combine a B+Tree with a PieceTable and put together a quick...
View ArticlePerformance Improvements in Text Editing
I realize I don’t blog much these days, but I do try to keep my Twitter filled with screenshots as I work on GNOME. Recently I spent some time doing another round of performance improvements in...
View ArticleGtkSourceView Searching with PCRE2
Last year I did some work to make GtkSourceView use PCRE2 for syntax highlighting. The primary motivation there was to improve syntax highlighting performance by using PCRE2’s JIT capability. However,...
View ArticleIgnoring GtkTextTag when printing
Now that Text Editor has spell checking integrated I needed a way to print without displaying tags such our “misspelled word” underline squiggles. So GtkSourceView 5.2 will include...
View ArticlePrivate Flatpak installations in Builder
Builder needs to deal with many SDK and SDK extensions for applications built upon Flatpak. One thing I never liked about how we did this up until now was that we needed to install Flatpak remotes into...
View ArticleGtkSourceStyleSchemePreview
In the past, we had a style scheme chooser widget to help people find style schemes that look useful. It was fairly rudimentary and doesn’t fit how we’d like style scheme selection to work going...
View ArticleGtkSourceView is getting a VIM emulator
One of the things we spent some time on early with Builder was creating built-in VIM emulation. Originally it was written in C, but then got converted to this nasty CSS for a couple of reasons. First,...
View ArticleText Editor Happenings
Text Editor has really been shaping up in the past couple weeks as we race towards getting things ready for GNOME 42. Preferences Dialog We removed the preferences sidebar experiment because it was a...
View ArticleCreating GtkSourceView style schemes
GtkSourceView has the concept of “style schemes” which map language features (types, keywords, strings, etc) to various colors and font properties. Creating them can be a bit laborious even if you’re...
View ArticleGSignalGroup and GBindingGroup
Some of the first abstractions we made when creating GNOME Builder are now available to everyone in GObject! In particular, writing Text Editors requires tracking lots of information and changes from...
View ArticleModernizing GTK’s macOS backend (again)
Since the early days of working on the macOS backend for GTK 4 I knew eventually we’d have to follow suit with what the major browsers were doing in terms of drawing efficiency. Using OpenGL was (while...
View ArticleRendering Text with Glyphy
HarfBuzz 4.0 was recently released and it gained the ability to draw shapes using hb_draw(). Recently Behdad updated Glyphy to use that new HarfBuzz API which allows us to draw fonts on the GPU without...
View Article