Trent Mick: February 2009

Find highlighting and Linux/x86_64 support in Komodo 5.1a2

We released Komodo 5.1 alpha 2 a couple of days ago (shame on me for not announcing until now). Get it here:

Please try it out and give us your feedback:

emailhttp://listserv.activestate.com/mailman/listinfo/komodo-beta
bugshttp://bugs.activestate.com/enter_bug.cgi?product=Komodo
forumshttp://community.activestate.com/products/Komodo

This is the second release of Komodo 5.1 on the way to a planned final release around mid-May. There are a few goodies worth talking about in this release. (See my post about Komodo 5.1a1 here.)

Find highlighting

Komodo now highlights find/search matches in your buffer. Here is a short video showing it off. Sorry, no sound. This is my first screencast. :)

Here I'm doing a couple of searches using Komodo's Vi mode. That highlighting makes a big difference for helping your eyes find where you want to navigate to.

Find highlighting is one of those "well, duh" features that we are now able to add with indicator support in Komodo's editing component Scintilla. Indicators in Scintilla allow one to put visual markers on regions of the editor buffer independent of the syntax coloring information. Before indicators, syntax coloring styling and other styling (squiggly underlining for syntax errors/warnings, find highlighting, ...) had to share 8-bits of data for each position (i.e. each character). That was awkward (playing with bit masks) and limiting (ran out of space in, e.g., HTML which uses 7 of those 8 bits for all the different syntax coloring styles). Another example is Komodo's Tabstops -- which were made a lot more usable in 5.0 because of what we could do with indicators.

Linux/x86_64 support

We've added support for a new platform: Linux/x86_64. This is our first native 64-bit platform build. Linux x86_64 installs are getting to be quite common, and typically the default install of Linux distros on x86_64 don't include the 32-bit compatibility libraries. This means that attempting to use Komodo's 32-bit Linux build wouldn't work out of the box (it tends to work fine once the distro's 32-bit compat libs are installed) -- and hence was a common support issue. Hopefully, no more. As well, Linux/x86_64 users will possibly enjoy a slight performance benefit.

Localization patches from Davide Ficano (l10n)

Way back in the heady days of 2008 (before Komodo 5.0 was released) Davide Ficano (aka dafi) made this post on Komodo's forums:

Localizing Komodo using Babelzilla dream team

that kicked off some starter work towards localizing Komodo. One of the necessary steps to getting good localizations of Komodo was to update Komodo's chrome to more rigorously use DTDs for XUL (we were using these fairly well) and string bundles for JavaScript code (we weren't doing so well here). Dafi whipped up a bunch of patches for this. Todd has finally managed to get those all checked in, so that Komodo is now in a pretty good state to start being localized.

Other stuff

In addition to the above, Komodo's History feature is coming along:

  • The same keybindings as your browser for Back/Forward should be working on all platforms.
  • The side mouse buttons on 5-button mice should work for navigating the history.
  • This history will now properly handle cleaning out URLs from finished remote debugging sessions.

As well we've a few more goodies that should be ready to show for a beta 1 release in a week or two. As ever, try out the Komodo nightly builds for the very latest stuff:

13 comments

"duplicate line or selection" in Komodo

I saw this blog entry this morning:

Duplicate Line/Selection in Komodo 5

Exploring the ability to create macros and bind them to key commands in Komodo IDE. I'm reposting the below macro that duplicates the lines or the current selection. Thus functionality was previously is Zend Studio 5, went missing from 6, and thanks to the macro, is available in Komodo. Enjoy!

...

I thought I should mention the Komodo bug -- Extend functionality of the "duplicate line" function -- on which Eric added a new core command to Komodo to do just this... with the added bonus that it also works for block/column selections. This was added just yesterday. Here is the checkin to Komodo Edit's repository. The nightly builds of Komodo 5.1.0a2 from last night has this in it:

Komodo IDE: http://downloads.activestate.com/Komodo/nightly/komodoide/latest-trunk/

Komodo Edit: http://downloads.activestate.com/Komodo/nightly/komodoedit/latest-trunk/

You can assign any key to this command in Komodo's "Editor | Key Bindings" preferences panel. The command name is "Editor: Duplicate Line or Selection".

5 comments

hard disk warranty

My father-in-law wanted to be careful to ensure personal data wouldn't be lifted from the hard disk of the old computer that he is getting rid of. I love his documentary evidence:

Computer
HardDisc
warranty
3 comments

RobH's sketches for the Komodo logo

