/vscode-vyper

Primary LanguageJavaScriptMIT LicenseMIT

Vyper Syntax Highlighting

img

Ethereum Vyper language support for Visual Studio Code

Marketplace: ext install trocher.vyper-syntax

Forked from https://github.com/tintinweb/vscode-vyper which is no longer maintained.

Also available on vscode.dev! (compilation not yet supported)

Features

Passive Features

  • Vyper syntax highlighting support

Active Features

Note: Active features can be disabled by setting SettingsVyperMode: Active to false.

  • Provides Security augmented decorations (SettingsVyperDecoration: Enable)
  • Provides Hover information (SettingsVyperHover: Enable)
  • Provides Code snippets for common language constructs
  • Integrates with the vyper compiler
    • automatically compile contracts on save (SettingsVyperCompile: On Save)
    • compilation can be triggered by executing a vscode command (cmd + shift + pVyper: Compile)
    • vyper location/command can be customized (default assumes vyper is in PATH) (SettingsVyperCommand)

Requirements

  • It is assumed that vyper is installed and generally available on the system (pip3 install vyper). In case vyper is not available in path or called in a virtualenv configure the vyper command in SettingsVyperCommand

Tour

Syntax Highlighting

VSCode Light+ (default light)

theme-light

Solidity Visual Auditor - Dark

theme-light

Compiler Errors and Details

image

Hover information

image

Security Augmented Decorations - Auditor Mode

image

Snippets

  • Quickly create constructor, fallback function, methods, structs, ... as you type. Select the snippet from the suggestion box. See snippets/ for a list of available snippets.
  • start typing ...

image

  • creates a template constructor after selecting it from the suggestion box.

image

Extension Settings

settings

FAQ

  • Q: I get an error running vyper on my macbook with M1/M2 chipset.
  • A: The extension executes the vyper compiler in a /bin/sh shell that may not have all the customizations you are using in your day-to-day shell/terminal. As a workaround, I suggest to set the setting:vyper.command to arch -x86_64 vyper. see #18

Developer Notes

  • install vyper pip3 install vyper
  • use the script in ./scripts/fetch_vyper_language_spec.py or run npm run fetchGrammar to merge the python tmlanguage spec with vyper language specifics.

Release Notes

see CHANGELOG