Cadence VS Code Extension
This extension integrates Cadence, the resource-oriented smart contract programming language of Flow, into Visual Studio Code. It provides features like syntax highlighting, type checking, code completion, etc.
Note that most editing features (type checking, code completion, etc.) are implemented in the Cadence Language Server.
Features​
- Syntax highlighting (including in Markdown code fences)
- Run the emulator, submit transactions, scripts from the editor
Installation​
To install the extension, ensure you have VS Code installed
and have configured the code
command line interface.
Using the Flow CLI​
The recommended way to install the latest released version is to use the Flow CLI.
Check that it's been installed correctly.
Next, use the CLI to install the VS Code extension.
Restart VS Code and the extension should be installed!
Developing the Extension​
Pre-requisites​
- Must have Typescript installed globally:
npm i -g typescript
Getting Started​
- Run the Typescript watcher:
tsc -watch -p ./
- Launch the extension by pressing
F5
in VSCode - Manually reload the extension host when you make changes to TypeScript code
Configuration for Extension Host if Missing (launch.json
):​
_13{_13 "version": "0.2.0",_13 "configurations": [_13 {_13 "type": "extensionHost",_13 "request": "launch",_13 "name": "Launch Extension",_13 "runtimeExecutable": "${execPath}",_13 "args": ["--extensionDevelopmentPath=${workspaceFolder}"],_13 "outFiles": ["${workspaceFolder}/out/**/*.js"]_13 }_13 ]_13}
Building​
If you are building the extension from source, you need to build both the extension itself and the Flow CLI (if you don't already have a version installed). Unless you're developing the extension or need access to unreleased features, you should use the Flow CLI install option (above). It's much easier!
If you haven't already, install dependencies.
Next, build and package the extension.
This will result in a .vsix
file containing the packaged extension.
Install the packaged extension.
Restart VS Code and the extension should be installed!