Rob Hernandez is an ex-ActiveState employee. When he worked here he was responsible for the excellent designs that became the ActiveState critter logos -- since, and still, used on t-shirts and for ActiveState application logos.

I was happy to see that he recently put up some of his work on Flickr:

including his sketches for the Komodo head logo:

The latter are the precursor to the current Komodo IDE and Komodo Edit head icons:

Komodo IDE and Komodo Edit logos

Here is the full set

And if you are more into the realism thing, check out this Komodo head.

1 comments

History feature in Komodo 5.1.0 alpha 1

We released Komodo 5.1.0 alpha 1 today! Get it here:

Please try it out and give us your feedback:

emailhttp://listserv.activestate.com/mailman/listinfo/komodo-beta
bugshttp://bugs.activestate.com/enter_bug.cgi?product=Komodo
forumshttp://community.activestate.com/products/Komodo

This is the first release of Komodo 5.1 on the way to a planned final release around mid-May [Update: mid-March. Subconsciously I keep hoping for more time. :)]. (I'll write about our Komodo 5.1 plans in a separate post). Here I want to talk about Komodo's new "History" feature.

History overview

screenshot of Komodo 5.1's history feature

Komodo's History feature is like your browser's history, but for the editor. Back and Forward buttons in the toolbar. Same default keybindings as in Firefox 1. Simple.

Komodo's history is a bit different than a browser's. In a browser, you have a separate history session for each tab. This doesn't make as much sense for an editor. Komodo's history is per-window 2. That means that the Back button will move you back to the last place you were, be that in the current file or in another file in the same window. This means that jumping back:

  • after a Go To Definition, or
  • after opening a new file, or
  • after jumping to a find result

is as easy as clicking "Back".

More than any new feature in Komodo, the first time we hooked the feature up it felt immediately useful. Of course, this is just an alpha release so there is lots of polishing to do. Read on for some of the other things we hope to do with this.

Future work

Some other things Komodo will be able to support with this:

  • Opening recent files quickly. Chances are good that a file you want to open in your editor is a file you've edited before (and recently). The history database now provides Komodo with the data it needs to support that.
  • Find in recent files. Often I'll want to look at some snippet of code that I remember writing in the last few days, but can't remember what file (or even what project) that was in.
  • Support '' command in Vi-mode. From the Vim help:

    ''  ``                  Move to the position before latest jump.
    
  • Hooking Back and Forward into the MS Intellimouse's (and other mice, I suspect) side buttons -- as is the default in Firefox.

Backend code

For those interested, most of the backend of the history system is here in "editorhistory.py" in the Open Komodo subversion repository.

For JavaScript code (most interesting to Komodo extension developers) there is a new ko.history API with the most relevant methods being:

  • ko.history.note_curr_loc(view): Tell the history system to note the current editor location before jumping somewhere.
  • ko.history.history_back(n): Go back n locations.
  • ko.history.history_forward(n): Go forward n locations.

Komodo's history database shares some ideas with Firefox 3's Places database. In particular the idea of splitting visited locations (URLs in Firefox, editor locations in Komodo) and visits into separate database tables was helpful. They are, of course, both SQLite3 databases.


  1. The keybindings aren't yet there for Mac OS X in alpha 1. They will be there for alpha 2. 

  2. Currently it is shared by multiple Komodo windows, but will be changed to be per window. 

17 comments

recipe for cranberry-pear relish

This is recipe that my parents found in, IIRC, a 1980's Gourmet Christmas special magazine. Our family has been making this relish for Thanksgiving and Christmas turkey dinner every since. I generally prepare this one or two days before the big meal, so it doesn't add to the burden of preparing everything else.

Cranberry-pear relish

In a big soup pot bring 1 1/4 cup sugar, 1 cup water and 1/4 cup lemon juice to boil. Simmer for 5 minutes.

Add 5 pears (peeled, cored and cubed into about 1cm cubes). Simmer for 5 minutes.

Add 3 cups cranberries. Boil at med-high heat, stirring occasionally until most of the cranberries pop -- usually about 5-10 minutes. "Three cups cranberries" is basically just the entire bag of frozen cranberries that are commonly available at supermarkets around Thanksgiving and Christmas time.

Remove from heat and stir in 1 1/2 tsp lemon rind (optional), 1/4 tsp cinnamon and 1/4 tsp allspice.

Let cool and store in the fridge.

0 comments

mini-mick 2

mini-mick2 ultrasound (close-up)
mini-mick 2 ultrasound at 18 weeks
mm2 (code name joaquim) is on his or her way -- due in early July. Above are scans from mm2's ultrasounds at 12 and 18 weeks.
0 comments