Espresso 2.0 pre-release version is out!

As you may or may not know, I am an employee of MacRabbit, the company responsible for CSSEdit and Espresso. I typically don’t like to mix work and pleasure on my personal blog, but today MacRabbit has some exciting news: we have released a public beta (or “kaboom”, as we call our pre-release versions) for Espresso 2.0!

You can read more about the kaboom over on the Espresso blog, or check the Espresso 2 FAQ about upgrades and how to download.

What you will not find just yet are release notes, but for current Espresso users there are some changes between Espresso 1 and Espresso 2 that I wanted to point out to help make the transition between the two versions easier.

General changes

Quick Publish is no longer a file-by-file setting, and does not live in the Tools section any longer. To enable Quick Publish for your project, select an item in your Workspace (or double click a project file to open it in your workspace first) and toggle Quick Publish on there. When Quick Publish is on, all files in your project that you save within Espresso will be pushed automatically to your server. You will still need to use right click and “publish to” if you need to push images or other files that Espresso cannot edit.

Snippets are currently living in the Actions menu (down at the very bottom).

Some third-party sugars are no longer necessary. In particular, Espresso 2.0 offers native support for Ruby, Ruby templates (ERB files), Python, Markdown, Apache config documents, and JSON. If you have third-party sugars for these languages installed, you should remove them before testing Espresso 2.0. (Incidentally, we would really appreciate feedback from Ruby users! No one at MacRabbit actually codes Ruby, so although we think we’ve got some pretty good support for Ruby syntax coloring, it is highly likely that there are problems we have overlooked simply because we are not fluent in the language. Send that feedback in!)

Espresso 1.x themes may not work as well in Espresso 2. Although the HTML and CSS syntaxes have not changed their zone names, Javascript and PHP are very different, and the new Ruby, Python, and Markdown syntaxes do not share many similarities with their third-party antecedents.

The Indent New Line action has a new shortcut: control-enter. When I originally wrote the “TEA for Espresso” actions, I based a lot of them on Textmate (simply because that was what I was used to). However, it makes no sense to have Indent New Line (a very common shortcut for anyone who likes to keep their code nicely indented) require more modifier keys than the action that inserts a <br/> tag. So I swapped them. If you use this command as much as I do, muscle memory is going to be a beast for a little while.

The Actions menu has been shuffled around a bit to hopefully make finding text actions easier and more logical. Aside from Indent New Line mentioned above, shortcuts should remain unchanged.

Noteworthy new and improved actions

On the topic of the Actions menu, a lot of the work that I contributed to this release has to do with the included sugar actions, and there are some tasty additions that you might enjoy knowing about.

Zen coding is now running the latest version (there may be some bleeding edge improvements in zen coding that have not made it in, but if memory serves Espresso 2.0 includes zen coding 0.7 out of the box).

BBEdit ex-pats will likely be happy to find a new Zap Gremlins action in the Convert / Strip sub-menu. For those unfamiliar with the venerable BBEdit, Zap Gremlins will check your document for invisible control characters and non-breaking spaces, and allow you to remove or replace them.

Wrap With… offers the ability to wrap your selected text in arbitrary characters (located in the Text sub-menu). Give it a try; I think you will enjoy how it handles things like square braces, curly quotes, and multiple wrapped characters.

Balance and Balance Inward now work inside of strings (this is incredibly useful; just hit control-B while your cursor is inside a string) and should also function within just about any language that supports code folding.

And if you are someone who works with the Terminal a lot, right click on any file to quickly cd to its parent directory in the Terminal or execute the file itself.

Go forth and test

The Espresso 2.0 kaboom is pretty stable (I’ve been using it and its predecessors instead of Espresso 1 myself for a while without any major incidents), but remember that this is pre-release software and there will be bugs! Drop MacRabbit a line if you find any problems, and I hope you enjoy Espresso 2.0!

