Nova

Extensions


Readme

Nova Deno extension

A Nova editor extension that integrates the Deno JavaScript/TypeScript runtime and tools.

Usage

The Deno language server enhances editing for the following syntaxes in various ways (all support format on save, but a subset support linting, type checking, and IntelliSense), depending on the configuration:

Import IntelliSense

The Deno language server can provide JavaScript/TypeScript import IntelliSense if the imported module host serves /.well-known/deno-import-intellisense.json and implements the necessary API endpoints.

Import IntelliSense is enabled or disabled per host in the global configuration option deno.suggest.imports.hosts, typically saved in ~/Library/Application Support/Nova/UserConfiguration.json. As of Nova v7.2, there’s no suitable extension GUI for editing this map data structure.

If the project configuration option deno.suggest.imports.autoDiscover is enabled, while typing an import module specifier the Deno language server automatically discovers if the host supports import IntelliSense, triggering a notification to enable or disable it.

Commands

Reset Deno import IntelliSense hosts

Resets the global configuration option deno.suggest.imports.hosts to allow fresh auto-discovery of hosts that support JavaScript/TypeScript import IntelliSense (see the Import IntelliSense section above). The host https://deno.land is enabled by default. This happens automatically if the global configuration option deno.suggest.imports.hosts is missing when the extension activates.

Available via:

  • Nova command palette, entering Reset Deno import IntelliSense hosts.
  • Nova menu bar option Extensions → Deno → Reset Deno import IntelliSense hosts.

Restart Deno language client

Restarts the Deno language client. This happens automatically when the configuration or files referenced in the configuration (e.g. the deno.importMap import map file or the deno.config TypeScript config file) change.

Available via:

  • Nova command palette, entering Restart Deno language client.
  • Nova menu bar option Extensions → Deno → Restart Deno language client.

Deno cache

Instructs Deno to attempt to cache any dependencies of the module in the focused editor.

Available when the focused editor has a JavaScript, JSX, TypeScript, or TSX syntax, via:

Deno format document

Deno formats the focused editor.

Available when the focused editor has a Deno formattable syntax, via:

  • Nova command palette, entering Deno format document.
  • Nova menu bar option Editor → Deno format document.
  • Keyboard shortcut Shift+Option+f.

Requirements

  • macOS v10.15.4+, for modern JavaScript syntax support in JavaScriptCore.
  • Nova v5+.
  • Deno CLI v1.13.2+.

Configuration

Global config

  1. In the Nova menu bar open Extensions → Extension Library….
  2. In the sidebar under Installed Extensions, open the tab Deno.
  3. Open the tab Preferences.

Project config

  1. In the Nova menu bar open Project → Project Settings....
  2. In the sidebar under Extensions, open the tab Deno.

Changelog

Nova Deno extension changelog

1.2.3

Patch

  • Added VS Code config to the project.
  • Stopped using Deno unstable mode for the project.
  • Added a project import map, used for tests.
  • Updated the Deno std version used in tests.
  • Added @ts-check comments to modules, referenced @types/nova-editor-node, and fixed various issues revealed by TypeScript.
  • Changed the test module file extensions from .js to .mjs.
  • Use a new class Defer to streamline deferred promises in both the implementation and tests.
  • The extension now creates a missing global config file during initialization or running certain commands, instead of hanging or erroring.

1.2.2

Patch

  • Removed the readme warning that document changes can be lost if Nova crashes (particularly when formatting on save) as Nova v7.3 is more stable, closing #3.

1.2.1

Patch

  • Documented the minimum required Deno version (v1.13.2).

1.2.0

Minor

  • Added support for JSX and TSX syntax, fixing #1.

Patch

  • Updated dev dependencies.

1.1.0

Minor

  • Implemented the deno.cache “Deno cache” command, progressing #5.

Patch

  • Updated issue information in the extension readme and source comments.

1.0.2

Patch

  • Removed Deno language server code lens related workspace configuration as Nova doesn’t appear to support code lens.

1.0.1

Patch

  • Uppercased the extension readme and changelog file names to conform to Nova extension conventions so the contents will display in the Nova extension library.

1.0.0

Initial release.