Ctrl+K with multiple cursors@keyframes highlightinginc.php files no longer open in HTML syntax mode.mts and .cts files now use the TypeScript syntax by default$ character in some circumstancesif, while, etc.) now use keyword.condition selector once more, instead of just keywordstyle.selector.pseudoelement selector being overridden by .element in CSSlnavreset now makes the cursor visible if it was previously hidden.gitignore files are now reflected upon saveidentifier once more, fixing a few third-party themes.ejs file extension now opens as HTML (EJS) by default, in addition to html.ejs and htm.ejsnot in operatornova while the app isn’t running<?) not highlighting as expected# character no longer breaks syntax highlightingfnm failed to infer the current shell typeirssi in screenpunctuation selector is now applied to closing parenthesis in Markdown documentsWindow are now exposed in the global context&=, |=, and ^=)0x200B–0x200Fk1k1.nanozsh-interactive-cdcw and cW when used on a single-character wordworkflow OAuth scope to ensure that repositories using GitHub Actions can be cloned properly. (This may require you to re-authenticate your GitHub account in Nova’s settings)next occurrence / f within a blank lineosxkeychain credential helper is enabledswitch statements can now be foldedpost-checkout hook now properly provides the expected argumentsnova://open?path=[path]&line=[line]&type=[syntax]HEAD~/.ssh/configzc and zo to fold and unfold code, respectively, in Normal modehttp_build_query()/** */ as an auto-closing pair (to assist Intelephense users with completion of documentation comments): of a match or case statement now indents the new lineStrictHostKeyChecking support$ in PHP)user.name or user.email Git config options were malformedHEAD when uncommitted conflicting changes are present now displays an alert and aborts the merge@$Foobar) would highlight as type namesProxyCommand directive0 would use it as the first tab stop, not the lastunset() and exit are now highlighted as keywords when used as suchvar() functionsstyle attributes! now properly prioritizes !important over other unrelated completionsnova.crypto API for generating cryptographically-strong random values and UUIDsnova.fs.tempdir API for getting the path to a temporary foldercomment.doctag theme selector@media queries in CSSz vertical movements (zz, z., etc.)/* */ or {/* */} properly for code or markupprint completion has now been updated to be a function instead of a statement$ are now highlighted as expected$ are now highlighted as expected===static keyword is now highlighted as expectedtype definitions are now terminated properly when a trailing semicolon is not presentaspect-ratio property is now highlighted as expected:host() pseudo-class@font-face rules that contain URLs now works as expected@font-face, font-display, and src attributesfigcaption property is now highlighted as expectedcolor-scheme property! or ?%i %W statements.with methodclass << self ... end syntax is now supported as a foldable methodH or L no longer moves the viewport when re-positioning the cursordd on the trailing line fragment of a document now removes it and the previous newlineY now includes the trailing newline for single linescw or cW no longer includes trailing whitespace after a worda on an empty line no longer moves to the next lineci', ci", or ci now properly handles cases where the quote is at the cursor positionEnd now properly moves to the end of the current line^ and $Command-L by default/$FileDirname now returns the correct valuePROMPT_EOL_MARK when using zshw now properly includes trailing spaces before the next wordpre-commit, commit-msg, post-commit, and post-checkoutTaskDebugAdapterAction to run debuggers supporting the Debug Adapter ProtocolDebugSession class and Workspace methods to observe and respond to custom Debug Adapter eventsWorkspace objectfs.chmod() to set file permissions on the FileSystem objectinit.defaultBranch configuration optionwebmanifest JSON format and the woff / woff2 font typesdisplay_errors is disabled in php.inihttpcolor(srgb…) colors will now appear in the gutterrgba() format for sRGB, as color() is only supported by Safarici and ca with brackets now properly balances counterpartsw or W on the last word of a line no longer includes whitespace from the next lineH, M, and L commands--type option--line option when opening a documentnova.path.relative(from, to) for calculating the relative path between two other pathswait behavior of the CLI no longer requires manual exit; It will now observe for the file to be closed by Novaimg tags now display their id, class, and src attributes- from being used in key binding assignmentsconsole.log() API formatting not working as expectedtop.textClipping files into the editor now insert their contents as expectednova.path.expanduser no longer not casts falsy values to stringsnull after pressing the “Install & Restart” buttonCommand-+var() functions now work as expected!Important autocomplete no longer adds an extra ! characterkeyword.construct: Language construct keywords, such as function, class, interfacekeyword.condition: Conditional keywords, such as if, for, and casekeyword.modifier: Modifier keywords, such as public, private, and asynckeyword.statement: Statement keywords, such as return, throw, and evalkeyword.operator: Operator keywords, such as and, or, and notkeyword.self: Internal object reference keywords, such as self, this, and super< characters from being parsed as the start of an HTML tagu or b prefix should now parse correctly.cjs and .mjs as recognized file extensionsasync keywords in arrow function expressionse (scientific) notation are properly parsedexit in terminal before URL detection had completedß no longer match ss, and vice versaLanguageClient implementation to properly normalize the workspaceFolders propertyusing and extend keywords in class definitions are now parsed as expectedknown_hostsInputPalette⌘\ as a keyboard binding now works as expectedWinLatin1 file encodings@include and @use suffixes to autocompleteasync and await keywords are now highlighted as expectedLanguageClient when receiving custom notifications without parametersCompletionItem.additionalTextEditsLanguageClient workspace path prefix not always matching paths of documentsmanwhen clauses and the nova.workspace.context object to support conditionally enabling commandsScopeSelector extension class to inspect scope information when building completionsInsertTextFormat enumeration option to the .edit() APItaskTemplateshtopCommand-K wouldn’t clear scrollback until Command key is releasedtmux and htop!important-#<<- syntaxexcept would highlight as a partial keywordfor loops using let bindings no longer interrupt parsing in some circumstancesimport line.openFile() with no options argument
Document and Window classesif blocks:/contains(path) would always return true
TaskCommandAction class that invokes an extension commandtriggerCharacters propertynova CLI tool when /usr/local/bin did not already exist: can now be opened via command-clickJSTreeItem.tooltip would not be usedFilenames queries now include extensionsnova.workspace.openFile()now properly waits for the editor to be established in the extension service runtime before resolvingFunction class from completionsxcodebuild commandsTask and TaskProcessAction object classes with a new assistant typeapplyEdit method to instruct Nova to perform a wide-scale edit on multiple files simultaneouslyinitializationOptions in the LanguageClient.clientOptionstriggerCharacters completion request propertyCompletionItem.additionalTextEdits and TextEdit APIs
funding property to the extension manifest
{} bracketsconsole instead of the Console classIssueParser API that could incorrectly report an issue’s line basisnova.workspace.path should now always match document URIs prefixesrange of item when computing filtering textLanguageClient.running would return an incorrect value if the language server quits* selector to AssistantsRegistry.registerIssueAssistantTextEditor.onWillSave callbackProcessMessage objecttextEdit changes in addition to insertTextdocument/hover requests returning the deprecated MarkedString content are now unescaped properlyClipboard API and corresponding entitlement for interacting with the user’s clipboardSnippet format in completionsCompletionItem APIInsertTextFormat, an enumeration that contains values for supported text formats:
InsertTextFormat.PlainText: Plain text. It won’t be modified or tokenizedInsertTextFormat.Snippet: Completion text will be tokenized using the Clips / Snippet ${} formatCompletionItem.insertTextFormat, which defines an enum value from the InsertTextFormat enumerationCompletionItem.tokenize has been deprecated in favor of the newer format property
true will set the format to a private (inaccessible) enum value InsertTextFormat.Placeholder which is present for backwards compatibilityTextEditor.insert() has a new, optional second argument that takes an InsertTextFormat enum value to control the inserted text format in the same way as completion items
InsertTextFormat.Placeholder) will be usedmysqli_query() to PHP/MySQL autocompleteDocumentHighlight requestsend keyword detectionMarkedString[] responses for Hover requests