BBEdit is Neat
The old trusted-and-true editor for macOS, BBEdit, is still alive and kicking. I hadn’t used it in ages, so I decided that I’d give it another go. Due to it’s age, it has accumulated a quite a lot of features (and cruft) along with it’s cult following. I’m not quite ready to give up on Emacs just yet, but being on macOS again, I’m curious to see how the landscape has changed.
The Bad
For one, BBEdit has never exactly been the most extensible editor out there. Adding new languages in the past was difficult at best. While that has changed with Codeless Language Modules, you don’t really get anything outside of syntax highlighting and some word completions. And that’s not bad. It’s just that coming from Emacs, you miss out on whole “modes” where the editor extends itself into something more when editing those files.
BBEdit is also much more niche-oriented. I seem to remember that it was a great choice for editing MacPerl scripts, AppleScript and HTML. While it’s obviously grown to support much more than that, the built-in functionality is still somewhat focused around those kinds of activities. There is even a whole menu for “markup” which is just HTML tools. This is great if that’s what you’re working on. It’s less great when you’ve got other languages that are markup languages that could re-use that space for their own support items.
There is also a notable lack of configurable Language Server Protocol
options anywhere in the UI. There are preconfigured options that as
long as the server is installed in your $PATH
or in the special folder, then
it’ll Just Work(tm). However, adding one or adding an alternative one seems like
a exercise in frustration. For instance, I do not want to use the VSCode
TypeScript-Node-Abomination. I want to use SuperHTML, which works well for my
purposes. In order to add it, I have to copy the HTML language definition and
modify the key where it provides for a preferred LSP. This is a mess and
honestly just makes me not want to use any LSPs with BBEdit.
Edit: I just discovered that you can override options, like the LSP, for installed languages, which makes me much happier.
The Good
It does, however, have it’s bright spots. The MDI supports a variety of different layouts, like the popular sidebar/project view as well as floating tool panels for different tasks like document management and snippets. These features feel like the classic interface I remember, and generally feel better to use than something like Sublime Text, where everything is in that activity menu or in a JSON config file.
There also seems like some love for Emacs in the fact that it has a partial implementation of Emacs keybindings for things like save, find-file, search and more. This makes the transition from Emacs to BBEdit all the less painful because all your trusty keybindings are likely to be supported. You can even get a little status window to show you what you just triggered. That said, it is limited in what it supports.
The Verdict
I like BBEdit. I just don’t know if I $60-like-it. It’s a hard sell. Sublime Text, which is also very feature-packed is $100, and that’s just a hard no from someone who doesn’t code for a living. $60 I could do, if it was worth it.
For right now, though, Emacs is where I’m going to be staying. It’s pretty comfortable, but the macOS integration leaves a lot to be desired.
Respond via email.