Re: Factor

Factor: the language, the theory, and the practice.

Open URL (in Listener)

Thursday, May 5, 2011

#ui #urls

In January, I implemented a cross-platform open-url feature to allow opening URLs from Factor. One major problem was that I couldn’t figure out how to make URLs “clickable” in the Listener.

Then, I learned that the ui.operations vocabulary allows us to add “capabilities” that get triggered when certain types are rendered in the Listener. It turns out to be pretty easy, actually:

[ url? ] \ open-url H{ } define-operation

Using that, you can right-click on URL objects, and choose to open them in your web browser:

I also made a small patch to add this support to URLs that are rendered in the help system or in the slides vocabulary.

Note: if you want this operation to be the “primary operation” triggered when the URL is left-clicked, you can add { +primary+ t } to the hashtable used in the operation’s definition.