New for Extensions
- Dynamic Task Providers
- Extensions can now provide tasks to a project dynamically, based on nearly anything, without requiring user configuration in Nova
- Tasks are built and delivered using the new
Task
and TaskProcessAction
object classes with a new assistant type
- LSP: Support for Code Actions
- Code actions can be shown from compatible language servers using the (by default) shortcut of Shift-Cmd-A
- An indicator can be displayed at the head of a line when code actions are available for the insertion point or selection
- LSP: Support for WorkspaceEdits
- Language servers can now use the
applyEdit
method to instruct Nova to perform a wide-scale edit on multiple files simultaneously
- LSP: Support for Jump to Definition
- Jump to definition will prioritize language servers above the workspace index when available
- LSP: Support for Signature Help
- LSP: Added the ability to include custom
initializationOptions
in the LanguageClient.clientOptions
- LSP: Added proper support for the
triggerCharacters
completion request property
- Extensions: Added
CompletionItem.additionalTextEdits
and TextEdit
APIs
- Completion items may now define additional edits, beyond the primary edit, such as automatically adding imports
- Extensions: Added support for a
funding
property to the extension manifest
- An author may define a URL at which users may contribute or fund the extension’s development
- When present, an additional “Sponsor” button will be shown on the extension’s library page
New
- Added an “Open in Nova” system service, intended to make opening folders a bit easier from Finder
- Key Bindings can now be imported and exported via Preferences > Key Bindings
- Added better support for EditorConfig wildcard entries, especially those using
{}
brackets
- Editor: Added the ability to disable insertion point blink
- Problem Reporter: Added support for directing extension-related issues to extension authors
- Added the ability to invoke completions with a specified key binding
- PHP: Added completions for multi-byte string functions
- Updated extension template READMEs to be more templated that authors may follow
- Syntax Inspector: Added the ability to show the specific CSS theme styles applied to the text
Improved
- Renamed the View → Pane menu items to View → Split for better consistency
- Installation of the CLI tool should no longer requires an escalation prompt when using an admin user
- Project Settings: Renamed the “Environment” section to “Extensions” for better clarity
- Project Settings: Project toolbar icon now matches the project folder color
- Find/Replace: Allow use of newline escape sequences if the regex option is enabled
- A maximum length/height has been set for workspace notifications
- Launcher: Filtering is now cleared when creating a new project
Fixed
- Fixed a potential crash when documents are being parsed
- Fixed an issue with auto-indentation on paste, especially within Python, JavaScript, and HTML documents
- Files Sidebar: Disabling Show Navigation Controls now re-navigates to the project root
- Fixed an issue where a duplicate copy would be uploaded when using Save As with remote files
- Resolved an issue with binding the Delete key to menu items
- Fixed Custom File Associations not opening with a single click
- Fixed an issue with SCSS variable completions
- Fixed the Tasks sheet changing width when switching to the Arguments tab
- Multiline copy now inserts line breaks between selections
- Fixed an issue with “Save in Keychain” checkbox not working as expected in file browser tabs
- Preferences: Theme items now expose proper accessibility metadata
- Terminal: Number pad enter key no longer unexpectedly cancels the command being executed
- Editor: Status View line number is no longer incorrect when the cursor is positioned on a trailing line fragment
- JavaScript: Auto-complete will now offer
console
instead of the Console
class
- TypeScript: Fixed an issue that could prevent certain functions from being displayed in the Symbols sidebar
- Command Line Tool: Piping output from an async command should now wait properly
- Terminal: Fixed potential drawing issues after displaying a long interactive output
- Launcher: Fixed an issue that could cause project folders to always use the color red
- Launcher: Tooltip for Remote Projects now displays the server address instead of a local path
- Launcher: Fixed the “g” character descender from being truncated on folder initials
- Launcher: Resolved an issue where the wrong project could be opened from the Touch Bar when projects were being filtered
- Extension Library: Resolved an issue that prevented copying text via the Edit menu
- Extension Library: Release notes now display the most recent changes without needing to update the extension
- Extension Library: “Version” is no longer displayed twice when a new update is available
- Extensions: Fixing an issue with the
IssueParser
API that could incorrectly report an issue’s line basis
- Extensions: Paths returned from
nova.workspace.path
should now always match document URIs prefixes
- Extensions: Fixed the completions API not respecting
range
of item when computing filtering text
- Extensions: Added a new event listener API to inform extensions when its language server quits
- Extensions: Fixed common cases where
LanguageClient.running
would return an incorrect value if the language server quits
- Extensions: Fixed a potential crash when passing
*
selector to AssistantsRegistry.registerIssueAssistant
- Extensions: Fixed properly handling a Promise return from
TextEditor.onWillSave
callback
- Extensions: Fixed a potential issue with syntaxes parsing issues when in development mode
- Extensions: Fixed JSProcess JSON-RPC error handling not rejecting with a
ProcessMessage
object
- LSP: Completion snippet placeholders are now respected for
textEdit
changes in addition to insertText
- LSP:
document/hover
requests returning the deprecated MarkedString
content are now unescaped properly
- macOS 11: Improved the appearance of Preferences > Transfers
- macOS 11: Fixed a potential hang when signing into, or out of, Panic Sync
- German Localization: Fixed Sync Preferences referring to Transmit instead of Nova when you are in Trial Mode