Work Underway

This is my first full week working on Builder. I'm still in the process of pulling things together like wiki pages and bugzilla. This will improve in the coming weeks.

Yesterday involved a bunch of work on the editor workspace's core commands. Stuff like Save, Save As, Open, closing tabs, modified state tracking and such. I also did some more work on the snippet system with regards to variables in tab-stops. Longer term, I'd love for us to be sharing more code with Gedit for the editor. A bunch of the code is written in a way that keeps that in mind.

Icons were switched to symbolic variants. We don't have all the icons we need made yet, so some are temporary. Art requests will be put together soon. There will be lots of fun icons to make for classes, functions/methods, enums, and such. Send me an email if you'd like to work on this.

Builder includes some fun animations building on what Gedit does for split-views. While this code doesn't reuse gedit-multi-notebook, it is very much inspired by it and I hope to merge them soon. (There were some technical difficulties here). Notice in the video below how we notify the user of the location of the drop-zone.

The search highlighting stuff I worked on last year has been ported to the new GtkTextView::draw_layer API that landed this cycle. That means it can use the pixel cache, reducing the amount of drawing we do.

I've been testing these animations on my old ThinkPad x300 to ensure they are smooth. They look fluid everywhere I've tested. Of course, screencapture can't quite keep up with the frame-rate.

The snippet language was heavily based upon snipMate, which I've been using for years. It looks something like this:

snippet foo
    ${$filename|stripsuffix|functify|capitalze} (${1});$0

In a file named "foo-item.h", this would result in "FOO_ITEM ();" with the first tab-stop between the parenthesis and the final cursor position after the semicolon.

You can even reference existing tab-stops from each other and see everything update as you type.

snippet foo
    ${1:hello world}
    ${2:$1|capitalize}
    $0

Anyway, here is a short video of where things are.

Lot's to do.o I hope to have some updates on how we are going to integrate lots of GNOME projects in the process.

Watch on Youtube

-- Christian Hergert 2014-09-09

Back to Index