Simply put, it's one of the biggest Nova updates we've ever done. It massively improves our language support, adds a beautiful diff view, has gallons of fixes and improvements, and is ready for you to start coding. Introducing Nova 10.
Supercharged Languages
Many of Nova’s built-in languages have been upgraded to the next level. They parse more accurately, load faster, and work even better.
Tree-sitter Extensions
You can now leverage the expansive grammar community of Tree-sitter, the open-source parsing library used in Nova 10, when writing Nova language extensions.
Comparison View
Slide open a comparison to diff a file against a Git commit or another file, or even diff two specific commits, and quickly see what's changed.
Shiny New Icons
Swap Nova’s dock icon for any season or any mood with nine beautiful new celestial-inspired choices.
New
Debug Adapter Protocol: Event message output is now color coded
Improved
Find sidebar: The “expand / collapse all results” buttons are no longer displayed when no results are found
Find sidebar: The results count banner now offers to remove filters when they are enabled and no results are found
Improved “Insert and type-over matching delimiters” behavior when typing a closing delimiter inserted as part of a completion
Fixed
Modifying large files no longer causes the viewport to scroll unexpectedly in certain circumstances
PHP: Resolved a potential crash parsing certain files
PHP: Syntax highlighting now works as expected when no PHP tags are present
HTML: Resolved an issue parsing CSS within style attributes
HTML: Resolved an issue that prevented entities from highlighting properly
CSS: Typing ! now properly prioritizes !important over other unrelated completions
SCSS & LESS: Resolved an issue that prevented color swatches from being displayed
Markdown: Restored the ability to spell check documents
Markdown: Resolved an issue preventing certain inline styles from showing as expected
Code Hovers: Fixed an issue with clipping of text when scroll-bars are always shown
Addressed an issue with “Fold Methods & Functions” not working as expected in PHP or JavaScript syntax modes
Revision browser: The loading spinner now shows for a minimum amount of time to prevent flickering
Terminal: Addressed a potential issue copying wide text
Terminal: Fixed an issue with the “pan down” command that caused drawing issues in the Ruby debugger
Themes: Document background color no longer incorrectly use the window background color in certain cases
When scrolling the tab bar using a mouse wheel the scroll-direction now matches the system
Version10
October 27, 2022
New
Sticky code structure headers can now be shown at the top of the editor as you scroll
Git: Inline author annotations can now be shown in the currently highlighted line
New bundled language syntaxes, including: EJS, Regex, and Tree-sitter Query
Find sidebar: Added options for searching hidden files, ignored files, and files within packages
Tabs can now be sorted by filename or type
Support for multiple wrap guides
The minimap now shows bookmark headers and can display symbol names on hover
SSH certificate client authentication
FIDO2 ECDSA-SK and Ed25519-SK key authentication
Generate FIDO2 ECDSA-SK and Ed25519-SK keys when using an authentication device
New for Extensions
Tree-sitter grammars can now be utilized when writing language extensions. Learn more here.
Added the nova.crypto API for generating cryptographically-strong random values and UUIDs
Added the nova.fs.tempdir API for getting the path to a temporary folder
Added the comment.doctag theme selector
Improved
Improved parsing and highlighting of many cases of very large documents
Added the ability to show all autocompletion results from current insertion point in many built-in languages
Syntax highlighting of lines containing more than 10,000 characters is now supported with Tree-sitter based grammars
Foldability of comment blocks is now automatically supported when using Tree-sitter based grammars
Saving or typing within an editor now reloads preview tabs attached to other tabs for the same document
Tabs can now be scrolled using the mouse wheel without any keyboard modifiers
Switching between recent tabs in a split using Control-Tab (and Control-Shift-Tab) is now supported
When a debugger stops, the first stack frame with a source link is now selected, instead of the first stack frame overall
The minimap now has an enforced maximum size to help prevent it from growing too large on wide displays
Improved performance of scrolling backwards into a project’s Git history, especially when the repository is on a mounted share
Improved editor responsiveness when language servers return a large number of completions
Indentation guide opacity can now be controlled with a preference
Find sidebar: Queries will no longer search within Mach-O executables
Find sidebar: Added options for expanding or collapsing all results
Symbols sidebar: Improved support for @media queries in CSS
Git: Added menu items for “Stage All” and “Unstage All”
Vim: Added support for z vertical movements (zz, z., etc.)
The toolbar status view can now be expanded to show multiple concurrent activities in progress
Tasks: Added a button to the running task in the toolbar status area to open its report
Tasks: Added debug transcript logging for Remote Tasks
Added support for “Look up” & data detectors when using the Plain Text syntax
Printing: Theme and font size can now be specified from the Print options
“Next/Previous Matching Bracket” actions have been consolidated into “Jump to Matching Bracket”
JSX/TSX: Commenting now conditionally uses /* */ or {/* */} properly for code or markup
Improved Markdown rendering in LSP hover popovers
Fixed
Resolved a crash when certain LSP extensions show an auto-dismissing notification
Fixed a potential crash when using regular expression named or bracketed backreferences in replace patterns
Fixed display of “time since” in the Git history list in certain cases where the time approaches close to 24hrs
Color Picker: Fixed the color picker’s color square and hue slider not rendering in Display P3 on capable screens
Emoji should no longer affect the line height of text when larger than the default font metrics
Cloning Git repositories using a URL should now accurately choose the correct default branch
LSP hover popovers are now easier to interact with when using large line heights
Resolved a case where Reverse Publishing could fail if a remote path was specified on both the server and in publishing settings
Transcripts for failed connection attempts through the file browser are now displayed as expected
Preview tab favicons larger than 16x16 are now properly scaled in the Window menu
Various parsing improvements to Tree-sitter based syntaxes (HTML, ERB, CSS, JavaScript, JSX, TypeScript, TSX, JSON, PHP, Python, Ruby, Lua, Markdown, YAML)
Lua: Variable names are now highlighted when assigning a function
Lua: Addressed an issue with syntax highlighting breaking on nested comments
Python: Added support for highlighting f-strings
Python: Improved highlighting of Type Annotations
Python: Addressed an issue with the parsing of Type Hints
Python: Lambdas in dictionaries or lists are now highlighted as expected
Python: Added highlighting support for match case syntax
Python: Code folding now works as expected for inline if-else statements
Python: The print completion has now been updated to be a function instead of a statement
JavaScript: Added support for highlighting tagged templates
JavaScript: Using “Jump to Previous/Next Instance” from function definition now works as expected
JavaScript: Added support for parsing numeric separators
JavaScript: Addressed a potential issue with highlighting of object properties
JavaScript: Code folding of functions with destructured arguments now works as expected
JavaScript: Resolved an issue with parsing of conditional operators
JavaScript: Parameters prefixed with $ are now highlighted as expected
JSX: Addressed an issue with highlighting of multi-line comments
JSX: Improved parsing of opening/closing tags in some circumstances
JSX: Attributes prefixed with $ are now highlighted as expected
TSX: Autocomplete no longer creates an empty tag in some circumstances
TSX: Improved parsing of documents that do not include semi-colons to indicate scope changes
TypeScript: Improved parsing of template strings
TypeScript: Addressed an issue with highlighting of ===
TypeScript: static keyword is now highlighted as expected
TypeScript: Improved highlighting of optional parameters
TypeScript: type definitions are now terminated properly when a trailing semicolon is not present
Typescript: Fixed an issue with parsing function definitions in some circumstances
PHP: Added support for code folding of brackets in disparate php tags
PHP: Custom variables are now displayed in autocomplete for HTML
PHP: Added support for constructor property promotion
PHP: Highlighting of identifiers now works more reliably
PHP: Addressed a potential issue with folding block comments
PHP: “Jump to Definition” now works more reliably for functions with same name in different classes
CSS: Completions now show automatically only after identifier characters
CSS: The aspect-ratio property is now highlighted as expected
CSS: Added highlighting support for SVG properties
CSS: Element keywords are no longer matched as case sensitive
CSS: Selectors with escaped characters are no longer parsed as two selectors
CSS: Address a syntax highlighting issues with :host() pseudo-class
CSS: highlighting @font-face rules that contain URLs now works as expected
CSS: Resolved parsing issues with @font-face, font-display, and src attributes
CSS: The figcaption property is now highlighted as expected
CSS: Added highlighting support for color-scheme property
CSS: Variable names that include the name of a CSS property are now highlighted as expected
YAML: Frontmatter is now highlighted as expected
YAML: Values with colons no longer break highlighting
YAML: Addressed parsing issues for various property types
HTML: Syntax highlighting of the custom HTML elements standard is now supported
HTML: Self-closing HTML tags are no longer automatically closed unexpectedly in some circumstances
HTML: Addressed an issue where syntax highlighting could fail unexpectedly after removing and adding HTML tags
Markdown: Frontmatter is now stripped when previewing
Markdown: Addressed an issue with folding of headers in Markdown
Markdown: Improved highlighting of fenced code blocks using language names
Markdown: Folding of code blocks no longer includes trailing newline
Markdown: Autocomplete suggestions for HTML attributes now work as expected
Markdown: Newlines within inline formatting no longer break syntax highlighting
Markdown: Omitting trailing comma in metadata no longer breaks syntax highlighting in some cases
Markdown: Addressed highlighting issues with documents that contain colons in metadata
Ruby: Improved highlighting for heredocs
Ruby: “Jump to definition” now works for methods with ! or ?
Ruby: Resolved a problem with highlighting of multiline arrays, strings, and %i %W statements
Ruby: Syntax highlighting for variables named “index” now work as expected
Ruby: Added highlighting support for interpolated strings
Ruby: Addressed an issue with code folding not working as expected in some circumstances
Ruby: Method invocations are now highlighted as expected
Ruby: Addressed a parsing issue with documents that contain RSpec’s .with method
Ruby: class << self ... end syntax is now supported as a foldable method
Vim: Invoking H or L no longer moves the viewport when re-positioning the cursor
Vim: Invoking dd on the trailing line fragment of a document now removes it and the previous newline
Vim: Invoking Y now includes the trailing newline for single lines
Vim: Invoking cw or cW no longer includes trailing whitespace after a word
Vim: Invoking a on an empty line no longer moves to the next line
Vim: Invoking ci', ci", or ci now properly handles cases where the quote is at the cursor position
Vim: Invoking End now properly moves to the end of the current line
Vim: Invoking commands using Option on certain keyboard layouts now works as expected
Vim: Scrolling using CTRL-D when the last line is visible will now move the cursor into that line
Vim: Fixed a case where using CTRL-D could sometimes scroll upwards if the last line was already visible
Vim: Addressed an issue with moving after the last character in the document while using Insert mode