20 responses to “Espresso 2.0 pre-release version is out!”

  1. What’s an example of “Balance”? I’m not understanding that functionality.

  2. Karen Hughes says:

    Congratulations on a really great release. I love the integration of CSSEdit. I think your involvement with MacRabbit has been a really positive step forward – particularly your very active involvement in the forums (I know you were active before, but it helps that you are now an employee).

  3. Ian Beck says:

    Basically, the Balance action selects text, and tries to do so by balancing the selection with the code around it. So if your cursor is in a string and you use Balance, it will select the contents of the string. If your cursor is in an if statement in Javascript, it will select the whole if statement. And so forth.

  4. Shawn Dai says:

    Can you provide more details on what needs to happen to get Espresso 1 themes working with Espresso 2?

    I’ve become pretty reliant on the syntax highlighting—specifically with a custom HTML, CSS, JavaScript, PHP, ExpressionEngine theme I’ve created—and Espresso 2 either doesn’t apply colors properly, or only 1 language is colored at a time.

    This is a bit of a deal breaker for me to use the pre-release.

  5. Ian Beck says:

    HTML and CSS should just work; those two languages have not changed much at all. For the others you will need to use the syntax inspector (Actions->Show Syntax Inspector) to find the new zone names and update your theme accordingly.

    If you have specific questions or issues, please email MacRabbit and we’ll help you out with them.

    The ExpressionEngine.sugar itself might need to be upgraded, as well, because the PHP sugar that it relies on has changed so much.

  6. Shawn Dai says:

    Cool, thanks for the details Ian. That’s helpful.

    On a related note, does Sugar development (ie – documentation at still remain the same for Espresso 2.0?

  7. Ian Beck says:

    Yep, the documentation in the wiki should all still be relevant. Let us know at any MacRabbit email address if you run into any problems with sugar development!

  8. david letterman says:

    good piece of software, I will recommend for everybody in my workplace. Right now this is the primary application on my machine.

  9. Cristian Diaz says:

    Hi Ian, I’m using the espresso 2.0 release as well and found it really nice and stable, switched to it since I moved to Lion yesterday.. BUT, unfortunately as you say, the php sugar structure has changed a lot, and now I’m not able to see my combined php+html highlighting both languages at the same time, it is one or the other…. It is a little frustrating, this single thing makes me love espresso as I love it, and without it, is not the same :…( , in the meantime while you put all the hard work to finish the app. is there any way I can solve this issue and allow both languages highlighting on the same file?

    Thank you!

  10. Ian Beck says:

    It sounds like you have an old PHP sugar installed. Espresso 2.0 should only show “PHP” in the Languages menu (which highlights combined PHP and HTML). Try uninstalling all third party sugars and then adding them back as you need them.

  11. Cristian Diaz says:

    Thanks for your quick reply,
    I forgot to say I’ve updated the php sugar at /Applications/ with the latest version of the “official” php sugar by Derek Reynolds (v1.0b6), many times, tried to find some other active php sugars to disable them, and googled for all possible combinations to get it working without success, it only highlights php code but treat html as plain text.. any ideaS?

    Thanks again!

  12. Ian Beck says:

    Yes: don’t use the third party PHP.sugar at all. We have rewritten it and are bundling PHP support inside of Espresso 2.0 now. If there is something from the third party sugar that you are looking for that is not supported in Espresso 2.0 please email MacRabbit.

  13. Cristian Diaz says:

    Great, won’t do it again! Thank you Ian, very nice work you all do.

  14. Don Myers says:

    espresso 2 is looking good! the only thing I would like to see (this version or when ever) is the ability to hit a key combo and a dialog opens which you could type (with auto complete / drop down like the editor) a menu item once the item is selected with return the menu item runs. the more I can keep my hands on the keyboard the faster I can write code. I know we have key combos but sometimes there just isn’t enough or you need to remember them all if I could just type apple + y (or something) the. type entab and hit return. I don’t need to grab the mouse. using tea + shell scripts I could add tons of awesomeness!!

  15. Ian Beck says:

    Please email these suggestions to MacRabbit; otherwise I guarantee I will forget to include them in the feature request tracker. :-)

  16. Zach Fine says:

    Is there a way to select a string and look it up in PHP’s documentation from within Espresso 2 kaboom? I can’t seem to make that work.

  17. Ian Beck says:

    Not currently; pretty straight-forward to implement as a third party action if you were so inclined, though.

  18. Don Myers says:

    yes I created a os x service to search php website it works in any text app. maybe I’ll post it up to github dmyers2004 check in a few days (not sure how well a os x service will go into github)

  19. Bala Bosch says:

    It would be nice to have php syntax lookup inline. Just like the dictionary in Lion allows you to look up a word in it, it’d be nice if Espresso would let you lookup a php function and it would show you what parameters (and in which order) that function has.