Skip to content

tokiwa-software/vscode-fuzion

Repository files navigation

fuzion_logo_25.png Fuzion extension for Visual Studio Code

This is a Visual Studio Code extension to support development in the Fuzion Programming Language.

Install (Java 21 required)

Requirements

  • make, node, npm, javac
  • install example: sudo apt-get install make openjdk-21-jdk nodejs npm

Windows (additional requirements)

  • install wsl (Windows Subsytem for Linux)
  • in wsl: sudo apt-get install openjdk-21-jdk nodejs npm
  • set vscode-setting: "terminal.integrated.defaultProfile.windows": "Ubuntu-20.04 (WSL)"
  • NOTE: the following is only neeeded when debugging on windows
  • OR when you want to run make run_tests with 'windows-style' paths.
  1. install https://www.msys2.org/
  2. in msys2_shell install make: pacman -S make
  3. install OpenJDK 21 or higher for Windows.

Develop

  • git submodule update --init --recursive
  • npm i
  • start debugging in vscode
  • (optional) attach to java debugger at port 8000

Build

  • make build-vsix which should produce an artifact like fuzion-lang-[version].vsix

Distribute

  • make publish_marketplace_visualstudio
  • make publish_open_vsx

Settings

  • fuzion.java.modules
    • list of java modules the fuzion language server should use
    • example: ["java.base"]

Features

  • Syntax Highlighting for .fz files
  • Language Server Client

Syntax Highlighting (via Semantic Tokens)

Syntax Highlighting

Definition

Definition

Completion

Completion

Hover

Hover

References

References

Diagnostics

Diagnostics

Renaming

Renaming

Evaluation

Evaluation

Syntax Tree

Syntax Tree

Outline

Outline

Signature Help

Signature Help

Call Graph

Call Graph

Known Windows (wsl) problems/workaround


Problem: tar EPERM: operation not permitted, futime

Workaround: sudo umount /mnt/c && sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=111