The Nova text editor

Updated on .

Panic’s Nova text editor is closer to an integrated development environment (IDE), in the vein of Xcode, than an extensible text editor like Sublime Text. In addition to editing text, it can interact with the Git version control system, display errors found in source files, preview websites, and define custom build systems. While Sublime Text can do those things, they require interacting with the command palette and generally don’t draw custom UI, so they just open a new text window to display results. Nova feels like the spiritual successor to Panic’s earlier text editor, Coda, but with a more modern workflow for building complex projects and managing open files and window panes.

A Nova window with a preview of this site this site on the left and the CSS source on the right
Nova makes it easy to tweak this site’s styling.

The workflow for making quick updates to this website is ideal: edit the Markdown file, hit ⌘B to rebuild, and then preview the changes in its built-in web server. It would be nice if previews could automatically refresh on build tasks, but I filed that feature request a few months ago and haven’t heard back about it. In fact, I’ve recently stopped receiving responses when submitting both problem reports and new feature requests, which is concerning. One bug that really bothers me is whenever I’m typing and using shortcuts involving the command key, it will randomly highlight whatever word my pointer happens to be under, even if the pointer is hidden due to the start of typing.

Regardless, I’m using it more frequently now that it has support for language servers, which are somewhat interchangeable plugin systems for finding function definitions and seeing errors inline with source code. I use two big extensions for working in Go and Rust and a few smaller ones that only provide syntax highlighting for languages that aren’t built-in, like Makefile, ENV, Dockerfile, and Jinja2.

Tips