- Nova (a skin for Phoenix) About: Nova is a new look for eclipse.org that came out of the feedback provided in Bug 252006. Introduction: This is the new nova theme for eclipse.org. We designed it to be cleaner and lighter. Now with 90% less purple! The pages have a fixed width of 980px.
- Editor JS field for Laravel Nova. Contribute to advoor/nova-editor-js development by creating an account on GitHub. Version 2.0 - Extensibility 101 This version adds a whole new extending system, see the Extending section in the readme PS: Fixed version of v2.0.0, which was somehow detached from master.
Panic's Nova text editor (a review)
Panic, the long-established makers of Mac utility software, seems fully aware that introducing a new, commercial code editor in 2020 is a quixotic proposition. Is there enough of an advantage to a native editor over both old school cross-platform editors like Emacs and explosively popular new editors like Visual Studio Code to persuade people to switch?
This will turn Nova into a quasi-IDE for Go! If you use Homebrew to install your packages, all you need is to type: brew install gopls. If not, you can install it as described here. Then tick the Enable Language Server checkbox in the Preferences for this extension. If gopls is (correctly) installed in your search PATH, the extension should.
I'm an unusual case as far as text editor users go: my primary job is technical writing, and the last three jobs that I've worked at have a 'docs as code' approach, where we write documentation in Markdown and manage it under version control just like source code. The editor that works best for me in tech writing is the venerable BBEdit. When it comes to editing code, though, BBEdit lags behind. My suspicion is that BBEdit's lack of an integrated package manager has hurt it here. Also, BBEdit's language modules don't support extending one another, making it effectively impossible to do full highlighting for a templating language like JSX or Jinja.
When I was a web programmer, I was one of many who moved to TextMate, and used it for everything for a while. When the Godot-like wait for TextMate 2.0 became unbearable, I wandered the text editing wilderness, eventually splitting my loyalties between BBEdit, Sublime Text, and more recently VS Code. At this point, I suspect nothing will pull me away from BBEdit for technical writing, but for programming I'm open to persuasion.
So: meet Nova.
I've been using Nova off and on in beta for months. I've reported some bugs, although I may mention a couple here that I didn't catch until after 1.0's release. And, I'm going to compare it to the GUI editors that I've been using recently: BBEdit, Sublime Text, and VS Code.
Nova is a pretty editor, as far as such things go, and with files of relatively reasonable size it's fast. With stupid huge files its performance drops noticeably, though. This isn't just the ridiculous 109MB, nearly 450,000-line SQL file I threw at it once, it's also with a merely 2MB, 50,000-line SQL file, and Nova's offer to turn off syntax highlighting in both files didn't help it much. This may sound like a silly test, but in my day job I'm occasionally stuck editing an 80,000-line JSON file by hand (don't ask). This is something BBEdit and VS Code can do without complaint. Panic wrote their own text editing engine for Nova, which is brave, but it needs more tuning for pathological cases like these. They may not come up often, but almost every programmer has one stupid huge file to deal with.
Nova has an integrated terminal and an integrated SSH client, and even an integrated file transfer system based on Panic's Transmit. In fact, if you have Transmit and use Panic Sync, it knows all of those servers out of the box. Nova has a task workflow system for automating building and running. You can associated servers, tasks, and more with individual projects; Nova's project settings are considerably more comprehensive than I've seen in other editors. You can even set up remote tasks. Nova has a serviceable Git client built in, too. Like VS Code, Nova uses JavaScript for its extension API, and it has built-in Language Server Protocol support—it's a superbly solid foundation.
Beyond that, some smaller features have become table stakes for modern GUI editors, and Nova handles them with aplomb. 'Open Quickly' can jump to any file in the open project, as well as search by symbols or just symbols in currently open files; it has a command palette; you can comprehensively edit keybindings. It has multiple cursor support for those of us who like that, and a 'mini map' view for those of you who like that, although know that you are wrong. Nova's selection features include 'Select all in scope' and 'Select all between brackets,' a command I often use in BBEdit and miss dearly in Code. (Both Nova and BBEdit select between brackets and braces, although BBEdit also selects between parentheses.) This effectively becomes 'Select between tags' in HTML, a nice touch. There are a few other commands like 'Select all in function' and 'Select all in scope' that I didn't have any luck in making work at all; a little more documentation would be nice.
That's worth an aside. Panic has created a 'library' of tech note-style articles about Nova sorted by publication date rather than an actual manual, and it's not always easy to find the information you want in it. I know this is just what a technical writer would say, but I'd dearly like to see a human-organized table of contents starting with the editor basics and moving to advanced topics like version control, server publishing and extension authoring.
The Zen of Language Servers
A lot of Visual Studio Code's smarts depend on the implementation of a 'language server' behind the scenes: language servers offer almost spookily intelligent completion. For instance, take this PHP snippet:
If you have the Intelephense PHP language server plugin, Code understands that $response
is an instance of Response
and, after you type the >
above, offers completions of method names from the Response
class.
Right now, Nova's mostly limited to the language servers Panic provides, and they're… not always so smart. In that snippet above, Nova starts by offering completions of, apparently, everything in the open project, starting with the variables. If I type 's,' it narrows things down to methods that begin with 's,' but it's all methods that start with 's' rather than just the methods from Response
. The 'Jump to Definition' command shows a similar lack of context; if I highlight a method name that's defined in multiple places, Nova shows me a popup menu and prompts me to choose which one to jump to, rather than introspecting the code to make that decision itself.
But, this is a solvable problem: there's (I think) no reason someone couldn't write an Inteliphense plugin for Nova. If Nova's ecosystem takes off, it could be pretty formidable pretty quickly.
Walk like a Mac
Affinity designer 1 4. Even so, LSP support isn't Panic's biggest selling point. Unlike Sublime Text or VS Code, Nova isn't cross-platform: it's a Mac-only program written to core platform APIs. Is that still a huge draw in 2020? (Is it instead a drawback?)
You can definitely see a difference between Nova and BBEdit on one side and Sublime and Code on the other in terms of resource usage. With the two Ruby files shown in the screenshot above loaded, I get:
- VS Code: 355 MB, 6 processes
- Sublime Text: 338 MB, 2 processes
- Nova: 101 MB, 2 processes
- BBEdit: 97 MB, 1 process
Code is an Electron-based program, although Microsoft famously puts a lot of effort into making it not feel like the black hole a lot of Electron-based apps are. Sublime uses its own proprietary cross-platform framework. In fairness, while us nerds like to harp on research usage a lot, if your computer's got 16G or more of RAM in it, this probably isn't a big deal.
You notice Nova's essential Mac-ness in other ways. Its preference pane is, like BBEdit's, an actual preference pane, instead of opening in another tab like Code or just opening a JSON file in a new tab (!) like Sublime. And while all editors better have first-class keyboard support—and Nova does—a good Mac editor should have first-class mouse support, too, and it does. You notice that in the drag-and-drop support for creating new tabs and splits. Nova's sidebar is also highly customizable, possibly more so than any editor I've regularly used. (Yes, Emacs fans, I know you can write all of Nova in Lisp if you want. When one of you does that, please get back to me.)
Unlike BBEdit, though, Nova doesn't have a Mac-like title bar, or a Mac-like outline view of the project files, or Mac-like tabs. (Well, BBEdit doesn't have tabs at all, which turns out to be a great UI decision once you have a dozen or more files open, but never mind.) This isn't necessarily bad; people often say BBEdit 'looks old,' and it's hard not to suspect that what people mean by that—whether or not they know it—is that it looks like the long-established Mac program it is. Nova is relying less on 'we have a Mac UI and the other guys don't' than on 'we have Panic's designers and the other guys don't.' Make no mistake, having Panic's designers counts for a lot.
What may be more disappointing to old school Mac nerds is AppleScript support: none whatsoever. It doesn't even have a vestigial script dictionary. Again, this may not be something most people care much about; personally, I hate having to write AppleScript. But I love being able to write AppleScript. BBEdit's extensive scriptability is one of its hidden strengths. Nova's Node-based JavaScript engine is probably more powerful for its own extensions and certainly more accessible to anyone under the age of 50, but it may be hard to call it from external programs.
So is it worth it?
That probably depends on where you're coming from.
So is it worth it?
That probably depends on where you're coming from.
If you loved—or still use—Panic's older editor, Coda, this is a no-brainer upgrade. If you used Espresso, a Coda-ish editor that always seemed to be on the verge of greatness without ever reaching it, Nova may also be a no-brainer for you.
If you're a fan of Sublime Text, BBEdit, TextMate, or another editor that doesn't have native Language Server Protocol support, you should definitely try Nova. Sublime and TextMate have more plugins (especially Sublime), but many extensions seem to be languishing (especially TextMate). BBEdit never had a great extension ecosystem to start with. All of these editors have strengths Nova doesn't, but the reverse is also true, and Nova may catch up.
If you're an Emacs or Vim power user, we both know you're just reading this out of academic interest and you're not going to switch. C'mon.
If you use Visual Studio Code, though, it's way tougher to make the case for Nova. Code has a vastly larger extension library. It has the best support for LSP of any editor out there (LSP was developed for Code). Despite being Electron-based, it's pretty high-performance. Code doesn't have an integrated SSH or FTP client, but it does have an integrated terminal and task runner and Git client. If you don't object to using an editor that isn't a 'perfect fit' with the Mac UI, Code is very, very good… and it's free.
I don't object to Nova's pricing model—$99 up front including a year of updates, $49 for future years of updates—but I can't help but wonder if Panic should have gone with super aggressive introductory pricing. Also, I saw more than a few suggestions on Hacker News about how there should be a Code-to-Nova extension translator; I'm not sure automatic conversion would be practical, but a guide on manual conversion seems like an excellent idea.
For my day job of technical writing, I'm going to stick to BBEdit. (One day I'll write up an article about why I think it's the best 'documentation as code' editor on the market.) For programming and web editing, when I was working on both a Ruby and a PHP project—the former a Rails learning exercise, the latter an obstinate 'I am going to write a modern PHP app without using a framework' exercise—I kept trying Nova's betas and then switching back to Code for Inteliphense and, I swear to God, MacVim for Tim Pope's amazing rails.vim plugin. I suspect Nova could duplicate both of those, but I'm not sure I want to be the one to do it. (Also, while Panic has decent reference documentation for writing extensions, I'd like to see a few simple end-to-end walkthroughs for those of us who look at a huge list of reference topics and don't know where to start.)
But Nova isn't just pretty, it's powerful, and has a lot of promise. The editors I've been comparing it to have been around since 2015 for VS Code, 2008 for Sublime Text, and 1992 (!) for BBEdit; it's not reasonable to expect Nova to blow past them in every respect right out of the starting gate. Even so, they are Nova's competition. Catching up fast is an essential requirement.
So: yes, I've bought Nova, and I'm rooting for Panic here. I'll come back in a year and report if I'm willing to stay on the update train.
Software
This download inlcudes the MiniNova editor, MiniNova librarian and latest firmware version.
The MiniNova editor is available as a plug-in only, not as a standalone application.
PLEASE FIND THE INSTALLERS AT THE BOTTOM OF THE RELEASE NOTES.
This software package includes the latest Novation USB driver, MiniNova editor and MiniNova librarian.
Updates firmware to 1157.
New features:
- Added sets of favourites using the FAVORITES + Patch Inc / Dec buttons, Sets A,B,C,D added.
- When the unit is set to Internal Clock, the unit will output F8 MIDI clocks based on the tempo. This can be turned off by setting the unit to Auto Clock Source.
Fixes:
- Improved reliability of firmware update process.
- Fixed Gator issues and compatibility with the editor.
- Editor LCD element turns on when the MiniNova Editor is active.
- MIDI clock lock-on speed and stability improved.
- Arp correctly syncs to a MIDI clock.
- Velocity curve global setting is now correctly loaded at bootup.
- Pitch and Mod wheels no longer affect sound when the unit is in Local Off Mode.
- Added ability to change Vocoder Spectrum values (NPRN High = 6, Low = 0->31, Value = 0->127).
- Added ability to perform a sample (Freeze) of current Vocoder Spectrum (NPRN High = 6, Low = 32, Value = 1).
- Fixed some broken VocalTune Pitch/PitchBend parameters.
- Fixed bug where Patch B127 cannot be saved to Favourite Slot 1.
- Increased maximum Arp Octaves from 4 to 8.
- Arp Gate can now affect built in UltraNova Arp Patterns.
- Help text now shown for tweak knobs when in demo mode.
- When in auto mode, tempo now freewheels until the next internal tempo is set (or a new external clock appears).
- Added chord note NRPN messages (NRPN High = 7, Low = 0->9 when received from unit, 16->25 when transmitted to unit).
- Now responds to MIDI Keyboard Octave Message (CC 13).
- Improvements to arp logic.
Editor improvements:
- Mininova Editor is now listed in Digital Performer 8.
- Vocoder and VocalTune effects tabs now work correctly.
- Moved Vocoder Source control to Vocoder tab.
- Improved behaviour of the Arpeggiator and Animate buttons.
- Fixed erroneous 'Patch changed!' warnings.
- Fixed Editor automation in Studio One.
- Optimised parameter flow and speeded up patch changes.
- Increased maximum Arp Octaves from 4 to 8.
- Gator Rate Sync parameter now limited to a range of 19 (8 beats).
- Clicking a parameter now shows current value.
- Cubase: VST automation recorded from MiniNova hardware is now read correctly.
Librarian improvements:
- Fix for crash on Windows when the user selects the Import Sysex menu option in the List View when no patch is selected.
Nova Editorial
Nova Identification
Click here for more details:This installer includes the latest version of the Novation USB 1.1 driver for MAC and PC.