This extension adds support for using Deno with Visual
Studio Code, powered by deno lsp
.
⚠️ Important: You need to have a version of Deno CLI installed (v1.6 or later) and available in your path before attempting to use this extension. Check here for instructions on how to install the Deno CLI.
- Type checking for JavaScript and TypeScript, including quick fixes, hover cards, intellisense, and more.
- Integrates with the version of the Deno CLI you have installed, ensuring there is alignment between your editor and the Deno CLI.
- Resolution of modules in line with Deno CLI's module resolution strategy allows caching of remote modules in Deno CLI's cache.
- Integration to Deno CLI's linting functionality, including inline diagnostics and hover cards.
- Integration to Deno CLI's formatting functionality.
- Allow specifying of import maps and TypeScript configuration files that are used with the Deno CLI.
- Install the Deno CLI, available in your path.
- Install this extension.
- Open the VS Code command palette with
Ctrl+Shift+P
, and run theDeno Language Server: Initialize Workspace Configuration
command.
You can control the settings for this extension through your VS Code settings
page. You can open the settings page using the Ctrl+,
keyboard shortcut. The
extension has the following configuration options:
deno.enable
: Controls if the Deno Language Server is enabled. When enabled, the extension will disable the built-in VSCode JavaScript and TypeScript language services, and will use the Deno Language Server (deno lsp
) instead. boolean, defaultfalse
deno.codeLens.references
: Enables or disables the display of code lens information for references of items in the code. boolean, defaultfalse
deno.codeLens.referencesAllFunctions
: Enables or disables the display of code lens information for all functions in the code. Requiresdeno.codeLens.references
to be enabled as well. boolean, defaultfalse
deno.config
: The file path to atsconfig.json
file. This is the equivalent to using--config
on the command line. The path can be either be relative to the workspace, or an absolute path. string, defaultnull
, examples:./tsconfig.json
,/path/to/tsconfig.json
,C:\path\to\tsconfig.json
deno.importMap
: The file path to an import map. This is the equivalent to using--import-map
on the command line. Import maps provide a way to "relocate" modules based on their specifiers. The path can either be relative to the workspace, or an absolute path. string, defaultnull
, examples:./import-map.json
,/path/to/import-map.json
,C:\path\to\import-map.json
deno.lint
: Controls if linting information will be provided by the Deno Language Server. boolean, defaultfalse
deno.unstable
: Controls if code will be type checked with Deno's unstable APIs. This is the equivalent to using--unstable
on the command line. boolean, defaultfalse
We appreciate your help!
To build the extension locally, clone this repository and run the following steps:
- Open this folder in VS Code.
- Run
npm i
. - Run
npm run compile
. - Run the
Launch Client
launch task from the VSCode debug menu.
Most changes and feature enhancements do not require changes to the extension though, as most information comes from the Deno Language Server itself, which is integrated into the Deno CLI. Please check out the contribution guidelines for the Deno CLI.
This project was inspired by justjavac/vscode-deno and axetroy/vscode-deno. Thanks for their contributions.
The MIT License